DIN论文精读

论文地址:https://arxiv.org/pdf/1706.06978.pdf

摘要

     点击率预测时工业应用中一项重要的任务,比如在线公告。最近,基于深度学习的模型被提出,类似一个Embedding&MLP的模型。在这些模型中,大规模的稀疏特征首先被映射成低维的特征向量,然后以组式的转换成固定长度的向量,最后连着一起输入到多层感知机学习特征之间的非线性关系。这种方法,用户特征被压缩成固定长度的表示向量,而忽略了候选广告是什么。这个固定长度的表示向量成了应用瓶颈,给Embedding&MLP模型从丰富的历史行为中有效学习用户多样化兴趣带来了困难。本文,我们提出了一个新颖的模型:深度兴趣网络,通过设计一个局部激活单元,去适应学习用户兴趣表示,从带有某些特征广告的用户历史行为中。这个向量表示会随着不同的广告而变化,大大提高了模型的表示能力。除此之外,我们开发了两个技术:小批量感知正则化和数据自适应激活函数,帮助模型训练数亿级参数的工业级深度网络。在两个公开数据集以及阿里巴巴超过20亿样本的真实生产数据集上实验,结果表明提出模型的有效性,和对照模型相比获得了最优的效果。DIN模型已经成功部署到阿里巴巴的在线展示广告系统中,服务主要流量。

现存问题以及传统模型存在的问题

     本文主要想解决现存问题:用户特征被压缩成固定长度的表示向量,而忽略了候选广告是什么。这个固定长度的表示向量成了应用瓶颈,给Embedding&MLP模型从丰富的历史行为中有效学习用户多样化兴趣带来了困难
     传统模型大致都是Embedding&MLP模式的深度网络模型,包括Deep Crossing、Wide&Deep、PNN、DeepFM都是这类模式的结构。它们都忽略了Embedding层将稀疏输入转换成低维向量的用户兴趣问题。如公式: e i = p o o l i n g ( e i 1 , e i 2 , . . . , e i k ) e_i=pooling(e_{i_1},e_{i_2},...,e_{i_k}) ei=pooling(ei1,ei2,...,eik)将所有用户行为embedding同一池化处理,见下文图中左边的Base Model。

本文模型

DIN论文精读_第1张图片
     DIN模型也是沿用Embedding&MLP的模式结构。在此基础上引入了一个local activation unit,如下图。模型特征表示使用的group-wise进行特征表示,并且不对特征进行组合,而是通过深度网络进行特征交互的学习。将高维的特征向量转换成低维向量,concat之后经过pooling层,再进行MLP层训练。MLP层是一个全连接神经网络,损失函数: 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))), \quad\quad(公式2) L=N1(x,y)S(ylogp(x)+(1y)log(1p(x))),(公式2)其中 S S S是样本数为 N N N的训练集, x x x表示网络输入向量, y ∈ ( 0 , 1 ) y \in (0,1) y(0,1)是标签。 p ( x ) p(x) p(x)表示网络经过softmax函数之后的输出,表示样本 x x x被点击的概率。
     本文的背景条件是,用户的历史行为对建模用户兴趣是非常重要的信息。所以,本文在用户行为特征池化之前过一个DIN单元。DIN网络是一个种局部attention,它是将用户的兴趣和最近点击的内容关联起来。下面是论文原文。

Imagine when the young mother mentioned above in section 3 visits the e-commerce site, she finds the displayed new handbag cute and clicks it. Let’s dissect the driving force of click action. The displayed ad hits the related interests of this young mother by soft-searching her historical be- haviors and finding that she had browsed similar goods of tote bag and leather handbag recently. In other words, behaviors related to displayed ad greatly contribute to the click action. DIN simulates this process by paying attention to the representation of locally activated interests w.r.t. given ad.

