QCon北京「鸿蒙专场」火热来袭!即刻报名,与创新同行~ 了解详情
写点什么

京东:DRL for List-wise Recommendations

  • 2019-12-02
  • 本文字数:2135 字

    阅读完需:约 7 分钟

京东:DRL for List-wise Recommendations

背景与介绍

目前,大多数的推荐系统都将推荐一系列步骤当做一个静态的过程,并且通过一个固定的策略来实施推荐(比如离线训练一个 CTR 模型,然后上线做预测)。这样的做法有两个明显问题:无法建模用户兴趣的动态变化;只是最大化立即收益(比如点击率),忽略了长期奖赏。因此,本文提出了一种强化学习模型来建模推荐系统与用户的不断交互过程。具体:介绍了一种在线的用户和推荐系统的交互模拟器,可以在模型上线前对其进行预训练;并且验证了用户与推荐系统交互过程中实施 list-wise 推荐的重要性,因为这样能提供给用户多样性的选择。现有的强化学习大多先计算每一个 item 的 Q-value,然后通过排序得到最终的推荐结果,这样忽略了推荐列表中商品本身的关联。而 list-wise 的推荐,计算的是一整个推荐列表的 Q-value,可充分考虑列表中物品的相关性,从而提升推荐的性能。

模型选择


  • a 模型需要输入一个 state,输出所有动作的 Q-value,当 action 太多时,该结构不适合应用。

  • b 模型输入是 state 和一个具体的 action,然后模型输出是一个具体的 Q-value,该模型的时间复杂度非常高。

  • c 模型是 Actor-Critic 结构。Actor 输入一个具体的 state,输出一个 action,然后 Critic 输入这个 state 和 Actor 输出的 action,得到一个 Q-value,Actor 根据 Critic 的反馈来更新自身的策略。

Online 环境模拟器

不像一些游戏场景,可以随机采取动作并实时得到相应的反馈。在推荐场景里面,实时奖赏很难在模型上线之前得到。因此在模型上线之前,需要基于用户的历史行为数据进行线下的预训练和评估。但是,我们只有 ground-truth 的数据和相应的反馈。因此,对于整个动作空间来说(也就是所有物品的可能组合),这是非常稀疏的。这会造成两个问题,首先只能拿到部分的 state-action 对进行训练,无法对所有的情况进行建模(可能造成过拟合),其次会造成线上线下环境的不一致性。因此,需要一个模拟器来仿真没有出现过的 state-action 的 reward 值,用于训练和评估线下模型。模拟器的构建主要基于用户的历史数据,其基本思想是给定一个相似的 state 和 action,不同的用户也会作出相似的 feedback。

系统框架

MDP 五元组


  • 状态:用户的历史浏览行为,即在推荐之前,用户点击或购买过的最新的 N 个物品。

  • 动作:推荐给用户的商品列表。

  • reward:根据用户对推荐列表的反馈(忽略、点击或购买)来得到当前 state-action 的即时奖励 reward。

  • 如果用户忽略推荐的这些商品,那么下一个时刻的 state 和当前的 state 是一样的,如果用户点击了其中的两个物品,那么下一个时刻的 state 是在当前 state 的基础上,从前面剔除两个商品同时将点击的这两个物品放在最后得到的。


实际中,如果使用离散的 indexes 去表示 items 不能建模不同 item 的之间的关系。一个常见的做法是增加一些信息来表示 item,比如 brand,价格,每月销量。本文则是使用用户和推荐系统交互信息,比如用户的购买历史。具体:将每个 item 当做一个 word,一个 session 下点击的 items 序列当做一个 sentence,通过 word-embedding 技术可以得到每个 item 的低维度向量表示。


User-Agent 交互仿真环境


仿真器主要基于历史数据,因此我们首先需要对历史真实数据的((state,action)-reward)对进行一个存储:



有了历史记忆 M 之后,仿真器可以输出从未见过的(s, a)状态动作对的奖励,该(s,a)定义为 [公式] 。首先需要计算[公式]和历史中状态-动作对 [公式] 的相似性:



那么 [公式] 获得 [公式] 对应的奖励 [公式] 的可能性定义如下:



然后这种做法计算复杂度太高,需要计算[公式]和历史记忆 M 中每条记录的相似性,为了处理这个问题,本文的做法是按照奖励序列对历史记忆进行分组,来建模[公式]获得某个奖励序列的可能性。


