第二篇论文笔记
AAAI2019 Deep Interest Evolution Network for Click-Through Rate Prediction
代码
点击率(click_through rate CTR)预测的目标是估计用户点击该项目的概率,已经成为广告系统中的核心任务之一。
对于CTR预测模型,有必要捕获用户行为数据背后的潜在用户兴趣。此外,考虑到外部环境和内部认知的变化,用户兴趣会随着时间的推移而动态变化。兴趣建模有几种CTR预测方法,但大多数都直接将行为表示为兴趣,缺乏针对具体行为背后潜在兴趣进行建模。除此之外,很少有工作考虑到兴趣的变化趋势。在这篇文章中,我们提出了一种新的模型,名为深度兴趣演化网络(DIEN)用于CTR预测。具体来说,我们设计兴趣提取器层以从历史行为序列中捕获时间兴趣。在这一层,我们引入辅助损失来监督每一步的兴趣提取。由于用户兴趣多种多样,特别是在电子商务系统中,我们提出了兴趣发展层来捕捉与目标项相关的兴趣演变过程。在兴趣演化层中,注意力机制被新颖地嵌入到序列结构中,并且在兴趣进化过程中相对兴趣的影响得到加强。在公共和工业数据集的实验中,DIEN明显优于最先进的解决方案。值得注意的是,DIEN已经部署在淘宝的显示广告系统中,并且点击率提高了20.7%。
单次点击费用(cost per click,CPC)结算是广告系统中最常见的结算表单之一,即广告客户对其广告上的每次点击收费。 在CPC广告系统中,点击率(CTR)预测的性能不仅会影响整个平台的最终收入,还会影响用户体验和满意度。 CTR预测模型已经越来越受到学术界和工业界的关注。
在大多数非搜索电子商务场景中,用户不主动表达他们当前的意图。设计模型以捕获用户的兴趣及其动态是提高CTR预测性能的关键。最近,许多CTR模型从传统方法论转变为深度CTR模型。大多数深度CTR模型专注于捕获来自不同领域的特征之间的交互,并且较少关注用户兴趣表示。
深度兴趣网络(DIN)强调用户兴趣是多样的,它使用基于注意力模型来捕获目标项目的相对兴趣,并获得适应性兴趣表示。然而,包括DIN在内的大多数兴趣模型都直接将行为视为兴趣,而潜在兴趣很难通过显性行为得到充分反映。以前的方法可以挖掘出行为背后真正的用户兴趣。此外,用户兴趣不断发展,捕获兴趣的动态对于兴趣表示很重要。
基于所有这些观察,我们提出深度兴趣演化网络(DIEN)来改善CTR预测性能。 DIEN中有两个关键模块,一个用于从显式用户行为中提取潜在的时间兴趣,另一个用于建模兴趣发展过程。适当的兴趣表示是兴趣演化模型的基石。在兴趣提取层,DIEN选择GRU来模拟行为之间的依赖关系。遵循兴趣直接导致连续行为的原则,我们提出辅助损失,它使用下一行为来监督当前隐藏状态的学习。我们将这些隐藏的状态称为兴趣状态。这些额外的监督信息有助于捕获兴趣表示的更多语义含义,并推动GRU的隐藏状态以有效地表示兴趣。此外,用户兴趣是多样的,这导致兴趣漂移现象:用户的意图在相邻访问中可能非常不同,并且用户的一种行为可能取决于很久以前的行为。每个兴趣都有自己的进化轨迹。同时,一个用户对不同目标项的点击动作受到不同兴趣部分的影响。在兴趣进化层,我们模拟相对于目标项目的兴趣进化轨迹。基于从兴趣提取器层获得的兴趣序列,我们设计具有注意力更新门(AUGRU)的GRU。
利用兴趣状态和目标项来计算相关性,AUGRU加强了相对兴趣对兴趣演变的影响,同时削弱了兴趣漂移导致的无关兴趣效应。通过将注意力机制引入更新门,AUGRU可以为不同的目标项目带来特定的兴趣发展过程。 DIEN的主要贡献如下:
凭借深度学习特征表示和组合的强大能力,最近的CTR模型从传统的线性或非线性模型转变为深层模型。大多数深层模型遵循嵌入和多层感知机(MLP)结构。基于这种基本结构,越来越多的模型关注特征之间的相互作用:Wide & Deep
和deep FM
结合低阶和高阶特征来改进表达能力; PNN提出了一个乘积层(product layer)来捕捉场间类别之间的交互模式。但是,这些方法无法清楚地反映数据背后的兴趣。 DIN引入了关注激活目标对象的历史行为机制,并成功地捕捉了用户兴趣的多样性特征。但是,DIN在捕获序列行为之间的依赖关系方面很弱。
许多应用程序可以随时记录用户项交互。最近的一些研究表明,这些信息可用于构建更丰富的个人用户模型并发现其它行为模式。在推荐系统中,TDSSM同优化长期和短期用户兴趣,以提高推荐质量; DREAM使用递归神经网络(RNN)的结构来研究每个用户的动态表示和项目购买历史的全局序列行为。他和McAuley建立了视觉感知推荐系统,该系统使产品更贴近用户和社区不断变化的兴趣。(zhang et al. 2014)根据用户的兴趣顺序测量用户的相似性,并提高协同过滤推荐的性能。(Parsana et al. 2018)通过使用大规模事件嵌入和重复网络的注意力输出来改进原生广告CTR预测。 ATRank(Zhou et al. 2018a)使用基于注意力的序列框架来模拟异构行为。与序列无关的方法相比,这些方法可以显着提高预测准确性。
然而,这些基于传统RNN的模型存在一些问题。
一方面,大多数人将序列结构的隐藏状态直接视为潜在利益,而这些隐藏状态缺乏对利益表征的特殊监督。
另一方面,大多数现有的基于RNN的模型连续且同等地处理相邻行为之间的所有依赖关系。
众所周知,并非所有用户的行为都严格依赖于每个相邻的行为。 每个用户都有不同的兴趣,每个兴趣都有自己不断发展的轨迹。 对于任何目标项目,这些模型只能获得一个固定兴趣进化轨迹,因此这些模型可能会受到兴趣漂移的干扰。
为了有效地推动序列结构的隐藏状态来代表潜在兴趣,应该引入对隐藏状态的额外监督。 DARNN(Ren et al.2018)使用点击级序列预测,该预测模拟每次向用户显示每个广告时的点击操作。 除了点击动作,还可以进一步引入排名信息。 在推荐系统中,排名损失已被广泛用于排名任务。 与这些排名损失类似,我们提出了兴趣学习的辅助损失。 在每个步骤中,辅助损失使用针对未点击项目的连续点击项目来监督兴趣表示的学习。
为了捕捉与目标项目相关的兴趣发展过程,我们需要更灵活的序列学习结构。 在问答(QA)领域,DMN+ 使用基于注意力的GRU(AGRU)来推动注意力机制对输入内容的位置和排序信息敏感。 在AGRU中,更新门的向量简单地由注意力得分的标量代替。 此替换检测更新门的所有维度之间的差异,其中包含从先前序列传输的丰富信息。 受QA中这种新颖序列结构的启发,我们提出GRU结合注意门(AUGRU),在兴趣发展过程中激活相对兴趣。 与AGRU不同,AUGRU中的注意力得分取决于从更新门计算的信息。 更新门和注意力得分的组合推动了更具体和敏感地发展的过程。
本节详细介绍深度兴趣进化网络(DIEN)。
首先回顾了名为BaseModel的基本Deep CTR模型。
然后展示了DIEN的整体结构,并介绍了用于捕捉兴趣和建模兴趣演化过程的技术。
从特征表示,模型结构和损失函数方面介绍
在线展示系统中,使用四类特征:用户资料,用户行为,广告和上下文。
值得注意的是,广告也是一个item。本文将广告称为本文中的目标item。每个类别的特征都有几个字段,用户配置文件字段是性别,年龄等;用户行为字段是用户访问的商品ID列表;广告字段是广告ID,商店ID等;上下文字段是时间等等。每个字段的特征可以编码成一个独热矢量(one-hot vector),例如,用户信息的类别中的女性特征被编码为[0,1]。连接用户信息,用户行为,广告和上下文的不同字段的分别为独热矢量Xp,Xb,Xa,Xc
。在顺序CTR模型中,值得注意的是每个领域包含一个行为列表,每个行为对应一个独热矢量,表示为 X b = [ b 1 ; b 2 ; . . . ; b T ] ϵ R K ∗ T X_b = [b_1;b_2;...;b_T] \epsilon R^{K*T} Xb=[b1;b2;...;bT]ϵRK∗T b t ϵ { 0 , 1 } b_t \epsilon\{0,1\} btϵ{0,1}
其中 b t b_t bt被编码为独热矢量并表示第t个行为,T是用户的历史行为数量,K是用户可以点击的商品总数。
大多数深度CTR模型都建立在embedding&MLR的基本结构上。 基本结构由几部分组成:
多层感知机(MLP,Multilayer Perceptron)也叫人工神经网络(ANN,Artificial Neural Network),除了输入输出层,它中间可以有多个隐层,最简单的MLP只含一个隐层,即三层的结构,多层感知机层与层之间是全连接的(全连接的意思就是:上一层的任何一个神经元与下一层的所有神经元都有连接)。多层感知机最底层是输入层,中间是隐藏层,最后是输出层。
在深度CTR模型中,广泛使用的损失函数是负对数的似然函数,它使用目标项的标签来监督整体预测:
其中, X = [ x p , x a , x c , x b ] ϵ D X = [x_p,x_a,x_c,x_b] \epsilon D X=[xp,xa,xc,xb]ϵD D
是大小为N
的训练集 y ϵ { 0 , 1 } y\epsilon\{0,1\} yϵ{0,1}表示用户是否单击了目标项。p(x)
是网络的输出,它是预测用户点击目标项的概率。
与赞助搜索不同,在许多电子商务平台(如在线显示的广告)中,用户并未明确表达其意图,因此捕获用户兴趣及其动态对于CTR预测
非常重要。
DIEN
致力于捕捉用户兴趣并模拟兴趣发展过程。
如下所示,DIEN由以下几个部分组成:
首先,通过嵌入层转换所有类别的特征。
接下来,DIEN采取两个步骤来捕捉兴趣发展:
兴趣提取器层(Interest Evolving Layer)基于用户行为序列提取兴趣序列;
兴趣发展层(Interest Extractor Layer)得到与目标项目相关的兴趣发展过程。
然后连接 广告,用户信息,上下文的 最终兴趣表达和嵌入向量。
将连接的载体送入MLP进行最终预测。
在本节的剩余部分,我们将详细介绍DIEN的两个核心模块。
图:DIEN的结构。
在行为层,行为按时间排序,嵌入层将独热编码表示b[t]转换为嵌入向量e[t] 。
然后,兴趣提取器层在辅助损失的帮助下提取每个兴趣状态h[t] 。
在兴趣发展层,AUGRU模拟与目标项相关的兴趣发展过程。
最终兴趣状态h′[T] 以及连接剩余特征的嵌入向量被连接,并且被馈送到MLR以用于最终CTR预测
在电子商务系统中,用户行为是潜在兴趣的载体,在用户采取一种行为后,兴趣会发生变化。 在兴趣提取器层,我们从用户顺序行为中提取一系列兴趣状态。
电子商务系统中用户的点击行为丰富,其中历史行为序列的长度即使在短时间内也很长,比如在两周内。
为了实现效率和性能之间的平衡,我们采用GRU来模拟行为之间的依赖关系,其中GRU的输入是按其发生时间排序的行为。 GRU克服了RNN梯度消失的问题,并且比LSTM更快,它适用于电子商务系统。 GRU的公式如下:
GRU(Gate Recurrent Unit)是循环神经网络(Recurrent Neural Network, RNN)的一种和LSTM(Long-Short Term Memory)一样,也是为了解决长期记忆和反向传播中的梯度等问题而提出来的。它的实验效果与LSTM相似,但是更易于计算.
其中 σ \sigma σ是sigmoid激活函数。∘是逐元素相乘, W u , W r , W h ϵ R n H ∗ n I W_u ,W_r,W_h \epsilon R^{n_H*n_I} Wu,Wr,WhϵRnH∗nI , U u , U r , U h ϵ n H ✖ n H U_u ,U_r,U_h \epsilon n_H ✖ n_H Uu,Ur,UhϵnH✖nH , n H n_H nH是隐藏层的大小, n I n_I nI 是输入层大小。 i t ⃗ \vec{i_t} it 是GRU的输入, i t ⃗ = e b [ t ] \vec{i_t} = e_b[t] it=eb[t]表示用户第t个行为, h t ⃗ \vec{h_t} ht是第t个隐藏状态。
然而,仅捕获行为之间依赖关系的隐藏状态 h t ⃗ \vec{h_t} ht并不能有效地代表兴趣。由于最终兴趣触发目标项目的点击行为, L t a r g e t L_target Ltarget中使用的标签仅包含监督最终兴趣预测的基本事实,而历史状态 h t ⃗ \vec{h_t} ht(t
存在N对行为嵌入序列 { e b i , e b i ^ } ϵ D B \{e_b^i,\hat{e_b^i}\} \epsilon D_B {ebi,ebi^}ϵDB, i ϵ 1 , 2 , . . . , N i\epsilon 1,2,...,N iϵ1,2,...,N,
其中 e b t ϵ R T ∗ n E e_b^t \epsilon R^{T*{n_E}} ebtϵRT∗nE表示点击的行为序列, e b i ^ ϵ R T ∗ n E \hat{e_b^i} \epsilon R^{T*{n_E}} ebi^ϵRT∗nE表示负样本序列。T是历史行为的数量, n E n_E nE是嵌入层的维数, e b i [ t ] ∈ g e^i_b[t]∈g ebi[t]∈g表示用户第i次点击的第t项嵌入向量,g是整个项目集合。 e b i ^ [ t ] ∈ g − e b i [ t ] \hat{e_b^i}[t]∈g-e^i_b[t] ebi^[t]∈g−ebi[t] 表示除了用户i在第t步点击的项目之外的样本的嵌入。辅助损失可以表述为:
其中
是sigmoid激活函数, h t i h_t^i hti表示用户i的第t个GRU隐藏状态。
我们在CTR模型中使用的全局损失函数为:
其中 α \alpha α是平衡兴趣表示和CTR预测的超参数。
在辅助损失的帮助下,每个隐藏状态 h t h_t ht表达足以表示用户进行行为 i t i_t it后的兴趣状态。
所有T个兴趣点 [ h 1 , h 2 , … … , h T ] [h_1 ,h_2,……,h_T] [h1,h2,……,hT]序列组成了兴趣演化层,可以模拟兴趣演化的兴趣序列。
总的来说,辅助损失的引入有几个优点:
从兴趣学习的角度来看,辅助损失的引入有助于GRU的每个隐藏状态表达兴趣。
对于GRU的优化,当GRU模拟长历史行为序列时,辅助损失降低了反向传播的难度。
此外,辅助损失为嵌入层的学习提供了更多的语义信息,从而产生更好的嵌入矩阵。
由于外部环境和内部认知的共同影响,不同类型的用户兴趣随着时间的推移而不断发展。 以兴趣是衣服为例,随着人口趋势和用户品味的变化,用户对衣服的偏好也在不断变化。 用户对衣服的兴趣的演变过程将直接决定候选衣服的CTR预测。 对不断演化的过程进行建模的优点如下:
值得注意的是,兴趣在发展过程中表现出两个特征:
在第一阶段,在辅助损失的帮助下,我们获得了兴趣序列的表达。 通过分析兴趣演变的特征,我们将注意力机制的局部激活功能和GRU的序列学习能力结合起来,模拟兴趣演化。 GRU每一步的局部激活可以增强相对兴趣的影响,减弱兴趣漂移的干扰,有助于建立与目标项相关的兴趣演化过程。
与公式(2-5)类似,我们用 i t ′ , h i ′ i'_t,h'_i it′,hi′ 表示兴趣演化模块中的输入和隐藏状态,其中第二个GRU的输入是兴趣提取层的相应兴趣状态: i t ′ = h t i'_t=h_t it′=ht。最后隐藏状态 h t ′ h'_t ht′代表最终兴趣状态。
我们在兴趣发展模块中使用的注意力模型可以表示为:
其中 e a e_a ea来自不同类别广告字段的嵌入向量的连接, W ϵ R n H ✖ n A W \epsilon R^{n_H ✖ n_A} WϵRnH✖nA , n H n_H nH是隐藏状态的维度。 n A n_A nA是广告的嵌入向量的维度。 注意力分数可以反映广告 e a e_a ea和输入 h t h_t ht之间的关系,并且强相对性会导致较大的注意力得分。
接下来,我们将介绍几种将注意力机制和GRU结合起来模拟兴趣进化过程的算法。
为了在兴趣进化过程中激活相对兴趣,我们提出了一种简单的方法,称为基于注意力模型输入的GRU(AIGRU)。 AIGRU使用注意力分数来影响兴趣进化层的输入。 如公式9所示:
其中 h t h_t ht是GRU在兴趣提取器层的第t个隐藏状态, i t ′ i'_t it′是第二个GRU的输入,用于兴趣演变,∗表示标量矢量乘积。 在AIGRU中,注意力得分可以降低较少相关兴趣的规模。 在理想情况下,较少相关兴趣的输入值可以减少到零。 但是,AIGRU工作得不是很好。 因为即使零输入也可以改变GRU的隐藏状态,因此较少的相关兴趣也会影响学习兴趣的发展。
在问答领域,首先提出了基于注意力的GRU(AGRU)。 通过来自注意力机制的嵌入信息修改GRU架构后,AGRU可以有效地提取复杂查询中的关键信息。 在问答系统的启发下,我们转移了AGRU的使用,从查询中提取关键信息,变成以捕捉兴趣演变过程中的相对兴趣。 详细地说,AGRU使用注意分数来代替GRU的更新门,并直接改变隐藏状态。形式上:
其中 h t ′ , h t − 1 ′ , h i ′ ^ h'_t,h'_{t-1},\hat{h'_i} ht′,ht−1′,hi′^是AGRU的的隐藏层状态。
在兴趣发展的场景中,AGRU利用注意力得分直接控制隐藏状态的更新。 AGRU在兴趣变化期间削弱了相关兴趣减少的影响。 将注意力嵌入GRU可以改善注意力机制的影响,并有助于AGRU克服AIGRU的缺陷。
虽然AGRU可以使用注意力分数直接控制隐藏状态的更新,但它使用标量(注意力分数 a t a_t at)来替换矢量(更新门 u t u_t ut),这忽略了不同维度之间的重要性差异。 我们提出GRU与注意更新门(AUGRU)无缝结合注意力机制和GRU:
其中 u t ′ u'_t ut′是AUGRU的原始更新门,
u t ′ ^ \hat{u'_t} ut′^是我们为AUGRU设计的注意更新门,
h t ′ , h t − 1 ′ , h t ′ ^ h'_t,h'_{t-1},\hat{h'_t} ht′,ht−1′,ht′^是AUGRU的隐藏状态。
在AUGRU中,我们保留更新门的原始尺寸信息,这决定了每个尺寸的重要性。 基于差异化信息,我们使用注意力得分 a t a_t at来扩展更新门的所有维度,这导致较少相关兴趣对隐藏状态的影响较小。 AUGRU可以更有效地避免兴趣漂移的干扰,并推动相对兴趣的顺利进化。
略过