限时领|《AI 百问百答》专栏课+实体书(包邮)! 了解详情
写点什么

京东:利用 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:402233

评论

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

使用cpu模型运行时报异常错误

矩视智能

机器视觉

GaussDB(DWS)性能调优:Sort+Groupagg聚集引起的性能瓶颈案例

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号9月PK榜

AI已经改变游戏规则,新环境下如何用好这一新利器,提升开发团队的生产力

龙智—DevSecOps解决方案

又一重磅利好来袭!Zebec Payroll 集成至 Nautilus Chain 主网

西柚子

我也能打造自己的「超级 App」?

FinClip

云的灵魂是人工智能

Finovy Cloud

如何选择美国多IP服务器租用,提升网站排名的秘密武器

一只扑棱蛾子

站群服务器

直播预告 | 博睿学院:浅谈可观测性的价值

博睿数据

对话在行人|远东数智采:数智底座创新,让招投标规范高效

用友BIP

2023全球商业创新大会 对话在行人

【Y 新闻】YMatrix携手三一集团,荣获“2023爱分析·数据库最佳实践案例”

YMatrix 超融合数据库

超融合数据库 YMatrix 三一集团 数据库最佳实践案例 泵涌云

汽车行业解决方案 | 龙智总经理杨林晶作客ACT汽车电子与软件技术周,并接受专访

龙智—DevSecOps解决方案

Kafka如何修改分区Leader

石臻臻的杂货铺

kafka

多主架构:VLDB技术论文《Taurus MM: bringing multi-master to the cloud》解读

华为云开发者联盟

数据库 后端 华为云 华为云开发者联盟 企业号9月PK榜

软件测试/测试开发丨Web自动化—headless无头浏览器 学习笔记

测试人

软件测试

在对接自有账户体系时,FinClip 是怎么做的?

FinClip

eosio.system智能合约介绍(四)合约部署介绍

BSN研习社

华为云盘古大模型加码生物医药,为行业插上“数字翅膀”

华为云开发者联盟

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

马斯克警告威胁,奥特曼自请监管,小扎呼吁开源丨RTE开发者日报 Vol.49

声网

java中有哪些并发的List?只知道一种的就太逊了

程序那些事

Java 程序那些事 面试秘籍

【kafka源码】/log_dir_event_notification的LogDir脱机事件通知

石臻臻的杂货铺

kafka

企业网盘 VS 大文件传输, 哪个才是企业传输的正确选择?

镭速

大文件传输 大文件传输工具

软件测试/测试开发名企定向培养训练营,升职加薪快人一步!

测试人

软件测试 测试开发

面对一家营收上千亿的焦化厂,这家数科公司靠什么赋能业务?

用友BIP

数科公司 2023全球商业创新大会 升级数智化底座

公开免费的代理ip有哪些不足的地方?

巨量HTTP

代理IP 免费代理ip

软件测试/测试开发丨web自动化——cypress测试框架

测试人

软件测试 Cypress

Enhancer-轻量化的字节码增强组件包

得物技术

aop 字节码增强 性能监控 轻量级 企业号9月PK榜

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