如上图中右边的结构,DIN将用户行为特征和candidate ad特征自适应计算出不同用户的兴趣向量: 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 , ( 公式 3 ) 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, \quad\quad(公式3) vU(A)=f(vA,e1,e2,...,eH)=j=1Ha(ej,vA)ej=j=1Hwjej,(公式3)其中 v U ( A ) v_U(A) vU(A)表示用户被给candidate ad A时的向量, e 1 , e 2 , . . . , e H {e_1,e_2,...,e_H} e1,e2,...,eH表示用户行为向量, v A v_A vA表示candidate ad A的向量。因此,用户兴趣向量就会随着candidate ads改变而改变。
注意:不同于传统的attention, ∑ i w i = 1 \sum_iw_i=1 iwi=1在公式3中不做限制,主要是为了保留用户兴趣的强度。
     本文除了上述模型的创新,在模型训练方面也介绍两种对大规模数据模型训练的方法:小批量感知正则化(Mini-batch Aware Regularization)和数据自适应激活函数(Data Adaptive Activation Function)。

      Mini-Batch Aware Regularization:工业级数据量中,传统的批量正则化(如L2-norm)会计算每个小批量中的所有特征参数,导致计算量急剧增大。而Mini-Batch Aware Regularization仅仅只计算小批量中的稀疏特征的参数。实际上,对于CTR网络,embedding字典贡献了大部分的参数量,提升了计算的困难。我们用 W ∈ R D × K W \in \mathbb{R}^{D\times K} WRD×K表示所有embedding字典的参数, D D D表示向量的维度, K K K表示特征空间,全样本的L2正则化计算如下: L 2 ( W ) = ∣ ∣ W ∣ ∣ 2 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^2=\sum_{j=1}^K||w_j||_2^2=\sum_{x,y\in S}\sum_{j=1}^K\frac{I(x_j \not = 0)}{n_j}||w_j||_2^2, \quad\quad(公式4) L2(W)=∣∣W22=j=1K∣∣wj22=x,ySj=1KnjI(xj=0)∣∣wj22,(公式4)其中 w j ∈ R D w_j \in \mathbb{R}^{D} wjRD表示第 j j j个向量, I ( x j ≠ 0 ) I(x_j \not = 0) I(xj=0)表示实例 x x x有特征 j j j n j n_j nj表示特征 j j j在全样本出现的次数。我们可以将公式4等价为 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 B_m}\frac{I(x_j \not = 0)}{n_j}||w_j||_2^2, \quad\quad(公式5) L2(W)=j=1Km=1Bx,yBmnjI(xj=0)∣∣wj22,(公式5)其中 B B B表示小批量的数量, B m B_m Bm表示第m个小批量,假设 α m j = m a x ( x , y ) ∈ B m I ( x j ≠ 0 ) \alpha_{mj}=max_{(x,y) \in B_m}I(x_j \not = 0) αmj=max(x,y)BmI(xj=0)表示小批量 B m B_m Bm中至少有一个实例 x x x有特征 j 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, \quad\quad(公式6) L2(W)j=1Km=1Bnjαmj∣∣wj22,(公式6)根据公式6我们可以推导出第 m m m个小批量的特征j的embedding权重 w j ← w j − η [ 1 ∣ B m ∣ ∑ x , y ∈ B m ∂ L ( p ( x ) , y ) ∂ w j + λ α m j n j w j ] w_j \gets w_j - \eta \bigg\lbrack \frac{1}{|B_m|}\sum_{x,y\in B_m}\frac{\partial L(p(x),y)}{\partial w_j}+\lambda\frac{\alpha_{mj}}{n_j}w_j\bigg\rbrack wjwjη[Bm1x,yBmwjL(p(x),y)+λnjαmjwj]因此,模型批量训练时就只需要计算出现过的特征。
     Data Adaptive Activation Function:该激活函数是基于PReLU改进的,PReLU函数为: f ( s ) = { s if  s > 0 α s if  s ≤ 0 = p ( s ) ⋅ s + ( 1 − p ( s ) ) ⋅ α s , p ( s ) = I ( s > 0 ) f(s)=\begin{cases} s &\text{if } s>0 \\ \alpha s &\text{if } s \le 0 \end{cases}=p(s)·s+(1-p(s)) ·\alpha s,\quad p(s)=I(s>0) f(s)={sαsif s>0if s0=p(s)s+(1p(s))αs,p(s)=I(s>0)如下图所示DIN论文精读_第2张图片
PReLU激活函数的控制函数 I ( s > 0 ) I(s>0) I(s>0)当值为0时就很难调整,这不适合每层有不同分布的输入。考虑到这一点,设计了Data Adaptive Activation Function,具体公式如下: f ( x ) = p ( s ) ⋅ s + ( 1 − p ( s ) ) ⋅ α s , p ( s ) = 1 1 + e − s − E [ s ] V a r [ s ] + ϵ f(x)=p(s)·s+(1-p(s)) ·\alpha s, \quad p(s)=\frac{1}{1+e^{-\frac{s-E[s]}{\sqrt Var[s]+\epsilon}}} f(x)=p(s)s+(1p(s))αs,p(s)=1+eV ar[s]+ϵsE[s]1如上图右边所示,控制函数变得更加平滑了。

实验效果

     文章对比了比较主流的模型,并取得了最优的效果。
DIN论文精读_第3张图片

总结

     本文主要解决的问题是ctr预测中用户兴趣往往和用户的历史行为多样化高度相关,而传统模型对于用户历史行为的学习进行了统一处理,没有区分用户行为中多样化,因此提出了DIN模型,在用户历史行为学习中加入候选item对用户兴趣进行多样化学习。除此之外,开发了两个训练技术,Mini-Batch Aware Regularization和Data Adaptive Activation Function。

你可能感兴趣的:(人工智能,深度学习,算法,din,推荐)