(图片付费下载自视觉中国)

作者 | 深度传送门

来源 | 深度传送门(ID:gh_5faae7b50fc5)

【导读】本文主要介绍今日头条推出的强化学习应用在推荐的最新论文[1],首次改进DQN网络解决推荐中的在线广告投放问题。
背景介绍
随着最近RL研究的火热,在推荐平台上在线广告投放策略中如何利用RL引起了大家极大的兴趣。然而,大部分基于RL的在线广告投放算法只聚焦于如何使广告收益最大化,却忽略了广告对推荐列表的用户体验可能会带来的负面影响。在推荐列表中不适当地插入广告或者插入广告太频繁都会损害推荐列表的用户体验,与此同时插入太少的广告又会减少广告收入。
因此本文提出了一种全新的广告投放策略来平衡推荐用户体验以及广告的收入。在给定推荐列表前提下,本文提出了一种基于DQN的创新架构来同时解决三个任务:是否插入广告;如果插入,插入哪一条广告;以及插入广告在推荐列表的哪个位置。实验也在某短视频平台上验证了本文算法的效果。

DQN架构
在深入本文具体的算法架构前,我们先来简单回顾下DQN的两种经典结构:
  • 图a的DQN接受的输入是state,输出是所有可能action对应的Q-value;
  • 图b的DQN接受的输入是state以及某一个action,输出是对应的Q-value。
这两种经典架构的最主要的问题是只能将action定义为插入哪一条广告,或者插入广告在列表的哪个位置,无法同时解决上述提到的三个任务。

当然,从某种程度上来说将插入位置与插入哪一条广告通过某种表示形式譬如one-hot编码来建模action是一种使用上述经典DQN的方式,这样的话action的空间会变成O(A*L),其中A是广告的空间,L是插入列表的位置空间。这样的复杂度对于实际线上的广告系统是不太能够接受的。
改进的DEAR架构
因此,本文提出了一种改进的DQN框架DEAR用来解决上述推荐系统中在线广告投放问题。该框架试图同时解决上述提到的三个任务。也就是说,本框架会同时针对所有可能的插入位置的Q-value进行预估。
如下左图所示,其实是融合了上述提到了两种经典DQN结构的结合,输入层包含State以及Action(插入哪条广告),输出层则是广告插入推荐列表的L+1位置对应的Q-value(假设推荐列表长度为L,则可以插入广告的位置为L+1种可能)。与此同时,使用一个特殊插入位置0用来表示不进行广告插入,因此输出层的长度扩展成为L+2。
DEAR框架详细的架构如下右图所示,输出层Q函数被拆解成两部分:只由state决定的V函数;以及由state和action同时决定的A函数。其中,
  • state包含了使用GRU针对推荐列表和广告进行用户序列偏好建模的p;当前用户请求的上下文信息c;以及当前请求展示的推荐列表item的特征进行拼接转换形成的低维稠密向量rec;
  • action则包含两部分:一部分是候选插入广告ad的特征;另一部分则是广告插入的位置;其中这里的前半部分会被当做输入层。

  • reward函数。Reward函数也包含两部分:一部分是广告的的收入r^ad;另一部分则是用户是否继续往下刷的奖励。基于下图的reward函数,最优的Q函数策略便可以通过Bellman等式求得。

Off-Policy训练
本文基于用户交互历史的离线日志,采用 Off-policy的方式进行训练得到最优的投放策略。如下图所示,针对每一次迭代训练:
  • (第6行)针对用户请求构建state;
  • (第7行)根据标准的off-policy执行action,也就是选取特定ad;
  • (第8行)根据设计好的reward函数,计算reward;
  • (第10行)将状态转移信息(s_t,a_t,r_t,s_t+1)存储到replay      buffer;
  • (第11行)从replay buffer中取出mini-batch的状态转移信息,来训练得到最优的Q函数参数。

实验
由于没有同时包含推荐列表和广告item的公开数据集,本文基于从某短视频网站获取的自2019年3月的数据集训练得到模型,该数据集包含两种视频:正常推荐列表的视频和广告视频。正常视频的特征包含:id、点赞数、播放完成率、评论数等;广告视频的特征包含:id、图片大小、定价等。
实验对比上本文主要挑选了如下的几个代表性的baseline进行效果对比,为了实验对比的公正性,所有对比算法使用的特征完全一致。
  • W&D。本文稍微针对W&D进行了扩展来预估是否插入广告以及预估插入广告的CTR。
  • DFM。DeepFM是在W&D基础上改进而来的一种可以额外学习特征间低阶交互的一种架构。本文的实验也表明DFM的表现好于W&D。
  • GRU。GRU4Rec使用GRU来建模用户的历史行为针对用户是否点击进行预估,本文同样也进行了扩展支持实验场景。本文的实验表明GRU4Rec效果好于W&D和DFM。
  • HDQN。HQN是一个层级DQN结构,高阶DQN决定插入位置;低阶DQN选择特定ad进行插入。本文的实验表明HDQN效果好于GRU,因为GRU只是最大化当前请求的immediate奖励,而HDQN则是最大化长期收益。
  • DEAR。本文提出的DEAR框架效果好于HDQN,因为层级的RL架构在使用off-policy方式进行联合训练时有稳定性问题。详细的效果对比,如下图所示。

参考
  1. Deep Reinforcement Learning for Online Advertising in Recommender Systems,https://arxiv.org/abs/1909.03602
