阿里多场景多任务模型M2M:《Leaving No One Behind: A Multi-Scenario Multi-Task Meta Learning Approach for Advertiser Modeling》

背景

在淘宝、亚马逊等电商平台上,广告主扮演着重要角色。满足他们的营销需求和支持他们的业务增长对平台经济的长期繁荣至关重要。当前的研究更加侧重于用户侧建模(如CTR预估),对于广告主建模的关注较少。和用户侧建模方式不同,广告主建模涉及了多种任务,比如广告主店铺的点击、消耗、平台活跃天数等。除了多任务的需求,广告主建模还需要考虑多场景问题。广告主进入阿里妈妈平台后,可以选择在不同的场景。如搜索广告、超级直播、信息流广告等进行投放。广告主建模是阿里妈妈平台与广告主交互的基础,交互形式下图所示:首先广告主在单个/多个场景投放广告;然后模型给出多个场景多个任务下的预测结果;最后模型将预测结果和平台多样的产品/运营工具结合,对广告主产出定制化的任务/消息等,帮助广告主在平台留存以及成长

在广告主建模过程中,我们需要建模多场景下的多种任务。在具体建模多任务多场景问题时,我们遇到了很多挑战:

  • 第一,模型可扩展性问题,常规解法可以对每个场景/任务分别建模,但是这种常规解法随着场景的增多需要建设&维护的模型也会随之增多,在工业界并不具备可扩展性;
  • 第二,样本稀疏问题,由于不同的场景建立时间、承接广告主数量等有所差异,导致在小场景或者新场景下模型会面临样本稀疏问题,模型的训练效果会受到影响;
  • 第三,场景关系复杂的问题,不同场景之间有着复杂的关联关系,场景的关联关系甚至会随着任务的不同而发生变化,模型需要在捕捉多个任务之间固有关联的基础上,捕捉不同场景下多个任务的动态关联。

这篇论文的主要创新点有:

  • 通过元网络Meta Unit显式的表征场景信息,Meta unit和底层MTL同步进行参数更新,使得模型具备可扩展性;
  • 在元网络Meta Unit的输入信息中,我们引入了丰富的特定场景相关的先验信息,缓解了小场景或者新场景下样本稀疏的问题;
  • 模型将元学习思想和多任务模型结合,元网络作为顶层网络,MMoE、PLE等多任务模型作为底层网络,使得模型在捕捉多个任务之间固有关联的基础上,还可以捕捉不同场景下多个任务的动态关联。

 

问题定义

广告主在与阿里妈妈平台交互的过程中会包含很多信息,归纳为4大类信息:

  • $\mathrm{S} = \{s_1, s_2, \ldots, s_l\}$:场景属性,如场景类型、场景统计特征
  • $\mathrm{A} = \{a_1, a_2, \ldots, a_m\}$:广告主属性,如店铺类型、店铺星级
  • $\mathrm{X}_b = \{\mathrm{X}_b^t\}_{t = 1}^T$:广告主行为序列,如登陆、出价、设置预算
  • $\mathbf{X}_p = \{\mathbf{X}_p^t\}_{t = 1}^T$:广告主效果序列,如点击、报告、消费、GMV、ROI

给定场景属性信息 $\mathrm{S}$,广告主画像信息 $\mathrm{A}$, 多类别行为序列信息 $\mathbf{X}_b$, 多类别效果序列信息 $\mathbf{X}_p$, 我们需要训练一个end-to-end模型,预测在未来 $\tau$ 天内的多种场景(直通车、超级推荐、极速推等)下的多类任务(店铺消耗、店铺点击、店铺在平台的活跃天数等),公式化如下:

\[ \left.\hat{\mathbf{Y}}_{ij}^{t + \tau}\right|_{scenarios_i, task_j} = \boldsymbol{\Gamma}(\mathrm{S}, \mathrm{A}, \mathbf{X}_b, \mathbf{X}_p) \]

其中,$\boldsymbol{\Gamma}$ 是我们需要学习的函数,预测的时间周期 $\tau$ 可以扩展为不同时间周期。

 

模型结构

M2M模型结构如上图所示,模型总体是一个MMOE的架构,但是在task tower里融入了场景信息

 

主干网络

我们先看模型下半部分,也就是图中的Backbone Network,Backbone Network由以下几个部分组成:

Shared Bottom Embedding

