这篇文章发布于2018年9月,是以前的DIN的改进版。咱们在阿里的CTR预测(一):Deep Interest Network中提到过,他们尝试使用LSTM来学习序列化数据的特征,可是对DIN的结果没有改善。DIEN在这一点上作了改善。网络
咱们略去背景介绍,尤为是Base Model的部分,若是你们想看的话,能够去前一篇文章中找。如今咱们直接介绍DIEN的结构。DIEN最大的特色是不但要找到用户的interest,还要抓住用户interest的进化过程。做者们将GRU融合到网络中,从而抓出变化的sequence。关于GRU的介绍有兴趣的话不妨看看这篇Understanding GRU networks。函数
能够看到,DIEN仍然存在Embedding Layer,而且Embedding的方法也和以前一致。其余User profile, target AD和context feature的处理方式二者都是一致的,只是把user behavior组织成了序列数据的形式,并把简单的使用外积完成的activation unit变成了一个attention-based GRU网络。post
如今咱们具体来讲Interest Extractor Layer,也就是GRU单元在的那个layer。顾名思义,这个Layer的主要目标是从embedding数据中提取出interest来。但一个用户在某一时间的interest不只与当前的behavior有关,也与以前的behavior相关,因此做者们使用GRU单元来提取interest。学习
这是一个GRU单元的表达式,其中表明一个t时刻behaviour的embedding,
是sigmoid函数,
表明element-by-element乘法。.net
他们在这一步还引入了一个,用来辅助进行Interest Extractor。由于普通的
只能从embedding中提取信息,提取的却不必定是interest。最后的action只由final interest决定,要保留中间状态的interest须要其余的激励。经过引入
以下
3d
并将最终的模型目标设为,可让GRU在中间状态提取出interest信息。rest
以用户对衣服的interest为例,随着季节和时尚风潮的不断变化,用户的interest也会不断变化。cdn
为了利用这两个时序特征,咱们须要再增长一层GRU的变种,并加上attention机制以找到与target AD相关的interest。其中,attention function能够表示为: blog
是target AD的embedding。ci
把Attention和GRU结合起来的机制有不少种,
文章中尝试了这三种机制。
文章在公共数据和本身的数据集上都作了实验,离线实验的结果以下: