推荐系统论文总结

Deep Reinforcement Learning for List-wise Recommendations论文总结

问题:绝大多数传统的推荐系统将推荐过程看作一个静态的过程,按照固定的策略进行推荐;注重短期回报。
本文思想:用户的偏好拥有动态特性,传统的推荐系统大多将推荐过程看做静态过程,策略固定,动态特性在这种策略中不适用,会 导致推荐失败。此外,大多数现有的推荐系统旨在最大限度地提高推荐的即时(短期)回报,即让用户订购推荐项目,同时完全忽略这些推荐项目是否会在未来带来更可能或更有利可图(长期)的回报。
将静态演进为动态。该系统能够在用户交互过程中不断改进推荐策略。
创新点:动态优化策略。
主要方法:
(1)MDP:将用户和推荐系统之间的顺序交互建模为马尔可夫决策过程(MDP);
(2)RL:并利用强化学习(RL)通过推荐试错项和从用户反馈中接收这些项的强化来自动学习最优策略。
注:RL方法如Q-learning和POMDP在大数量项目中不适用。本文中将带人工神经网络的RL作为非线性近似去评估action-value函数。
方法优点:这种无模型强化学习方法不估计转移概率,也不存储Qvalue表。这使得它能够灵活地支持推荐系统中的大量项目。
基于强化学习的推荐系统有两个优点:首先,他们能够在交互过程中不断更新自己的策略,直到系统收敛到产生最适合用户动态偏好的推荐的最优策略。第二,通过最大化用户期望的长期累积回报来制定最优策略。因此,该系统可以通过一个小的即时奖励来识别项目,但为将来的推荐奖励做出了很大的贡献。
主要内容:
(1)提出新推荐系统。
(2)我们介绍了一个在线用户代理交互环境模拟器,它可以在模型在线应用之前离线对模型参数进行预训练和评估。
(3)验证list-wise推荐在用户和代理交互时的重要性,提出一个新方法将其嵌入框架LIRD,框架应用于list-wide推荐。
强化学习中action代表item,状态代表?

一(1)、List-wise推荐
传统RS一次向用户推荐一个项目列表。Lise-wise允许系统向用户提供多个、全面的选择。有一个lise-wise action空间,每个action是一个多个相互依赖的子action(items)集。
强化学习推荐方法:DQN,计算所有分别被召回的项目的Q-value值,然后将一组Q-value更高的项目推荐出去。局限:推荐项目基于同一状态,忽略项目之间的关系。
一(2)、架构选择
推荐系统论文总结

Fig 1(a):(一个输入、多个输出)在传统深度Q-learning使用,输入只有状态空间,输出是所有action的Q-value。适用于有高状态空间和小action空间的情况,如玩Atari时。缺点:不能解决大的、动态的action空间,如推荐系统。
Fig 1 (b):(两个输入,一个输出)状态和动作作为神经网络的输入,动作的Q-value作为输出。不需要存储每个Q-value值,能处理大的动作空间或是连续动作空间。缺点:时间复杂性,计算所有潜在动作的Q-value值。为了解决这个问题,本文提出
Fig 1(c):actor输入当前状态,目的是输出特定于状态的评分函数的参数;然后RA评分所有的项目,选择分数最高的项目;接下来,Critic用近似结构学习Q-value函数,评判选中的action是够与当前状态匹配。
根据评判,Actor更新它的策略参数,以便在接下来的迭代中建议性能改进以输出更合适的操作。
一(3)、在线环境模拟器
离线训练和评估我们的框架。它输入当前状态和选定的动作,并输出一个模拟的在线奖励,使框架能够根据模拟的奖励离线训练参数。更具体地说,我们根据用户的历史记录来构建模拟器。直觉是无论推荐系统采用何种算法,给定相同的状态(或用户的历史记录)和相同的动作(向用户推荐相同的项目),用户都会对项目做出相同的反馈。
评估:一种实用方式是根据用户的历史点击/订购记录对其进行测试。然而,我们只对用户历史记录中已有的条目进行了基本的真实性反馈(奖励),与当前推荐系统庞大的条目空间相比,这种反馈(奖励)是稀疏的。因此,我们无法获得用户历史记录以外项目的反馈(奖励)。这可能导致离线和在线测量结果不一致。我们提出的在线环境仿真器也可以通过产生任何状态动作对的模拟在线奖励来减轻这种挑战,这样推荐系统就可以从整个项目空间中对项目进行评分。在离线训练和评估的基础上,将训练好的参数作为框架上线时的初始参数,通过策略开发和探索进行更新和改进。
二、框架方法
推荐系统论文总结

主要内容:(1)通过RL定义符号和推荐系统的问题。
(2)搭建线上用户-代理交互环境模拟器。
(3)基于强化学习的Actor-Critic框架。
(4)讨论如何通过用户的行为日志训练框架,如何在list-wise推荐中使用这个框架。

问题描述:
推荐代理(推荐系统)和环境(users)在一列时间步长中通过顺序选择Items进行交互,即最大化计算reward。这个问题建模为MDP(S,A,P,R,γ):
State space S: 一个状态定义为用户的浏览历史,items在状态中按时间顺序排列。
action space A:一个动作是基于当前状态,在某一时间向用户推荐一列项目。K代表在每个时间RA向用户推荐的items的数量。
Reward R:在RA向用户推荐完商品后,用户浏览这些商品并提供她的反馈(跳过不点击、点击、下单),agent收集及时reward r。
Transiton probability P:p(st+1|st,at)定义状态从st到st+1的转移概率,RA选择一个动作at时。假设MDP满足p(st+1|st,at, …,s1,a1) = p(st+1|st,at).如果用户跳过所有items,则next 状态 st+1= st;如果用户点击或下单某些商品,则St+1更新。
Discount facotr γ: γ=0,RA只考虑即时奖励;γ=1,所有的奖励都可以计入当前的action。
推荐系统论文总结

线上用户-代理交互环境模拟器:模拟、评估框架。
模拟器的任务是基于当前状态和选择的action去预测reward:
算法:
输入:用户的历史推荐sessionB,推荐列表K的长度
输出:模拟器存储M={m1,m2,……}存储用户的浏览历史,m1:(si,ai)
2:从当前的session观察当前的状态
3:每次在时间顺序中观察k个items,每次交互会向前移动k个位置
4:观察当前的状态
5:观察当前的k个items
6:对这些items用户的反馈
7:把(s,a)存储在M
8-13:更新状态,移动到下一组K 个items
状态s的长度是固定的,每次用户单击/订购推荐列表中的某些项目时,我们都会将这些项目添加到状态末尾,并删除状态顶部相同数量的项目。
推荐系统论文总结

计算当前state-action对(pi和mi)的相似性:
推荐系统论文总结

第一项计算状态相似性,第二项计算动作相似性,a控制两者的平衡。当两者越来越相似时,pt映射成reward ri:
推荐系统论文总结

根据reward将用户的浏览历史分组,reward排列的数量有限
Actor 框架:
list-wise推荐步骤:
(1)特定状态评分函数参数生成
(2)action生成
传统推荐系统依赖于一个评分或评分系统,该系统在所有用户之间取平均值,忽略用户的特定需求。这些方法在用户兴趣变化较大的任务中表现不佳。
(1)state-specific评分函数:
推荐系统论文总结
(2)action生成:
推荐系统论文总结
推荐系统论文总结

critic 框架:
利用近似器学习action-value函数Q(st,at):
推荐系统论文总结
优化action-value函数:
推荐系统论文总结
代价函数:
推荐系统论文总结