强化学习大规模应用还远吗?Youtube推荐已强势上线
来源 | 转载自深度传送门
导读:本文将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文主要根据几大顶会2019的最新论文,总结一下深度强化学习给推荐系统以及CTR预估工业界带来的最新进展。
凡是Google出品,必属精品。遥想当年(其实也就近在2016),YoutubeDNN[1]以及WDL[2]的横空出世引领了推荐系统以及CTR预估工业界潮流至今,掀起了召回层与排序层算法大规模优雅而高效地升级深度学习模型的浪潮。发展至今其实已经形成了工业界推荐系统与广告CTR预估的庞大家族群,具体可以参见下文中的家族图谱。
https://zhuanlan.zhihu.com/p/69050253
当然,本文的重点不是回首往事。好汉不提当年勇,而是立足当下看看接下来推荐系统和CTR预估工业界的路在何方。起因就在于Google先后在WSDM 2019和IJCAI 2019发表了极具工业界风格应用强化学习的论文,而且声称已经在Youtube推荐排序层的线上实验中相对线上已有的深度学习模型获得了显著的收益。因此,本文就总结一下几大顶会2019上强化学习应用于推荐系统和CTR预估工业界的最新进展,也欢迎各位有经验的同行多多交流共同进步。
众所周知,强化学习虽然在围棋、游戏等领域大放异彩,但是在推荐系统以及CTR预估上的应用一直有很多难点尚未解决。一方面是因为强化学习与推荐系统结合的探索刚刚开始,目前的方案尚未像传统机器学习升级深度学习那样效果显著,升级强化学习在效果上相对已有的深度学习模型暂时还无法做到有质的飞跃;另外一方面,就是离线模型训练与线上实验在线学习环境搭建较为复杂。这就造成了目前在工业界应用强化学习模型性价比并不高。而且尴尬的是,很多论文在升级RL比较效果的时候使用的Baseline都是传统机器学习算法而不是最新的深度学习模型,其实从某种程度上来说是很难让人信服的。
所以,Google这两篇强化学习应用于YouTube推荐论文的出现给大家带来了比较振奋人心的希望。首先,论文中宣称效果对比使用的Baseline就是YouTube推荐线上最新的深度学习模型;其次,两篇论文从不同的指标维度都带来了比较明显的效果增长。而且其中一篇论文的作者Minmin Chen大神在Industry Day上也提到线上实验效果显示这个是YouTube单个项目近两年来最大的reward增长。这虽然不代表着强化学习与推荐系统的结合方案已经很成熟了,至少给大家带来了一些在工业界积极尝试的动力。
Top-K Off-Policy Correction for a REINFORCE Recommender System,WSDM 2019
本文的主要亮点是提出了一种Top-K的Off-Policy修正方案将RL中Policy-Gradient类算法得以应用在动作空间数以百万计的Youtube在线推荐系统中。
众所周知[1],Youtube推荐系统架构主要分为两层:召回和排序。本文中的算法应用在召回侧。建模思路与RNN召回类似,给定用户的行为历史,预测用户下一次的点击item。受限于On-Policy方法对系统训练架构要求复杂,所以本文中转而采用Off-Policy的训练策略。也就是说并不是根据用户的交互进行实时的策略更新,而是根据收集到日志中用户反馈进行模型训练。
这种Off-Policy的训练方式会给Policy-Gradient类的模型训练带来一定的问题,一方面策略梯度是由不同的policy计算出来的;另一方面同一个用户的行为历史也收集了其他召回策略的数据。所以文中提出了一种基于importance weighting的Off-Policy修正方案,针对策略梯度的计算进行了一阶的近似推导。

