一、DIEN [2019]

《Deep Interest Evolution Network for Click-Through Rate Prediction》

  1. 点击付费(cost per click: CPC)是广告系统中最常见的计费形式之一,广告主需要为广告的每次点击付费。在 CPC 广告系统中,点击率(click-through rate: CTR)预估的表现不仅会影响到整个平台的最终收入,还会影响到用户体验(user experience)和满意度(satisfaction)。点击率预估建模越来越受到学术界和工业界的关注。

    在大多数 non-searching 的电商场景中,用户不会主动表达当前的意图。设计模型以捕获用户的兴趣及其兴趣的动态(dynamics)提高点击率预估性能的关键。最近,很多 CTR 模型从传统方法转变到深度 CTR 模型。大多数深度 CTR 模型聚焦于捕获来自不同 fields 的特征之间的交互,而不太关注用户兴趣 representationDIN 强调用户兴趣是多样的,并使用 attention based 的模型来捕获与目标 item 相关的兴趣,从而获得自适应的兴趣 representation。然而,包括 DIN 在内的大多数兴趣模型都将行为直接视为兴趣,而显式的行为很难充分反映潜在的兴趣。因此这些方法都忽略了挖掘用户行为背后真正的用户兴趣。此外,用户兴趣不断演变(evolve),捕获兴趣的动态对于兴趣 representation 很重要。

    基于所有这些观察,论文《Deep Interest Evolution Network for Click-Through Rate Prediction》提出了深度兴趣演变网络(Deep Interest Evolution Network: DIEN)来提高 CTR 预估的性能。DIEN 中有两个关键模块:一个是从显式的用户行为中提取潜在的时序兴趣(temporal interest),另一个是对兴趣演变过程(interest evolving process)进行建模。恰当的兴趣 representationDIEN 模型的基石。

    • 在兴趣提取层(interest extractor layer) ,DIEN 选择 GRU 来建模行为之间的依赖关系。遵循兴趣直接导致连续行为的原则,论文提出了辅助损失,它使用下一个行为(next behavior)来监督当前隐状态(hidden state)的学习。论文将这些具有额外监督信息的隐状态称作兴趣状态(interest state)。这些额外的监督信息有助于为兴趣 representation 捕获更多的语义信息,并推动 GRU 的隐状态有效地表达兴趣。

    • 更进一步,用户的兴趣是多样化的,这导致了兴趣漂移(interest drifting)现象:用户在相邻访问中的意图可能非常不同,并且用户的一种行为可能依赖于很久以前的行为。每个兴趣都有自己的演变轨迹(evolution track)。同时,一个用户对不同目标 item 的点击行为受到不同兴趣部分的影响。

      在兴趣演变层(interest evolving layer),论文对于目标 item 相关的兴趣演变轨迹进行建模。基于从兴趣提取层获得的兴趣序列,论文设计了具有注意力更新门的 GRU ,即 GRU with attentional update gate: AUGRUAUGRU 利用兴趣状态和目标 item 计算相关性,增强了相关兴趣(relative interests)对于兴趣演变的影响,同时削弱了因为兴趣漂移导致的非相关兴趣的影响。通过在更新门中引入注意力机制,AUGRU 可以导致针对不同目标 item 的、特定的兴趣演变过程。

    DIEN 的主要贡献如下:

    • 论文聚焦电商系统中的兴趣演变现象,并提出了一种新的网络结构来建模兴趣演变过程。建模兴趣演变导致更具表达性的兴趣 representation 和更精确的点击率预估。

    • 不同于直接将行为作为兴趣,论文专门设计了兴趣提取层。针对 GRU 的隐状态较少地针对兴趣 representation 的问题,论文提出了一种辅助损失。该辅助损失使用连续行为(consecutive behavior)来监督每个 step 隐状态的学习。这使得隐状态足以代表潜在的兴趣。

    • 论文创新地设计了兴趣演变层,其中带有注意力更新门的 GRU 加强了目标 item 相关的兴趣的影响,并克服了兴趣漂移问题。

    在公共数据集和工业数据集的实验中,DIEN 显著优于 SOTA 的解决方案。值得注意的是,DIEN 已经部署在淘宝展示广告系统中,并在各种指标下获得了显著的提升( 20.7% 的点击率提升)。

  2. 相关工作:凭借深度学习在特征 representation 和特征组合方面强大的能力,最近的 CTR 模型从传统的线性模型或非线性模型转变到深度模型。大多数深度模型遵循 Embedding & MLP 的结构。基于这种范式,越来越多的模型关注特征之间的交互(interaction):

    • Wide & DeepDeepFM 都结合了低阶特征交互和高阶特征交互来提高表达能力。

    • PNN 提出了一个 product layer 来捕获跨 field 特征之间的交互模式。

    然而,这些方法并不能清晰地反映数据背后的用户兴趣。DIN 引入了注意力机制来激活局部的、与目标 item 相关的历史行为,并成功地捕获到用户兴趣的多样性特点(diversity characteristic)。然而,DIN 在捕获序列行为(sequential behaviors)之间的依赖关系方面很弱。

    在很多 application 领域中,可以随时间记录 user-item 交互。最近的一些研究表明,这些交互信息可用于构建更丰富的单个用户模型(individual user model)并挖掘额外的行为模式(behavioral pattern)。在推荐系统中:

    • TDSSM 联合优化长期用户兴趣和短期用户兴趣,提高推荐质量。

    • DREAM 使用 RNN 结构来研究每个用户的动态 representation 以及 item 购买历史的全局序列行为(global sequential behavior)。

    • 《Ups and downs: Modeling the visual evolution of fashion trends with one-class collaborative filtering》 构建了视觉感知推荐系统,该系统展示了更符合用户和社区(community)不断演变兴趣的产品。

    • 《Sequential click prediction for sponsored search with recurrent neural networks》 根据用户的兴趣序列衡量用户的相似性,从而提高协同过滤推荐的性能。

    • 《Improving native ads ctr prediction by large scale event embedding and recurrent networks》 通过使用大规模 event embeddingRNN 网络的 attentional output 来改进原始的 CTR 预估性能。

    • ATRank 使用基于注意力的序列框架( attention based sequential framework)来建模异质行为(heterogeneous behavior)。

    和序列无关的方法相比,这些方法可以显著提高预测准确性。然而,这些传统的基于 RNN 的模型存在一些问题。

    • 一方面,它们大多将序列结构的隐状态直接视为潜在兴趣,而这些隐状态缺乏对兴趣 representation 的、专门的监督。

    • 另一方面,大多数现有的基于 RNN 的模型依次地、平等地处理相邻行为之间的所有依赖关系。众所周知,并非所有的用户行为都严格依赖于相邻的行为。每个用户都有多样化的兴趣,每个兴趣都有自己的演变轨迹,因此这些模型可能会受到兴趣漂移的干扰。

    为了推动序列结构的隐状态有效地代表潜在兴趣,应该引入对隐状态的额外监督。DARNN 使用 click-level 的序列预测,它在每次向用户展示每个广告时,对点击动作进行建模。除了点击动作,还可以进一步引入 ranking 信息。在推荐系统中,ranking loss 已经被广泛用于排序任务。与这些 ranking loss 类似,我们提出了兴趣学习的辅助损失。在每个step ,辅助损失使用 next clicked itemnon-clicked item 来监督兴趣 representation 的学习。

    为了捕获与目标 item 相关的兴趣演变过程,我们需要更灵活的序列学习结构(sequential learning structure)。在问答(question answering: QA)领域,DMN+ 使用基于注意力的 GRU ,即 attention based GRU: AGRU 来推动注意力机制对输入事实(fact)的位置和顺序都保持敏感。在 AGRU 中,更新门向量被简单地替换为标量的 attention score 。这种替换忽略了更新门所有维度之间的差异,这种差异包含了从先前序列传输的丰富信息。受到 QA 中使用的新型序列结构的启发,我们提出了带注意力门的 GRU ,即 GRU with attentional gate: AUGRU ,从而在兴趣演变过程中激活相关的兴趣。和 AGRU 不同,AUGRU 中的 attention score 作用于从更新门计算出的信息。更新门和 attention score 的结合推动了更专有(specifically)、更敏感(sensitively)的演变过程。