(*本文为 AI科技大本营转载文章,载请联系作者

精彩推荐

早鸟票倒计时最后2天,扫码购票立减2600元
2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。

推荐阅读

  • 诺贝尔物理学奖出炉,三大天体物理学家获奖

  • 美政府再将8家中国企业列入“黑名单”,海康、科大讯飞、旷视等做出回应

  • Python入门你要懂哪些?

  • 如何保护你的Python代码(一)——现有加密方案

  • 百度回应李彦宏卸任百度云执行董事;甲骨文拟增聘 2000 员工拓展云服务;PostgreSQL 12 正式发布 | 极客头条

  • 真·上天!NASA招聘区块链"多功能复合型"人才, 欲保护飞行数据安全……

  • 10 月全国程序员工资统计,一半以上的职位 5 个月没招到人!

  • 【光说不练假把式】今天说一说Kubernetes 在有赞的实践

你点的每个“在看”,我都认真当成了喜欢

今日头条首次改进DQN网络,解决推荐中的在线广告投放问题相关推荐

  1. 另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 本文转载自:机器之心  |   参与:魔王.杜伟 作者:Yi Lu等   使用 C ...

  2. 分割 标注数据_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    选自arXiv 作者:Yi Lu等 机器之心编译 参与:魔王.杜伟 使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学 ...

  3. fcn网络训练代码_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研究者另辟蹊径,提出用图卷积网络解决语义分割问题. 选自arXiv ...

  4. gcn语义分割_另辟蹊径,中科院自动化所等首次用图卷积网络解决语义分割难题...

    选自arXiv 作者:Yi Lu等机器之心编译参与:魔王.杜伟 使用 CNN 处理图像问题已经是常规操作,但此类方法会造成局部位置信息的损失.如何解决这个问题呢?来自中科院自动化所和北京中医药大学的研 ...

  5. 今日头条这么火,主要解决了用户的哪些基本痛点

    国内AI领域崛起的新锐企业今日头条,就为用户做好了三件事,具体如下: 1.完成分发--事实上,是提供用户的个性化需求.没有人类主编选材.提取新闻,而是基于AI主编的群体智慧,让机器学习将各大媒体的头条 ...

  6. Google | 创造Youtube单次上线最高收益!解决推荐中的信息茧房困境

    星标/置顶小屋,带你解锁 最萌最前沿的NLP.搜索与推荐技术 文 | 江城 编 |  夕小瑶 今天分享一下Google在WSDM 2019的一篇将强化学习应用于Youtube推荐的论文,作者宣称是获得 ...

  7. 头条资深架构师揭秘,今日头条、抖音的推荐算法原理

    点击蓝色"架构文摘"关注我哟 加个"星标",每天上午 09:25,干货推送! 一.系统概览 推荐系统,如果用形式化的方式去描述实际上是拟合一个用户对内容满意度的 ...

  8. 今日头条的文章推荐机制是什么?

    今日头条的文章推荐机制是什么? 木木博客2015-03-28 11:15:54阅读(3982)评论(3)分享到 众所周知,今日头条是个个性化的新闻推荐引擎,在短短两年多的时间内拥有了2.2亿用户,每天 ...

  9. 今日头条的排名算法_今日头条核心技术“个性推荐算法”揭秘

    [IT168 评论]互联网给用户带来了大量的信息,满足了用户在信息时代对信息的需求,也使得用户在面对大量信息时无法从中获得对自己真正有用的那部分信息,对信息的使用效率反而降低了,而通常解决这个问题最常 ...

最新文章

  1. 9个value_counts()的小技巧,提高Pandas 数据分析效率
  2. Chrome开发者工具一个有用的快捷键组合:Ctrl+Shift+E
  3. spark 流式计算_流式传输大数据:Storm,Spark和Samza
  4. 【TypeScript系列教程06】基础类型
  5. 鸿蒙系统定位低端市场,明年年初见!鸿蒙系统会先定位中低端,后续全面升级...
  6. Mysql 零距离-入门(一)
  7. 蜥蜴与地下室(51Nod-1489)
  8. 构件与构架,我的理解
  9. Spark MLib 数据类型
  10. oracle关于时间的处理,如计算间隔天数、获取本年第一天、上月第一天、上月最后一天
  11. 2019-12-17 drivers/clocksource/arm_arch_timer.c
  12. Android APK反编译详解(转)
  13. 获取单选按钮选中的值
  14. 实战爬虫:python爬虫学习笔记之爬取搜狗|微信文章——动态网页爬取
  15. linux gcc编译模式,在Linux中GCC详细模式输出说明
  16. mysql绿盟扫描的2771_WEB 应用漏洞修复(绿盟科技扫描)与 Http 转 Https 解决方案...
  17. 股票经典书籍推荐(豪华版)
  18. oracle Parallel模式-Parallel用法(/*+PARALLEL(n)*/)
  19. 我的、新的、纯粹的:触摸荣耀长大后的面庞
  20. 数据库锁与加锁情况介绍(记录锁、间隙锁、next-key锁)

热门文章

  1. MyBatis开发入门二:一对多连表查询
  2. ios开发之系统信息
  3. JAVA Static方法与单例模式的理解
  4. 做好职业规划:做自己的船长
  5. MySQL 5.5 服务器变量详解(二)
  6. [转载] sql server 2000系统表解释
  7. 数据结构 – 顺序表
  8. Python将小于0的书数换成0的几种方式
  9. Vijos1683 有根树的同构问题
  10. 腾讯Bugly异常崩溃SDK接入