因为是基于用户的交互历史预测下一个用户点击的item,所以文中也采用RNN针对用户State的转换进行建模。文中提到实验了包括LSTM、GRU等RNN单元,发现Chaos Free的RNN单元因为稳定高效而使用起来效果最好。
在上述的策略修正公式(3)中最难获取到的是用户的行为策略,理想情况下是收集日志的时候同时把用户相应的用户策略也就是点击概率给收集下来,但由于策略不同等客观原因文中针对用户的行为策略使用另外一组θ'参数进行预估,而且防止它的梯度回传影响主RNN网络的训练。

另外,由于在推荐系统中,用户可以同时看到k个展示给用户的候选item,用户可能同时与一次展示出来的多个item进行交互。因此需要扩展策略根据用户的行为历史预测下一次用户可能点击的top-K个item。
假设同时展示K个不重复item的reward奖励等于每个item的reward的之和,根据公式推导我们可以得到Top-K的Off-Policy修正的策略梯度如下,与上面Top 1的修正公式相比主要是多了一个包含K的系数。也就是说,随着K的增长,策略梯度会比原来的公式更快地降到0。

从实验结果的角度,文中进行了一系列的实验进行效果比较和验证,其中Top-K的Off-Policy修正方案带来了线上0.85%的播放时长提升。而且前文也提到过,Minmin Chen大神在Industry Day上也提到线上实验效果显示这个是YouTube单个项目近两年来最大的reward增长。
另外,在最新一期的Google AI Blog[3]上,宣布提出了一种基于强化学习Off-Policy的分类方法,可以预测出哪种机器学习模型会产生最好结果。感兴趣的可以继续延伸阅读一下。
Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology,IJCAI 2019
这篇文章相比于第一篇文章时间要晚一点,提出的方法也不尽相同,不过类似的是都宣称在Youtube线上推荐系统上取得了不错的效果。主要贡献是提出了一种名为SLATEQ的Q-Learning算法,优化推荐系统里面同时展示给用户多个item情况的长期收益LTV(Long-term Value)。
这里首先讲一下这篇文章与第一篇文章的不同,首先,第一篇文章假设了在推荐系统中同时展示K个不重复item(本文中称为Slate)的奖励reward等于每个item的reward的之和,这个在本文中认为实际上是不合理的,因此建模了Slate的LTV和单个item的LTV之间的关系;其次,本文显式的建模与评估了整个系统LTV的收益。
从系统架构的角度,本文扩展了Youtube现有的只注重即时收益的ranker,也就是针对CTR等指标以及长期收益LTV进行多目标前向深度网络学习。值得注意的是,为了保证线上实验的公正性,这里除了多目标外,其他与Youtube线上的特征以及网络参数都完全一样。

最后实验部分,本文中评估的是User engagement,可以从下图中看到效果提升是明显且稳定的。

