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

这篇文章是阿里18年发的,非常经典的一个模型。paper链接

摘要

点击率预测是在线广告等工业应用中的一项基本任务。 最近,已经提出了基于深度学习的模型,该模型遵循类似的Embedding&MLP范例。在这些方法中,首先将大规模稀疏输入特征映射到低维嵌入向量,然后以逐组方式转换为固定长度向量,最后将它们连接在一起以馈入多层感知器(MLP)以学习非线性功能之间的关系。这样,无论候选广告是什么,用户特征都被压缩为固定长度的表示向量。固定长度向量的使用将成为瓶颈,这将使Embedding&MLP方法难以从丰富的历史行为中有效捕获用户的各种兴趣。在本文中,我们提出了一个新颖的模型:深度兴趣网络(DIN),它通过设计一个本地激活单元来适应性地学习用户兴趣的表示,从历史行为到某个广告,来解决这一挑战。该表示向量在不同广告上有所不同,极大地提高了模型的表达能力。此外,我们开发了两种技术:知道小批量的规则化和数据自适应激活功能,可以帮助训练具有数亿个参数的工业深度网络。在两个公开数据集以及一个拥有超过20亿个样本的阿里巴巴实际生产数据集上的实验证明了所提出方法的有效性,与最先进的方法相比,它们具有更高的性能。现在,DIN已成功部署在阿里巴巴的在线展示广告系统中,为主要业务量服务。

中间引言和背景介绍略过,有兴趣的同学可以自己阅读看看

4、深度兴趣网络

与主动搜索不同,用户进入展示广告系统时没有明确表达其意图。 建立CTR预测模型时,需要有效的方法来从丰富的历史行为中提取用户兴趣。 描绘用户和广告的功能是广告系统点击率建模的基本元素。 合理利用这些功能并从中挖掘信息至关重要

4.1 特征表示

在工业级CTR预估任务中,数据通常是多组类目形式的,例如 [ weekday=Friday, gender=Female, visited_cate_ids={Bag,Book}, ad_cate_id=Book ] ,通常会转为高维稀疏的0-1二值特征。数学上,编码第 i i 个特征组为向量 t i R K i \mathrm{t}_i\in\mathrm{R}^{K_i} K i K_i 代表这个特征向量的维度,也表示这个特征群组里有 K i K_i 个唯一的 id。 t i [ j ] \mathrm{t}_i[j] 表示 t \mathrm{t} 的第 j j 个元素, t i [ j ] { 0 , 1 } t_{i}[j]\in\{0,1\} j = 1 K i t i [ j ] = k \sum_{j=1}^{K_i}\mathrm{t}_{i}[j]=k ,如果 k k =1,则 t i \mathrm{t_i} 是one-hot,否则是multi-hot,于是每个样本就可以表示为 x = [ t 1 T , t 2 T , . . . , t M T ] T \mathrm{x}=[t_{1}^{T},t_{2}^{T},...,t_{M}^{T}]^{T} M M 表示特征组数, i = 1 M K i = K \sum_{i=1}^{M}K_i=K K K 是整个向量空间的维度,因此,以四个特征组的样本为例,

在这里插入图片描述

特征
上图是本文所用的全部类型特征。

4.2 base 模型(Embedding & MLP)

当前比较流行的深度模型[1, 2, 3] 都会分享一个类似的 Embedding&MLP 的例子,就像我们本文用到的 base 模型,如下图所示,主要包含几个部分。
base model
Embedding Layer
输入是高维的二值向量,通过embedding 层转为低维的稠密向量,对于 t i t_i 的第 i i 个特征组,令 W i = [ w 1 i , . . . , w j i , . . . , w K i i ] R D K i W^{i}=[w_1^{i},...,w_{j}^{i},...,w_{K_i}^{i}]\in\mathrm{R}^{D*K_i} 表示第 i i 个表征字典,其中 w j i R D w_{j}^{i}\in\mathrm{R}^{D} 是一个D维的表征向量,表征操作遵循查表机制。

  • 如果 t i t_{i} 是 one-hot 向量且第 j j 个元素 t i [ j ] = 1 t_{i}[j]=1 ,那么 t i t_i 的表征是单表征向量 e i = w i j e_i=w_{i}^{j}
  • 如果 t i t_{i} 是 multi-hot 向量,其中 t i [ j ] = 1 t_{i}[j]=1 对于 j { i 1 , i 2 , . . . , i k } j\in\{i_1,i_2,...,i_k\} ,则 t i t_i 的表征是一系列表征向量 { e i 1 , e i 2 , . . . , e i k } = { w i 1 i , w i 2 i , . . . , w i k i } \{e_{i_1}, e_{i_2},...,e_{i_k}\}=\{w_{i_1}^{i}, w_{i_2}^{i},...,w_{i_k}^{i}\}

