多场景建模:腾讯3MN

文章探讨了如何通过ThreeMetaNetworks在在线广告推荐系统中处理多场景和多任务的学习问题,提出场景自适应组件、场景任务自适应主干网络和分类器,以及场景自适应embedding层,以适应不同场景的数据分布和不平衡。实验和消融分析验证了方法的有效性。
摘要由CSDN通过智能技术生成

3MN: Three Meta Networks for Multi-Scenario and Multi-Task Learning in Online Advertising Recommender Systems

背景

推荐领域的多场景多任务学习:维护单模型即可节省资源也可节省人力;各个场景的数据共享,理论上面学习是更加充分的

问题&挑战
  1. 怎么学习复杂的多任务、多场景之间的关系MSMT(Multi-Scenario Multi-Task Learning),即(场景-场景、场景-任务、任务-任务之间的相互关系)
  2. 单个模型如何解决多个场景多个任务的不同数据分布问题(例如,来自不同媒体的用户不同,点击广告的意愿也不同;即使用户来自同一媒体,他们也点击广告的意愿通常会与他们下载应用程序的意愿不同)
  3. 不同场景下的样本分布严重不均,来自主流媒体的样本通常比小规模媒体要多得多,样本充足的场景怎么帮助哪些相关但是样本少的场景
解决方案
Three Meta Networks-based solution (3MN)

提出的三个场景自适应组件解决了挑战1,极大地提升了多任务的性能。第二个挑战由场景任务自适应主干网络及分类器解决,主干网络利用场景任务信息抽取分场景的任务特有、任务共享特征,场景自适应分类器利用这些特征提升分场景的多任务预测性能。第三个挑战由场景自适应embedding层解决,以一个自动的方式来选择不同场景下的Embedding维度。

在这里插入图片描述
点评:这篇文章是把元网络用到了极致,底层、中间层、顶层都注入了场景知识,实现场景的自适应匹配

方案详情
Scenario-Adaptive Embedding Layer

step1:Unified Embedding Dimensions.
以往的每个特征在Embedding层都映射到一个固定维度的特征向量上面,这里为了场景自适应匹配维度,设计了根据场景来选择合适的维度。
具体就是预先设置一组维度列表 { α 1 , α 2 , . . . , α a } \{\alpha_1, \alpha_2, ..., \alpha_a\} {α1,α2,...,αa},长度为 ∣ α ∣ |\alpha| α,对于每个输入的特征,产生 ∣ α ∣ |\alpha| α个embedding向量
x i = E m b e d d i n g i ( x )      i ∈ { 1 , 2 , . . . , ∣ α ∣ } \mathbf x_i = \mathrm {Embedding}_i(\mathbf x) \ \ \ \ i \in \{1,2, ..., |\alpha|\} xi=Embeddingi(x)    i{1,2,...,α}
然后使用一个形状转换层将形状转为统一的尺寸
x i ~ = x i W i + b i      i ∈ { 1 , 2 , . . . , ∣ α ∣ } \widetilde {\mathbf x_i} = \mathbf x_i \mathbf W_i + \mathbf b_i \ \ \ \ i \in \{ 1,2,..., |\alpha| \} xi =xiWi+bi    i{1,2,...,α}
然后使用BatchNorm对这 ∣ α ∣ |\alpha| α个向量进行处理,避免出现由形状转换引起的极端数值变化
x i ‾ = B a t c h N o r m ( x i ~ ) \overline {\mathbf x_i} = \mathrm {BatchNorm} ( \widetilde {\mathbf x_i} ) xi=BatchNorm(xi )

step2:Scenario-Adaptive Embedding Dimension Selection
然后将 ∣ α ∣ |\alpha| α个向量进行加权求和得到特征最终的embedding向量
x s a e m b = ∑ i = 1 ∣ α ∣ p i ‾ x i ‾ \mathbf x_{sa_emb} = \sum_{i=1}^{|\alpha|} \overline {\mathbf {p_i}} \overline {\mathbf {x_i}} xsaemb=i=1αpixi
这里的权重 p i ‾ \overline {\mathbf {p_i}} pi是由元网络得到的,而元网络的输入是场景特征,因此能做到场景自适应的选择不同Embedding维度。
W 1 , b 1 , W 2 , b 2 = M e t a N e t e m b ( x s c e n e ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{emb}} (\mathbf x_{scene}) W1,b1,W2,b2=MetaNetemb(xscene)

p = f 1 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x s e l e c t e d ) ) + b 1 ) + b 2 ) ) \mathbf p = f_1(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \mathbf x_{selected})) + b_1) + \mathbf b_2)) p=f1(σ(W2T(σ(W1TEmbedding(xselected))+b1)+b2))

其中 x s e l e c t e d \mathbf x_{selected} xselected是用户及item的一些频次统计特征,也就是基于user、item、scene三者来选择不同维度的Embedding

p ∈ R ∣ α ∣ ∗ n f i e l d \mathbf p\in R^{|\alpha| * n^{field}} pRαnfield,先reshape成 R n f i e l d ∗ ∣ α ∣ R^{n^{field}*|\alpha| } Rnfieldα,然后经过softmax后再拆分成 α \alpha α
p 1 ‾ , p 2 ‾ , . . . , p ∣ α ∣ ‾ = S p l i t ( S o f t m a x ( R e s h a p e ( p ) ) ) \overline {\mathbf {p_1}},\overline {\mathbf {p_2}},...,\overline {\mathbf {p_{|\alpha|}}} = \mathrm {Split} (\mathrm { Softmax}( \mathrm {Reshape ( \mathbf p)} )) p1,p2,...,pα=Split(Softmax(Reshape(p)))

Scenario&Task-Adaptive Backbone Network

类似于PLE的结构,有任务特有和任务共享的专家
Shared and Specific Experts.
首先BN处理下
x b n = B a t c h N o r m ( x s a e m b ) \mathbf x_{bn} = \mathrm {BatchNorm} (\mathbf x_{sa_emb}) xbn=BatchNorm(xsaemb)
然后任务特有的专家和任务共享的专家
e i , j = T a s h S p e c E x p e r t i ( x b n ) \mathbf e_{i,j} = \mathrm {TashSpecExpert_i}(\mathbf x_{bn}) ei,j=TashSpecExperti(xbn)
s k = T a s h S h a r e E x p e r t k ( x b n ) \mathbf s_{k} = \mathrm {TashShareExpert_k}(\mathbf x_{bn}) sk=TashShareExpertk(xbn)

Scenario&Task-Adaptive Expert Selection

对专家进行加权融合
x t i ~ = p t i ~ X t i \widetilde {\mathbf x_{t_i}} = \widetilde{ \mathbf p_{t_i}} \mathbf X_{t_i} xti =pti Xti
这里的专家即
X t i = [ e i , 1 T , e i , 2 T , . . . , e i , n n i T , s 1 T , s 2 T , . . . , s n s e T ] \mathbf X_{t_i} = [ \mathbf e_{i,1}^T, \mathbf e_{i,2}^T, ..., \mathbf e_{i,n^{n_i}}^T, \mathbf s_1^T, \mathbf s_2^T, ..., \mathbf s_{n^{se}}^T] Xti=[ei,1T,ei,2T,...,ei,nniT,s1T,s2T,...,snseT]

各个专家的权重 p t i ~ \widetilde{ \mathbf p_{t_i}} pti 是场景自适应的,也是由元网络得到的,元网络的输入是场景信息和任务信息

p t i = f 2 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x b n ) ) + b 1 ) + b 2 ) ) \mathbf p_{t_i} = f_2(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \mathbf x_{bn})) + b_1) + \mathbf b_2)) pti=f2(σ(W2T(σ(W1TEmbedding(xbn))+b1)+b2))
W 1 , b 1 , W 2 , b 2 = M e t a N e t b a c k b o n e ( [ x s c e n e   ∣ ∣   x t a s k ] ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{backbone}} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) W1,b1,W2,b2=MetaNetbackbone([xscene ∣∣ xtask])

p t i ‾ = S o f t m a x ( p t i ) \overline {\mathbf p_{t_i}} = \mathrm {Softmax}(\mathbf p_{t_i}) pti=Softmax(pti)

Scenario&Task-Adaptive Classifiers

得到专家的加权输出后,再通过各自任务的tower层,得到最终任务的输出

o t i = f 3 ( σ ( W 2 T ( σ ( W 1 T E m b e d d i n g ( x t i ~ ) ) + b 1 ) + b 2 ) ) \mathbf o_{t_i} = f_3(\sigma ( \mathbf W_2^T( \sigma(\mathbf W^T_1 \mathrm {Embedding}( \widetilde {\mathbf x_{t_i}})) + b_1) + \mathbf b_2)) oti=f3(σ(W2T(σ(W1TEmbedding(xti ))+b1)+b2))
W 1 , b 1 , W 2 , b 2 = M e t a N e t c l a s s i f y ( [ x s c e n e   ∣ ∣   x t a s k ] ) \mathbf W_1, \mathbf b_1, \mathbf W_2, \mathbf b_2 = \mathrm {MetaNet_{classify}} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) W1,b1,W2,b2=MetaNetclassify([xscene ∣∣ xtask])

MSMT Meta Networks

详解 meta 网络也有三个组件, meta embedding layer, meta backbone network, and meta fully-connected layers
在这里插入图片描述

meta embedding layer
x e m b = E m b e d d i n g ( [ x s c e n e   ∣ ∣   x t a s k ] ) \mathbf x_{emb} = \mathrm {Embedding} ([\mathbf x_{scene} \ || \ \mathbf x_{task}]) xemb=Embedding([xscene ∣∣ xtask])

meta backbone network

x m e t a = L a y e r N o r m ( D r o p o u t ( M H ( x e m b ) ) ) + x e m b \mathbf x_{meta} = \mathrm {LayerNorm} ( \mathrm {Dropout} ( \mathrm {MH} (\mathbf x_{emb}) ) ) + \mathbf x_{emb} xmeta=LayerNorm(Dropout(MH(xemb)))+xemb

x m e t a ‾ = M L P ( x m e t a ) \overline {\mathbf x_{meta}} = \mathrm {MLP} (\mathbf x_{meta}) xmeta=MLP(xmeta)

meta fully-connected layers 得到最终的权重
W i , b i = W i m e t a x m e t a ‾ + b i m e t a     i ∈ { 1 , 2 } \mathbf W_i, \mathbf b_i = \mathbf W_i^{meta} \overline {\mathbf x_{meta}} + \mathbf b_i^{meta} \ \ \ i \in \{1,2\} Wi,bi=Wimetaxmeta+bimeta   i{1,2}
其中 W i m e t a \mathbf W_i^{meta} Wimeta b i m e t a \mathbf b_i^{meta} bimeta是元网络FCN的参数
这里产出的 W i , b i \mathbf W_i, \mathbf b_i Wi,bi就是上面用到的权重

实验&消融分析

数据集
在这里插入图片描述
实验效果
在这里插入图片描述
各个组件消融分析
在这里插入图片描述
专家选择权重的可视化
在这里插入图片描述
不同embedding尺寸选择权重的可视化
在这里插入图片描述
SA embedding layer加在base模型上的效果增益
在这里插入图片描述

  • 16
    点赞
  • 16
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值