其他业界进展
除了Google的上述两篇论文外,工业界其他公司也在积极尝试强化学习在推荐系统中的实战,下面主要简要列出来一些到目前为止的进展:
Generative Adversarial User Model for Reinforcement Learning Based Recommendation System,ICML 2019
在蚂蚁金服被 ICML 2019 接收的这篇论文中,作者们提出用生成对抗用户模型作为强化学习的模拟环境,先在此模拟环境中进行线下训练,再根据线上用户反馈进行即时策略更新,以此大大减少线上训练样本需求。此外,作者提出以集合(set)为单位而非单个物品(item)为单位进行推荐,并利用 Cascading-DQN 的神经网络结构解决组合推荐策略搜索空间过大的问题[1]。
Virtual-Taobao: Virtualizing real-world online retail environment for reinforcement learning,AAAI 2019
阿里 at AAAI 2019,“虚拟淘宝”模拟器,利用RL与GAN规划最佳商品搜索显示策略,在真实环境中让淘宝的收入提高2%。美中不足的是baseline仍然是传统监督学习而不是深度学习方案。
Large-scale Interactive Recommendation with Tree-structured Policy Gradient,AAAI 2019
参考文献
[1] Deep Neural Networks for YouTube Recommendations, RecSys 2016
[2] Wide & Deep Learning for Recommender Systems,
[3] ai.googleblog.com/2019/
[4] Reinforcement Learning to Optimize Long-term User Engagement in Recommender Systems
[5] 阿里的《 强化学习在阿里的技术演进与业务创新》
[6] 京东的 Deep Reinforcement Learning for Page-wise Recommendations
原文链接:https://zhuanlan.zhihu.com/p/69559974F
(*本文为 AI科技大本营转载文章,转载请联系原作者)
◆
精彩推荐
◆
《程序员大本营》6月刊来啦~
更多福利限时免费领取:CSDN重磅技术大会精选视频以及200+PPT;机器学习、知识图谱、计算机视觉、区块链等100+技术公开课及PPT全奉送...
推荐阅读:
刷新记录,算法开源!字节跳动获人体姿态估计竞赛双冠 | CVPR 2019
ACL 2019 | 精选8篇微软ACL论文解读,一览最新研究进展
吐血总结!100个Python面试问题集锦(下)
六维图见过么?Python 画出来了
Facebook 发币 Libra;谷歌十亿美金为穷人造房;第四代树莓派 Raspberry Pi 4 发布 | 开发者周刊
华为“舵手”任正非
独家 | Vitalik Buterin:以太坊2.0之跨分片交易
面试官:你简历中写用过docker,能说说容器和镜像的区别吗?
想换行做 5G 的开发者到底该咋办?
如何向妹子解释:为啥 5G 来了需要换 SIM卡!

相关文章:

layui select 与 vue 的结合使用
2019独角兽企业重金招聘Python工程师标准>>> 1. 创建一个select元素 <form class"layui-form layui-form-pane all-account-filter-form"><div class"layui-form-item"><div class"layui-inline"><label class&…

OpenCV 2.2.0 CvvImage的使用
转自:http://blog.csdn.net/raocong2010/archive/2011/01/17/6146158.aspx# 前几日,OpenCV 2.2.0版本出现了...但是...以前版本的CvvImage类不见了...为了能够继续使用这个类,下面把这个类的源代码贴出来,使用的时候将该代码加入到…

c/c++标准预定义宏
转自:http://www.eefocus.com/andysun001/blog/10-06/192018_008b3.html 一、标准预定义宏The standard predefined macros are specified by the relevant language standards, so they are available with all compilers that implement those standards. Older c…

阿里AI攻克心血管识别技术,冠脉中心线提取论文入选国际医学影像会议
阿里在医疗AI领域取得新进展,继创下肺结节检测、肝结节诊断技术的重大突破后,又攻克了难度系数更高的心血管识别技术。 近日,阿里达摩院机器智能实验室有关冠状动脉中心线提取的论文已被国际顶级医学影像会议MICCAI 2019提前接收。 阿里AI论…

自由程序员在国外
可靠的做法是,在一些像oDesk这样的网站上找一些临时开发任务,在Linked In网站上提交一份个人简历。这样将有助于你在出行后尽早的找到可干的项目,而不必到时大减价来抢其他程序员的活儿(或消减自己的预算)。 从来不缺乏你可以捐赠代码的开源项…

关于spring aop Advisor排序问题
关于spring aop Advisor排序问题 当我们使用多个Advisor的时候有时候需要排序,这时候可以用注解org.springframework.core.annotation.Order或者实现org.springframework.core.Ordered接口。 示例代码: import org.aspectj.lang.ProceedingJoinPoint; im…

NLP重大突破?一文读懂XLNet“屠榜”背后的原理
作者 | 李理 原文链接:https://fancyerii.github.io/2019/06/30/xlnet-theory/ 本文介绍XLNet的基本原理,读者阅读前需要了解BERT等相关模型,不熟悉的读者建议学习BERT课程。 语言模型和BERT各自的优缺点 在论文里作者使用了一些术语&#…