输入序列特征$\{\mathbf{X}_b, \mathbf{X}_p\}$,对于序列的中的连续特征,会先对其做离散化,然后通过这个embedding层转化层embedding,最后会concat上position embedding

 

Transform Layer

用多头attention对广告主行为序列和广告主效果序列建模,捕捉序列之间的内在联系

\[ \mathrm{F} = \mathrm{concat}(\mathrm{MH}(\mathrm{X}_\mathrm{b}), \mathrm{MH}(\mathrm{X}_\mathrm{p})) \]

 

Expert View Representation

这里其实就是MMOE的专家网络,论文中描述不详细,专家网络的输入除了经过transform建模后的序列特征外,应该还有广告主属性等特征

\[ \mathrm{E}_\mathrm{i} = f_{MLP}(\mathrm{F}), \forall i \in 1, 2, \ldots, k \]

 

Task View Representation

\[ \mathbf{T}_t = f_{MLP}(\mathrm{Embedding}(t)), \forall t \in 1, 2, \ldots, m \]

$\mathbf{T}_t$表示特定任务 $t$ 的任务信息表征,受到MRAN模型的启发,我们将不同类别的任务进行信息表征,和特征信息保持在同一维度。由于在测试集合中无法得到任务的表征信息,所以这里的任务信息表征是全局的而不是局部的。

 

元学习网络

我们在来看一下模型的上半部分也就是元学习网络部分,元学习网络的详细结构如下图所示

场景信息表征

首先利用场景属性特征和广告主属性特征对场景进行表征:

\[ \tilde{\mathrm{S}} = f_{MLP}(\mathrm{S}, \mathrm{A}) \]

 

元学习单元

元学习单元用来显式建模场景信息,和传统的建模方式(比如将场景相关信息作为输入特征加入到模型中)不同,为了更好的捕捉动态的场景关联关系,我们通过上节讲到的场景信息表征$\tilde{\mathrm{S}}$作为元学习单元的输入,元学习单元通过全连接层的方式将$\tilde{\mathrm{S}}$进行转化,为每个场景产出动态的网络weight和bias: \[ \mathbf{W}^{(i - 1)} = \mathrm{Reshape}(\mathbf{V}_w \tilde{\mathrm{S}} + \mathbf{v}_w) \] \[ \mathbf{b}^{(i - 1)} = \mathrm{Reshape}(\mathbf{V}_b \tilde{\mathrm{S}} + \mathbf{v}_b) \] 其中$\tilde{\mathrm{S}}$为场景信息表征,在经过全连接层后,再通过一个$\mathrm{Reshape}$函数,最终得到weight matrix $\mathbf{W}^{(i)}$ and bias vector $\mathbf{b}^{(i)}$。通过这种方式最终得到特定场景的元表征后,每个场景动态的weight matrix $\mathbf{W}^{(i)}$ and bias vector $\mathbf{b}^{(i)}$会作为底层网络(Attention网络&Tower网络)的动态参数,参与到网络的学习以及替代底层网络进行梯度更新: \[ \mathbf{h}^{(0)} = \mathbf{h}_{input} \] \[ \mathbf{h}^{(i)} = \sigma(\mathbf{W}^{(i - 1)}\mathbf{h}^{i - 1} + \mathbf{b}^{(i - 1)}), \forall i \in 1, 2, \ldots, K \] \[ \mathbf{h}_{output} = \mathbf{h}^K = \mathrm{Meta}(\mathbf{h}_{input})\] 其中,$\mathbf{h}_{input}$是维度为$d$的输入向量,$\sigma$是非线性的激活函数,可以是$\tanh$、$\mathrm{ReLU}$等等,$\mathbf{h}_{output}$是元学习单元的最终输出。我们把元学习单元的整个处理过程定义为$\mathrm{Meta}$函数

 

Attention元网络

传统的alignment attention结构可以建模任务和特征之间的关联关系,但是忽略了动态的场景因素的影响。因此,我们设计了Attention元网络,可以在计算attention权重系数的时候引入场景信息从而可以在不同场景下产出动态的attention权重系数

\[ a_{t_i} = \mathbf{v}^T \mathrm{Meta}_t([\mathbf{E}_{\mathbf{i}} \parallel \mathbf{T}_t])\]

\[ \alpha_{t_i} = \frac{\mathrm{exp}(a_{t_i})}{\sum_{j = 1}^{M} \mathrm{exp}(a_{t_j})}\]

