写点什么

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

  • 2019-11-29
  • 本文字数:1934 字

    阅读完需:约 6 分钟

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

一. 京东在强化学习的几篇文章


Deep Reinforcement Learning for List-wise Recommendations


本文将推荐的过程定义为一个序列决策的问题,通过 Actor-Critic 算法来进行 List-wise 的推荐。


模型结构:Actor-Critic



主要贡献:


  • 构建了一个线上环境仿真器,用于输出从未出现过的状态动作对的奖励,然后可线下对 Actor-Critic 网络参数进行训练。

  • 构建了基于强化学习的 List-wise 推荐系统。


  1. Recommendations with Negative Feedback via Pairwise Deep Reinforcement Learning


主要创新点:考虑负反馈以及商品的偏序关系,并将这种偏序关系建模到 DQN 的 loss 函数中。


若一个商品能够找到其偏序关系(两个商品必须是同一类别,用户反馈不同,推荐时间要相近)的物品,此时模型即希望预估的 Q 值和实际的 Q 值相近,同时又希望有偏序关系的两个商品的 Q 值差距越大越好。


框架:



  1. Reinforcement Learning to Optimize Long-term User Engagement in Recommender Systems


新颖处:状态中加入了用户的反馈、停留时长。


MDP 建模:


  • 状态:初始的状态 s1={u},即只有用户的信息。当进行了第一次推荐后,状态变为 s2={u,(i1,f1,d1)}。当推荐过 t-1 个物品后,状态 st = {u,(i1,f1,d1),(i2,f2,d2),…,(it-1,ft-1,dt-1)}。即 st = st-1 + {(it-1,ft-1,dt-1)}。这里 it-1 代表第 t-1 时刻推荐的物品,ft-1 表示用户对物品 it-1 作出的反馈,dt-1 表示用户对推荐的物品 it-1 的停留时间。

  • 动作:可推荐的物品的集合,时刻 t 的动作就是该轮推荐的物品 it。

  • 状态转移概率:p(st+1| st,it)

  • 奖赏:点击次数、滑动深度和用户下次访问 APP 的时间奖励这三者的加权平均。

  • 模型分为 Q 网络和 S 网络,其中 Q 网络来拟合状态动作对的价值函数,S 网络是一个仿真环境,用于输出奖赏值。



可以看到最终的 state 表示是(4 个 LSTM 模块提取的输出 + 用户的 embedding) +item 的 embedding 表示,模型的更新和传统的 DQN 没什么区别。这里为什么要用 4 个 LSTM 呢?因为只用一个 LSTM 的话,正向行为(点击或购买)的信息容易被大都数负向行为所冲刷掉。并且用户不同的行为都有自己的特征。比如点击行为通常表现出用户的当前兴趣偏好;购买行为表现出用户的兴趣转移过程等等。



输出共有四部分,分别是预测用户的反馈形式、预测用户的停留时间、预测用户再次进入 App 的时间间隔、预测用户是否会关闭 APP。通过训练,得到的模型就可以去预估奖赏值,从而构造完整的 transition 样本用于 Q 网络的训练。


  1. Toward Simulating Environments in Reinforcement Learning Based Recommendations


基于 gan,提出了一种 RL 的仿真环境,用于产生训练数据。有 gan 就会有 generate 和 discriminator,其中 generate 的结构为:



为 encoder-decoder 结构,其中 encoder 的输入为用户的浏览序列 e+f(商品+用户对商品的反馈),然后经过 embedding 层,然后再 concat 起来,最后通过 GRU 层得到最终的 hidden state,表示用户当前的偏好。Deocder 的目标是预测下一个要推荐给用户的商品,输入是用户当前的偏好,经过多层的 MLP 得到一个向量。为了得到一个具体推荐的商品,可以拿所有待推荐的商品 embedding 分别和 decoder 输出的向量计算相似度,选择相似度最高的一个商品推荐给用户。


Discriminator 结构:



上图左下角的输入和 generator 一样,但是参数不同。右下角把真实的推荐商品和 generator 生成的推荐商品作为输入,经过两层 MLP 得到输出 [公式],然后将两部分输出 concat 起来经过 MLP 和 softmax 层得到最终的输出,长度为 2*K,其中 K 代表用户反馈类型的种类。输出结果为:



输出前 k 维表示如果这个输入的是真实的商品(这里的真实商品即用户在当前状态下,下一个实际浏览的商品)的话,用户的每种反馈的概率,后 K 维表示,如果这个输入是 Generator 产生的话,用户的每种反馈的概率。