CSS3支持IE6, 7, and 8的边框属性
我们都知道,IE 6,7不支持新增加的CSS3属性,甚至与IE8是CSS3还没有完全准备好。你知道吗,今天给大家分享一个脚本工具,可以帮助您启用CSS3的支持IE浏览器(IE6)与新的CSS3属性,包括:bo…

解决:VS 2005/2008 中 fstream 不能处理带有中文路径的问题
转自:http://blog.csdn.net/code_robot/archive/2010/06/23/5688867.aspx 有时候用ifstream或ofstream打开带有中文路径的文件会失败。 解决办法:1、使用C语言的函数设置为中文运行环境setlocale(LC_ALL,"Chinese-simplified"); 2、使用STL函…

NLP文本标注工具与平台(数据标注公司)
最近在做NLP相关项目,包括句法分析、情感分析等,有大量数据需要标注。我评估了几个文本标注工具,也接触了几家数据标注公司和平台,总结如下,供各位参考。 文本标注平台(标注外包公司) 数据标注公…

一文读懂基于神经网络的图片风格转移
作者 | moliam转载自 CSDN 博客前言将A图片的风格转移到B图片上,指的是将A图片的抽象艺术风格(如线条、色彩等等)和B图片的内容框架合成为一幅图。自然地,A图片称为风格图,而B图片就称为内容图。就像这样:左…
【物联网中间件平台-01】真正面向物联网的组态软件 YFIOs和YFHMI的前生今世
1前言 从2001年进入工控领域以来,前后7年多的时间开发了诸如二型计量监控系统、焦炉四大机车自动化系统、烧结配水监控系统、隧道广告影像系统、通用组态软件、嵌入式系统组态软件(基于WINCE系统)、LED视频影像系统和ICU病室输液管理等系统。…

OpenCV常遇问题解决方法汇总
1、cvLoad的使用和释放: CvMat *mat (CvMat*)cvLoad("a.xml"); cvRelease((void**)&mat); 2、cvCreateMatHeader的使用和释放: CvMat *mat cvCreateMatHeader(4, 2, CV_64FC1); cvReleaseMatHeader(&mat); 在OpenCV2.1及OpenCV2.2中…

分享我如何在7年时间里成长为阿里Java架构师(附学习路线图)
2019独角兽企业重金招聘Python工程师标准>>> 如何更高效的学习? 1.架构师应不应该写代码 总的来说,架构师和程序员在某些方面上有点像产品经理和用户的关系,大部分程序员并不会主动告诉你他们想要什么、哪里需要优化,甚…

github 与git 使用 及配置
git 是网上很流行的版本控制工具 ,尝试 熟悉并使用 它(也有windows版本,这里介绍mac的) 额,再操作前 先看看这个 并跟着做做 http://www.uml.org.cn/pzgl/201204285.asp 1,到github官网 申请账号 2,…

如何发布ActiveX 控件
转自:http://blog.csdn.net/zougangx/archive/2008/07/30/2738147.aspx [背景] 做过ActiveX控件的朋友都知道,要想把自己做的ActiveX控件功能放在自己的网页上使用,那么用户在客户端就必须进行本地的注册,也就是说用户得首先要把该…

200行代码实现一个滑动验证码
作者 | 崔庆才 转载自进击的Coder(ID: FightingCoder)做网络爬虫的同学肯定见过各种各样的验证码,比较高级的有滑动、点选等样式,看起来好像挺复杂的,但实际上它们的核心原理还是还是很清晰的,本文章大致说…

Envoy源码分析之Dispatcher
2019独角兽企业重金招聘Python工程师标准>>> 摘要: Dispatcher 在Envoy的代码中Dispatcher是随处可见的,可以说在Envoy中有着举足轻重的地位,一个Dispatcher就是一个EventLoop,其承担了任务队列、网络事件处理、定时器…

Windows 8 快捷键大全
为什么80%的码农都做不了架构师?>>> win8快捷键大全: Windows 键 X :Windows快捷菜单 Windows 键 C :显示个性分类和时钟 Windows 键 I :打开“设置”个性分类 Windows 键 K :打开“设备”…