\[ \mathbf{R}_t = \sum_{i = 1}^{k} \alpha_{t_i} \mathbf{E}_i \]

其中,$\mathbf{E}_{\mathbf{i}}$是维度为$d_1$的Expert表征,$\mathbf{T}_t$是维度为$d_2$的Task表征。$\mathbf{v} \in \mathcal{R}^{(d_1 + d_2)}$是一个转换向量,得到权重系数。最终,通过对所有$\mathbf{E}_{\mathbf{i}}$的加权求和,我们得到了对于特定任务$t$的表征$\mathbf{R}_t$。

 

Tower元网络

在得到特定任务$t$的表征$\mathbf{R}_t$之后,每个任务会通过Tower Layer,输出每个任务的预测结果。为了进一步增强特定场景的表征能力,和Attention元网络类似,我们在Tower Layer中引入了元学习单元

\[ \mathbf{L}_t^{(0)} = \mathbf{R}_t\]

\[ \mathbf{L}_t^{(j)} = \sigma(\mathrm{Meta}^{(j - 1)}(\mathbf{L}_t^{(j - 1)}) + \mathbf{L}_t^{(j - 1)}), \forall j \in 1, 2, \ldots, L \]

 

训练Loss

考虑到我们的多类别任务都属于回归任务,且反应变量Y近似符合泊松分布,我们采用Possion Loss作为损失函数,最终的优化目标为:

\[ \begin{align*} \mathcal{L}_{train}(\mathrm{S}, \mathrm{A}, \mathbf{X}_\mathrm{b}, \mathbf{X}_\mathrm{p}, \mathbf{Y}) =& \sum_{t = 1}^{m} \lambda_t \mathcal{L}^t(\mathrm{S}, \mathrm{A}, \mathbf{X}_\mathrm{b}, \mathbf{X}_\mathrm{p}, \mathbf{Y}^t)+ \\ & \alpha(\|\mathbf{W}_1\|_F^2 + \|\mathbf{W}_2\|_F^2)\end{align*} \]

其中,等式右边的第一项表示对特定任务下loss $\mathcal{L}^t$ 的加权求和,第二项表示对顶层元网络和底层多任务结构的参数L2正则化处理,$\alpha$表征惩罚系数。对于每一个特定任务loss $\mathcal{L}^t$,计算公式为:

\[ \mathcal{L}^t(\mathrm{S}, \mathrm{A}, \mathbf{X}_\mathrm{b}, \mathbf{X}_\mathrm{p}, \mathbf{Y}^t) = \frac{1}{N} \sum_{i = 1}^{N} (\hat{y}_i^t - y_i^t \log \hat{y}_i^t) \]

 

实验

离线实验

对于回归问题来说,通常使用MAPE(Mean Absolute Percentage Error)评测指标衡量模型的微平均效果,使用NMAE(Normalized Mean Absolute Error)评测指标衡量模型的宏平均效果。在我们的场景中,一些任务的Y值可能为0,在MAPE中无法计算,故用SMAPE(Symmetric Mean Absolute Percentage Error)替代MAPE。SMAPE和NMAE的计算公式为:

\[ SMAPE = \frac{1}{N}\sum_{i = 1}^{N}\frac{|\hat{y}_i - y_i|}{(\hat{y}_i + y_i)/2} \]

\[ NMAE = \frac{\sum_{i = 1}^{N}|\hat{y}_i - y_i|}{\sum_{i = 1}^{N}y_i}  \]

其中,N代表带评测的测试集中广告主的数量,\(\hat{y}_i\)和\(y_i\)代表第i个广告主的预测结果和真实结果。 

 

在线实验

在离线验证的基础上,我们进一步在加速宝产品上验证算法升级的业务效果。加速宝产品的流程如图七所示,通过模型我们预测出广告主在未来一段时间的支出,点击和活跃天数等等,接下来我们选择平台活跃水平较低的客户,根据广告主在未来一段时间的支出,点击产出定制化的任务,广告主通过完成这些任务,得到一些权益奖励,促进在平台的活跃。我们比较了新旧两版模型的业务效果,新版本的模型取得了 + 2.59% 的活跃率提升和+ 2.09% 的每用户平均收入(ARPU)提升。

 

参考资料

https://zhuanlan.zhihu.com/p/471304393

posted @ 2023-03-22 17:58  AI_Engineer  阅读(1086)  评论(0)    收藏  举报