0%

DIEN

Deep Interest Evolution Network for Click-Through Rate Prediction

前言

阿里CTR预估模型—-DIEN(深度兴趣演化网络)

这是一篇一篇阿里2019发表在AAAI上的CTR预估的论文,本文亮点主要是作者提出了兴趣提取层与兴趣演化层两个网络层。

附一个原文链接

1
https://arxiv.org/abs/1809.03672v1

背景

每点击付费(CPC) 是广告系统中最常见的计费形式之一,广告商对广告的每次点击进行收费。在CPC广告系统中,点击率(CTR)预测的效果不仅影响整个平台的最终收益,还会影响用户体验和满意度。

在大多数非搜索的电子商务场景中,用户不主动表达自己当前的意愿。因此设计能够捕捉用户动态兴趣的模型是提高CTR预测性能的关键。

研究状态

注,本文的研究状态为到2019年以前。

a.由于深度学习在特征表示上的强学习能力,目前大部分CTR模型从传统的线性或非线性模型(例如FM)转换到深度模型。

b.大多数深度模型遵循Embedding+多层感知器(MLP)的结构, 但这些模型只关注从不同的领域捕获特征之间的交互,【没有考虑到用户兴趣的表示】。

c.DIN引入了一个attention机制来激活具有意义的历史行为。但

1
2
DIN很难捕捉潜在的用户兴趣;
用户兴趣是不断发展,DIN在捕获用户序列的行为之间的依赖有所欠缺。

d.大多数基于RNN的模型都【连续且均等地处理相邻行为之间的所有依赖关系】。但并非所有用户的行为都严格取决于每个相邻的行为。 每个用户都有不同的兴趣,并且每个兴趣都有其自己的发展轨迹,例如书籍和衣服的发展过程几乎是各自独立的。 对于目标物品,这些模型只能获得一个固定的兴趣演化轨迹,可能会受到兴趣漂移的干扰。【简而言之,就是缺少Attention机制】

1
兴趣漂移:兴趣漂移对行为的影响是用户可能在一段时间内对各种书籍产生兴趣,在另一段时间内又需要衣服。

创新

a.兴趣提取器层(interest extractor layer):首先DIEN选择GRU来建模两行为之间的依赖性。其次由于隐藏状态缺乏对兴趣表示的监督,作者提出了辅助损失,即使用下一个行为来监督当前隐藏状态的学习。作者把这些有额外监督的隐藏状态称为【兴趣状态】,有助于捕获更多的语义意义用于兴趣表示,推动GRU的隐藏状态,从而有效地表示兴趣。

b.兴趣演化层(interest evolving layer):兴趣的多样性会导致兴趣偏移的现象。在相邻的访问中,用户的意图可能非常不同,用户的一个行为可能依赖于很久以前的行为。因此,作者提出建立与目标物相关的兴趣演化轨迹模型,设计了带有注意力机制更新门的GRU—-AUGRU。运用兴趣状态和目标物体去计算相关性。AUGRU增强了在兴趣演化中相关兴趣的影响,同时削弱了兴趣漂移所产生的非相关兴趣效应。通过在更新门中引入注意机制,AUGRU可以实现针对不同目标物体的特定兴趣演化过程。

主要贡献

a.提出一个新的网络结构来对兴趣演化过程进行建模。兴趣表示更具有表达性,CTR预估更精确。

b.设计了一个兴趣提取层。指出GRU对兴趣表示的针对性弱,故提出辅助损失。

c.设计了一个兴趣演化层,AUGRU增强了相关兴趣对目标物体的影响。

具体细节

DIN与DIEN的总体思路

1
在MLP的基础上,引入先验知识,加速模型训练,提高模型准确性。

image-20220110103347882image-20220110103434044

兴趣

1
2
3
4
兴趣是用来表达行为,行为则是挖掘兴趣。
对兴趣建模的任务就是从用户的历史行为中,挖掘出用户的兴趣,将兴趣
这个抽象的概念量化表达。
因此训练数据中,需要引入用户的历史点击行为。

DIN与DIEN的区别就是兴趣的建模方式不同。

DIN兴趣建模思路与缺点

image-20220110104128810

在DIN中,直接将每个历史行为等价于用户兴趣(方框处)。然后通过注意力机制,模拟处候选广告与每个历史点击之间的相关性,从而判断用户对候选广告感兴趣的程度。

缺点