Pooling layer and Concat layer
注意点不用的用户会有不同数量的行为,因此,multi-hot 行为特征向量 t i t_i 的非零值的数量会因实例而异,从而导致相应的嵌入向量列表的长度可变,而全连接网络只能接受固定长度的向量,因此,需要添加一个池化层来获取固定长度向量:
e i = p o o l i n g ( e i 1 , e i 2 , . . . , e i k ) (1) \mathbb{e_i}=\mathrm{pooling}(e_{i_1},e_{i_2},...,e_{i_k})\tag{1} 这里最常用的两个pooling 是max pooling 和average pooling。embedding层和池化层均以逐组方式进行操作,将原始的稀疏特征映射到多个固定长度的表示向量中。 然后将所有向量连接在一起以获得该实例的整体表示向量。

MLP
给定拼接后的稠密向量,全连接层将自动学习这些组合特征,近期[3,4] 为了更好地抽取特征,重点设计了MLP的结构。

Loss
base 模型里的目标函数是负对数似然函数: L = 1 N ( x , y ) S ( y log p ( x ) + ( 1 y ) log ( 1 p ( x ) ) ) (2) L=-\frac{1}{N}\sum_{(x,y)\in S}(y\log p(x)+(1-y)\log(1-p(x)))\tag{2} 其中 S S 是大小为 N N 的训练集, x x 是输入, y { 0 , 1 } y\{0,1\} 是标签, p ( x ) p(x) 是经过 softmax 层之后整个网络的输出,代表被点击的概率。

扫描二维码关注公众号,回复: 9928087 查看本文章

4.3 深度兴趣网络结构

DIN 模型架构
在表1的所有特征里,用户行为特征是非常重要的,在电子商务场景的建模中发挥了核心的作用。
base模型通过对用户行为特征组里的特征的表征向量做池化,得到了固定长度的用户兴趣表征向量,对于给定的一个用户,不管广告位展示什么,表征向量都是固定不变的,这样的话,有限维度的表征将会成为表达用户兴趣多样性的一个瓶颈,为了有更好的包容性,就得增加向量维度,但是这样导致参数成倍增加,对于有限的训练数据集来说会导致过拟合,并且增加额外的存储和计算消耗,对于一个工业级的线上系统是无法容忍的。

在有限维度表征下是否有更好的表达用户兴趣多样性的方法?用户兴趣的局部激活特性给我们带来启发,设计了一个新的模型称为深度兴趣网络。想象一下,当上面第3节中提到的年轻母亲访问电子商务站点时,她发现显示的新手袋很可爱,然后单击它。 让我们来分析一下点击动作的驱动力。 展示的广告通过软搜索她的历史行为并发现她最近浏览过类似的手提袋和皮革手提袋商品,从而引起了这位年轻母亲的相关兴趣。换句话说,与展示广告相关的行为极大地影响了点击操作。 DIN通过关注局部激活兴趣的表征来模拟此过程。关于给定的广告, DIN不会通过使用相同的向量来表达所有用户的不同兴趣,而是通过考虑历史行为的相关性来自适应地计算用户兴趣的表征向量。 对于候选广告,此表征向量随不同广告而变化。
DIN引入了一个新的局部激活单元,同时保留了其余和base model相同的结构。特别地,激活单元应用在用户的行为特征上,在给定候选广告 A 的前提下通过加权求和池化来自适应地计算用户的表征 ν U \nu_{U} ν U ( A ) = f ( ν A , e 1 , e 2 , . . . , e H ) = j = 1 H a ( e j , ν A ) e j = j = 1 H w j e j (3) \nu_{U}(A)=f(\nu_A,e_1,e_2,...,e_H)=\sum_{j=1}^{H}a(e_j,\nu_A)e_j=\sum_{j=1}^{H}w_je_j\tag{3} 其中 { e 1 , e 2 , . . . , e H } \{e_1,e_2,...,e_H\} 是用户 U U 的长度为 H H 的行为表征向量, ν U ( A ) \nu_{U}(A) 随着广告位不同而变化, a ( . ) a(.) 是传入前向网络,输出激活权重。
在这里插入图片描述
如上图所示,输入 user embedding 和 ad embedding,两个向量做外积后得到新的向量,再和各自的embedding 拼接成一个大向量经过 mlp + PReLU/Dice 激活层后得到一个32维的向量,再经过一个线性变换得到输出的激活权重。