奖励序列表示:假设我们按一定的顺序推荐了两个商品,用户对每个商品的反馈可能有忽略/点击/下单,对应的奖励分别是 0/1/5,那么我们推荐给用户这两个物品的反馈一共有九种可能的情况(0,0),(0,1),(0,5),(1,0),(1,1),(1,5),(5,0),(5,1),(5,5)。这九种情况就是我们刚才所说的奖励序列,定义为: [公式] 。


将历史记忆按照奖励序列进行分组后, [公式] 所能获得某个奖励序列的概率是:



基于上述公式,得到了[公式]所获得的各个奖励序列的概率,然后进行采样得到具体的奖励序列。得到奖励序列后按照如下的公式将奖励序列转化为一个具体的奖励值:


模型结构


Actor 部分


输入是一个具体的 state,输出一个 K 维的向量 w,K 对应推荐列表的长度:



需要注意的是,state 只考虑用户的正向行为(点击购买),比如用户最近 10 次的点击。然后,用 w 和每个 item 对应的 embedding 进行线性相乘,计算每个 item 的得分,根据得分选择 k 个最高的物品作为推荐结果:



Critic 部分


Critic 部分建模的是 state-action 对应的 Q 值,需要有 Q-eval 和 Q-target 来指导模型的训练,Q-eval 通过 Critic 得到,损失函数为:



其中:



整个算法流程为:


总结

除了使用 item 的位置顺序信息外,也可以使用 items 的时间顺序信息。


该方法还没有在有 agent-user 交互的很多场景中都验证其有效果。


参考文献:


https://arxiv.org/pdf/1801.00209.pdf


https://www.jianshu.com/p/b9113332e


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


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


2019-12-02 13:32715

评论

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

软件测试|Python基础之模块导入和使用

霍格沃兹测试开发学社

OpenHarmony系统能力SystemCapability使用指南

OpenHarmony开发者

OpenHarmony

小度携手可口可乐,AIGC成就未来3000年时空畅想

新消费日报

机器学习——决策树模型

小魏写代码

软件测试|Python内置模块使用(二)

霍格沃兹测试开发学社

AI和社交媒体:改变信息传播的方式

测吧(北京)科技有限公司

测试

迎产业东风,柔性电子供应链企业的机会与挑战

华秋电子

PCB

AI和安全性:网络安全的挑战与机会

测吧(北京)科技有限公司

测试

Arbitrum公链系统开发丨ARB链代币质押挖矿系统开发

l8l259l3365

Pyth

【华秋干货铺】软硬结合板的阻抗计算,你会吗?

华秋电子

PCB

通过UltraSync减轻主节点负担、提升业务系统性能,AntDB如何做到?

亚信AntDB数据库

AntDB 国产数据库 AntDB数据库

软件测试|Python内置模块使用(一)

霍格沃兹测试开发学社

软件开发中的资料整理与归档,软件产品开发文档合集

金陵老街

项目管理 文档管理软件

SpringBoot拦截器和动态代理有什么区别?

王磊

Java Java面试题

达梦数据库接入案例—基于EntityFrameworkCore 6.x

为自己带盐

.net core 达梦 EFCore

AI和智能家居:打造智慧生活

测吧(北京)科技有限公司

测试

干货 | Elasticsearch Java 客户端演进历史和选型指南

腾讯云大数据

ES

TiDB Serverless Branching:通过数据库分支简化应用开发流程

TiDB 社区干货传送门

软件测试|Python基础之数据库

霍格沃兹测试开发学社

软件测试|MySQL安装最全教程

霍格沃兹测试开发学社

AI和语音助手:智能助手的展露头角

测吧(北京)科技有限公司

测试

云起无垠参编的《软件物料清单(SBOM)发展洞察报告》正式发布

云起无垠

使用br工具备份到local的一些操作

TiDB 社区干货传送门

迁移 备份 & 恢复 6.x 实践

在Mac上浏览Android设备文件:MacDroid pro最新中文版

胖墩儿不胖y

Mac软件 传输文件 文件传输工具

秒合约竞猜游戏app系统开发定制源代码部署

开发微hkkf5566

软件测试|Python基础之包的使用和软件开发目录规范及常用内置模块

霍格沃兹测试开发学社

如何用华为云ModelArts平台玩转Llama2

华为云开发者联盟

人工智能 华为云 华为云开发者联盟 企业号9月PK榜

AI和语言翻译:跨文化交流的帮手

测吧(北京)科技有限公司

测试

HarmonyOS应用开发Web组件基本属性应用和事件

HarmonyOS开发者

HarmonyOS

站群服务器租用:为您的多站点网络提供支持

一只扑棱蛾子

站群服务器

京东:DRL for List-wise Recommendations_语言 & 开发_Alex-zhai_InfoQ精选文章