大型推荐系统存在多场景,而多场景的训练数据存在分布差异。比如:不同媒体的用户存在差异,不同资源位的用户存在差异。对于多场景建模,如果采用各场景独立的方式,会忽视场景共性,导致长尾小场景难以学好,同时每个场景维护一个模型极大地增加系统资源开销和人力成本;如果直接将样本混合,训练共享模型,整个模型会被数据丰富的场景主导,从而在数据量少的场景表现欠佳,导致预测准度下降,因此,如何同时建模场景共性和差异性,显得非常重要。
和多场景建模很相似的任务是多任务学习,但这二者关注点不同。多任务学习解决相同场景/分布下的不同任务,而多场景建模解决不同场景/分布下的相同任务。例如:推荐场景下的多任务学习通常是单个样本对于 CTR,CVR 等目标同时预估,而多场景建模是对不同场景样本预估相同的 CTR 目标。直接采用多任务学习的方法解决多场景建模也会存在一些问题。
最简单的方法是把场景相关特征作为输入,场景特征维度一般较少,随着网络深度的增加,场景特征对最终预测结果影响有限。
将场景看作bias,构建辅助子网络,在输出层直接与主网络结果相加或相乘,这种方式能让场景特征直接影响到最终结果,但对主网络中间层影响有限。
STAR 主要包含三部分,星型拓扑结构的全连接网络(STAR Topology Fully-Connected Network),Partitioned Normalization以及辅助网络。
在STAR中,对于每一个FC层,都有中心的共享参数和场景私有参数,每个场景最终的参数通过二者进行element-wise product得到:
假设FC层的输入是,那么输出由下式计算得到:
通过这样的实现方式,STAR的共享参数被所有场景样本的梯度更新,学习场景共性,而场景私有参数只被场景内样本更新,建模场景差异性。
为了加快模型收敛,现在很多 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。这样能够让场景相关特征直接影响最终预测值,捕捉场景差异性。
W=G(z)
。,从而可以reshape成一个32->16->8的三层MLP。
,注意这个动态网络的输入是x,就是普通特征,场景敏感与非敏感特征都包括。
多场景学习的挑战
第一,模型可扩展性问题,常规解法可以对每个场景/任务分别建模,但是这种常规解法随着场景的增多需要建设&维护的模型也会随之增多,在工业界并不具备可扩展性;
第二,样本稀疏问题,由于不同的场景建立时间、承接广告主数量等有所差异,导致在小场景或者新场景下模型会面临样本稀疏问题,模型的训练效果会受到影响;
第三,场景关系复杂的问题,不同场景之间有着复杂的关联关系,场景的关联关系甚至会随着任务的不同而发生变化,模型需要在捕捉多个任务之间固有关联的基础上,捕捉不同场景下多个任务的动态关联。常规的MTL解法如图二(a)所示,底层结构为共享信息结构,通过gate(MMOE[1]/PLE[2]等)或者attention(MRAN[3]等)方式,得到特定任务下的信息表征,再通过特定任务的塔结构,最终得到特征任务的预测结果。但是在整个模型架构中没有显式的表征场景信息,无法学习复杂的场景关联。
M2M模型的特点
模型整体框架
通常在机器学习里,我们会使用某个场景的大量数据来训练模型;然而当场景发生改变,模型就需要重新训练。
元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,
在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。在元学习中,训练单位分层级了,第一层训练单位是任务,也就是说,元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据。
为了更好地表征来自不同序列特征的场景特定表征,提出了一种元学习机制,该机制由两个组件组成:元注意力模块和元残差塔模块。这两个模块是分层组织的。元注意力模块位于较低位置以捕获不同的场景间相关性,元残差塔模块位于较高位置以增强捕获特定场景特征表征的能力,如图 4 所示。
在这里,我们不仅使用广告客户营销的场景属性,还使用广告客户概要信息来更好地了解多个任务。
元注意模块位于较低位置,以捕获不同的场景间相关性,元剩余塔模块位于较高位置,以增强捕获场景特定特征表示的能力
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
扫码关注腾讯云开发者
领取腾讯云代金券
Copyright © 2013 - 2025 Tencent Cloud. All Rights Reserved. 腾讯云 版权所有
深圳市腾讯计算机系统有限公司 ICP备案/许可证号:粤B2-20090059 深公网安备号 44030502008569
腾讯云计算(北京)有限责任公司 京ICP证150476号 | 京ICP备11018762号 | 京公网安备号11010802020287
Copyright © 2013 - 2025 Tencent Cloud.
All Rights Reserved. 腾讯云 版权所有