背景介绍
以往CTR(Click-Through Rate、点击率)预估模型更加关注于单个业务场景域(domain)的预测。在淘宝的App中,有多种domains需要用到CTR预估模型,比如首页推荐、猜你喜欢等等。如果每个场景都单独建模,模型的数目会很多,可能有几百个,维护成本变大,而且有的domains的数据比较少,模型的学习效果也不够好。考虑到不同domains之间有很大的共性,比如domains间的用户是重叠的、商品也是重叠的,一个思路是把多个domains放到一起建模,利用domains间的共享部分,提升其他domains的效果,减少模型的个数。
STAR模型的目标是学习一个有效和高效的CTR模型来同时处理多个domains,它会为每个domain给出精准的CTR预测,并在资源消耗上开销不大,该模型可以充分利用domain共性,并能捕捉domain间的差异。。可以将multi-domain CTR prediction公式化成:需要为M个业务场景domains
作为CTR预测。该模型可以将input作为(x, y, p),其中:
- x是公共特征(像:历史用户行为、用户画像特征、商品属性特征、上下文特征等),会被多个商业domain使用
是点击label
- p是domain索引:它表示该样本是来自哪个domain
论文专门介绍了Multi-Domain Learning和Multi-Task Learning关系。首先Multi-Domain Learning与Multi-Task Learnin间的不同之处是:Multi-Domain预测是在输入样本不同的domain上解决相同的任务,不同domains的label spaces是相同的,数据分布有所不同。然而,Multi-Task训练则在输入样本相同的domain上解决不同的任务,其中label space会不同。由于任务的异构性,已存在的Multi-Task Learnin方法则关注于在bottom layers上的共享信息,但会在每个task output layers上保持独立。
为了充分利用domain关系,论文提出星形拓朴自适应推荐(STAR Topology Adaptive Recommender: STAR)来进行multi-domain CTR预估。提出的STAR模型是星形拓朴,STAR包含了共享的中心参数,以及domain-specific参数的多个集合。每个domain的最终模型通过将共享中心参数和domain-specific参数进行组合来获得。中心参数被用于学习在所有domains间的总行为,其中公共知识可以被学习到以及在所有domains间转移。domain-specific参数会捕获在不同domains间的特定行为来提升更加精准的CTR预估。Star topology会利用跨多个domains间的有效信息转换,来学习domain公共性和差异。该论文会实现STAR模型,它使用在每个layer上对weights做element-wise product来作为组合策略。由于embedding layers会在工业界推荐器上贡献大多数参数量,添加的domain-specific参数对于总参数量来说可被忽略。因此,使用STAR模型来serve多个domains只需要添加少量计算和内存开销,就能达到更好的效果。
主要的贡献如下:
- 提出Star Topology FCN模块建模多个领域间的共享和差异部分
- 提出Partitioned Normalization (PN)对不同领域的数据单独归一化
- 提出auxiliary network直接学习领域表征信息,让模型更直接地感知不同的领域。
在工业产品数据集上评估STAR,并将它部署在2020的阿里展示广告系统上,持续的收益验证了STAR的效果。直到现在,STAR的部署带来了6%的CTR和8%的RPM提升,它可以泛化到其它场景上。
提出的方法
Multi-domain CTR预估
架构总览
如上所示,忽略domain索引 p,学习单个共享CTR模型会忽略domain的差异性。这会导致次优的模型参数。另一方面,对于不同domain训练不同模型会更差,因为将domains进行分隔,每个模型会得到更少的数据。由于资源开销以及人力开销,在生产环境中为每个domain维护一个独立的模型是难以进行的。
使用STAR来进行multi-domain CTR预估,可以更好利用不同domains间的相似性,并能捕获domain上的差异。如下图所示,STAR包含了三个主要部分:
- (1) partitioned normalization(PN):它会为不同domains间的样本进行单独normalization
- (2) star topology FC network (star topology FCN)
- (3) auxiliary network:它会将domain标识索引看成是input featrure,并能学到它的语义embeddings来捕获domain差异性
在训练期间,domain索引 p 会首先被抽样。STAR会首先将这些input features通过一个embedding layer进行嵌入作为低维vectors。在工业推荐系统中,该模型通常会使用数十亿维度进行训练,embedding的参数通常要比其它部分的参数更多。这使得它在不同domains上使用有限数据来学习domain-specific embedding很难。因此,在STAR模型中,我们将所有domains共享相同的embedding layer。共享的embedding layer会跨不同的domains,可以极大减少计算和内存开销。
该embeddings接着被pool和concatenate,来获得B个固定长度的r表示向量。在这之后,B个抽取的表示向量会通过PN layer进行处理,接着为不同domains进行独立的normalization statistics。normalizated vectors接着作为input被feed到star topology FCN中来获取output。star topology FCN包含了共享的centered FCN以及多个domain-specific FCNs。每个domain的最终模型通过将shared centered FCN和domain-specific FCN进行组合获得。
在multi-domain CTR预估中,描述domain信息的features很重要。在STAR模型中,auxiliary network会将domain标识索引作为input,并使用描述该domain的其它features一同输入到auxiliary network中。auxiliary network的output 会被添加到star topology FCN的output中,来获取最终的prediction。auxiliary network比star topoology FCN更简单,模型以一个直接和简单方式来捕获domain差异。
Partitioned Normalization
如上,输入特征会首先转换成低维embeddings,接着进行pool和aggregation来获得中间表示。通常,为了训练deep networks更快和更稳定,一个标准的惯例是应用normalization layer到中间表示z上。在所有的normalization方法之间,batch normalization(BN)是一个表示方法,它对于训练非常深的DNN很重要。BN会为所有样本使用一个全局的normalziation,它会累积normalization moments,并学习跨多个样本的共享参数。BN会假设所有样本是独立同分布的,并在所有训练样本上使用共享的statistics。
然而,在multi-domain CTR预估中,样本假设是在一个特定domain上是局部独立同分布的。在testing期间在BN layers上共享全局的monents和参数,会牺牲domain差异性,并导致模型效果的降级。为了捕获每个domain上唯一的数据特性,论文提出partitioned normalization, 它会为不同domains上单独对statistics和parameters做normalization。具体的,在training期间,假设当前的mini-batch是从第p个domain上抽样得到,然后会计算当前mini-batch的均值和方差,并将feature进行归一化。
Star Topology FCN
在PN layer之后的结果会被作为input来喂到下面的star topology multi-layer FCN上。如下图所示,提出的star topology FCN会为每个domain包含一个共享的centerd FCN和独立FCNs,因而,FCN的总数是M 1. 第p个domain的最终模型可以通过对shared centered FCN和domain-specific FCN组合来得到,其中,centered参数会学习在所有domains上的通用行为,domain-specific参数会捕获在不同domains上的指定行为,来帮助更多的fefined CTR预测。
STAR如何为不同domains生成FCN的参数。STAR包含了一个共享的centered FCN和独立的每个domain的FCNs。对于每个domain,一个neural network layer的最终weights会通过将shared FCN与domain-specific FCN进行element-wise乘法来获得。共享参数会通过所有示例的梯度进行更新,而domain-speciific参数只会通过在该domain下的样本进行更新。
注意,我们会对shared centerd FCN和domain-specific FCN进行组合策略,它的实现是:将每个layer上的weights进行element-wise乘,将bias进行加得到;也可以尝试研究其它策略。shared参数会通过对所有样本的梯度进行更新,而domain-specific参数则只会在使用该domain的样本时才会被更新。如上所示,工业推荐系统的大多数参数,会由embedding layer来贡献,STAR只会增加M个FCNs,量级很少。
Auxiliary Network
在CTR建模的传统方式下,所有features会被同等看待,并被喂给复杂的模型。在multi-domain CTR预测时,对于模型来说自动学习domain差异是很难的。一个好的multi-domain CTR模型应该具有以下几个特性:
- (1) 具有考虑上domain特性的信息特征
- (2) 这些featrures可以很容易并直接影响final CTR预估
背后的直觉是,描会domains的features很重要,因为它可以减少模型难度来捕获domains间的不同。
实验
对比模型
- Base:经过embedding,pooling和concat,batch normalization,之后经过7层全连接。pooling和concat的操作是基于DIEN
- Shared Bottom:只共享embedding,各个领域有独立的7层全连接网络
- MulANN:在Base模型的基础上,添加adversarial模块,区分不同领域学习到的表示
- MMoE:每一个expert是7层全连接网络,experts的个数和领域的个数相同
- Cross-Stitch:每个领域一个7层全连接expert,并且在每个hidden layer都添加线性cross-stitch单元,组合不同experts的hidden表示。
训练细节
优化器使用Adam,lr=0.001,batch size = 2000,评价指标使用weighted AUC,根据每个用户的样本计算AUC,然后按照用户的曝光量加权。