Google最近发表了一篇Q-learning的变种,并展现了它能够在像YouTube一样现有的高度优化的推荐系统中提供显著提升的能力。他们也简略描述了一个推荐系统模拟器。除了应用在游戏之外,这个推荐系统可以用于研究强化学习算法在真实世界中的应用。
原文链接:https://arxiv.org/abs/1905.12767
在此论文中,作者提出了一个适用于全石板推荐(Full Slate Recommendation)的Q-learning变种,称之为SlateQ。通过一个简单的项级别Q-value的估计,作者能够避免在较难的行动空间中的组合爆炸问题。在Figure1中,他们展示了一个清晰的框架。这个框架能够迁移任何现有的短视的推荐系统,使得他们能够具备长期的价值估计能力,并用于进一步提升用户的满意度。
Figure 1: Schematic View of a Reinforcement Learning Recommender Training System
以下是对此论文核心内容的介绍:
推荐系统背景
实际推荐系统主要关注短期的预测,仅估计用户对推荐的即时响应,而不考虑对后续用户行为的长期影响。 这可能会使得算法存在局限性,建模一个推荐对于未来的影响能够给我们提供权衡用户短期和长期参与度的机会(比如,通过探索用户的兴趣,或者改善满意度等等)。
许多的推荐系统将推荐问题建模为一个逐点的优化问题。典型的此类系统依赖于Collaborative Filtering(CF)技术。CF技术对于一个推荐的集合,充分利用了直接和间接的用户反馈来估计用户对于未知项的倾向。更进一步地,推荐系统也同时包含了能够捕捉更多用户行为的细微之处的模型,比如用户如何对于特定的推荐的回应,比如预测点击率,参与程度,打分等等。早期的将推荐系统建模为序列强化学习问题的建模只能够用来处理非常小的情形(比如100个项目,几千个用户等等)。设计可行的应用于推荐系统的强化学习方法的主要挑战是在序列Slate推荐中的组合爆炸问题。
SlateQ算法
典型的像YouTube和Spotify一样的推荐系统给用户展示了一系列的项(称之为Slate),这将会导致一个组合的行动空间,从而使得建立一个好的Slate推荐系统变得棘手,尤其是当大型推荐系统(比如YouTube)有百万级的项的时候。许多的实际的推荐系统忽略了这个问题,取而代之的是,他们优化每一个slate中独立的项。这篇论文首先形式化了一个用于Slate推荐的马尔可夫决策过程,并且定义了最优的Q函数Q*
此处A是Slate,V*是最优的价值函数。就像从函数里看到的一样,行动空间A是组合的,并且找到具有最有Q价值的slate对于真实世界的推荐系统来说是不现实的。这篇论文作出了两个假设:其一是用户从slate消耗至多一个(SC),其二是奖励和状态转移仅由用户的消耗项决定。这两个假设都仅仅是最小程度的假设,并且对于推荐系统来说是很自然的。基于这些假设,Slate的Q函数分解成了每一个在slate中组成项的Q函数:
在此处是一个项目i的Q函数。通过这样的定义,我们使得利用强化学习的slate推荐成为现实,也是本篇论文的第一个贡献。对于的TD学习可以使用标准的Q-update rule进行优化:
具备了一个实际的基于值的面向Slate的强化学习推荐算法,这篇论文介绍了如何应用在现有的实际世界的强化学习系统上。这些强化学习系统都面向了短期的信号(比如点击)进行优化。这篇论文的第二贡献在于提供了一个实际的方法论,能够充分使用一个目前已经存在的短视的,项目级别的推荐系统。为了部署这样一个解决方案,我们需要如下部件:状态空间设计(比如用户特征),用户回应响应(比如较为常见的pCTR模型)还有用户路径的记录。他们同时也展现了一个目前正在工作的YouTube解决方案,在统计上,获得了巨大的用户参与度提升。值得一提的是,这个提升是面向了一个以及高度成熟的方案的。
这篇论文提出了许多主要的SlateQ算法的变形,在一个模拟的推荐系统环境中进行比较。尽管这个推荐环境很简单而且具有风格,它也捕捉了许多的典型的推荐系统的基本要素:
- 文档级别:每一个文档(比如视频)属于一个或者多个话题并且有一些固有的质量。
- 用户兴趣模型:每一个用户对于不同的话题有不同的兴趣程度。一个用户对于一个给定的文档的满意程度取决于文档本身的固有质量以及用户对于文档的兴趣程度。
- 用户选择模型:一个独立于用户兴趣模型的重要的模块。用户根据选择模型(比如指数串联模型)消耗了一个或者多个文档。
模拟环境被广泛使用且会帮助强化学习算法在推荐系统的发展。这是这篇论文的第三个贡献。在Figure2中的比对清晰地给我们展示了面向长期满意度进行优化的强化学习系统能够显著超越传统的面向短时用户满意度的推荐系统算法。
Figure 2: Comparison of different variants of SlateQ algorithm. Note that MYOP-* are algorithms optimizing for short-term user satisfaction.
在YouTube上测试过的SlateQ的变种在全文的Algorithm1中有详细介绍(SARSA-GS)。我们在这里简要介绍此算法。这个算法将一个短视的,面向短期观看时间进行优化的推荐系统改进成一个非短期的推荐系统。
Training Set: (s, A, r, s’, A’, C) tuples where (s, A) is current user state and user slate, r is the watch time generated by A, (s’, A’) is the next user state and user slate in the logs, C is the set of items in A that is clicked.
Note that (s, A, r, s’, A’) is essential for SARSA TD-updates and C is essential for modeling the choice model.
Network Initialization: θlabel = 0 network; θmain = θpctr = random network.
For i=1 … T training epochs:
Every K iterations: Copy θmain to θlabel for TD-learning stability.
For each (s, A, r, s’, A’, C):
Use C to update choice model θpctr.
For each clicked item ai in A:
Compute pCTR(s’, ai’, A’) = pCTR(s’, ai’, θpctr)/Σa’ϵA’pCTR(s’, ai’, θpctr)
Compute LTV label lLTV = r + Σa’ϵA’ pCTR(s’, a’, A’) (s’, a’, θlabel)
Update θmain using lLTV.
End For
End For
总的来说,C被用来连续地更新逐点的θpctr,也被反过来建模Slate选择概率 pCTR(s’, ai’, A’)。有了Slate选择概率,我们可以构造LTV label来更新SARSA模型。
总结
商用的广告和内容推荐系统使用最终的竞价阶段来提升目标精确度是很常见的。典型的内容竞价需要对于每一个推荐的广告和内容绑定一个分数,并用此分数进行拍卖或者最终打分。因此,基于值的、可以估计长期价值的强化学习算法尤为重要。作为对比,策略梯度算法预测在可能的动作上的概率分布,它没有提供这样的分数,除非我们使用一个独立的actor-value critic(这样做会进一步提高底层系统的复杂度)。因此,看到更多的SlateQ结构被应用是一件自然的事情。