DIN的缺点:
- DIN强调用户兴趣的多样性,使用基于注意力的模型捕获对目标项目的相对兴趣,并获得自适应的兴趣表示;在捕获顺序行为之间的依赖关系方面很弱。
- 包括DIN在内的大多兴趣模型将行为直接视为兴趣,但是潜在的行为很难通过显性行为得到充分体现。之前的方法忽略了挖掘行为背后真正的用户兴趣。
- 此外,用户兴趣是不断变化的,对于用户兴趣表示的研究应该考虑到用户兴趣随时间的动态演化这种变化趋势的重要性。
传统RNN方法的缺点:
- 大多直接将序列结构的隐性状态视为潜在兴趣,而这些隐性状态缺乏专门的兴趣代表监督。
- 大多模型连续且平等地处理相邻行为之间的所有依赖关系。但并不是所有的用户行为都严格依赖于每个相邻的行为。每个用户都有不同的兴趣爱好,每一种兴趣爱好都有自己的演变轨迹。对于任何一个目标项目,这些模型只能得到一个固定的兴趣演化轨迹,因此这些模型会受到兴趣漂移的干扰。
DIEN的贡献:
- 提出了一种新的网络结构来模拟兴趣演化过程。
- 与直接将行为作为兴趣不同,我们专门设计了兴趣提取层。
针对GRU的隐藏状态对兴趣表示的针对性较差的问题,提出了一种辅助损失。辅助损失使用连续行为来监督每一步隐藏状态的学习。这使得隐藏状态具有足够的表现力来表示潜在的兴趣。 - 新颖地设计了兴趣演化层,其中GPU的注意力更新门(AUGRU)增强了相关兴趣对目标项目的影响,克服了兴趣漂移的影响。
基本模型:
1.特征表示
四种特征类型:用户画像特征User Profile,用户行为,广告Ad(target item),上下文特征。
用户画像特征User Profile | 性别、年龄等 | 独热向量Xp |
用户行为User Behavior | 用户访问过的商品id列表 | 独热向量Xb={b1,b2.....bT} K*T |
广告Ad | ad id、shop id等 | 独热向量Xa |
上下文特征Context | 时间等 | 独热向量Xc |
bt被编码为独热向量并且表示第t个行为,T是用户的历史行为的数量,K是用户可以点击的商品总数。
2.模型结构
Emebedding
将大规模稀疏特征转化为低维稠密特征。
每个特征字段对应于一个嵌入矩阵,访问商品的嵌入矩阵:Egoods = [m1;m2; · · · ;mK] ∈ RnE×K
其中mj ∈ RnE表示维数为nE的嵌入向量。
对于行为特征bt,如果bt[jt] = 1,则其对应的嵌入向量是mjt,并且一个用户的行为的有序嵌入向量列表可以由eb = [mj 1; mj 2; · · ·,mjT ]表示。
类似地,ea表示广告类别中的字段的级联嵌入向量。
MLP
首先,将来自一个类别的嵌入向量送入池化操作。然后将来自不同类别的所有这些池化向量连接起来。最后,将级联的向量馈送到后续的MLP中进行最终预测。
3.损失函数
深度CTR模型中广泛使用的损失函数是负对数似然函数,它使用目标项的标签来监督整体预测:
其中x = [xp,xa,xc,xb] ∈ D,D是大小为N的训练集。y ∈ {0,1}表示用户是否点击目标项。
p(x)是网络的输出,是用户点击目标项的预测概率。
DIEN
DIEN致力于捕捉用户兴趣,并对用户兴趣演化过程进行建模。
首先,通过嵌入层对所有类别的特征进行变换。然后,DIEN通过兴趣抽取层和兴趣演化层来捕获兴趣演化,然后将最终的兴趣表示与广告、用户特征、上下文的嵌入向量连接起来。级联向量被馈送到MLP中用于最终预测。
1.兴趣抽取层
根据行为序列提取兴趣序列。
用户的历史行为序列的长度很长,为了在效率和性能之间取得平衡,采用GRU来建模行为之间的依赖关系。
GRU
输入:按发生时间排序的行为序列。
优点:克服了RNN的消失梯度问题,比LSTM参数更少,训练收敛速度更快。
辅助损失
使用行为bt+1来监督兴趣状态ht的学习。除了使用真实的下一个行为作为正实例外,我们还使用了从除被点击项之外的项集中采样的负实例。
ei b ∈ RT × nE。T是历史行为的个数,nE是嵌入维数,ei b [t] ∈ G表示用户i点击的第t个项目的嵌入向量,G是整个项目集。
总损失
其中α是平衡兴趣表示和CTR预测的超参数。
在辅助损失的帮助下,每个隐藏状态ht都有足够的表现力来表示用户采取行为后的兴趣状态。所有T个兴趣点[h1,h2,· · ·,hT]的连接组成了兴趣演化层可以对其进行兴趣演化建模的兴趣序列。
辅助损失优点:
- 从兴趣学习的角度来看,辅助损失的引入有助于GRU的各个隐藏状态更好地表达兴趣。
- 对于GRU的优化,辅助损失降低了GRU建模长历史行为序列时反向传播的难度。
- 辅助损失为嵌入层的学习提供了更多的语义信息,从而得到更好的嵌入矩阵。
2.兴趣演化层
对目标项目相关的兴趣演化过程进行建模。
在外部环境和内部认知的共同影响下,不同类型的用户兴趣会随着时间的推移而不断演化。
对演化过程建模的优点如下:
- 兴趣演化模块可以为最终兴趣的表示提供更多的相关历史信息;
- 跟踪兴趣演化趋势,更好地预测目标项目的点击率。
兴趣在演化过程中表现出两个特点:
- 由于兴趣的多样性,兴趣可以漂移。
用户的意图可以在相邻的访问中有很大的不同,并且用户的一个行为可能依赖于很长一段时间之前的行为。比如用户在一段时间对各种书籍感兴趣,而在另一段时间对各种衣服感兴趣。
- 虽然兴趣可能会相互影响,但每个兴趣都有自己的演变过程。我们只关注与目标项相关的演化过程。比如书籍和衣服的演化路径几乎是独立的,而我们主要关注和目标广告相关的演化路径。例如目标广告是计算机相关书籍,那么书籍相关的演化路径显然比购买衣服相关的演化路径更重要。
通过分析兴趣演化的特点,将注意机制的局部激活能力和GRU的顺序学习能力结合起来,来建模兴趣演化模型。
GRU每一步的局部激活可以强化相对兴趣的影响,减弱兴趣漂移的干扰,有助于对目标项目相关的兴趣演化过程进行建模。
三种注意力机制方法:
我们在兴趣演化模块中使用的注意力函数可以公式化为:
其中ea是来自范畴ad的域的嵌入向量,W ∈ RnH×nA,nH是隐藏状态的维数,nA是广告的嵌入向量的维数。注意力得分能够反映广告效果与输入效果之间的关系,强相关性导致较大的注意力得分。
1.AIGRU
为了在兴趣进化过程中激活相关兴趣,一种最简单的方法使用注意力得分来影响兴趣演化层的输入——直接对兴趣抽取层输出的隐向量ht使用注意力机制:
理想情况下,相关性较低的输入值可以减少到零。然而,AIGRU的工作不是很好。因为即使是零输入也会改变GRU的隐藏状态,所以较少的相对兴趣也会影响兴趣进化的学习。在兴趣演化过程中存在注意分裂和演化丢失信息的问题。
2.AGRU
AGRU用注意力得分代替GRU的更新门,直接改变隐藏状态。
在兴趣演化过程中,AGRU利用注意力得分来直接控制隐状态更新,削弱了低相关兴趣对兴趣演化过程的影响。
3.AUGRU
AGRU虽然可以直接使用注意力得分来控制隐藏状态的更新,但它用标量(注意力得分at)代替矢量(更新门ut),忽略了不同维度之间的重要性差异。
将注意力和更新门结合在一起,我们提出了AUGRU。
在AUGRU中,我们保留了更新门的原始维度信息,这决定了每个维度的重要性。在区分信息的基础上,我们使用注意力得分来衡量更新门的各个维度,从而导致较少的相关兴趣对隐藏状态的影响较小。AUGRU更有效地避免了兴趣漂移的干扰,推动了相对兴趣的平滑演化。