那么怎么训练 Discriminator 和 Generator 呢?对于 Discriminator 来说共有两个目标,判断输入是真实的商品还是 Generator 产生的,同时,要保证用户真实的反馈和 Discriminator 得到的用户反馈类型分布的差距要大。对于 Generator 来说,同样有两部分的损失,一是希望能尽可能骗过 Discriminator,使得 Discriminator 将 Generator 产生的推荐商品判别为假的概率越低越好,二是希望产生的推荐商品向量,与真实序列中下一个商品的向量距离越近越好。


总结来说,使用 GAN 还是为了解决 RL 应用在电商领域中的一些限制:比如商品和用户数量巨大,导致整个的状态空间和动作空间十分巨大,每个用户的训练样本较稀疏,这样直接训练会导致模型不鲁棒,上线实验也会造成用户体验的损害。使用 GAN 来产生一些离线训练样本会一定程度上解决该问题。


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


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


2019-11-29 11:402142

评论

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

Ansible最佳实践之 AWX 创建管理项目的一些笔记

山河已无恙

12月月更

Ansible最佳实践之 AWX 作业创建和启动

山河已无恙

12月月更

react源码中的生命周期和事件系统

flyzz177

React

广西移动圆满完成区运会通信保障任务

极客天地

Ansible之Ansible Tower使用User和Team管理访问权限的笔记

山河已无恙

12月月更

Ansible最佳实践之Playbook高级循环任务如何操作

山河已无恙

12月月更

演讲实录 | OpenMLDB 整合自动特征工程

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

创业者说丨云起无垠沈凯文:构建新一代开发安全基础设施 让Fuzzing技术为企业赋能

云起无垠

安全开发 开发安全 Fuzzing技术防护

新变化新营销 这些知识点你得Get!(文末有PPT福利首次放送)

字节跳动数据平台

大数据 营销 12 月 PK 榜

Redis之String类型和Hash类型的介绍和案例应用

C++后台开发

redis 数据结构 hash 后端开发 C++开发

SAP MM 为UB类型的STO执行VL10B,报错-没有项目类别表存在(表T184L NL 0002 V)-之对策

SAP虾客

SAP MM UB类型STO VL10B T184L

【python小脚本】监听日志文件异常数据发送告警短信

山河已无恙

12月月更

预告|2022 星策 Summit MLOps 分论坛议程公布!

星策开源社区

人工智能 机器学习 开源 AI MLOps

react源码中的协调与调度

flyzz177

React

教育部公布2022年第一批产学合作协同育人项目,千锋教育57个项目成功立项

千锋IT教育

关于 Git 重写历史的一些笔记

山河已无恙

12月月更

OpenMLDB Meetup No.7 回顾 | OpenMLDB+AutoX:整合自动特征工程,拥抱高效机器学习

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

OpenMLDB 社区月报 | 2022年10月

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

Ansible最佳实践之 AWX 使用 Ansible 与 API 通信tags

山河已无恙

12月月更

Ansible最佳实践之 AWX 启用facts缓存和模板问卷调查

山河已无恙

12月月更

镕铭微电子加入龙蜥社区,推动开源 OS 在音视频产业的应用

OpenAnolis小助手

操作系统 芯片 数据存储 龙蜥社区 镕铭微电子

OpenMLDB v0.6 新版本运维功能增强

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

互联网医疗领域月度观察——数字乡村建设加快,“互联网+医疗健康”带动乡村高质量发展

易观分析

数字化 互联网医疗

Ansible之 AWX 管理清单和凭据的一些笔记

山河已无恙

12月月更

多引擎可视化数据流实现方案

元年技术洞察

数据中台 数字化转型 专利解析 方舟企业数字化 PaaS 平台 #方舟平台

裸辞不慌!入职蚂蚁金服P6,掌握并发编程我是这样吊打面试官的

钟奕礼

Java java面试 java编程 程序员‘

教你用JavaScript实现乘法游戏

小院里的霍大侠

JavaScript 前端开发 编程实战 实战案例 初学者

Ansible最佳实践之 AWX 构建高级作业工作流的创建和调度

山河已无恙

12月月更

Ansible最佳实践之AWK VS Anssible Tower 界面介绍

山河已无恙

12月月更

react源码分析:babel如何解析jsx

flyzz177

React

专访 | 徐鹏程:开源,就是酷

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

强化学习在推荐算法的应用论文整理(一)_语言 & 开发_Alex-zhai_InfoQ精选文章