论文笔记|Deep Interest Network for Click-Through Rate Prediction

这是阿里的一篇提出深度兴趣网络这一结构的文章。
如之前所说,在推荐系统中,用户行为序列含有很强的信息,包含了用户可能对什么类型的商品的兴趣趋向。在之前的YouTube的论文中,采用了将序列信息的embedding vector进行均值处理的方式,实际上这也是大部分网络结构对此的处理方式。人们尝试使用NLP中的序列信息分析方法,比如LSTM进行序列分析,然而效果并不理想,说明用户的行为序列信息与语言的词汇序列有所不同。
在这篇文章中,考虑到一个用户可能对多个不相关领域的商品均有过行为,而简单的将所有领域的商品一概均值则会抹除这部分信息,因此提出了“attention”这一机制。顾名思义,用户对不同的商品行为有着不同的注意力,比如给自己买了一本书,比如给家人买了一件衣服,因此对于不同商品采用了不同的处理方式。网络结构如图所示。
论文笔记|Deep Interest Network for Click-Through Rate Prediction_第1张图片
左图为其他典型网络的处理方式,将multi-hot features进行pooling操作。而在DIN中,引入了一个activation weight环节,将用户行为序列中的商品的embedding vector与预测的广告商品的embedding vector进行权值计算,然后用该权值对序列中的商品进行加权pooling处理。其计算公式为
v U ( A ) = f ( v A , e 1 , e 2 , . . , e H ) = ∑ j = 1 H a ( e j , v A ) e j = ∑ j = 1 H w j e j v_U(A)=f(v_A,e_1,e_2,..,e_H)=\sum_{j=1}^Ha(e_j,v_A)e_j=\sum_{j=1}^Hw_je_j vU(A)=f(vA,e1,e2,..,eH)=j=1Ha(ej,vA)ej=j=1Hwjej
这里权值是通过数据训练得到,具体实现有待于进一步探究一下。
模型方面就是这样,提出了attention这一机制。其他工程细节方面,首先文章提出了Dice这一激活函数,如下图所示
论文笔记|Deep Interest Network for Click-Through Rate Prediction_第2张图片
其中左面为PReLU激活函数,具体为

右面为本文提出的Dice函数,具体为
论文笔记|Deep Interest Network for Click-Through Rate Prediction_第3张图片
Dice函数引入了输入数据的统计信息。第二,在计算正则项时,比如L2正则项,需要计算所有参数的范数,而本文提出的mini-batch aware regularization则是每次在一个mini batch中,仅使用对应特征不为0的参数进行正则项的计算并且更新参数。在CTR估计中,输入数据高维稀疏,且符合长尾分布,许多feature ID仅出现几次,十分容易过拟合。因此在本文中,提出了根据feature ID的频率更新参数,对于高频feature ID,其正则化程度相对较低。具体实现为
论文笔记|Deep Interest Network for Click-Through Rate Prediction_第4张图片
第三,本文采用了GAUC代替了AUC,具体如下

即在计算AUC时,不是将所有用户的正负样本在一起计算,而是对于每个用户单独计算自身的AUC,并根据其自身的行为数量(如点击)进行加权处理。
阿里的这篇文章第一遍读来仍有大量地方不是很懂,这里暂且记一下笔记,待详细学习后再做补充。


对于AUC部分,又看了一些资料,做一下补充。
对于LR分类器,输出结果为该样本为正例的概率值p(0 M M M个正例, N N N个负例,则共有 M × N M \times N M×N个正负例对,其中正例概率值大于负例概率值的概率即AUC。
而在推荐排序中,由于具有很强的个性化特点,每个用户的表现各不相同,可能存在点击特别高的用户,因此直接拿AUC衡量并不准确,所以GAUC对每个用户分别计算AUC,然后根据每个人的点击量进行加权求和作为整个模型的AUC。

你可能感兴趣的:(论文笔记|Deep Interest Network for Click-Through Rate Prediction)