【强基固本】多场景建模
“强基固本,行稳致远”,科学研究离不开理论基础,人工智能学科更是需要数学、物理、神经科学等基础学科提供有力支撑,为了紧扣时代脉搏,我们推出“强基固本”专栏,讲解AI领域的基础知识,为你的科研学习提供助力,夯实理论基础,提升原始创新能力,敬请关注。
来源:知乎—绝密伏击
01
最近在我们信息流尝试了一些多场景建模的方法,总结一下具体的实践。首先介绍下多场景建模的背景。在我们导航右侧的图文场景,主要包含scene1和scene2两个场景,这两个场景用户的行为是有差异的,从整体上看,两个场景的CTR相差很大,高CTR的数据也相差很大,scene1主要是星座、体育、彩票的CTR最高,scene2主要是游戏、动漫、星座是高CTR数据。两个场景的用户活跃度也有很大差异,scene1冷用户的pv占比接近50%,而scene2都是点击用户,冷用户1天的平均pv是5,而活跃用户1天的平均pv是16左右。那么我们的问题就是针对scene1、scene2不同场景样本分布不同,如何同时建模共性和差异性。在具体实践中,我们参考了阿里巴巴2021年提出来的STAR模型结构。
02
在介绍具体实践之前,这里先介绍下多场景建模和单场景建模的区别,以及和多任务学习的区别。对于单场景建模,我们需要根据样本 预测点击率 ,我们假设样本 是独立同分布的。而对于多场景,我们需要根据场景 内的样本 ,预测点击率 ,样本 只有在场景 内的是独立同分布的。
和多任务学习相比,多任务是解决相同场景下的不同任务,而多场景建模是解决不同场景下的相同任务。例如:推荐场景下的多任务学习通常是单个样本对于CTR,CVR等目标同时预估,而多场景建模是对不同场景样本预估相同的CTR目标。直接采用多任务学习的方法解决多场景建模也会存在一些问题。
对于多场景建模,如果采用各场景独立的方式,会忽视场景共性,导致长尾小场景难以学好,同时每个场景维护一个模型极大地增加系统资源开销和人力成本。如果直接将样本混合,训练共享模型,会忽视场景差异性,导致预测准确度下降。
03
在我们自己的业务场景,对于多场景建模,最早的版本1是直接将场景信息作为特征使用。后来我们在视频场景分别实验了将场景信息作为bias侧特征,以及多塔结构,最近的版本是在合并其它小场景时,使用的MMOE结构。
版本1:场景信息直接作为特征使用
版本2:场景信息作为bias侧特征
版本3:多塔结构+场景信息作为bias侧特征
版本4:MMOE结构建模多个场景
其中,版本3多塔结构+场景信息作为bias侧特征在视频场景取得了不错的效果。版本4融合了右侧图文场景+其它小场景,上线后在主场景取得了3%+的提升,小场景取得了10%+的提升。
04
在之前版本的基础上,前段时间调研了一下阿里的一篇论文,使用STAR建模不同场景。阿里的场景一共有19个,STAR模型在阿里场景整体CTR提升了8%,场景信息如图3所示。
接下来介绍下STAR模型结构。STAR模型结构如图4所示,目标是学习场景内特定行为和场景间共性行为。主要的方法是使用了一个叫STAR的结构,每个场景拥有自己独立的参数,同时场景间拥有共享的参数。场景间共享参数和场景独有参数相乘,得到实际每个场景的参数。
05
图4中建模场景差异性和共性主要的结构是STAR,其具体结构如图5所示。中间是共享的FCN参数,和每个独立场景的参数进行element-wise相乘,得到最终的FCN参数。
在STAR中,对于每一个FC层,都有中心的共享参数和场景私有参数,每个场景最终的参数通过二者进行element-wise product得到:
假设FC层的输入是 ,那么输出由下式计算得到:
通过这样的实现方式,STAR的共享参数被所有场景样本的梯度更新,学习场景共性,而场景私有参数只被场景内样本更新,建模场景差异性。
06
和MMOE相比,MMOE对不同场景采用独立的全连接参数(门控网络参数独立,门控网络之后的塔也是独立的),缺少参数共享。另外,为了建模场景间的共性,MMOE是通过门控隐式建模,而STAR是直接通过共享参数。此外,MMOE引入的门控显著增加了计算开销,而STAR基本上没有额外计算开销。从实际结果来看,STAR结构确实比MMOE快很多。下面是阿里一次分享里面对比MMOE的结果。
MMOE 对不同任务采用独立的FC层,缺少共享参数,而STAR的FC层共享参数可以学习场景共性行为。
MMOE 通过可学习gate隐式的建模场景间的关系,这样会丢失显示的domain-specific知识,而STAR引入场景先验,通过场景私有/共享参数,而不是gate显示建模场景间的关系,保留显示的domain-specific知识(保留在场景私有参数内)。
MMOE通过gate,需要计算每个场景的expert,相对共享模型FC层会有M倍的计算开销 (M为场景数,通常较大,在展示广告下可达上百),而STAR稀疏激活的特性不引入额外计算,和原来计算开销持平。
由于gate的学习存在冷启动,MMOE对于新场景不友好,而STAR更易于接入新场景,只需将新场景私有参数全初始化为1即可开始fine-tune接入,更加符合展示广告场景动态变化的需求。
07
最后,在我们的右侧scene1、scene2场景上进行了实验。除了使用STAR结构,我们对scene1、scene2使用了独立的用户行为序列(这里的序列是和目标id同类别的序列,比如目标id是娱乐新闻,那么序列就是所有娱乐相关的行为)。实验结果如图6所示。
实验结果来看,单独的STAR结构并没有明显提升,效果最显著的还是每个场景独有的序列。这里可能的原因是模型虽然期望建模不同场景的差异性,但是由于特征都是混合在一起的,因此模型很难从混合序列中区分特定场景的兴趣。此外,在我们混合序列中引入相关新闻这样的点击,但是语料中没有相关新闻的样本,这样可能导致STAR模型过于关注场景的共性。实际上,最后我们实验出有效果的是每个场景独有的用户序列,如图7所示,相当于从语料层面,直接区分了用户在每个场景的兴趣。
08
为什么每个场景独有行为序列是有效果的。我们可以看出,混合序列和后验ctr的相关性只有0.09,而分场景序列和对应场景的后验ctr相关系数是0.198,基本上相关性提升了一倍。
图8很直观的反应了混合序列和分场景序列,和后验CTR的关系。总结一下,就是分场景序列能够从语料侧区分用户不同场景兴趣,之所以有效果,也验证了不同场景用户行为差异大。
参考文献
https://mp.weixin.qq.com/s/c7rckW2u2SCd98hwzQy4Cg
“强基固本”历史文章
深度学习优化背后包含哪些数学知识?
利用宇宙的能力来处理数据!「物理网络」远胜深度神经网络
入门 | 异常检测Anomaly Detection
通俗易懂的解释Sparse Convolution过程
现在的人工智能是否走上了数学的极端?
神经网络训练中的拓扑演化
一文详解colmap中的多视图重建算法原理
深度学习、计算机视觉面试题合集
大白话用Transformer做Object Detection
手把手教你学DBNet
小样本学习只是一场学术界自嗨吗?
检测和处理异常值的极简指南
完整版图解Transformer
机器学习建模中的Bagging思想!
更多强基固本专栏文章,
请点击文章底部“阅读原文”查看
分享、点赞、在看,给个三连击呗!