综述:机器学习在CTR中的应用
背景:设计个性化信息检索时,用户行为预测扮演着重要的作用。用户行为预测的目标是估计用户点击、购买等行为的概率,而该概率代表了用户对该item的兴趣程度,用户之前的行为同时也影响着我们随后的排序。如何根据用户的query选择正确的ads并对其进行合理的排序,不仅极大的影响着用户点击、浏览等行为,而且对于搜索广告的收益也起到重要的作用。
IR任务中,数据大部分为multi-field类型,例如:[weekday=Tuesday, Gender=Male, City=London],我们可以通过one-hot对其进行编码,映射为高维稀疏特征。例如,我们可以将上述特征进行one-hot编码,然后concatenate得到
LR
,其中为特征,为特征权重,b为偏差。
Degree-2 Polynomial (Poly2)
简介: LR模型具有计算高效、可解释性强等优点,但是需要人工抽取交叉特征。而交叉特征对于模型性能起到重要的作用,相比LR线性模型,Poly2设计了特征自动交叉,从而自动计算交叉特征提升模型性能。
是将,编码为一个自然数的函数。
FM
简介: Poly2模型虽然能够自动抽取交叉特征,但是当特征维度较高并且稀疏时,权重难以收敛。针对该问题作者提出了FM算法,其中正定矩阵,可以通过特征向量空间渐进表示。
是一个无对角线的上三角矩阵,直接可以计算整个矩阵然后减去对角线。
FFM
简介: FM算法将所有特征归结到一个field,而FFM算法则按照field对不同特征进行区分,主要体现在交叉项中。在FM算法中user这个特征对应的latent vector不论是对price、genre还是movie都是相同的,而FFM算法中则对特征进行归类,latent vector会区分交叉filed,模型参数个数n(n-1)/2。可以看出来FM算法时FFM算法的一个特例,但是随着FFM算法对latent vector的细化,FM算法中交叉简化将不再适用.
简介: FFM算法按照field对latent vector进行区分,从而提升模型的效果。但是FFM算法没有区分不同特征交叉的重要性,本文针对不同特征交叉赋予不同的权重,从而达到更精细的计算交叉特征的目的。
网络结构
简介: AFM算法与FwFM算法类似,目标都是希望通过对不同交叉特征采用不同权重,从而减少引入噪声提升模型性能。
AFM的embedding层后,先让个field的特征做了element-wise product后,得到个交叉项,然后AFM引入了一个Attention Net,认为这些交叉特征项每个对结果的贡献是不同的。例如和的权重重要度,用来表示。从这个角度来看,其实AFM其实就是个加权累加的过程。
1: Attention-based Pooling Layer
2:AFM模型结构
其中,,,,为模型参数。
FNN
简介: LR、FM被广泛的应用在工业场景中,但是这些模型对于抽取高阶特征显得无能为力。深度模型可以学习高阶复杂的交叉特征,对于提升模型性能有着重要的作用。由于CTR中大部分特征是离散、高维且稀疏的,需要embedding后才能用nn学习。
FNN模型将embedding层用FM初始化,即每个特征对应一个偏置项和一个k维向量。然后参数向量再随着训练不断学习调整。假设每个field的类别特征都只有一个1值,其余为0值,即可进行one-hot编码,然后做embedding,Dense Layer里每个Field对应的参数就是该Field那个不为0的变量对应的FM里的偏置项和k维隐向量。简单说模型第一层到第二层之间其实是普通的全连接层,而为0的输入变量对Dense Layer里的隐单元值不做贡献。
FNN模型结构
损失函数(最小交叉熵)为:
CCPM
简介: 模型结构整体结构相对比较简单,首先将特征映射到embedding稠密向量,然后经过卷积神经网络抽取高维特征,最后通过pooling层抽取主要的高维信息。
PNN
简介: FNN算法实际上是对特征embedding之后进行concatenate,再接FC,虽然使用了激活函数增加了非线性,实际上是对特征进行了加权组合(add 操作)。PNN算法与FNN算法的区别在于PNN算法中间多了一层Product Layer层。其中z为embedding层的线性部分,p为embedding层的特征交叉部分,其他与FNN算法结构相同。
网络结构
简介: 线性模型具有计算高效、可解释性强等优点,但是模型的泛化性差。深度学习模型对于长尾特征具有更高的泛化性,并且不需要大量的特征工程。然而当交叉特征稀疏时,深度学习模型容易出现over-generalize。本文提出同时对线性模型和深度模型联合训练,从而结合线性模型记忆性强、深度模型泛化性强的优点。
网络结构
1: The Wide Component
简介: FM算法仍然属于wide&deep架构,不过在wide部分做了改进,采用FM替换linear layer,从而通过FM算法对交叉特征的计算能力提升模型的整体性能。其中inner product和deep network共享embedding feature,因此模型能同时从原始特征中学习低阶、高阶特征,并且不需要专业特征。
网络结构
1:FM component
简介: FNN、wide&deep、DeepFM等算法在deep network部分都是对embedding之后的特征进行concatenate,未能充分进行特征交叉计算。本文NFM算法则是对embedding直接采用element-wise后sum起来做特征交叉,然后通过MLP直接将特征压缩,最后concatenate linear部分和deep部分的特征。
网络结构
1: Bi-Interaction Layer
简介: 目前FM、FFM、DeepFM和PNN算法都只计算了2阶交叉,对于更高维度的交叉特征只能通过deep部分去学习。因此作者提出了Deep&cross network,可以任意组合特征,而且不增加网络参数。
网络结构
1:embedding and stacking layer
将稀疏特征用embedding进行表示,比如:country=USA,以一个稠密向量表示USA这个特征,然后将所有的特征concatenate为一个向量用于表示输入。这里将dense特征和embedding特征一起concatenate,然后做为模型的输入。
简介: DCN模型做特征交叉时采用的是特征内积,我们知道inner product得到的是一个标量。
DUPN
简介: 前面列举的算法都是针对单点数据,而用户的行为序列一定程度上代表了用户当前的兴趣,但是行为序列中不是每一次行为都是同等重要的。每一次行为对每一个用户的重要程度都是不同的,因此本文通过user对行为序列做attention计算得到一个user embedding,为了获得更加通用的user embedding,作者将该user embedding应用到多个任务做multi-task建模。
输入item节点特征包含:
简介: RIB模型和DUPN网络结构类似于,不同之处在于attention计算。另外本文输入特征中加入商品页停留时间特征、用户行为(点击、浏览、购买、加入购物车)和哪个模块进入商品页,具体特征如下:
Var | Attribute | Description |
---|---|---|
Product ID | SKU(Stock Keeping Unit) | |
Category ID | Product category | |
Home2Product | Enter from homepage | |
ShopList2Product | Enter from category page | |
Sale2Product | Enter from sale page | |
Cart2Product | Enter from carted page | |
SearchList2Product | Enter from searched results | |
Detail_comments | In comment module | |
Detail_specification | In specification module | |
Detail_bottom | At the bottom | |
Cart | Add to cart | |
Order | Order | |
Dwell time | 0 9 seconds | |
Dwell time | 1024 seconds | |
Dwell time | 2560 seconds | |
Dwell time | 61120 seconds | |
Dwell time | 120 seconds |
其中attention计算为:
DIN
简介: 与DUPN、RIB算法不同,本文并未采用GRU网络对用户历史行为序列进行建模,而是直接通过attention对行为序列进行加权。DIN模型通过当前item对用户历史行为数据进行加权求和计算用户表征向量,这里通过dice激活函数计算历史行为的权重。与候选广告商品相关的行为赋予更高的权重,对用户兴趣的表示起主要作用。
1:用户历史行为向量
3:自适应归一化
不归一化时,SGD只需要更新mini-batch中非零稀疏特征。但是加入l2归一化之后,每个mini-batch需要计算所有参数,这将会导致计算负担加重。在CTR任务中,特征较为稀疏并且维度较高,大部分特征只出现几次,而小部分特征出现很多次,即长尾分布,这将会导致模型过拟合。一个较为直接的方式,对出现次数较少的特征进行截断,但是这样将会导致信息的丢失,因此作者提出了一种根据特征频次自适应的更新方式。
1:出现频次较高的特征给予较小的正则化强度
2:出现频次较高的特征给予较高的正则化强度
简介: din算法对用户历史行为通过当前item计算attention,获得最终的user embedding,整个算法计算简单,易于理解。但是模型忽略了用户行为之间的关联关系,因此本文用一个GRU网络(兴趣提取模块)来计算用户兴趣的关联关系。DUPN算法也是通过一个GRU网络计算用户历史行为,然后通过一个additional attention进行加权求和获得最终的user embedding,本文思路与DUPN类似,整体结构仍然是通过GRU计算用户历史行为,然后通过一个attention对不同行为item进行加权求和,得到最终的user embedding,不同之处在于本文通过另一个GRU对时序数据更新进行控制。
Auxiliary loss
为了充分利用用户历史不同的时刻行为,作者在每个时刻加入auxiliary loss用于表征用户的兴趣(用户点击item为正、随机采样候选集为负)。
Attention
,其中通过候选item和gru输出计算attention权重。
Interest Evolving Layer
GRU with attentional input (AIGRU)
Attention based GRU(AGRU)
GRU with attentional update gate (AUGRU)
我们常用attention与GRU输出进行加权求和得到最终的特征表示,但是本文通过另一个GRU网络对第一个GRU网络的输出进行建模,通过attention计算得到当前item与历史行为item的相关度,然后通过该相关度得分做节点更新约束,如果与当前相关性较弱,则趋近于零,状态不更新,最后取最终的状态输出作为最终的特征输出(作者尝试了3种不同类型的Interest Evolving Layer )。
参考文献
[1]Factorization Machines
[2]Field-aware Factorization Machines for CTR Prediction
[3]Wide & Deep Learning for Recommender Systems
[4]Deep Learning over Multi-Field Categorical Data: A Case Study on User Response Prediction
[5]Product-based Neural Networks for User Response Prediction
[6]DeepFM: A Factorization-Machine based Neural Network for CTR Prediction
[7]Neural Factorization Machines for Sparse Predictive Analytics
[8] Attentional Factorization Machines: Learning the Weight of Feature Interactions via Attention Networks
[9]Deep & Cross Network for Ad Click Predictions
[10]Deep Interest Network for Click-Through Rate Prediction
[11]Field-aware Factorization Machines for CTR Prediction
[12]Field-weighted Factorization Machines for Click-Through Rate Prediction in Display Advertising
[13] Micro Behaviors: A New Perspective in E-commerce Recommender Systems
[14] xDeepFM: Combining Explicit and Implicit Feature Interactions for Recommender Systems