这篇文章发布于2018年9月,是之前的DIN的改进版。我们在阿里的CTR预测(一):Deep Interest Network中提到过,他们尝试使用LSTM来学习序列化数据的特征,但是对DIN的结果没有改善。DIEN在这一点上做了改善。
Deep Interest Evolution Network(DIEN)
我们略去背景介绍,尤其是Base Model的部分,如果大家想看的话,可以去前一篇文章中找。现在我们直接介绍DIEN的结构。DIEN最大的特点是不但要找到用户的interest,还要抓住用户interest的进化过程。作者们将GRU融合到网络中,从而抓出变化的sequence。关于GRU的介绍有兴趣的话不妨看看这篇Understanding GRU networks。
上面两张图分别是DIN和DIEN的结构图,我们可以对比来看。
可以看到,DIEN仍然存在Embedding Layer,并且Embedding的方法也和之前一致。其他User profile, target AD和context feature的处理方式两者都是一致的,只是把user behavior组织成了序列数据的形式,并把简单的使用外积完成的activation unit变成了一个attention-based GRU网络。
Interest Extractor Layer
现在我们具体来说Interest Extractor Layer,也就是GRU单元在的那个layer。顾名思义,这个Layer的主要目标是从embedding数据中提取出interest来。但一个用户在某一时间的interest不仅与当前的behavior有关,也与之前的behavior相关,所以作者们使用GRU单元来提取interest。
这是一个GRU单元的表达式,其中 i t = e b [ t ] i_t = e_b[t] it=eb[t]代表一个t时刻behaviour的embedding, σ \sigma σ是sigmoid函数, o o o代表element-by-element乘法。
他们在这一步还引入了一个 L a u x L o s s L_{aux}~Loss Laux Loss,用来辅助进行Interest Extractor。因为普通的 h t h_t ht只能从embedding中提取信息,提取的却不一定是interest。最后的action只由final interest决定,要保留中间状态的interest需要其他的激励。通过引入 L a u x