摘要:对于CTR预测模型,捕获用户行为数据背后潜在的用户兴趣是有必要的。此外,考虑到外部环境变化和内部认知的变化,用户兴趣会随着时间的推移而动态变化。目前,有一些CTR预估模型用于兴趣建模,但大多数都直接将行为表征作为兴趣,缺乏对具体行为背后的潜在兴趣进行针对性建模。此外,很少有工作考虑到兴趣的变化趋势。本文中,我们提出了一种新的模型——深度兴趣演化网络(DIEN)。具体来说,我们设计兴趣提取器层(interest extractor layer)以从历史行为序列中捕获时序兴趣。在这一层,我们引入辅助损失(auxiliary loss)来监督每一步的兴趣提取。由于用户兴趣多种多样,特别是在电子商务系统中,我们提出了兴趣演化层,来捕捉与目标项相关的兴趣演化过程。在兴趣演化层中,注意力机制(attention)被新颖地嵌入到序列结构中,在兴趣进化过程中相对兴趣的影响得到加强。在公开和工业数据集的实验中,DIEN明显优于最先进的解决方案。值得注意的是,DIEN已经部署在淘宝的显示广告系统中,并且点击率提高了20.7%。
Introduction
CPC计费是广告系统中最常见的计费方式之一,即广告客户对其广告上的每次点击付费。 在CPC广告系统中,CTR预估的效果不仅会影响整个平台的最终收入,还会影响用户体验和满意度。 CTR预估已经越来越受到学术界和工业界的关注。
在大多数非搜索电子商务场景中,用户不主动表达他们当前的意图。设计模型用来捕获用户的兴趣及其动态是提高CTR预估效果的关键。最近,许多CTR模型从传统方法论(Friedman 2001; Rendle 2010)转变为深度CTR模型(Guo et al. 2017; Qu et al. 2016; Lian et al. 2018)。大多数深度CTR模型专注于捕获来自不同域的特征之间的交互,并且较少关注用户兴趣表征。深度兴趣网络(DIN)(Zhou et al.1188c)强调用户兴趣是多样性的,它使用基于注意力模型来捕获对于目标商品的相对兴趣,并获得自适应性的兴趣表征。然而,包括DIN在内的大多数兴趣模型都直接将行为视为兴趣,而潜在兴趣很难通过显性行为得到充分反映。以前的方法可以挖掘出行为背后真正的用户兴趣。此外,用户兴趣不断发展,捕获兴趣的动态对于兴趣表征很重要。
基于所有这些观察,我们提出深度兴趣演化网络(DIEN)来提高CTR预估效果。 DIEN中有两个关键模块,一个用于从显式用户行为中提取潜在的时序(temporal)兴趣,另一个用于建模兴趣发展过程。适当的兴趣表征是兴趣演化模型的基石。在兴趣提取层,DIEN选择GRU(Chung et al.2014)来模拟行为之间的依赖关系。遵循兴趣直接导致连续行为的原则,我们提出辅助损失(auxiliary loss),它使用下一行为来监督当前隐藏状态的学习。我们将这些隐藏的状态称为兴趣状态。这些额外的监督信息有助于捕获兴趣表征的更多语义含义,并推动GRU的隐藏状态以有效地表表征兴趣。此外,用户兴趣是多样的,这导致兴趣漂移现象:用户的意图在相邻访问中可能非常不同,并且用户的一种行为可能依赖于很久以前的行为。每个兴趣都有自己的演化轨迹。同时,一个用户对不同目标商品的点击动作受到不同兴趣部分的影响。在兴趣演化层,我们模拟相对于目标商品的兴趣进化轨迹。基于从兴趣提取器层获得的兴趣序列,我们设计具有注意力更新门(attentional update gate,AUGRU)的GRU。利用兴趣状态和目标商品来计算相关性,AUGRU加强了相对兴趣对兴趣演化的影响,同时削弱了兴趣漂移导致的无关兴趣效应。通过将注意力机制引入更新门,AUGRU可以为不同的目标商品带来特定的兴趣演化过程。
DIEN的主要贡献如下:
- 我们关注电子商务系统中的用户兴趣演化现象,并提出一种新的网络结构来模拟兴趣演化过程。 兴趣演化模型导致更具表现力的兴趣表征和更准确的CTR预测。
- 与直接将行为视为兴趣不同,我们特别设计了兴趣提取层。 针对GRU的隐藏状态不能有效表征兴趣的问题,我们提出了一个辅助损失。 辅助损失使用连续行为来监督每一步隐藏状态的学习。 这使隐藏的状态表达足以代表潜在的兴趣。
- 我们设计了新颖的兴趣演化层,其中具有注意力更新门的GPU(AUGRU)增强了从相关兴趣到目标商品的效果,并克服了兴趣漂移的推断。
Related Work
凭借深度学习特征表示和组合方面的强大能力,最近的CTR模型从传统的线性或非线性模型转变为深层模型。大多数深层模型遵循嵌入和多层感知机范式。基于这种基本范式,越来越多的模型关注特征之间的交互:Wide & Deep和deep FM结合低阶和高阶特征来改进表达能力; PNN提出了一个乘积层(product layer)来捕捉场间类别之间的交互模式。但是,这些方法无法清楚地反映数据背后的兴趣。 DIN引入了注意力机制,用来局部激活给定目标商品的历史行为,并成功地捕捉了用户兴趣的多样性特征。但是,DIN在捕获序列行为之间的依赖关系方面很弱。
许多应用程序可以随时记录usr-item的交互。最近的一些研究表明,这些信息可用于构建更丰富的个人用户模型并发现其它行为模式。在推荐系统中,TDSSM共同优化长期和短期用户兴趣,以提高推荐质量;DREAM使用递归神经网络(RNN)的结构来研究每个用户的动态表示和商品购买历史的全局序列行为。他和McAuley(2016)建立了视觉感知推荐系统,该系统使产品更贴近用户和社区不断变化的兴趣。(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中的注意力得分取决于从更新门计算的信息。 更新门和注意力得分的组合更具体和更敏感地推动了兴趣演化的过程。
Deep Interest Evolution Network
在本节中,我们将详细介绍深度兴趣进化网络(DIEN)。 首先,我们回顾一下名为BaseModel的基线DeepCTR模型;然后我们展示了DIEN的整体结构,并介绍了用于捕捉兴趣和建模兴趣演化过程的技术。
Review of BaseModel
主要从feature representation、model structure和loss function三个方面介绍基线模型。
Feature Representation:在我们的在线展现广告系统中,我们使用四类特征:用户属性文件(User Profile)、用户行为(User Behavior)、广告(Ad)和上下文(Context)。值得注意的是,广告也是商品。我们将广告称为本文中的目标商品。每个类别的特征都有几个域,例如用户属性文件包括性别,年龄等域。每个域的特征可以编码成一个one-hot vector。在序列CTR模型中,每个行为对应一个one-hot vector,可以表示为:
其中, 被编码为一个one-hot向量,表示第t个行为, T是用户历史行为的数量, K是用户点击过的商品的数量。
The Structure of Base Model:大部分的深度CTR模型都是基于Embedding&MLP范式。基本的结构包括以下几个部分:Embedding、Multilayer Perceptron。
Loss Function:在深度CTR模型中广泛使用的损失函数是负对数似然函数,具体如下:
其中, ,D是训练集合,大小为 N。
Deep Interest Evolution Network
与付费搜索不同,在许多电子商务平台(如在线展现广告)中,用户并未明确表达其意图,因此捕获用户兴趣及其动态对于CTR预测非常重要。 DIEN致力于捕捉用户兴趣并对兴趣演化过程建模。 如图1所示,DIEN由几个部分组成:首先,通过嵌入层转换所有类别的特征。接下来,DIEN采取两个步骤来捕捉兴趣演化:兴趣提取器层(基于行为序列提取兴趣序列);兴趣演化层(建模相对于目标商品的兴趣演化过程。 最后,拼接最终的兴趣表征和广告、用户属性、上下文的嵌入向量。 将拼接后的向量输入MLP进行最终预测。 在本节的剩余部分,我们将详细介绍DIEN的两个核心模块。
Interest Extractor Layer:用户的行为是用户兴趣的载体,在用户做出某个行为后兴趣将会发生变化。在兴趣提取层,我们将会从序列用户行为中提取一系列的兴趣状态。
在电子商务系统中,用户的行为是丰富的,每个历史行为序列在短期内甚至都很长,例如两周内。为了平衡效率和效果,我们采用GRU来建模行为之间的依赖性,GRU的输入是按照时间排序的行为序列。GRU克服了RNN模型梯度消失的问题,并且比LSTM更快,因此更加适用于电子商务系统。GRU的公式如下:
然而,隐藏状态只能捕获行为之间的依赖性,并不能有效的表征兴趣。由于目标商品的点击行为是由最后的兴趣触发,目标标签仅包含监督最终兴趣预测的基本事实,而历史状态 无法获得合适的监督。众所周知,每一步的兴趣状态会直接导致连续的行为。因此我们提出了辅助损失(auxiliary loss),用行为 来监督兴趣状态 的学习。除了使用真实下一个行为作为正样本,我们也使用了负样本(从非点击样本中采样得到)。
有N对行为嵌入序列: ,其中表示点击行为序列,另外一个表示负样本序列。 是历史行为的数量, 是嵌入向量的维度, 表示用户 点击的第 个商品的嵌入向量, 表示全部商品集合。 表示用户在第步未点击商品集合中采样得到商品嵌入向量。辅助损失可以表示为:
其中, 表示GRU的第 个隐藏状态。CTR模型中全局的损失如下所示:
其中,是用于平衡兴趣表征和CTR预估的超参数。
由于辅助损失的帮助,每个隐层状态对于表征用户进行行为后的兴趣状态有足够的表现力。所有 个兴趣点的拼接 组成了兴趣序列,输入到兴趣演化层对兴趣的演化过程进行建模。
总体上,辅助损失的引入有以下几个优点:从兴趣学习的角度来说,辅助损失有助于帮助GRU的每个隐藏状态有更好的表征兴趣;对于GRU的优化,在GRU模型建模长历史行为序列时,辅助损失可以降低后向传播的困难;最后但并非不重要的是,辅助损失对于嵌入向量的学习提供了更多语义信息,有助于得到更好的嵌入向量。
Interest Evolving Layer
由于外部环境和内部认知的共同影响,不同类型的用户兴趣随着时间的推移而不断发展。 以对衣服感兴趣为例,随着人口趋势和用户品味的变化,用户对衣服的偏好也在不断变化。 用户对衣服的兴趣的演化过程将直接决定候选衣服集合的CTR预测。 对不断演化的过程进行建模的优点如下:
- 兴趣演化模块可以提供带有更多相关历史信息的最终兴趣表征;
- 根据兴趣演化的趋势,可以更好的进行目标商品的CTR预估;
值得注意的是,兴趣在演化的过程中表现出两个特点:
- 由于兴趣的多样性,兴趣可能会漂移。 兴趣漂移对行为的影响,例如用户可能在一段时间内对各种书籍感兴趣,并且在另一时间需要衣服。
- 虽然兴趣可能相互影响,但每种兴趣都有自己不断发展的过程,例如: 书籍和衣服的演变过程几乎是个体的。 我们只关注与目标商品相关的不断演化的过程。
在第一阶段,在辅助损失的帮助下,我们获得了兴趣序列的表达。 通过分析兴趣演化的特征,我们将注意力机制的局部激活功能和GRU的序列学习能力结合起来,建模兴趣演化的过程。 在GRU每一步期间局部激活可以增强相对兴趣的影响,减弱兴趣漂移的干扰,有助于建立与目标商品相关的兴趣演化过程。
与公式(3-6)类似,我们用表示兴趣演化模块的GRU的输入和隐藏状态,其中第二个GRU的输入是在兴趣提取层的相应兴趣状态。最后隐藏状态 表示最终的兴趣状态。
我们用于兴趣演化模型的attention function可表示如下:
其中, 表示广告类特征拼接在一起的嵌入向量, , 是隐藏状态的维度, 是广告嵌入向量的维度。注意力分数可以反应广告 和输入 之间的关系,强相关会有较大的注意力分数。
下面,我们将会介绍几种方法,用来结合注意力机制和GRU,便于建模兴趣演化的过程。
- GRU with attentional input(AIGRU)
为了在兴趣进化过程中激活相对兴趣,我们提出了一种简单的方法,称为基于注意力模型输入的GRU(AIGRU)。AIGRU使用注意力分数来影响兴趣演化层的输入。 如公式9所示:
其中, 表示兴趣提取层的GRU的第 t个隐藏状态, 是兴趣演化层的第二个GRU的输入, 表示scalar-vector product。在AIGRU中,注意力分数可以降低较少相关兴趣的规模。理想情况下,较少相关兴趣的输入值可以较少到零。但是,AIGRU工作的不是很好。因为即便零输入也可以改变GRU的隐藏状态,因此较少相关兴趣也会影响兴趣演化的学习。
- Attention based GRU(AGRU)
在问答领域,基于注意力的GRU(AGRU)首先被提出。通过来自注意力机制的嵌入信息修改GRU架构后,AGRU可以有效地提取复杂查询中的关键信息。 在问答系统的启发下,我们迁移了AGRU的使用,从查询中提取关键信息,变成以捕捉兴趣演化过程中的相对兴趣。 详细地说,AGRU使用注意分数来代替GRU的更新门,并直接改变隐藏状态。形式上:
其中, 是AGRU的隐藏状态。
在兴趣演化的场景中,AGRU利用注意力分数直接控制隐藏状态的更新。 AGRU在兴趣演化期间削弱了相关兴趣减少的影响。将注意力嵌入GRU可以提高注意力机制的影响,并有助于AGRU克服AIGRU的缺陷。
- GRU with attentional update gate(AUGRU)
虽然AGRU可以使用注意力分数直接控制隐藏状态的更新,但它使用标量(注意力分数 )来替换矢量(更新门),这忽略了不同维度之间的重要性差异。 我们提出GRU with attentional update gate(AUGRU),能够无缝结合注意力机制和GRU:
其中,是AUGRU原始的更新门,是我们为AUGRU设计的attentional update gate, 是AUGRU的隐藏状态。
在AUGRU中,我们保留更新门的原始维度信息,这决定了每个维度的重要性。 基于差异化信息,我们使用注意力得分来扩展更新门的所有维度,这导致较少相关兴趣对隐藏状态的影响较小。 AUGRU可以更有效地避免兴趣漂移的干扰,并推动相对兴趣的顺利演化。
Experiments
在本节中,我们将DIEN在公开和工业数据集上与最先进技术进行比较。此外,我们设计了实验来验证辅助损失和AUGRU的有效性。为了观察兴趣演化的过程,我们对兴趣隐藏状态的结果进行了可视化。我们分享了在线服务的结果和相关技术。
Datasets
public Dataset:Amazon Dataset;
Industrial Dataset:在线展现广告系统中的展现-点击日志;
Compared Methods
我们将DIEN与主流的CTR预估方法进行了对比,例如BaseModel、Wide&Deep、PNN、DIN、Two Layer GRU Attention。
Results on Public Datasets
每个实验重复五次,然后对结果求平均,则AUC如表2所示。
Results on Industrial Dataset
在工业数据集上的实验结果,如表3所示。
Effect of GRU with attentional update gate(AUGRU)
表4展现了不同方法下兴趣演化的结果。
Effect of auxiliary loss
在使用AUGRU的模型上,我们进一步探索了辅助损失的有效性。如图2所示,整体损失L和辅助损失呈现下降趋势,这意味着用于CTR预估的全局损失和用于兴趣表征的辅助损失是有影响的。
如表4所示,辅助损失为公共数据集带来了极大的提升,它反映了监督信息对于序列感知和嵌入表示学习的重要性。对于表3中所示的工业数据集,具有辅助损耗的模型进一步提高了性能。但是,我们可以看到改善并不像公共数据集那样明显。差异来自几个方面。首先,对于工业数据集,它有大量样本用于学习嵌入层,这使得它从辅助损失中获得的收益更少。其次,与亚马逊数据集中所有商品来自一个类别不同,工业数据集中的行为是来自所有场景的点击商品和我们平台中的所有类别。我们的目标是在一个场景中预测广告的点击率。因此,辅助损失的监督信息可能与目标商品不同,因此相比公共数据集,工业数据集的辅助损失的影响可能较小,而AUGRU的影响则被放大。
Visualization of Interest Evolution
AUGRU中隐藏状态的动态变化可以反应兴趣的演化过程。本节中,我们对隐藏状态进行可视化,以探索对于不同目标商品对于兴趣演化的影响。
选择的历史行为来自计算机扬声器、耳机、车载GPS、SD和SDHC卡、微型SD卡、外置硬盘、耳机、机箱等。 AUGRU中的隐藏状态通过主成分分析(PCA)投射到二维空间。投射后的隐藏状态按顺序链接。由不同目标商品激活的隐藏状态的移动路线如图3(a)所示。具有无目标的黄色曲线表示在方程式(13)中使用的注意分数相等,即感兴趣的演化不受目标商品的影响。蓝色曲线显示隐藏状态由屏幕保护类中的某个商品激活,该商品与所有历史记录行为的关系较少,因此它显示与黄色曲线类似的路径。红色曲线显示隐藏状态由类别案例中的商品激活,目标商品与最后一个行为强烈相关,这引起很大的变动如图3(a)所示。相应地,最后的行为获得了图3(b)所示大的注意力分数。
从2018-06-07到2018-07-12,在淘宝的展现广告系统中进行了在线A / B测试。 如表5所示,与BaseModel相比,DIEN将点击率提高了20.7%,eCPM提高了17.1%。 此外,DIEN已将每次点击付费(PPC)减少3.0%。 现在,DIEN已经在线部署并为主要流量提供服务,从而带来了显著的业务收入增长。
Conclusion
本文中,我们提出了一种新的深度网络结构,命名为DIEN,用于建模兴趣演化过程。DIEN大幅提升了在线广告系统中CTR预估的效果。特别的,我们设计了兴趣提取层来捕获兴趣序列,同时使用辅助损失对兴趣状态进行更多的监督;我们提出了兴趣演化层,使用AUGRU来建模于目标商品相关的兴趣演化过程。在AUGRU的帮助下,DIEN克服了兴趣飘逸的干扰。对兴趣演化的建模帮助我们有效的捕获兴趣。未来,我们将会尝试构建一个更加个性化的CTR预估模型。