前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >多场景学习

多场景学习

原创
作者头像
用户2794661
修改2022-06-09 11:35:59
1.1K0
修改2022-06-09 11:35:59
举报
文章被收录于专栏:程序人生小记程序人生小记

1 背景

大型推荐系统存在多场景,而多场景的训练数据存在分布差异。比如:不同媒体的用户存在差异,不同资源位的用户存在差异。对于多场景建模,如果采用各场景独立的方式,会忽视场景共性,导致长尾小场景难以学好,同时每个场景维护一个模型极大地增加系统资源开销和人力成本;如果直接将样本混合,训练共享模型,整个模型会被数据丰富的场景主导,从而在数据量少的场景表现欠佳,导致预测准度下降,因此,如何同时建模场景共性和差异性,显得非常重要。

和多场景建模很相似的任务是多任务学习,但这二者关注点不同。多任务学习解决相同场景/分布下的不同任务,而多场景建模解决不同场景/分布下的相同任务。例如:推荐场景下的多任务学习通常是单个样本对于 CTR,CVR 等目标同时预估,而多场景建模是对不同场景样本预估相同的 CTR 目标。直接采用多任务学习的方法解决多场景建模也会存在一些问题。

图片
图片

2 解决方案

2.1 特征上的解决方案

2.1.1 场景信息直接作为特征使用

最简单的方法是把场景相关特征作为输入,场景特征维度一般较少,随着网络深度的增加,场景特征对最终预测结果影响有限。

2.1.2 场景信息作为bias侧特征

将场景看作bias,构建辅助子网络,在输出层直接与主网络结果相加或相乘,这种方式能让场景特征直接影响到最终结果,但对主网络中间层影响有限。

2.2 结构上的解决方案

2.2.1 STAR

STAR 主要包含三部分,星型拓扑结构的全连接网络(STAR Topology Fully-Connected Network),Partitioned Normalization以及辅助网络。

图片
图片

STAR Topology Fully-Connected Network

图片
图片

在STAR中,对于每一个FC层,都有中心的共享参数和场景私有参数,每个场景最终的参数通过二者进行element-wise product得到:

图片
图片

假设FC层的输入是,那么输出由下式计算得到:

通过这样的实现方式,STAR的共享参数被所有场景样本的梯度更新,学习场景共性,而场景私有参数只被场景内样本更新,建模场景差异性。

Partitioned Normalization

为了加快模型收敛,现在很多 CTR 模型都会采用 BN。展示广告之前的CTR模型中在 embedding 之后会过一层 BN,同时 FC 激活函数 DICE [2] 还会有BN。但是 BN 在多场景中会有一些问题,我们提出了 Partitioned Normalization(PN)。

回顾 BN,我们可以发现 BN 其实假设所有样本 i.i.d. 并使用所有样本的共享统计量进行normalization。但在多场景建模中,样本只在场景内独立同分布,使用共享统计量/参数混淆了分布差异,不利于更加精细的建模。

图片
图片

对此,PN 的解决方案是对不同场景采用私有统计量和可学习参数。具体来说,PN 累计 domain-specific 的滑动均值 以及方差 并且进行 domain-specific 的变换。

除了 STAR FCN 和 PN,我们还设计了一个 Auxiliary Network。我们认为好的多场景模型应该具备丰富的场景特征并能让场景特征能够直接影响最后的 pctr,学习场景差异性。因此,类似于 wide and deep 的做法,我们引入一个额外的小辅助网络,将场景相关特征送进去,并将 auxiliary network 输出与 STAR 网络相加得到最终 pctr。这样能够让场景相关特征直接影响最终预测值,捕捉场景差异性。

图片
图片
  • 场景是怎么定义的?
  • 怎么进行分样本的权重相乘的?不同场景的特征是否是一样的?同一个样本只对应一个场景,如何进行分样本权重相乘的?