Activex、OLE、COM、OCX、DLL之间区别、联系
转自:http://baike.baidu.com/view/393671.htm 概述 .ocx是ocx控件的扩展名,与.exe .dll同属于PE文件。下面说说什么是ocx控件! OCX 是对象类别扩充组件。 如果你用过Visual Basic或者Delphi一类的可视化编程工具,那么对控件这个概念一定不会陌生&#…

不写一行代码,也能玩转Kaggle竞赛?
整理 | Jane 出品 | AI科技大本营(ID:rgznai100)【导读】AI科技大本营会给大家分享一些 Kaggle 上的资源,如 Kaggle 开放的数据集,也会分享一些好的竞赛方案或有意义的竞赛经验,帮助大家成长。今天…

认识flask框架-2
1.json:基于键值对的字符串,轻量级的数据交互格式,用来传输数据 2.json模块 dumps:把字典转化成json字符串。 loads:把json字符串转成字典。 dump、load操作的是文件对象。 jsonify可以返回json字符串,会修改响应的类型为applicat…

Sencha-概念-Layouts(布局)(官网文档翻译8)
Sencha-概念-Layouts(布局)(官网文档翻译8) 介绍和HBox 布局描述了在您的应用程序的组件的大小和位置。例如,一个电子邮件客户端可能具有固定到左边的消息的列表,以说,可用的宽度的三分之一,和一个消息观看…

Photoshop图像处理操作汇总
1、给图像添加外边框,保持图像原有大小: 点击图层-->新建-->图层,弹出新图层对话框,点击确定,点按"Ctrl A”键将图像全部选中,再点击编辑>描边,弹出描边对话框,在宽…

人工智能进军餐饮:AI调酒,越喝越有
作者 | 神经小姐姐来源 | 转载自HyperAI超神经(ID:HyperAI)导读:“吃”,现在已经成了一种文化,对食物的不懈追求,可以说是人类历史的一种推动力。从烹饪的进化,到现在花样百出的美食,…

LaTeX - 带圈数字
2019独角兽企业重金招聘Python工程师标准>>> 法I. by zepinglee \documentclass[UTF8]{ctexart} \XeTeXcharclass①1 \XeTeXcharclass②1 \XeTeXcharclass③1 \XeTeXcharclass④1 \XeTeXcharclass⑤1 \XeTeXcharclass⑥1 \XeTeXcharclass⑦1 \XeTeXcharclass⑧1 \Xe…

akcms折腾记
这几天闲着无聊,找cms折腾一下,先是搞了大名鼎鼎的dedecms,不过那繁琐真不是盖的,想修改个模板不知从哪里动手。虽然现在工作的后台也是由dedecms改过来的,但平时也就发发文章而已。 然后就找到了这个神器:…

VC++ OCX 控件注册
转自:http://www.cctry.com/thread-5334-1-1.html 方法一:在dos或Windows命令行下运行:regsvr32 ocxname.ocx 注册 示例: regsvr32 netshare.ocx //注册netshare.ocx控件 regsvr32 /u netshare.ocx //解除netshare.ocx控件…

程序猿生存指南-4 借钱风波
借钱风波(10)临近春节,我的朋友圈被各个公司的年终奖刷屏。土豪互联网公司有送现金的,有送豪车的,还有送别墅的。它们享受着移动互联网的红利,赚得盆满钵满。不过翻看公司请媒体写的那些报道,就…

赛灵思:人工智能芯片发展方向与误区
演讲嘉宾 | 姚颂,赛灵思人工智能业务资深总监整理 | 夕颜人工智能发展过程中,算力是一个重要的因素,算力就像是 AI 的燃油,没有燃油,AI 哪也去不了。而为 AI 应用提供算力的,正是各种各样的芯片。而近几年&…