1.1 模型

  1. 这里我们详细介绍 DIEN。首先我们简单回顾一下名为 BaseModel 的、基础的 Deep CTR 模型。然后我们展示了 DIEN 的整体结构,并介绍了用于捕获兴趣和建模兴趣演变过程的技术。

1.1.1 BaseModel

  1. Feature Representation:在线展示广告系统中,有四类特征:

    • 用户画像特征(user profile):包括性别、年龄等。

    • 用户行为特征(user behavior):包括用户访问的商品ID 列表。

    • 广告特征(AD):广告本身也是商品,因此称作目标商品。它包含商品ID、店铺ID 等特征。

    • 上下文特征(Context):包含当前访问时间等特征。

    每类特征中每个field 的特征都编码为 one-hot 向量。例如用户画像中的 female 特征编码为 [0,1] 。假设用户画像、用户行为、广告、上下文这四类特征中不同 fieldone-hot 向量拼接之后分别为 xp,xb,xa,xc

    在序列的 CTR 模型中,值得注意的是,用户行为特征包含一个行为列表,每个行为对应一个 one-hot 向量,可以表示为:

    xb=[b1;;bT]RK×T,bt{0,1}K

    其中 T 为用户行为序列的长度,K 为所有商品的数量, bt 是第 t 个行为的 one-hot 向量。

  2. BaseModel 的结构:大多数 deep CTR 模型基于 Embedding & MLP 结构,因此 BaseModel 主要由以下部分组成:

    • Embedding 部分:embedding 是将大规模稀疏特征转换为低维稠密特征的常用操作。在 embedding layer,每个特征 field 对应一个 embedding 矩阵。例如,visited goodsembedding 矩阵可以表示为:

      Egoods=[m1;m2;;mK]RnE×K

      其中: mjRnE 代表第 j 个商品的 embedding 向量,nEembedding 向量维度,K 为商品数量。

      对于行为特征的one-hot 向量 bt ,如果 bt[jt]=1 ,则对应于 embedding 向量 mjt ,那么用户行为特征的有序 embedding 向量列表可以表示为:eb=[mj1;;mjT] ,其中 jt 表示第 t 个行为作用的商品。

    • MLP 部分:将来自同一类特征的所有 embedding 向量馈入一个池化层,得到一个固定长度的向量。然后将来自不同类特征的固定长度向量拼接在一起,馈入 MLP 网络中得到最终预测结果。

  3. 损失函数:深度 CTR 模型中广泛使用的损失函数为负的对数似然,它使用目标 itemlabel 来监督整体预测结果。即:

    Ltarget=1N(x,y)DN(y×logp(x)+(1y)×log(1p(x)))

    其中:

    • x=[xp,xb,xa,xc]DD 为训练集,N 为训练集大小。

    • y{0,1} 表示用户是否点击目标 item

    • p(x) 为模型预测用户点击目标 item 的概率。

