今天给大家介绍的是阿里公开的一篇论文,主要介绍如何使用统一的模型在多domain进行CTR预估。论文标题为《One Model to Serve All: Star Topology Adaptive Recommender for Multi-Domain CTR Prediction》,一起来看一下。
1、背景
在大的电商公司如阿里和亚马逊,通常需要对多个业务domain的商品进行点击率预估,如下图所示,顶部的banner和猜你喜欢频道均需要进行CTR预估。
对于这种多domain的情况,常见的做法是每个domain使用自己独有的数据训练单独的模型,并单独部署上线。这种做法存在一定的缺陷,首先,部分业务线的数据比较稀疏,模型难以得到充分的训练,其次,不同的业务线的模型单独训练,需要更多的计算资源和人力资源消耗。
不同domain的用户和商品具有一定的交集,因此不同domain的信息共享,在一定程度上可以提升CTR预估模型的效果,但同时,不同的domain的用户行为存在一定的差异,导致数据分布存在一定差异,简单的混合所有domain的数据来学习一个共享的模型,用于所有domain的CTR预估,可能达不到预期的效果。那么,如何有效利用各域的数据,使用统一的模型来进行multi-domain的CTR预估呢?接下来,一起来学习下论文中提出的方法。
2、方法介绍
论文中提出的方法称作star topology adaptive recom- mender (STAR),其整体的结构如下图所示:
该结构主要包含三个主要的模块,分别是:partitioned normalization (PN)、star topology fully-connected neural network (star topology FCN)和auxiliary network,接下来,我们对这三部分进行分别介绍。
2.1 embedding layer
模型的输入主要包括用户历史行为序列,用户画像特征,上下文特征,目标商品特征。辅助网络还会包括domain标识特征。接下来,ID类特征通过embedding layer转换成对应的embedding。这里,由于embedding参数量较大,不同domain的域共享同一套embedding以减少参数量。
2.2 partitioned normalization
接下来,用户行为序列对应的embedding进行pooling,并与其他的embedding进行拼接,得到的向量计作z。为了使网络学习的更快更稳定,通常的做法是加入BN层。在训练阶段,计算每一个batch的均值和方差,并通过如下的方式对数据进行转化,其中和使训练学习的参数:
而在测试阶段,计算全部样本的均值和方差,并通过如下的方式对测试数据进行转化:
然而,在多domain的CTR预估中,数据只有在其对应的domain内被认为是独立同分布的,如果使用相同的均值/方差以及参数和,难以体现不同domain的独有信息,从而使模型效果变差。因此,论文提出了partitioned normalization,假设当前的batch数据是从第p个domain得到的(训练的时候,一个batch的数据要保证是同一个domain的),那么基于如下的公式对数据进行转化:
可以看到,除全局的和参数外,每个domain还有其独有的参数p和p。而在测试阶段,使用每个domain数据的均值和方差,转换公式如下:
2.3 Star Topology FCN
经过PN层,得到的输出计作z',并输入到topology multi-layer fully-connected neural network(简称Star Topology FCN)中。Star Topology FCN包含两部分,一部分是所有domain共享的网络,参数计作W和b,另一部分是每个domain独有的网络,第p个domain的参数计作Wp和bp。假设共有M个domain,那么Star Topology FCN中共有M+1个网络。
基于共享网络和独有网络,每个domain的最终网络参数为:
输出计算公式为:
通过共有的网络,可以学习不同domain共通的信息,而通过独有的网络,可以捕获每个domain私有的信息。当然,还有其他中的结合方式,如z'分别输入到共享网路和独有网络中,对得到的输出再进行计算,这种方式或许可以得到更好的效果,但计算复杂度是有提升的。
2.4 auxiliary network
最后一部分是auxiliary network。论文认为一个好的多domain的CTR预估模型应该具备如下的特性:
1)具有domain独有的特征
2)这些domain相关的特征能够直接影响CTR预估的效果
其背后的思考是:描述domain信息的特征非常重要,因为它可以减少模型捕获domain之间区别的难度。
因此,论文提出了auxiliary network来进一步学习domain之间的差异。而主要加入的特征是domain ID特征,并通过embedding层转换为对应的embedding。随后与其他特征进行拼接,通过全链接网络得到输出(这里其他特征论文没有详细说明)。假设star topology FCN的输出为sm,而auxiliary network的输出为sa,则最终的输出为:
损失计算如下:
好了,整体的模型就介绍到这里,接下来简单看一下论文的实验结果。
3、实验结果
首先看一下论文中使用的数据,共19个domain的数据,如下表所示:
STAR与base模型在不同domain上AUC的表现如下,可以看到,STAR在所有domain中表现都更好:
文中对比的baseline模型大都是多任务学习模型,multi-domain和multi-task之间的区别主要是:multi-domain的模型大都解决的是不同domain的相同问题,如CTR预估,其label space是相同的;而multi-task一般解决的是相同domain内的不同任务,如CTR预估和CVR预估,其label space是不同的。
接下来再看一下其模块实验,主要是验证了不同模块的有效性:
最后看一下STAR是否能够捕获不同domain之间的差异性,论文对比了base模型和STAR在不同domain的PCOC指标的结果(PCOC,predicted CTR over CTR,预测的平均CTR/实际的平均CTR),如果PCOC接近于1,则说明预测更加准确,可以看到,STAR对于domain之间的差异性捕获较好,PCOC大都接近于1:
好了,年关将至,祝小伙伴们的2020年都能有一个好的收尾!