这篇文章发布于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]代表一个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

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

阿里的CTR预测(二):Deep Interest Evolution Network相关推荐

  1. 阿里的CTR预测:Deep Interest Network

    https://blog.csdn.net/friyal/article/details/83063948 https://zhuanlan.zhihu.com/p/51623339 https:// ...

  2. 8.Deep Interest Evolution Network for Click-Through Rate Prediction论文详解

    一.背景总述 2017年6月阿里妈妈的精准定向检索及基础算法团队放出了论文Deep Interest Network(DIN),用于解决电子商务的CTR预估,再次基础上,最近又放出了改进版本Deep ...

  3. 推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network)

    推荐系统(十二)阿里深度兴趣网络(二):DIEN模型(Deep Interest Evolution Network) 推荐系统系列博客: 推荐系统(一)推荐系统整体概览 推荐系统(二)GBDT+LR ...

  4. CTR深度学习模型之 DIEN(Deep Interest Evolution Network) 的理解与示例

    本文介绍阿里提出的兴趣进化网络(Deep Interest Evolution Network,以下简称DIEN. 前一篇文章介绍的 DIN 模型如下图所示: DIN 直接把用户的某个行为作为用户的兴 ...

  5. CTR预估专栏 | 一文搞懂阿里Deep Interest Network

    作者 | 李宁宁 来源 | 机器学习荐货情报局(ID:ML_CIA) 编辑 | Vincent AI 前线导读:Deep Interest Network(DIN) 是盖坤大神领导的阿里妈妈的精准定向 ...

  6. CTR深度学习模型之 DIN(Deep Interest Network) 的理解与例子

    在电商领域,每个用户都有丰富的历史行为数据,这些数据具有如下特点: 多样性(Diversity):用户可能对多种商品感兴趣,例如手机.衣服. 局部激活(Local Activation):用户是否点击 ...

  7. 7.Deep Interest Network for Click-Through Rate Prediction论文详解

    一.总述 这是2018年阿里Guorui Zhou等人发表在KDD上的一篇论文.论文提出在CTR任务中,丰富的用户历史行为数据包含了用户多种兴趣,对于不同的候选广告,起作用的用户历史行为数据表示应该不 ...

  8. Deep Interest Network

    作者 | 李宁宁 来源 | 机器学习荐货情报局(ID:ML_CIA) 编辑 | Vincent AI 前线导读:Deep Interest Network(DIN) 是盖坤大神领导的阿里妈妈的精准定向 ...

  9. 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码)

    CTR 系列文章: 广告点击率(CTR)预测经典模型 GBDT + LR 理解与实践(附数据 + 代码) CTR经典模型串讲:FM / FFM / 双线性 FFM 相关推导与理解 CTR深度学习模型之 ...

最新文章

  1. Array 数组去重 总结10方法(7)
  2. keras 的 example 文件 mnist_swwae.py 解析
  3. yii2 pdo mysql 乱码_YII2.0使用PDO连接Oracle库查询结果中文显示乱码问题
  4. C语言写的程序如何控制计算机硬件
  5. jqgrid下载,引入
  6. 高分辨率下应用程序显示模糊的解决办法
  7. EL表达式+JSTL,forEach的两种用法
  8. ArcGIS Server(详细介绍)转
  9. 交通仿真软件测试自学,交通仿真及常用的仿真软件简介
  10. python wps api_WPS API操作
  11. 普林斯顿微积分读本05第四章--求解多项式的极限问题
  12. 如何快速学习一门技术?十步学习法
  13. Linux 压缩文件夹tar/zip
  14. flashfxp连接失败,flashfxp连接失败怎么办
  15. 如何进行支付流程及安全测试?
  16. 不给客户添麻烦的 阿拉丁
  17. [Python] 七段数码管绘制
  18. 哈利波特魔法游戏(原创)
  19. XSS-labs通关游戏
  20. 相约AIIA!百度飞桨深度学习公开课预约中

热门文章

  1. 验证码生成php代码,一个php验证码生成类代码
  2. 【数据仓库】数据仓库设计前如何粗估所需的存储空间大小?
  3. 【PostgreSQL-9.6.3】数据库的启动、登录、退出、关闭
  4. 使用 HttpURLConnection URL 发送请求,解决字符编码问题
  5. vue项目初始化时npm run dev报错webpack-dev-server解决方法
  6. 如何创建一个<style> tag with Javascript?
  7. git merge和git merge --no-ff有什么区别?
  8. 使TextView在Android上可滚动
  9. win11搜索栏无法输入 Windows11搜索栏无法输入的解决方法
  10. SpringBoot整合RabbitMQ测试代码