2.2.2 M2M

  • 将“场景敏感”特征z,喂入一个小网络,输出一个向量W,即W=G(z)
  • 把W reshape成一个子模型Dynamic Weighted Network(DWN)。比如,W一共640维,
[公式]
[公式]

,从而可以reshape成一个32->16->8的三层MLP。

  • 拿以上根据“场景敏感”特征动态生成权重的DWN,接入整个推荐模型的关键位置。即
[公式]
[公式]

,注意这个动态网络的输入是x,就是普通特征,场景敏感与非敏感特征都包括。

  • 第一,各个场景的数据还是合在一起训练的,模型参数也只有一套,方便线上维护。而且共享的模型参数,也允许数据丰富场景学习到的知识,向数据稀少的场景迁移。
  • 第二,前文已经讲到过了,“场景敏感”特征如果和其他特征一样喂入DNN的最底层,很容易就“泯然众人矣”。这些“场景敏感”特征的信息,在层层向上传递过程中,被其他特征所干扰,无法对最终预测结果产生多少影响。而DW模式特别突出了“场景敏感”特征的作用,让它们像一个“滤波器”控制住了其他信息的向上传递通道。其他信息向上传递过程中,都要经过“场景敏感”特征的“调制”,根据不同场景,对前一层发现的模式局部放大或衰减。而且在将动态产生的权重reshape成DWN的过程中,DWN层与层之间可以插入非线性的激活函数,从而允许实现比较复杂的“调制”功能。

多场景学习的挑战

第一,模型可扩展性问题,常规解法可以对每个场景/任务分别建模,但是这种常规解法随着场景的增多需要建设&维护的模型也会随之增多,在工业界并不具备可扩展性;

第二,样本稀疏问题,由于不同的场景建立时间、承接广告主数量等有所差异,导致在小场景或者新场景下模型会面临样本稀疏问题,模型的训练效果会受到影响;

第三,场景关系复杂的问题,不同场景之间有着复杂的关联关系,场景的关联关系甚至会随着任务的不同而发生变化,模型需要在捕捉多个任务之间固有关联的基础上,捕捉不同场景下多个任务的动态关联。常规的MTL解法如图二(a)所示,底层结构为共享信息结构,通过gate(MMOE[1]/PLE[2]等)或者attention(MRAN[3]等)方式,得到特定任务下的信息表征,再通过特定任务的塔结构,最终得到特征任务的预测结果。但是在整个模型架构中没有显式的表征场景信息,无法学习复杂的场景关联。

M2M模型的特点

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

模型整体框架

图片
图片

元学习

why?

通常在机器学习里,我们会使用某个场景的大量数据来训练模型;然而当场景发生改变,模型就需要重新训练。

What?

元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,

在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。在元学习中,训练单位分层级了,第一层训练单位是任务,也就是说,元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据

为了更好地表征来自不同序列特征的场景特定表征,提出了一种元学习机制,该机制由两个组件组成:元注意力模块和元残差塔模块。这两个模块是分层组织的。元注意力模块位于较低位置以捕获不同的场景间相关性元残差塔模块位于较高位置以增强捕获特定场景特征表征的能力,如图 4 所示。

在这里,我们不仅使用广告客户营销的场景属性,还使用广告客户概要信息来更好地了解多个任务。

元注意模块位于较低位置,以捕获不同的场景间相关性,元剩余塔模块位于较高位置,以增强捕获场景特定特征表示的能力

参考文献

基于元学习的多场景多任务商家建模

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 1 背景
  • 2 解决方案
    • 2.1 特征上的解决方案
      • 2.1.1 场景信息直接作为特征使用
      • 2.1.2 场景信息作为bias侧特征
    • 2.2 结构上的解决方案
      • 2.2.1 STAR
    • STAR Topology Fully-Connected Network
      • Partitioned Normalization
        • 2.2.2 M2M
      • 元学习
      • why?
        • What?
        • 参考文献
        领券
        问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档