博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
阿里的CTR预测(二):Deep Interest Evolution Network
阅读量:6576 次
发布时间:2019-06-24

本文共 1502 字,大约阅读时间需要 5 分钟。

这篇文章发布于2018年9月,是之前的DIN的改进版。我们在中提到过,他们尝试使用LSTM来学习序列化数据的特征,但是对DIN的结果没有改善。DIEN在这一点上做了改善。

Deep Interest Evolution Network(DIEN)

我们略去背景介绍,尤其是Base Model的部分,如果大家想看的话,可以去前一篇文章中找。现在我们直接介绍DIEN的结构。DIEN最大的特点是不但要找到用户的interest,还要抓住用户interest的进化过程。作者们将GRU融合到网络中,从而抓出变化的sequence。关于GRU的介绍有兴趣的话不妨看看这篇。

上面两张图分别是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]代表一个t时刻behaviour的embedding,\sigma是sigmoid函数,o代表element-by-element乘法。

他们在这一步还引入了一个L_{aux}~Loss,用来辅助进行Interest Extractor。因为普通的h_t只能从embedding中提取信息,提取的却不一定是interest。最后的action只由final interest决定,要保留中间状态的interest需要其他的激励。通过引入L_{aux}~Loss如下

并将最终的模型目标设为L = L_{target} + L_{aux},可以让GRU在中间状态提取出interest信息。

Interest Evolution Layer

以用户对衣服的interest为例,随着季节和时尚风潮的不断变化,用户的interest也会不断变化。

  • 追踪用户的interest可以使我们学习final interest的表达时包含更多的历史信息
  • 可以根据interest的变化趋势更好地进行CTR预测 而interest在变化过程中遵循如下规律:
  • interest drift:用户在某一段时间的interest会有一定的集中性。比如用户可能在一段时间内不断买书,在另一段时间内不断买衣服。
  • interest individual:一种interest有自己的发展趋势,不同种类的interest之间很少相互影响,例如买书和买衣服的interest基本互不相关。

为了利用这两个时序特征,我们需要再增加一层GRU的变种,并加上attention机制以找到与target AD相关的interest。其中,attention function可以表示为:

e_a是target AD的embedding。

把Attention和GRU结合起来的机制有很多种,

  • AIGRU: i_t'  = h_t * a_t
  • AGRU: h_t' = (1 - a_t) * h_{t - 1}' + a_t * \tilde{h_t'}
  • AUGRU: \tilde{u_t'} = a_t * u_t';~ h_t' = (1 - \tilde{u_t'}) \circ h_{t-1}' + \tilde{u_t'} \circ \tilde{h_t'}

文章中尝试了这三种机制。

Results

文章在公共数据和自己的数据集上都做了实验,离线实验的结果如下:

转载地址:http://fagjo.baihongyu.com/

你可能感兴趣的文章
经验的总结,需要记录。
查看>>
我的家庭私有云计划-21
查看>>
运维人员如何最大限度避免误删除文件(20160627更新)
查看>>
《构建高可用Linux服务器(第二版)》正式发售
查看>>
Nginx upstream的几种分配方式
查看>>
高薪源于专注和极致!
查看>>
Lync Server 2010的部署系列_第三章 证书、架构、DNS规划
查看>>
SCCM 2012系列17 操作系统播发⑥
查看>>
SystemCenter2012SP1实践(12)服务器、网络和存储配置
查看>>
微软System_Center_2012合作伙伴销售工具
查看>>
VMware vSphere 5.1 群集深入解析(二十三)- 数据存储架构与设计
查看>>
针对mpls TE的OSPF扩展
查看>>
RHEL6入门系列之十六,管理文件和目录的权限与归属
查看>>
MongoDB聚合命令比较
查看>>
质量管理永不过时——“Jolt大奖精选丛书”有奖征文
查看>>
充分的总结分析系统,来调整CMDB及流程。
查看>>
二、服务器优化(2)版本更新与负载预估
查看>>
svn 代码管理工具
查看>>
【Go语言】【7】GO语言的切片
查看>>
【斗医】【14】Web应用开发20天
查看>>