1.1.2 DIEN

  1. 与赞助搜索(sponsored search)不同,在很多电商平台中,用户并没有清晰地表达他们的意图,因此捕获用户兴趣及其动态(dynamics)对于 CTR 预估很重要。DIEN 致力于捕获用户兴趣并建模兴趣演变过程。

    如下图所示,DIEN 由几个部分组成。

    • 首先,所有离散特征都通过 embedding layer 进行转换。

    • 接下来,DIEN 采取两个步骤来捕获兴趣演变:

      • 兴趣提取层(interest extractor layer)根据行为序列提取兴趣序列。

      • 兴趣演变层(interest evolving layer)建模与目标 item 相关的兴趣演变过程。

    • 然后,将最终兴趣的 representation、广告 embedding 向量、用户画像 embedding 向量、上下文 embedding 向量拼接起来。拼接的向量馈入 MLP 以进行最终的预测。

a. Interest Extractor Layer
  1. 在电商系统中,用户行为是用户潜在兴趣的载体,用户执行一次行为之后兴趣可能就会发生变化。在兴趣提取器层,我们从连续的用户行为中提取一系列的兴趣状态。

    电商系统中用户的点击行为非常丰富,即使在很短时间内(如两周),用户历史行为序列的长度也很长。为了在效率和性能之间平衡,我们采用 GRU 建模行为之间的依赖关系,其中 GRU 的输入是按发生时间排序的行为。GRU 克服了 RNN 的梯度消失问题,比 LSTM 更快,适用于电商系统。GRU 形式化为:

    ut=σ(Wuit+Uuht1+bu)rt=σ(Writ+Urht1+br)h~t=tanh(Whit+rtUhht1+bh)ht=(1ut)ht1+uth~t

    其中:

    • σsigmoid 激活函数, 为逐元素积。

    • Wu,Wr,WhRnH×nI,Uz,Ur,UhRnH×nH 为参数矩阵,bu,br,bhRnH 为偏置向量。其中 nH 为隐向量维度,nI 为输入维度。

    • it=eb[t] 为用户行为序列中的第 t 个行为的 embedding,它作为 GRU 的输入。 ht 为第 t 个隐状态。

  2. 然而,仅捕获行为之间依赖关系的隐状态 ht 无法有效的表达用户兴趣。由于目标 item 的点击行为是由最终兴趣触发的,因此损失函数 Ltarget 中使用的 label 仅仅监督了最后一个兴趣状态 hT ,历史兴趣状态 ht,t<T 没有得到合适的监督。

    众所周知,用户每一步的兴趣状态都将导致连续的行为,因此我们提出辅助损失,从而利用第 t+1 步的输入(即行为 bt+1)来监督第 t 步的兴趣状态 ht 的学习。除了采用真实的 next behavior 作为正样本之外,我们还从正样本之外采样了一些 item 作为负样本。因此得到 N 对行为embedding 序列:

    {ebi,e^bi}DB,i=1,2,,N

    其中:

    • i 为训练样本编号,N 为训练样本总数。

    • ebiRT×nE 表示用户的历史行为序列embeddingT 为用户历史行为序列长度,nE 为行为 embedding 维度。

      ebi[t]G 表示用户 i 历史行为序列的第 titemembedding 向量, G 表示全部 itemembedding 集合。

    • e^biRT×nE 表示负样本采样序列。e^bi[t](Gebi[t]) 表示从用户 i 历史行为序列第 titem 以外的所有item 中采样得到的item embedding

    辅助损失函数为:

    Laux=1Ni=1Nt[logσ(hti,ebi[t+1])+log(1σ(hti,e^bi[t+1]))]

    其中:

    • σ(x1,x2)=11+exp(x1x2)sigmoid 激活函数。

    • hti 表示用户 i 的第 t 个隐状态。

    • ebi[t+1] 为第 t+1 个点击 itemembedding 向量,它作为第 t 步的、postive 的监督信息;e^bi[t+1] 为第 t+1 个负采样 itemembedding 向量,它作为第 t 步的 negative 的监督信息。

    考虑辅助损失之后,DIEN 模型的整体目标函数为:

    L=Ltarget+α×Laux

    其中: Ltarget 为模型的主损失函数,α 为超参数用于平衡兴趣表达和CTR 预测。

  3. 通过引入辅助函数,每个隐状态 ht 就具有足够的表达能力来表达行为 eb[t] 背后的兴趣。所有 T 个兴趣状态 [h1,h2,,hT] 一起构成了兴趣序列,从而作为兴趣演化层的输入。

    总体而言,引入辅助函数具有多个优点:

    • 从兴趣学习的角度看,辅助损失函数的引入有助于GRU 的每个隐状态学到正确的兴趣representation

    • GRU 优化的角度看,辅助函数的引入有助于缓解 GRU 的长距离依赖问题,降低反向传播的难度。

    • 还有不怎么重要的一点:辅助损失函数为 embedding 层的学习提供了更多的语义信息,从而产生更好的 embedding 矩阵。

b. Interest Evolving Layer
  1. 随着外部环境和用户自身认知的共同作用,用户的各种兴趣随着时间的推移也在不断演变。以用户对衣服的兴趣为例,随着人口趋势和用户品味的变化,用户对衣服的偏好也在改变。这种兴趣演变过程直接决定了候选衣服商品的点击率预测。对这种兴趣演变过程进行建模有以下优点:

    • 兴趣演变模块(interest evolving module)可以提供具有更多相关历史信息的最终兴趣的 representation

    • 可以更好地跟随兴趣演变趋势来预测目标 item 的点击率。

    值得注意的是,在演变过程中兴趣表现出两个特点:

    • 由于兴趣的多样性,兴趣可能会发生漂移(drift)。兴趣漂移对用户行为产生的影响是:用户可能在某个时间段对各种书籍感兴趣,但是另一个时间段可能对各种衣服感兴趣。

    • 尽管兴趣之间会相互影响,但是每种兴趣都有自己的演变过程。如:书籍和衣服的兴趣演变过程几乎是独立的。我们只关注和目标 item 相关的兴趣演变过程。

  2. 在第一阶段辅助损失的帮助下,我们获得了兴趣序列的 representation。通过分析兴趣演变的特点,我们结合注意力机制的局部激活能力以及GRU 的序列学习能力来建模兴趣演变过程。在 GRU 的每个 step ,局部激活都可以强化相关兴趣的影响,并减弱无关兴趣(兴趣漂移)的干扰,有助于建模目标item 相关的兴趣演变过程。

    it,ht 为兴趣演变模块的输入向量和隐向量。其中:兴趣演变模块的输入就是兴趣抽取模块的隐向量it=ht ,兴趣演变模块最后一个隐向量 hT 就是最终的兴趣状态。

    我们在兴趣演变模块中使用的 attention score函数定义为:

    at=exp(htWea)j=1Texp(hjWea)

    其中:

    • eaRnA 是广告 afieldembedding 向量的拼接向量,nA 为拼接向量维度。

    • WRnH×nA 为参数矩阵,nH 为隐向量维度。

    attention score反映了广告 a 和输入的潜在兴趣 ht 之间的关系,关系越紧密则得分越高。

  3. 接下来,我们将介绍几种结合注意力机制和 GRU 对兴趣演变过程进行建模的方法。

    • GRU with attentional input: AIGRU :为了在兴趣演变过程中激活相关的兴趣,我们提出了一种简单的方法,称作带注意力输入的 GRUGRU with attentional input: AIGRU)。AIGRU 使用attention score来影响兴趣演变层的输入:

      it=ht×at

      其中: ht 是兴趣提取层的第 t 个隐状态;it 是第二个 GRU 的输入,用于兴趣演变。

      AIGRU 中,和目标 item 相关性较低的兴趣的 scale 可以通过attention score来减少。理想情况下,和目标item 相关性较低的输入可以被降低到零。但是 AIGRU 效果不是很好,因为即使是零输入也可以改变 GRU 的隐状态。所以,即使相对于目标item 的兴趣较低,也会影响后面兴趣演变过程的学习。

    • Attention based GRU: AGRU:在问答(question answering: QA)领域,DMN+ 首先提出了基于注意力的 GRU attention based GRU: AGRU 。通过使用来自注意力机制的 embedding 信息修改 GRU 架构之后,AGRU 可以有效地提取复杂 query 中的关键信息。

      受问答系统的启发之后,我们将 AGRU 的使用从提取 query 中的关键信息,迁移到在兴趣演变过程中捕获相关的兴趣。具体而言,AGRU 使用 attention score 代替 GRU 的更新门,并直接修改隐状态:

      ht=(1at)×ht1+at×h~t

      其中: ht,ht1,h~tAGRU 的隐状态。

