今天要讲的这个网络同样是出自阿里巴巴,这个模型能够被提出来的核心点是阿里巴巴想通过模型模拟了用户兴趣的进化过程。玄乎一点就是想你和用户兴趣转移过程,这一点被提出来还是十分吸引人的。那么接下来咱们就看看DIEN的“进化”动机。
DIEN模型
上文提到了,如果想要刻画出用户兴趣转移应该从哪方面入手呢? 刻画一个事务的变化过程一定是通过一个序列进行表达是最合适的,所以大方向确定了,接下来咱们看看是如何使用的。
- 它加强了最近行为对下次行为预测的影响。在这个例子中,用户近期购 买机械键盘的概率会明显高于再买一双篮球鞋或购买其他商品的概率。
- 序列模型能够学习到购买趋势的信息。在这个例子中,序列模型能够在一定程度上建立 “篮球鞋” 到 “机械键盘” 的转移概率。如果这个转移概率在全局统计意义上是足够高的,那么在用户购买篮球鞋时,推荐机械键盘也会成为一个不错的选项。直观上,二者的用户群体很有可能是一致的。
从宏观上看,大部分模型刻画的都是用户喜欢什么,所以推荐什么的逻辑,但是推荐的综合逻辑应该是用户下一个会购买什么的逻辑是更加适合业务发展的。那么就看看DIEN模型是如何设计的。
模型仍是输入层+Embedding 层+连接层+多 层全连接神经网络+输出层的整体架构。
下图是论文中的原图,咱们来一点一点的解读网络结构,
上图最右边的图例分别是表示
- 行为序列层(Behavior Layer, 浅绿色部分):其主要作用是把原始的id类行为序列转换成 Embedding 行为序列。
- 兴趣抽取层(Interest Extractor Layer, 米黄色部分):其主要作用是通过 模拟用户兴趣迁移过程,抽取用户兴趣。
- 兴趣进化层(Interest Evolving Layer, 浅红色部分):其主要作用是通过 在兴趣抽取层基础上加人注意力机制,模拟与当前目标广告相关的兴趣进化过 程。
与用户行为序列平行的分别表示目标广告,环境特征以及用户行为。
兴趣抽取层的结构
兴趣抽取层的基本结构是GRU( Gated Recurrent Unit , 门循环单元 )网络。把用户的行为抽象成一个行为的预测,通过历史的行为预测用户的下一次行为。这里有一个问题,论上,在兴趣状态向量序列的基础上,GRU 网络已 经可以做出下一个兴趣状态向量的预测,但DIEN却进一步设置了兴趣进化层,这是为什么呢?
兴趣进化网络的结构
DIEN 兴趣进化层相比兴趣抽取层最大的特点是加人了注意力机制。这一特 点与DIN的一脉相承。兴趣进 化层注意力得分的生成过程与 DIN 完全一致 ,都是当前状态向量与目标广告向量 进行互作用的结果。也就是说,DIEN 在模拟兴趣进化的过程中,需要考虑与目 标广告的相关性。这里就是上面一个问题的答案。在兴趣抽取层之上再加上兴趣进化层就是为了 更有针对性地模拟与目标广告相关的兴趣进化路径。
AUGRU
上图中有一个AUGRU的神经单元,其实这个单元是给GRU加入一个Attention机制,也就是加入的关系的强弱,咱们下面看看形式化的表达。传统的GRU传播极致如下。
ut=σ(Wuit+Uuht−1+bu)rt=σ(Writ+Urht−1+br)ht=tanh(Whit+rt○Uuht−1+bh)ht=(1−ut)○ht−1+ht○ut
其中○表示元素积操作,大写字母的U、W是要学习的权重,it是输人状态向量。也就是行为序列层的各行为Embedding向量b(t),ht是GRU网络中第t个隐状态向量.而attention操作加入到ut中。
ut=at⋅utht′=(1−ut)○ht−1′+ht○ut
可见在原始的改动就是将ut使用attention向量at进行处理,并灌入原始的GRU网络中,注意力得分方式与DIN网络完全一致。
总而言之
其实从整体来看,整个优化思路十分清晰,将事务的变化过程通过序列的方式进行表达,能够给我们很多的启发,如果你也想刻画某个事务的变化过程不妨使用这种方式进行处理。
附录
讲到这里其实大部分的网络结构都已经说完了,下面做一个大的整合,看看每个时期都使用什么样的网络模型合适。