局部激活单元和参考资料[1] 中发展的attention 方法类似,但对约束 i = 1 w i = 1 \sum_{i=1}w_i=1 放宽了,旨在保留用户兴趣的强度,也就是说,放弃了在 a ( . ) a(.) 输出上使用 softmax 进行归一化,相反, i = 1 w i \sum_{i=1}w_i 被认为是某种程度上对用户兴趣强度的近似。例如,某个用户历史行为里有90%是关于衣服的,10%是关于电子产品的,给定手机和T恤的两个备选广告,T恤激活了绝大部分属于衣服的历史行为,并且能比手机获得更大的 ν U \nu_U 值,传统的注意力方法是通过归一化 a ( . ) a(.) 的输出而失去 ν U \nu_U 数值尺度上的分辨率。

我们尝试了LSTM以顺序方式对用户历史行为数据进行建模。 但这并没有改善。 与NLP任务中受语法约束的文本不同,用户历史行为的序列可能包含多个并发兴趣。 这些兴趣的快速跳跃和突然结束导致用户行为的顺序数据似乎很嘈杂。 一个可能的方向是设计特殊的结构,以便按顺序对这些数据进行建模。 我们将其留待将来研究。

5、训练技巧

在阿里巴巴的广告系统中,商品和用户数量达到了数亿。 实际上,训练具有大规模稀疏输入特征的工业深度网络是巨大的挑战。 在本节中,我们介绍了两种重要的技术,它们在实践中被证明是有帮助的。

5.1 小批量感知正则化

过拟合问题是训练工业级网络的巨大挑战,例如,添加细粒度特征,像具有6亿维的商品ID的特征,模型没有进行正则化在训练的第一个epoch之后,性能迅速下降,如图4所示的深绿色线
在这里插入图片描述
在训练极其稀疏的输入和拥有亿级参数的网络时,直接使用L1或者L2正则是不合理的,以l2正则化为例。 在基于SGD的优化方法的情况下,仅需要更新每个小批处理中出现的非零稀疏特征的参数,而无需进行正则化。但是,当添加了L2正则化后,对于每个小批量数据,需要计算全部参数的L2范数,这需要极大的计算量,当参数规模到亿级别之后是不可行的。

在本文中,我们介绍了一种有效的 mini-batch 感知正则化器,它仅针对每个 mini-batch 处理中出现的稀疏特征的参数计算L2范数,从而使计算成为可能,实际上,正是表征字典为CTR网络贡献了大部分参数,并且增加了繁重的计算难度。令 W R D K W\in \mathrm{R}^{D*K} 表示表征字典的参数, D D 是表征向量空间维度, K K 是特征向量维度,对于所有样本,作用于 W W l 2 l_2 范数: L 2 ( W ) = W 2 = j = 1 K w j 2 2 = ( x , y ) S j = 1 K I ( x j 0 ) n j w j 2 2 (4) L_2(W)=||W||_2=\sum_{j=1}^{K}||w_j||_{2}^2=\sum_{(x,y)\in S}\sum_{j=1}^{K}\frac{I(x_j\neq 0)}{n_j}||w_j||_2^{2}\tag{4} 其中 w j R D w_j\in R^{D} 是第 j j 个表征向量, I ( x j 0 ) I(x_j\neq 0) 表示样本 x x 有第 j j 个特征 id, n j n_j 表示特征 j j 在所有样本中出现的次数。预算公式(4) 在mini-batch 模式下可以转为公式 (5)
L 2 ( W ) = j = 1 K m = 1 B ( x , y ) B m I ( x j 0 ) n j w j 2 2 (5) L_2(W)=\sum_{j=1}^{K}\sum_{m=1}^{B}\sum_{(x,y)\in\mathcal{B}_m}\frac{I(x_j\neq 0)}{n_j}||w_j||_2^{2}\tag{5} 其中 B B 代表mini-batch的数量, B m \mathcal{B}_m 代表第 m m 个mini-batch,令 α m j = max ( x , y ) B m I ( x 0 ) \alpha_{mj}=\max_{(x,y)\in\mathcal{B}_m}I(x\neq 0) 表示在 mini-batch B m \mathcal{B}_m 里,至少有一个样本有特征 j j ,那么(5) 式可以近似为 L 2 ( W ) j = 1 K m = 1 B α m j n j w j 2 2 (6) L_2(W)\approx\sum_{j=1}^{K}\sum_{m=1}^{B}\frac{\alpha_{mj}}{n_j}||w_j||_2^{2}\tag{6}
通过这种方式,我们得到了 l 2 \mathcal{l}_2 正则的mini-batch 近似版本,对第 m m 个mini-batch,特征 j j 的表征权重的梯度满足 w j w j η [ 1 B m ( x , y ) B m L ( p ( x ) , y ) w j + λ α m j n j w j ] , (7) w_j\leftarrow w_j-\eta \Big [ \frac{1}{|\mathcal{B}_m|}\sum_{(x,y)\in \mathcal{B}_m}\frac{\partial L(p(x),y)}{\partial w_j}+\lambda \frac{\alpha_{mj}}{n_j}w_j\Big ],\tag{7} 只有在 mini-batch 里出现的特征的参数才会参与计算正则化。

