Youtube推荐已经上线RL了,强化学习在推荐广告工业界大规模应用还远吗?

2019 年 8 月 21 日

Youtube推荐已经上线RL了,强化学习在推荐广告工业界大规模应用还远吗?

本文来自“深度推荐系统”专栏,这个系列将介绍在深度学习的强力驱动下,给推荐系统工业界所带来的最前沿的变化。本文主要根据几大顶会2019的最新论文,总结一下深度强化学习给推荐系统以及CTR预估工业界带来的最新进展。


凡是 Google 出品,必属精品。遥想当年(其实也就近在 2016),YoutubeDNN[1]以及 WDL[2]的横空出世引领了推荐系统以及 CTR 预估工业界潮流至今,掀起了召回层与排序层算法大规模优雅而高效地升级深度学习模型的浪潮。发展至今其实已经形成了工业界推荐系统与广告 CTR 预估的庞大家族群,具体可以参见之前文章中的家族图谱


当然,本文的重点不是回首往事。好汉不提当年勇,而是立足当下看看接下来推荐系统和 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/69559974


2019 年 8 月 21 日 15:067550

评论

发布
暂无评论
发现更多内容

MySQL explain 中的 rows 究竟是如何计算的?

flyer0126

MySQL

年近而立,Java何去何从?

华为云开发者社区

Java 程序员 编程语言 开源代码 Bugayenko Yegor

MySQL备份脚本,应该这么写

Simon

MySQL

腾讯人均月薪7.5w,我这是又被平均了?

程序员生活志

腾讯 职场 薪资

应用研发平台特惠专场,助力企业加速数智化发展

应用研发平台EMAS

架构师训练营 - 第 7 周学习总结

红了哟

第10周总结+作业

林毋梦

敏捷软件工程实践书籍

Bob Jiang

敏捷 敏捷书籍 工程实践

IT人的身体健康

隆隆

IT人健康

二叉查找树-增删查和针对重复数据的 Java 实现

多选参数

数据结构 算法 二叉树 数据结构与算法

简谈Python3关键字nonlocal使用场景

王坤祥

Python Python基础

合约一键跟单软件开发技术,跟单系统搭建app

WX13823153201

比特币 区块链

智“营”时代,众盟科技荣膺“2020毕马威中国领先消费科技TOP50企业榜单”

人称T客

网站改版神秘公式,教你躲避改版陷阱

北柯

创业 网站 网站搭建 网站改版

图解JavaScript——代码实现(new、Object.create()、Object.assign()、flat()等十四种代码原理实现不香吗?)

执鸢者

Java 前端 代码原理

翻译: Effective Go (5)

申屠鹏会

golang 翻译

领域驱动设计(DDD)实践之路(二):事件驱动与CQRS

vivo互联网技术

DDD 架构设计 CQRS

JavaScript中的正则表达式详解

华为云开发者社区

Java 正则表达式 程序员 字符串 语法

Rust竟然没有异常处理?

袁承兴

rust 异常 java异常处理

troubleshoot之:分析OutOfMemoryError异常

程序那些事

Java JVM 异常 JIT

面试造火箭,看下这些大厂原题

前端有的玩

Java 前端 面试题

一瓶可乐的自动售货机指令“旅程”

华为云开发者社区

物联网 嵌入式 华为云 数据传输 无线通信

AI能写浙江高考满分作文了!在线满分作文生成器,一键圆你满分梦

程序员生活志

AI

libuv 异步模型之设计概览

Huayra

libuv 异步模型

一口气搞懂「文件系统」,就靠这 20 张图了

小林coding

操作系统 计算机基础 文件管理 文件存储 文件系统

HashMap、LinkedHashMap 学习笔记

陈俊

Phalcon注解学习

半亩房顶

php phalcon

队列高级应用之设计一个高性能线程池

架构师修行之路

分布式 线程池 架构设计 架构师

推荐一个替代印象笔记,onenote的神奇笔记!

申屠鹏会

笔记

面试官:说下对cookie,session,Token的理解

Java小咖秀

Java Java 面试

实践总结:在 Java 中调用 Go 代码

jiacai2050

Youtube推荐已经上线RL了,强化学习在推荐广告工业界大规模应用还远吗?-InfoQ