在兴趣演变的场景中,AGRU 利用attention score 直接控制隐状态的更新。AGRU 在兴趣演变过程中削弱了目标 item 相关性较低兴趣的影响。将注意力嵌入到 GRU 中提高了注意力机制的影响,帮助 AGRU 克服了 AIGRU 的缺陷。

1.2 实验

  1. 这里我们在公共数据集、工业数据集上将 DIENSOTA 技术进行比较。此外,我们设计了实验来分别验证辅助损失和 AUGRU 的影响。为了观察兴趣演变的过程,我们展示了兴趣隐状态的可视化结果。最后,我们分享了在线 serving 的技术和结果。

  2. 数据集:

    • 公共数据集(Public Dataset):Amazon 数据集。该数据集由商品评论和商品元数据组成。我们使用该数据集的两个子集:Books, Electronics

      在这些数据集中我们将评论视为行为,并按照时间对用户的评论排序。假设用户 uT 个行为,我们的目标是使用前 T1 个行为来预测用户 u 是否会点评第 T 个评论中的商品。

    • 工业数据集(Industrial Dataset):由淘宝在线展示广告系统中的曝光日志和点击日志组成。

      我们将连续 50 天点击的广告作为样本,用户点击目标商品之前 14 天的点击行为作为历史行为序列。其中前 49 天的样本作为训练集,第 50 天的样本作为测试集。

    这些数据集的统计信息如下表所示。

  3. baseline 方法:我们将 DIEN 和一些主流的 CTR 预估模型进行比较。

    • BaseModelBaseModel 采用与 DIEN 相同的 embedding settingMLP setting,但是BaseModel 使用 sum pooling 来聚合用户的所有行为embedding

    • Wide & DeepWide & Deep由两部分组成,其 deep partBaseModel 相同、wide part 为线性模型。

    • PNNPNN 使用 product layer 来捕获跨 field 之间的特征交互模式(interactive pattern)。

    • DINDIN 使用注意力机制来激活目标 item 相关的用户行为。

    • Two layer GRU Attention :通过双层 GRU 来建模用户行为序列,并采用注意力机制来关注目标item 相关的行为。

  4. 公共数据集的结果:在公共数据集中每个实验重复 5 次,取离线 AUC 的均值和标准差,实验结果如下表所示。可以看到:

    • 人工设计特征的 Wide & Deep 性能不佳,而自动特征交叉的 PNN 效果相对较好。

    • 旨在捕获兴趣的模型可以明显改善 AUC

      • DIN 激活了相对于目标广告的用户兴趣,Two Layer GRU Attention 进一步有效的捕获了兴趣序列中目标广告的相关兴趣。所有这些探索都获得了积极的效果。

      • DIEN 不仅可以有效捕获兴趣序列,还可以对与目标item 相关的兴趣演变过程建模。兴趣演变模型可以帮助 DIEN 获取更好的兴趣representation ,并准确捕获兴趣动态,从而大幅提升性能。

  5. 工业数据集的结果:我们进一步对真实展示广告的数据集进行实验。在工业数据集中,我们在 MLP 使用 6FCN layer,维度分别为 600, 400, 300, 200, 80, 2,历史行为序列的最大长度为 50。实验结果如下表所示。可以看到:

    • Wide & Deep,PNNBaseModel 效果更好。

    • Amazon 数据集只有一类商品不同,阿里在线广告数据集同时包含多种类型的商品,因此基于注意力的方法(如 DIN)可以大幅提升性能。

    • DIEN 捕获了目标 item 相关的兴趣演变过程,并获得最佳效果。

  6. 消融研究:这里我们展示 AUGRU 和辅助损失的效果。

    • AUGRU 的效果:下表给出了不同兴趣演变方法的结果。

      • BaseModel 相比,Two layer GRU Attention 获得了改进,但是它缺乏对兴趣演变进行建模从而限制了能力。

      • AIGRU 直接对兴趣演变建模。尽管它效果得到提升,但是在兴趣演变过程中,注意力和演变之间的分裂使得建模过程中丢失了信息。

      • AGRU 进一步试图融合注意力和演变过程,但是它没有充分利用更新门针对多个维度更新的优势。

      • AUGRU 取得了明显的进步(倒数第二行),它理想地融合了注意力机制和序列学习,有效捕捉了目标item 相关兴趣的演变过程。

    • 辅助损失的效果:使用 AUGRU 的基础上我们进一步评估辅助损失的效果。公共数据集中,用于辅助损失的负样本都是从当前评论商品之外的item 集合中随机抽样的。工业数据集中,用于辅助损失的负样本是所有已曝光但是未点击的广告。

      如下图所示,整体损失函数 L 和辅助损失 Laux 都保持相似的下降趋势,这意味着兴趣 representation 生效,其中 α=1

      如下表所示,辅助损失为两个公共数据集都带来了很大的改进(最后一行 vs 倒数第二行),它反应了监督信息对于学习兴趣序列和 embedding 表示的重要性。

      如下表所示,辅助损失为工业数据集也带来了性能提高(最后一行 vs 倒数第二行),但是我们可以看到改进并不像公共数据集那样明显。这种差异来源于几个方面:

      • 首先,工业数据集具有大量的样本来学习 embedding 层,这使得它从辅助损失中获得的收益更少。

      • 其次,不同于公共数据集的item 全部属于同一个类目,工业数据集包含阿里所有场景的所有类目 item 。我们的目标是在一个场景中预测广告的点击率。辅助损失的监督信息可能与目标 item 是异质的(heterogeneous),所以辅助损失对工业数据集的影响可能相比公共数据集要小,而 AUGRU 的影响则被放大了。

  7. 兴趣演变可视化:AUGRU 中隐状态的动态变化可以反映出兴趣演变过程,我们可以将这些隐状态可视化从而探索不同目标item 对于兴趣演变的影响。

    我们通过 PCAAUGRU 的隐状态投影到二维空间中,投影对应的隐状态按照行为发生的顺序连接。其中历史行为来自于以下类目:电脑音箱、耳机、汽车 GPSSD 卡、micro SD 卡、外置硬盘、手机套。

    • a 给出了不同目标item 的隐状态移动路径。

      • None target 的黄色曲线表示原始兴趣序列(所有注意力得分都相等),它表示不受目标item 影响的兴趣演变。

      • 蓝色曲线表示目标item 为屏幕保护类目的 item 激活的隐状态,目标item 与所有历史行为相关性较小,因此表现出类似黄色曲线的路径。

      • 红色曲线表示目标item 为手机套类目的 item 激活的隐状态,目标item 和历史行为密切相关,因此导致较长的路径。

    • b 中,和目标item 相关的历史行为获得了更大的注意力得分。

  8. 在线 A/B test:我们在淘宝的展示广告系统进行在线 A/B testing ,测试时间从 2018-06-07 ~ 2018-07-02 ,测试结果如下。与 BaseModel 相比,DIENCTR 提升 20.7%eCPM 提升 17.1%pay per click: PPC 降低 3%

    目前 DIEN 已经在线部署并服务于主要流量,业务收入显著增长。

  9. 在线 servingDIEN 的在线服务(online serving)是一个巨大挑战。在线系统流量非常高,峰值可超过 100 万用户/秒。为保证低延迟和高吞吐量,我们采用了几种重要技术来提高 serving 性能:

    • element parallel GRU 以及 kernel fusion:融合尽可能多的独立 kernel 计算,同时 GRU 隐状态的每个元素并行计算(元素级并行)。

    • Batching:不同用户的相邻请求合并为一个 batch,从而充分利用 GPU 的并行计算能力。

    • 模型压缩:通过 Rocket Launching 方法来压缩模型从而训练一个更轻量级的网络,该网络尺寸更小但是性能接近原始大模型。例如,在 Rocket Launching 的帮助下,GRU 隐状态的维度可以从 108 压缩到 32

    通过这些技术,DIEN serving 的延迟可以从 38.2ms 降低到 6.6ms ,每个 workerquery per second: QPS 可以达到 360