5.2 数据自适应激活函数

PReLU是一个非常常见的激活函数 f ( x ) = { s , if s  >  0 α s , if s   0 = p ( s ) s + ( 1 p ( s ) ) α s (8) f(x)=\begin{cases} s , &\text{if s $\gt$ 0} \\ \alpha s, &\text{if s $\leq$ 0} \end{cases} =p(s)\cdot s + (1-p(s))\cdot \alpha s\tag{8} 其中 s s 是输入的激活函数 f ( . ) f(.) 的一个维度。 p ( s ) = I ( s > 0 ) p(s)=I(s>0) 是示性函数, α \alpha 是学习参数。
在这里插入图片描述
可以看到PReLU激活函数在0点有一个跳跃,是不连续的,当每一层的输入是属于不同分布的时候这种情况就不太合理,因此我们设计了一个新的激活函数 Dice f ( s ) = p ( s ) s + ( 1 p ( s ) ) α s , f ( s ) = 1 1 + e s E [ s ] V a r [ s ] + ϵ (9) f(s)=p(s)\cdot s+(1-p(s))\cdot\alpha s, f(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt{Var[s]+\epsilon}}}}\tag{9} 在训练阶段, E [ s ] , V a r [ s ] E[s],Var[s] 是每个输入mini-batch 的均值和方差,在测试阶段, E [ s ] , V a r [ s ] E[s],Var[s] 通过计算数据的移动平均 E [ s ] , V a r [ s ] E[s],Var[s] 得到。 ϵ \epsilon 是一个小的常量,通常设置为 1e-8
Dice 可以看做是PReLU的泛化版。 Dice的关键思想是根据输入数据的分布来自适应地调整纠正点,其值设置为输入的平均值。 此外,Dice控制流畅,可在两个通道之间切换。 当 E [ s ] E[s] = 0且 V a r [ s ] Var[s] = 0时,Dice 退化为PReLU

参考文献:
1、Paul Covington, Jay Adams, and Emre Sargin. 2016. Deep neural networks for youtube recommendations. In Proceedings of the 10th ACM Conference on Recommender Systems. ACM, 191–198.
2、Cheng H. et al. 2016. Wide & deep learning for recommender systems. In Pro- ceedings of the 1st Workshop on Deep Learning for Recommender Systems. ACM.
3、Ying Shan, T Ryan Hoens, Jian Jiao, Haijing Wang, Dong Yu, and JC Mao. Deep
Crossing: Web-scale modeling without manually crafted combinatorial features.
4、Qu Y. et al. 2016. Product-Based Neural Networks for User Response Prediction. In Proceedings of the 16th International Conference on Data Mining.

发布了114 篇原创文章 · 获赞 55 · 访问量 8万+

猜你喜欢

转载自blog.csdn.net/zuolixiangfisher/article/details/104697189