1
2
3
4
5
6
对兴趣的表达,不能完全贴合实际情况。
a.直接吧行为等价成兴趣
b.很难通过已表现出来的行为,来反映出用户的潜在兴趣
c.之前的方法,忽略了去挖掘潜藏在用户行为背后的兴趣
eg:假设你当下点击了鞋子,则DIN认为你是对于鞋子感兴趣的,但是你背后的兴趣可能是多样的,例如还可能对衣服感兴趣。
DIN忽略了序列信息,容易基于用户所有购买历史行为综合推荐,而不是针对下一次购买推荐。

兴趣的实际情况

1
2
3
4
a.人的兴趣是多样的,在同一个时刻,拥有多种不同的兴趣应该用兴趣状态来描述。但是DIN只能捕捉到用户的一个兴趣。
b.兴趣是动态变换,都有属于自己的演化过程。但是DIN没有动态演化过程,例如你买完鞋子以后你可能对鞋子不感兴趣了,但是DIN还是会认为你对鞋子感兴趣。
c.兴趣的发展是有前后关联的
d.兴趣会存在兴趣漂移

DIEN对兴趣的建模思路

循环神经网络满足上述兴趣的特点

1
2
3
a.使用循环神经网络,从用户的序列行为信息中,提取出用户的兴趣状态
b.每个时刻下的兴趣状态用一个向量来表征,这个向量相当于一个黑盒,当中包含了丰富的语义信息,例如用户当前有哪些兴趣、对各个兴趣的强烈程度。
c.利用循环神经网络的串联结构,以及记忆特性,找到用户兴趣演化的规律。

步骤

1
2
a.从用户历史行为中提取出每个时刻的兴趣状态
b.利用注意力机制,找到与候选广告相关的那部分兴趣的演化过程,判断用户下一时刻对该兴趣的感兴趣程度

DIEN详解

image-20220110115254821

核心为历史行为处理部分,往右依次是目标广告,上下文特征,用户行为特征。

核心部分分为三层,从下到上为行为序列层,兴趣抽取层,兴趣进化层

兴趣抽取层

作用

1
挖缺并提取出每个时刻下,用户行为背后潜藏的兴趣状态。

采用的序列模型为GRU,具有记忆特性,可以缓解梯度消失,训练参数小于LSTM。

1
2
具体可参考:
https://zhuanlan.zhihu.com/p/32481747

结构:多输入,多输出

为更好的提取,设计了auxiliary loss

image-20220110120300856

1
2
3
4
这里设计了一个二分类模型来计算兴趣抽取的准确性,
我们将用户下一时刻真实的行为e(t+1)作为正例,
负采样得到的行为作为负例e(t+1)',
分别于抽取出的兴趣h(t)结合输入到设计的辅助网络中,得到预测结果,并通过logloss计算一个辅助的损失

原因

1
如果只采用最后的label去监督,则隐藏层所有状态都是为最后一个状态服务,则提取出的隐藏层状态显然失真。

训练方式:引入负采样训练

兴趣进化层

兴趣演化的特点

1
存在兴趣漂移,每个兴趣都有自己的演化过程

作用

1
模拟出与目标广告相关的进化机制

DIEN创新点

1
把这个注意力操作嵌入到GRU的更新门里面去,形成了一个AUGRU的结构,用这个层来更有针对性的模拟与目标广告相关的兴趣进化路径

得到过程

AIGRU

image-20220110122005893

image-20220110122133352

直接拿$a_t$乘上了兴趣抽取层的隐藏兴趣状态,但会使不相干的兴趣会影响到兴趣演化层的学习

AGRU

image-20220110122118801

拿$a_t$替换掉了更新门。

若某个时刻t的兴趣$h_t$与当前候选广告一点关系没有,即$a_t$为0,这个时候的隐藏状态会直接使用上一时刻的。

通过这种机制保障只关注和当前候选广告相关的兴趣演化过程。

问题

1
在替换时用标量替换向量,忽视了不同维度上值的重要性
AUGRU

image-20220110122639019

克服了AGRU忽略维度的问题。

总结

本文提出了一种新的深层网络结构,即深层兴趣演化网络(DIEN),来模拟兴趣的演化过程。在在线广告系统中,DIEN极大地提高了CTR预测的性能。具体地说,作者设计了

  • 兴趣提取层来捕获兴趣序列,利用辅助损失来提供对兴趣状态的更多监督。
  • 兴趣演化层,使用带有注意力更新门(AUGRU)的GRU来模拟与目标物品相关的兴趣演化过程。在AUGRU的帮助下,DIEN克服了兴趣漂移的干扰。兴趣演化建模有助于有效捕获兴趣,进一步提高CTR预测的性能。

鸣谢

B站,老弓的学习日记