强化学习在推荐算法的应用论文整理(二)

2019 年 11 月 29 日

强化学习在推荐算法的应用论文整理(二)

Top-K Off-Policy Correction for a REINFORCE Recommender System


提出一种 Top-K 的 Off-Policy 修正方案将 RL 中的 REINFORCE 算法应用在动作空间数以百万计的 Youtube 在线推荐系统中。


传统的 REINFORCE 算法策略梯度为:



其中 [公式] 为:



但是在工业级的推荐场景,对策略进行实时的更新并根据新的策略生成样本轨迹是很难做到的,因此只能使用日志里面的用户反馈去构造训练样本进行模型训练。这种 Off-Policy 的训练方法会给模型训练带来一些问题,一方面策略梯度是由不同的 policy 计算出来的;另一方面同一个用户的行为历史也收集了其他召回策略的数据。所以文中提出了一种基于 importance weighting 的 Off-Policy 修正方案,针对策略梯度的计算进行了一阶的近似推导。



修正后最终的梯度为:



公式中用户的状态 st 是通过 RNN 单元来提取的,其它项可通过下面的模型来获取到,



另外在推荐系统中,用户可同时看到 k 个展示 item,并且可能同时与一次展示出来的多个 item 进行交互。因此需要扩展策略为根据用户的行为历史预测下一次用户可能点击的 top-K 个 item。



相比于 top-1 修正的策略梯度项,top-k 的策略梯度多了一项



其实也很好理解,这一项 [公式] 表示 item a 出现在无重复推荐列表 A 中的概率,对该项求倒数即可得到该修正项。


实验结果,Top-K 的 Off-Policy 修正方案带来了线上 0.85%的播放时长提升,是 YouTube 单个项目近两年来最大的 reward 增长。


  1. SLATEQ: A Tractable Decomposition for Reinforcement Learning with Recommendation Sets


提出了一种名为 SLATEQ 的 Q-Learning 算法,优化推荐系统里面同时展示给用户多个 item 情况的长期收益 LTV(Long-term Value)。


  1. Generative Adversarial User Model for Reinforcement Learning Based Recommendation System


针对推荐系统,提出了一种 model-based 的 RL 算法。具体是使用了生成对抗去模拟用户的动态行为和奖赏函数。并基于这个模拟器生成的数据,提出了名为 Cascading DQN 的算法。


将 RL 应用与推荐系统目前存在的难点:


用户的奖赏函数不好定义,直接根据点击与否定义为+1 和-1 是不能表达出用户对不同商品的偏好。


model-free 的 RL 算法都需要大量的 Agent 和环境交互得到的样本来保证学习到一个好的策略。但是对于推荐系统来讲,如果一旦一开始给用户展示的就是些随机商品,那么用户很可能就会退出 APP,也就是探索的困难性很大。


文中分别尝试了使用 position weight 和 LSTM 去建模用户状态空间,如下图



其中 [公式] 到[公式]分别是当前 session 下 t-1 时刻到 t-m 时刻的 click 商品的向量,建模出用户状态空间 [公式] 之后和当前的动作 [公式] 做 concat,输入到 mlp 中,输出当前状态动作对的奖赏 [公式] 。


有了奖赏值之后,就可以算出最优 Q 值了:



求出最优 Q 值后,最优的策略为:



但是一次从 K 中选取小 k 个商品的动作空间实在太大,因此使用了级联的 Q 算法来解决该问题。



  1. Virtual-Taobao: Virtualizing real-world online retail environment for reinforcement learning



5. Large-scale Interactive Recommendation with Tree-structured Policy Gradient


本文转载自 Alex-zhai 知乎账号。


原文链接:https://zhuanlan.zhihu.com/p/77694065


2019 年 11 月 29 日 11:40570

评论

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

week10 学习总结

任小龙

架构师训练营第十周作业

一剑

Kubernetes 网络通讯模型解析

ninetyhe

Django如何编写自定义manage.py 命令

Young先生

Python django manage.py

微服务和DDD总结

周冬辉

微服务 DDD

Flink 支持的重启策略有哪些

古月木易

flink

一文了解greenplum

数据社

数据库 greenplum MPP

CDH部署指南

数据社

大数据 CDH

架构师训练营第十章作业

叮叮董董

anyRTC 4.0 以心铸造,以梦相承

anyRTC开发者

anyRTC 4.0 官网升级

django-admin和manage.py用法

Young先生

Python django django-admin manage.py

架构师训练营 week10 summary

胡文强

微服务架构的思考

Season

Flink 支持的重启策略有哪些

奈学教育

flink

凉了!张三同学没答好「进程间通信」,被面试官挂了....

小林coding

操作系统 计算机基础 进程

报警不响,黄金万两的“稳定性成熟度”干货

滴滴普惠出行

一周信创舆情观察(8.3~8.9)

统小信uos

数据中台建设方法论

数据社

大数据 数据中台

什么是死锁?如何解决死锁?

奈学教育

关于微服务架构的思考和认知

任小龙

Dubbo微服务框架请求流程

GalaxyCreater

架构

只加两行代码,为什么用了整整两天时间?

程序员生活志

编程 bug

35岁腾讯员工被裁员感叹:北京一套房,存款700多万,失业好焦虑

程序员生活志

程序员生活

数据库的那些事

数据社

数据库 大数据

什么是死锁?如何解决死锁?

古月木易

死锁

第十周作业

方堃

解决 WARNING: REMOTE HOST IDENTIFICATION HAS CHANGED

邵俊达

Linux SSH

Jira 和 Confluence 企业最佳部署方式

Atlassian速递

项目管理 敏捷开发 Atlassian Jira

华章科技好书5折优惠,满99再减10元

华章IT

Python AI 数字化转型 Java 25 周年 计算机科学丛书

聊聊数据库

数据社

数据库 大数据

架构师训练营 week10 homework

胡文强

强化学习在推荐算法的应用论文整理(二)-InfoQ