50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

京东:利用 DRL 算法进行带负反馈的商品推荐

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

    阅读完需:约 5 分钟

京东:利用DRL算法进行带负反馈的商品推荐

背景与介绍

大都数传统的推荐系统(协同过滤、基于内容的推荐、learning-to-rank)只是将推荐过程当做一个静态的过程,并且在一段时间内是根据固定的模型来进行推荐。当用户的兴趣发生动态变化时,这些传统方法推荐的内容就不能捕捉到用户兴趣的实时变化。因此本文提出了一种 DRL 算法,可通过推荐系统和用户不断交互来持续提升推荐质量。


在电商领域,用户有正反馈和负反馈(比如用户点击了商品为正反馈,用户对商品没有任何操作称为负反馈),并且负反馈的数量远远大于正反馈。因此正反馈给模型带来的影响经常被负反馈给“冲刷”掉。本文提出的 deep recommender system(DEERS)的算法框架可将正、负反馈同时融入到模型中。


文中将了将 RL 引入到推荐系统中的两个优势:1. 通过用户与推荐系统的不断交互,可持续更新 try-and-error 策略,直到模型收敛到最优;2. 在当前状态动作对下,通过带延迟奖赏构造的 value 值可不断训练推荐模型。对于一个用户来讲,其最优的策略就是最大化该用户的期望累计奖赏。因此推荐系统通过很小的即时奖赏就可筛选出商品。

问题建模

环境:用户 agent:推荐系统


MDP 中各元素的定义为:


状态空间 S:用户之前的浏览历史,包括点击/购买过的和略过的,二者分开进行处理。同时,物品是按照先后顺序进行排序的。


动作空间 A:一次只给用户推荐一个物品,那么推荐的物品即动作。


即时奖励 R:在给用户推荐一个物品后,用户可以选择忽略、点击甚至购买该物品,根据用户的行为将给出不同的奖励。


状态转移概率 P:状态的转移主要根据推荐的物品和用户的反馈来决定的。


折扣因子 r:对未来收益进行一定的折扣


模型框架

基本的 DQN 模型,只考虑正向的反馈


状态 s: [公式],用户之前点击或购买过的 N 个物品同时按照时间先后进行排序


s 转移到 s’:假设当前的推荐物品 a,用户若点击或购买,则 [公式] ,若用户略过,则 s’=s 。


需要注意的是,仅仅使用离散的 indexes 去表示 items 是表达力不够的,比如相似的商品仅从 index 上也是无法推断的。一个常见的做法是,在表示 item 的时候加入额外的信息,比如 brand,price 和月销量等等。本文则是采用了另外一种方法,将用户的浏览历史当做一个 session 下的序列,然后通过 word embedding 技术去训练得到每个 item 的 embedding 表示(有点像 Airbnb 的做法)。



训练得到 item 的 embedding 之后,将状态和动作的 embedding 表示 concat 起来作为模型的输入,输出为该状态动作对的 Q 值。更新方法和传统的 DQN 是一样的。这里就不详细介绍了


  1. DEERS 模型,同时考虑正向和负向反馈


对于基本的 DQN 模型来说,一个明显的缺点是,当推荐的物品被用户忽略时,状态是不会发生变化的。因此 DEERS 模型在状态中也考虑被用户忽略过的商品。


当前状态 s: 当前状态 s 包含两部分 s=(s+,s-),其中 s+={i1,i2,…,iN},表示用户之前点击或购买过的 N 个物品,s-={j1,j2,…,jN},表示用户之前略过的 N 个物品。同时物品按照时间先后进行排序。


s 转移到 s’:假设当前的推荐物品 a,用户若点击或购买,则 s’+={i2,i3,…,iN,a},若用户略过,则 s’-={j2,j3,…,jN,a} 。那么,s’ = (s’+,s’-)。



如上图,DEERS 模型使用 GRU 来抽取 s+,s-两个序列的表征。


另外,DEERS 模型还考虑了商品之间的偏序关系。对于一个商品 a,偏序对中的另一个商品称为 [公式] ,但只有满足三个条件,才可以称为[公式]。首先,[公式]必须与 a 是同一类别的商品;其次,用户对于[公式]和 a 的反馈是不同的;最后,[公式]与 a 的推荐时间要相近。


若商品 a 能够找到有偏序关系的物品[公式] ,此时不仅需要预估的 Q 值和实际的 Q 值相近,同时也需要有偏序关系的两个物品的 Q 值差距越大越好,因此模型的损失函数变为:



其中,目标 Q 值 y 的计算为:



整个算法的流程为:



参考文献:


https://arxiv.org/pdf/1802.06501.pdf


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


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


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


2019-11-29 11:402349

评论

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

airasia Superapp × HMS Core:便捷出行,悦享全程

HarmonyOS SDK

HMS Core

2023我的前端面试小结

loveX001

JavaScript 前端

面试官让你说说react状态管理?

beifeng1996

前端 React

共享电动车生产批发厂家怎么找

共享电单车厂家

共享电动车厂家 共享电单车厂商 共享电动车生产

软件测试 | 开源Web性能测试

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

测试

全球分布式云大会:AntDB超融合流式实时数仓,打造分布式数据库新纪元

亚信AntDB数据库

AntDB AntDB数据库 企业号 5 月 PK 榜

基于Jmeter 的接口自动化测试实践探讨

jackwang

NFT盲盒卡牌游戏系统开发搭建

Congge420

区块链

“中国法研杯”司法人工智能挑战赛:基于UTC的多标签/层次分类小样本文本应用,Macro F1提升13%+

汀丶人工智能

人工智能 nlp 文本分类 小样本学习

技术同学如何快速熟悉业务

老张

系统架构 业务

社招前端二面必会react面试题及答案

beifeng1996

前端 React

元宇宙链游系统开发搭建技术

Congge420

区块链

“数据进化论”2023数智科技大会官宣:从看、用到智能,与客户共进化

奇点云

发布会 奇点云 数据云 数智科技大会

TIDB General Log抓取分析神器

TiDB 社区干货传送门

管理与运维 故障排查/诊断

上海丨阿里云 Serverless 技术实战营邀你来玩!

阿里巴巴云原生

阿里云 Serverless 云原生

软件测试 | JMeter

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

测试

智能合约DAPP挖矿系统开发应用

Congge420

区块链

顶会ICSE-2023发布LIBRO技术,缺陷自动重现率达33%

华为云开发者联盟

人工智能 华为云 大模型 华为云开发者联盟 企业号 5 月 PK 榜

文档还能这么写?GreptimePlay 邀你免费玩!

Greptime 格睿科技

数据库 云原生 时序数据库 Playground

软件测试 | 认识性能测试

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

测试

Java常用对象映射工具的介绍和使用

echoes

mate云端元宇宙系统智能合约链游开发技术

Congge420

区块链

Midjourney|文心一格prompt教程[技巧篇]:生成多样性、增加艺术风格、图片二次修改、渐进优化、权重、灯光设置等17个技巧等你来学

汀丶人工智能

人工智能 AI绘画 MidJourney prompt learning

Cloud Studio 内核升级之持续优化

CODING DevOps

DevOps 软件工程 Cloud Studio 云端IDE

PAG动效框架源码笔记 (三)播放流程

olinone

ios android 特效

性价比提升15%,阿里云发布第八代企业级计算实例g8a和性能增强型实例g8ae

云布道师

4.0 功能抢先看 | 读懂一个项目的研发效能 之 项目质量表现

思码逸研发效能

研发效能 项目质量

js事件循环与macro&micro任务队列-前端面试进阶

loveX001

JavaScript 前端

结合实例,解读华为云数字工厂信息模型配置器

华为云开发者联盟

云计算 后端 华为云 华为云开发者联盟 企业号 5 月 PK 榜

软件测试 | 如何运行JMeter

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

测试

软件测试 |JMeter服务器模式、重置JMeter命令

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

测试

京东:利用DRL算法进行带负反馈的商品推荐_语言 & 开发_Alex-zhai_InfoQ精选文章