前景美好:多轮推荐的推荐系统,只有考虑为决策问题,才有逼近最优策略的可能

难度不小:最大的难度在于难在真实的推荐系统上做实验,于是不少工作还是按照监督学习的测试方式,用测试数据集来测,然而

决策模型是无法用静态数据测试的,因为新的决策导致的结果根本不在数据集中

除非数据集包含了几乎所有的可能性,如果有这样的数据集,那么也不需要强化学习了。因此唯一可以准确评估决策模型的方法,是骡子是马拉出来溜溜,也就是要做实际在线评估,做AB测试。

其实更糟糕的是,用静态数据集做测试的论文会带歪整个发展方向。因为,虽然可以说测试数据是模型训练过程中没有见过的,但是论文的产生过程,本身就包含了对模型的筛选:那些在测试数据上表现的很不好的模型,不会被发表,只有表现好的模型才会被发表。由此可见,一个错误的评估方式,会导致本来优秀的方法被评估为无效,而本来无效的方法,确会被认为是有效。用静态数据集做测试,只会筛选出拟合静态数据的方法,而放弃了真正做好决策的方法。

另外打个广告,希望这个项目有帮助:

https://github.com/eyounx/VirtualTaobao?

github.com


我是劝退来的!要骂我不理性随意,我是有几点悲惨的人生认识是要想说的。

目前做的强化学习推荐,分召回侧,还是排序侧做,一般来说,方法是不一样的,悲惨度也不一样。

召回侧的 RL,我个人建议从业者要判断公司推荐召回层,历史上有没有进行传统扩召回演算法的探索,扩召回迭代是否有效提升效果。否则,你的 RL 迭代过程会面临非常头疼的样本倾斜和覆盖问题,以及难以描述的排序端和召回层冲突(比如某个二货排序都特么挤掉特定领域的 term,我40米大刀都拔出来了),会让你迭代上线不仅没效果,而且死相难看。

排序侧做 RL,直接作用到用户上的那种,你就要保证整个页面注意力都是你团队的演算法在支持,而且有良好的数据系统,线上线下一致性都被很好地解决。如果有其他随时在迭代的策略和你并著跑,目前 RL 理论上的与人类合作演算法还不成熟,理论上收敛到啥不清楚,用的不放心。瞎扯淡一堆 AxC,DxN真心是你们业务强势才能玩这套模式呀,大部分地方玩不了这种全链路迭代模式,都是和其他策略并跑,还会被虐的那种呀。

最好别在金融领域做 RL,这是一个超级保守,且政策红线压得很严的场景,RL 对他们来说,太凶残了,沟通太心累了。

最后,做这东西,一定要加入强势业务团队,保证前端兜底听命于你们老大,否则他们动不动在你演算法前面外挂一个监控和兜底,还不和你说,写日记还专注坑你一万年。千万别在技术中台部门,AI lab,或者其他技术部门以赋能合作形式给业务端提供演算法,爹不疼娘不爱。

还有,我智商特别低,学术界灌水大佬别老笑话我发不出文章整天酸,我也快烦死你们发几篇顶会就整天尬吹演算法多牛逼呀。。。


强化学惯用于推荐系统,特别是序列化推荐(Sequential Recommendation, SR)是一个直观的解决方案。很多现有的SR文章其实都在做「根据前k个interaction推荐第(k+1)个」的工作[1],然而要做到真正的序列化推荐,其实更应该采用连续决策(sequential decision making)优化的思路。

我认为基于user-item interaction的推荐系统研究接下去有两个大的发展方向,一个是「向后看」,即根据用户过去的长期交互行为,更好地建模用户行为,得到综合的用户画像[2,4];另一个则是「向前看」,即连续推荐优化综合收益[5,8]。这些综合收益不一定是cumulative user actions,更可以是复合用户行为,例如(点击+转化),或者用户参与度[7]等综合指标。

前景一定是广阔的,因为这里面有很多难点没有解决,例如:

1)离线评估与在线效果之间的巨大鸿沟,这个鸿沟的背后原因有很多,不是一两个因素所造成。诚如之前答案所述,RL4Rec难以做到客观全面地离线评估,这主要是离线模拟过程的泛化性问题,特别是用户端连续决策行为的建模方面。现有方法其实还是有很多问题,例如没有刻画用户反馈行为的连续性与前后相关性;没有考虑用户反馈背后的多因素影响等等。

2)动作空间偏大。在真实的推荐系统中,可能面临巨大无比的离散化行为空间,因为待推荐item集合巨大无比。当然现在的推荐系统会使用粗排再精排,但在我们的讨论上下文中,我倾向于全程使用RL方法。那么这就带来行为空间过大的问题(远大于目前的game environment)。这个问题我们实验室的论文[6]已经作出了一些探索,但还没有完全解决这类问题。

3)在线效果容易受到其它策略的影响。例如推荐端在使用RL演算法,用户还在看到很多其它推荐、展示策略在其它位置、时段、平台推给他的结果,较难精确建模用户反馈与行为归因。

4)如何去做更好地探索,因为真实场景中没有游戏环境那样丰富的样本数据,每一次探索都有巨大的显性成本或隐性成本。更快地探索、更好地采用效率是RL4Rec实际应用中的难题。

5)强化学惯用于推荐系统,更难的是说服部门领导上线一个真实环境中可能会表现得较为弱智的强化学习策略,因为他需要你证明现在或未来它能产生更大的收益。

等等。

作为一种搜索方法,RL解决方案还是需要配合在线平台的实践数据,才能在推荐系统这个应用领域更好地往前走,解决实际问题。所以我觉得:

一方面,学术界难以独立完成这方面的研究,需要配合工业界的平台进行数据收集、实验,让模型进行E-E;否则只能作出一些基于静态数据的simulator(想了想感觉还能作出一些fancy的研究课题,但我觉得paper可能不太好中了,因为现在有太多处于工业界平台的大佬在review你的论文)。

另一方面,作为互联网AI应用最快最深入的领域,RL和推荐结合才刚刚开始探索,背后有太多问题值得去挖掘和探索。可以看到现在有很多RL4Rec的论文,方法还是RL领域十几年前的方法,结果发的都是顶会;只要稍微claim在线实验(其实很多规模、效果经不起推敲),这paper在过去的一年半里面都很好中。但是现在这时候,我想动手之前最好有一个工业平台能让你较好地做实验,至少收集数据;然后需要真正去想那些实际存在的问题和对应的解决方案,例如我前面提到的一些挑战。

最后,一个工业公司的部门老大在自家平台的未来规划中,敢不敢上这种前沿课题的探索与实验甚至上线接大流量,就看老大的魄力了。

以上是我的一些个人想法;不过我本人不是做RL4Rec这个方向的,很多思考还比较浅,欢迎讨论拍砖。

参考文献:

[1] Kang W C, McAuley J. Self-attentive sequential recommendation[C]//2018 IEEE International Conference on Data Mining (ICDM). IEEE, 2018: 197-206.

[2] Zhou G, Zhu X, Song C, et al. Deep interest network for click-through rate prediction[C]//Proceedings of the 24th ACM SIGKDD International Conference on Knowledge Discovery Data Mining. ACM, 2018: 1059-1068.

[4] Ren K, Qin J, Fang Y, et al. Lifelong Sequential Modeling with Personalized Memorization for User Response Prediction[C]. SIGIR 2019.

[5] Chen X, Li S, Li H, et al. Generative Adversarial User Model for Reinforcement Learning Based Recommendation System[C]//International Conference on Machine Learning. 2019: 1052-1061.

[6] Chen H, Dai X, Cai H, et al. Large-scale Interactive Recommendation with Tree-structured Policy Gradient[C]. AAAI 2019.

[7] Zou L, Xia L, Ding Z, et al. Reinforcement Learning to Optimize Long-term User Engagement in Recommender Systems[J]. arXiv preprint arXiv:1902.05570, 2019.

[8] Zhao X, Xia L, Tang J, et al. Reinforcement Learning for Online Information Seeking[J]. arXiv preprint arXiv:1812.07127, 2018.


我想用一句话来描述现在强化学习推荐系统上的工作,就是「自嗨成分」居多。话不好听,为什么这么说?像俞老师说的,静态数据根本不可能用来评价强化学习演算法。那现在很多工作要么直接上线实验,要么做一个Simulator。但是大家标准都不统一,产品都不一致,这样的情况下,大部分方法只能自说自话,连和前人对比的事情都没法做。

相比起来现阶段确实「Simulator」是一个比较合理的方式来做。而且最好有一个大家都能认可的Simulator,能够在一个Simulator上来进行有效对比。 但是,Simulator的合理性在哪里?谁来证明?我感觉这块的工作还是太少。太多工作执著于自己用了强化学习演算法取得了更好的效果,但没人去证明这个「Simulator」又有多大合理性。

另外一个非常不赞同现在很多做法是,用了DRL做上线,但baseline用的是低级别模型的Supervised Learning。 我甚至极少见到有文章能在同等的模型上做Reinforcement Learning和Supervised Learning对比。很多用高一个级别的模型+RL来吊打低一个级别的模型 + SL, 这种做法完全无法令人信服。

实际上,我们真实很多产品实验中,发现有很多替代方法能够获得类似RL效果,或者至少能拿到90% RL能拿到的收益,而其实用性,便利性远高于RL。现有较多RL很多设计过于理想化,和现在真实线上应用感觉仍有不少差距。


等待大神来分享practical experience。推荐几个resource:

google的这篇文章:Top-K Off-Policy Correction for a REINFORCE Recommender System,用REINFORCE给youtube做推荐。在netflix PRS2019 workshop上Minmin Chen大神也提到online experiments显示这个是youtube单个项目近两三年最大的reward增长,平均提升了&>1%。

在亚马逊Seattle office的小伙伴感兴趣推荐明天来听 Tony Jebara, Director of ML, Netflix Professor, Columbia University 的talk:Personalization via Deep, Meaningful, and Long-Term Learning。错过的可以到时候搜索内部video channel。

然后阿里的小黄书 强化学习在阿里的技术演进与业务创新 也可以借鉴。

Virtual Taobao: RL在搜索上的应用。整体上来说,search, personalization and recommendation的很多问题有很多相似性。

Deep Reinforcement Learning for Page-wise Recommendations: 京东的一篇文章,我还没来得及看。


魔鬼吊儿郎:Youtube推荐系统最大提升:RL Off policy + 推荐系统?

zhuanlan.zhihu.com图标

难度是不小的,前景感觉也是广阔的,谷歌18年底发了一篇off policy + 推荐系统的论文,据说获得了Youtube近两年单次上线的最高收益:Top-K Off-Policy Correction for a REINFORCE Recommender System

谷歌这篇paper将强化学习应用于推荐系统之中,获得了很明显的收益,文中仔细的介绍了在Youtube上的具体实践方案,以及每个细节带了什么样的收益,解决了哪些常见推荐系统中存在的问题,非常值得一读。因为知乎排版问题大家也可以去博客中阅读 。

Top-K Off-Policy Correction for a REINFORCE Recommender System on Youtube | 王鸣辉的博客?

wd1900.github.io图标

另外发个广告,位元组跳动抖音火山技术团队开启2020届校招提前批,内推可免笔试,失败也不影响正常秋招流程, 需要内推可发我邮箱 [email protected],社招同学也欢迎,演算法,大数据,服务端等都要

传统监督学习的方案在推荐系统中有局限

  1. system bias
  2. 新推荐系统训练使用的样本是当前推荐系统推荐给用户的,而没被推荐的item的反馈无从而知
  3. Pigeon-hole(tends to provide myopic recommendations)
  4. optimize to maximize directly immediate response
  5. 倾向于推荐大众化的or用户熟悉的item

强化学习在推荐系统中的困难

  1. Large action space
  2. Expensive exploration
  3. Learning off-policy
  4. Partial observability
  5. Noisy reward

Contributions

  • REINFORCE Recommender: We scale a REINFORCE policygradient-based approach to learn a neural recommendation policy in a extremely large action space.
  • Off-Policy Candidate Generation: We apply off-policy correction to learn from logged feedback, collected from an ensemble of prior model policies. We incorporate a learned neural model of the behavior policies to correct data biases.
  • Top-K Off-Policy Correction: We offer a novel top-K offpolicy correction to account for the fact that our recommender outputs multiple items at a time.
  • Benefits in Live Experiments: We demonstrate in live experiments, which was rarely done in existing RL literature, the value of these approaches to improve user long term satisfaction.

基本定义

  • Agent: candidate generator
  • State: user interest, context
  • reward: user satisfaction
  • Action: nominate from a catalogue of millions of videos

Data Source

user trajectory

State Representation

尝试了LSTM,GRU,最后使用的Chaos Free RNN(CFN),因为其比较稳定并且高效。

Adding Context

Reward

Discounted Future Reward

Youtube online metric

| | All | Desktop | Mobile | Tablet | | -------------- | ----- | ------- | ------ | ------ | | Online Metrics | 0.30% | 0.13% | 0.35% | 0.17% | Action

Policy-based RL

Learn a stochastic policy $pi_{ heta}left(a_{t} | s_{t}
ight)=operatorname{Pr}left[a_{t} | s_{t} ; heta
ight]$ to maximize cumulative reward

Trajectory generated by following the policy

Cumulative reward of the trajectory

Method: Maximize cumulative reward with gradient ascent

gradient of weighted log-likelihood

softmax over actions

Sampled softmax training, serving is preformed by fast nearest neighbor lookup before sampling.

Off-Policy Learning

不像传统RL,由于环境场景的限制,我们无法通过当前策略与生成的轨迹在线更新策略,而是收集历史的策略(不同于当前更新策略的分布)的反馈行为。 实际情况是以几个小时为周期收集数据,在旧策略下的轨迹数据上更新策略参数。 由于轨迹数据是由历史策略生产来,公式(2)的naive policy gradient estimator 就不再是无偏的了。

Address the distribution mismatch with importance weighting.

不论怎样从β采样,都可以校正成无偏估计。但importance weight的值会因为链式相乘而迅速变得很大或者很小,从而导致估计的方差变得很大。

为了减少梯度的方差,忽略t时间后的链式乘积,并采用一阶近似

a biased estimator of the policy gradient with lower variance:

Achiam et al. [1] 证明了在总奖励的一阶近似影响限制在 $Oleft(E_{s sim d^{eta}}left[D_{T V}(pi | eta)[s]
ight]
ight)$, $D_{T V}$ 是 $pi(cdot | s)$ 和 $eta(cdot | s)$ 的variance, $d^{eta}$ 是discounted future state distribution

This estimator trades off the variance of the exact off-policy correction while still correcting for the large bias of a non-corrected policy gradient, which is better suited for on-policy learning.

Parametrising the policy π

Estimating the behavior policy β

公式(3)中有个困难是获取策略$eta$, 理想情况下我们可以记录策略选择的action的概率,但是在这个场景下 1. 系统中有很多agents,其中许多我们无法控制 2. 一些agents有确定性策略,设$eta$为0或1无法高效利用logged feedback.

因此采用[39]中提出的方法,用记录下来的行为来估计多agents的混合策略$eta$.

Given a set of logged feedback $mathcal{D}=left{left(mathbf{s}{i}, a{i}
ight), i=1, cdots, N
ight}$, Strehlet al. [39] estimates $hat{eta}(a)$ independent of user state by aggregate action frequency throughout the corpus.

相反,我们采用了上下文独立的neural estimator。对每一个被收集的state-action pair,用另一个softmax估计$hat{eta}_{ heta^{prime}}(a|s)$

如图1,我们重复利用了从RNN生成出来的用户状态 s, 用另一个softmax层对混合策略进行建模。为了避免其对生成用户状态的主策略影响,block掉其对梯度的回传。我们也尝试过将两个策略分开建模,不过这带来了额外的计算开销,并且没有任何指标在离线和线上实验有提升。

尽管两个策略共享参数,但是他们之间有两个显著的区别: 1. 考虑到长期奖励,主策略$pi_{ heta}$使用带权的softmax训练,而$eta_{ heta^{prime}}$仅用 state-action pairs训练。 2. $pi_{ heta}$用轨迹上非零奖励的item训练,而$eta_{ heta^{prime}}$使用轨迹上的全部item,以免在估计$eta$中引入bias

In [39], it is argued that that a behavior policy that is deterministically choosing an action a given state s at time t1 and action b at time t2 can be treated as randomizing between action a and b over the timespan of the logging.

本文也同样认同上边的观点,这也解释了为什么行为策略可以是0或者1的确定性策略。除此之外,因为我们同时有多个策略,如果一个策略固定在状态s下选择行为a,而另一个策略会固定选择行为b,那么估计$hat{eta}_{ heta^{prime}}$ 将近似于在状态s下动作a发生的频率。

Top-K Off-Policy Correction

另一个挑战是我们会一次性给用户推荐一页共K个item,用户可能会全部看到也可能只会看到一部分,并可能与不止一个item发生交互,我们需要选择一系列相关的item而非一个item。也就是说我们要找到一个策略$Pi_{Theta}(A | s)$,每个动作A选择k个items,去最大化预期累计收益。

$$max {Theta} mathbb{E}{ au sim Pi_{ heta}}left[sum_{t} rleft(s_{t}, A_{t}
ight)
ight]$$

通过策略动作 $s_{0} sim
ho_{0}, A_{t} sim Pileft( | s_{t}
ight), s_{t+1} sim mathbf{P}left(cdot | s_{t}, A_{t}
ight)$ 可以得到轨迹$ au=left(s_{0}, A_{0}, s_{1}, cdots
ight)$ 但是这样动作空间会呈指数级增长,当候选集有几百万的时候,更是大的可怕。 为了解决问题,我们假定一组不重复items的预期奖励等于每个item预期奖励的总和(This assumption holds if users inspect each item on a page independently)

另外我们限制自己通过softmax 策略独立采样每个item a 并去重,生成一组动作A。 $$Pi_{Theta}left(A^{prime} | s
ight)=prod_{a in A^{prime}} pi_{ heta}(a | s)$$ 这里$A^{prime}$包含重复items,A是去重后的集合。

在上述假设下,我们可以通过简单修改方程式(2)的梯度更新逻辑,来调整强化学习演算法。

$alpha_{ heta}(a | s)=1-left(1-pi_{ heta}(a | s)
ight)^{K}$ 是item a出现在非重复集合A的概率。这里 K = |A『| &> |A| = k。 我们可以通过将$pi_{ heta}$替换为$alpha_{ heta}$去更新公式(3),来引入top-K off-policy 修正因子。

比较公式(6)和公式(3),top-K policy增加了一个额外的乘数

我们可以仔细的看一下这个额外的乘数: - 随著$pi_{ heta}(a|s)
ightarrow 0, lambda_{K}(s, a)
ightarrow K$, 相比于标准的off-policy correction,top-K off-policy correction 的更新增大K倍。 - 随著$pi_{ heta}(a|s)
ightarrow 1, lambda_{K}(s, a)
ightarrow 0$, 乘数会使策略更新趋向于0 - 随著K的增加,乘数减少梯度到0会快于$pi_{ heta}(a|s)$来达到一个合理的范围

总之,当期望项目在softmax策略πθ中具有小质量时,前K校正比标准校正更积极地推高其可能性。 一旦softmax政策πθ(·| s)在理想项目上投入合理的质量(以确保它可能出现在前K项),则校正后将梯度归零并且不再试图推高其可能性。 这反过来允许其他感兴趣的项目在softmax policy中占据一些质量。 正如我们将在模拟和实时实验中展示的那样,当标准的off-policy correctuib收敛于选择单个项目时最优的策略时,top-K correction会产生更好的top-K 推荐。

Variance Reduction Techniques

如前文所说,我们使用一阶近似去减少梯度估计得方差。但是由于大的importance weight,梯度仍然会有很大的方差.大的importance weight是由于新策略和旧策略偏差大,尤其在旧策略探索比较少的区域。That is,$pi(a | s) gg eta(a | s)$ and d (2) large variance in the β estimate. 我们测试了在counterfactual learning和RL文献中提出的几种技术来控制梯度估计的方差。这些技术中的大部分可降低方差,但代价是在梯度估计中引入一些偏差。

Weight Capping.

Normalized Importance Sampling (NIS).

n是batch size,n增加等价于调低学习率

Trusted Region Policy Optimization (TRPO). TRPO 通过增加正则项,惩罚两个策略间的KL散度,来预防新策略π偏离行为策略,取得的效果类似于梯度裁剪。

Address System Bias

实验组可以更倾向于尾部

Exploration

训练数据的分布对于学习一个好策略很重要。现在,探索现有系统很少采取的行动的Exploration policies已经被广泛研究。实践中,暴力探索如 ?-greedy,在Youtube中是不合适的,它大概率会导致一些不合适宜的推荐和不好的用户体验。, Schnabel et al. [35] 研究了探索的成本。 我们使用了Boltzmann exploration [12] 在不影响用户体验的情况下得到探索数据的好处。我们考虑采用随机策略,即推荐item是从$pi_{ heta}$采样而来,而非概率最高的K个items。这里计算开销是个挑战,我们需要计算完整的softmax。因此我们使用最近邻方案去寻找top M个items,算一个小的softmax,再据此进行采样。通过让 M &>&> K,我们仍可以得到大部分probability mass,限制不好推荐项的风险,保证计算效率。实践中,我们通过返回K个prob最高的items,和从M-K中采样K-K个items来平衡EE问题(exploration and exploitation)

Simulation

我们首先设计模拟实验,以便在更加可控的环境下阐明off-policy correction。 为了简化我们的模拟,我们假设问题是无状态的,换句话说,奖励R独立于用户状态,并且动作也不会改变用户状态。因此,可以独立地选择轨迹上的每个动作.

Off-policy correction

第一个模拟实验中,我们假设有10个items $mathcal{A}=left{a_{i}, i=1, cdots, 10
ight}$,$rleft(a_{i}
ight)=i$。当我们选择一个item时,最优策略就是一直选第十个,因为其奖励最大。 $$ pi^{*}left(a_{i}
ight)=mathbb{I}(i=10) $$ 我们用无状态softmax参数化$pi{ heta}$, $$ pileft(a_{i}
ight)=frac{e^{ heta_{i}}}{sum_{j} e^{ heta_{j}}} $$ 从行为策略β采样,不考虑数据bias,如公式(1)简单地用用策略梯度 $$ pileft(a_{i}
ight)=frac{rleft(a_{i}
ight) etaleft(a_{i}
ight)}{sum_{j} rleft(a_{j}
ight) etaleft(a_{j}
ight)} $$ 这有一个明显的缺点,行为策略越选择次优item,新的策略就约会偏向选同一个item。

图2比较了当策略β倾向选择奖励最少的item时,有无off-policy修正下的$pi{ heta}$。如图2所示,左边为不考虑数据偏差简单应用策略梯度,导致sub-optimal policy。最坏情况,行为策略一直选奖励最少的,我们也会学到一个类似旧策略的不好的策略(比如一直选奖励最少的)。而应用off-policy correction让我们学到一个最优策略$pi{*}$,不论收集的数据如何,如图(2)右边所示

Top-K off-policy correction

为了理解标准off-policy correction和top-K off-policy correction的区别,我们设计了个可以推荐多个items的实验。同样我们假设有10 items,$rleft(a_{1}
ight)=10, rleft(a_{2}
ight)=9$ , 剩下的奖励都是1,$rleft(a_{i}
ight)=1, forall i=3, cdots, 10$。我们专注于推荐两个item,即K = 2。行为策略β是均匀分布,每个item有同等的机会。

从β中采样到$left(a_{i}, r_{i}
ight)$,标准的off-policy correction有以下形式的SGD更新,

SGD持续增加$a_i$与$π_θ$下的预期奖励成比例的可能性,直到

当$pi_{ heta}left(a_{i}
ight)$很小时,$lambda_{K}left(a_{i}
ight) approx K$, SGD会更激进的增加$a_i$的可能性。当$pi_{ heta}left(a_{i}
ight)$到一个足够大的值时$lambda_{K}left(a_{i}
ight)$ 接近于0。因此,即使$pi_{ heta}left(a_{i}
ight)$仍然小于1,SGD也不再强制增加item的可能性。这反过来使第二好的项目在学习的策略中占有一些地位。

图3左边展示了标准方式和top-K学到的策略$pi_ heta$.我们可以看到虽然从标准off-policy correction学到的策略已经被校准[23]过,切它也按奖励的大小保证了顺序,但是收敛的策略几乎将整个质量全部集中于top-1 item,即$pileft(a_{1}
ight) approx 1.0$。这导致策略基本没有学到次优项(本例中的$a_2$)和其余之间的区别.而top-K correction的收敛策略在保证item顺序于奖励顺序一致的情况下,也为第二的item保留了significant mass。因此,我们可以为用户推荐两个高奖励的items,获得更高的整体奖励。

Live Experiments

这是Youtube近两年以来单次上线取得的最大收益

| | All | Desktop | Mobile | Tablet | | -------------- | ----- | ------- | ------ | ------ | | Online Metrics | 0.86% | 0.36% | 1.04% | 0.68% |

我们在Youtube的RNN候选生成模型做了一些列AB实验。这个模型是众多候选生成模型中的一个,在展示前会有一个独立的rank model去进行打分排序。模型根据上述RL演算法来训练,实时奖励反应著用户的行为,推荐的视频没被点击的奖励为0.长期奖励R会在4-10小时内做聚合。每个实验中control model和test model用相同的reward函数。实验运行了很多天,模型在线上持续训练,新事件会在24小时内训练。实验期间,我们关注了各种线上指标,不过这里我们主要关注用户观看视频时长,ViewTime.

这里介绍的实验描述了对生产系统的多个连续改进。 所以,最新的推荐系统为下一个实验提供训练数据,这导致一旦生产系统采用新方法,后续实验就不能与早期系统进行比较。 因此,以下每个实验会作为组件单独分析,并在每个部分中说明新方法接收数据是由什么推荐系统提供的。

Exploration

我们首先要理解exploratory data 在提高模型质量方面的价值。 特别是,我们想衡量是否要在之前描述的采样softmax模型下使用随机策略,要比一直根据softmax推荐概率最高的K个item的模型要好。 我们先弄一组实验对比随机策略和确定性出一个。在实验中,控制群体使用确定性策略,而一小部分测试流量用随机策略,如Exploration节所述。 两个实验都是基于公式(2)里的softmax模型训练。为了控制随机策略的随机性,我们调整公式(5)的temperature.一个较低的T是随机策略偏向于确定性策略,而T值变大会导致item的推荐偏向于等概率随机。 当T设为1时,ViewTime没有统计显著性变化,这表明采样所引入的这些随机性没有直接伤害用户体验。

但是这个实验的设置没有考虑有探索数据对于训练的益处。从历史记录数据中学习的一个主要偏差是模型没有观察到前一个推荐策略未选择的Action的反馈,探索性数据会缓解这一问题。我们有搞了一个跟进实验,在训练中引入了探索数据。为此,我们首先将平台用户分为了3个buckets,90%,5%,5%。前两个buckets基于确定性模型使用确定性策略,最后一个bucket用基于带探索性数据训练模型的stochastic policy。确定性模型用前两个buckets训练,随机模型用第一个和第三个bucket训练。这样两个模型训练使用的数据量时相等的,但随机模型会因为探索数据更容易观察到一些罕见的state,action pair.

按此实验流程,我们观察到测试群体中的ViewTime统计学显著性地增加了0.07%。 虽然改进不大,但它来自相对少量的勘探数据(只有5%的用户在用随机政策)。随著随机政策的全面启动,我们预计会有更高的收益。

Off-policy Correction

使用完随机策略之后,我们在训练中引入off-policy correction。这块我们用了更传统的A/B测试设置,都使用了全部数据。实际上,我们用了很少的用户作为测试人群,所以数据基本全部来自control model。control model由公式(2)确定,只用reward调整样本的权重。测试模型使用图1的结构,即用来学习 serving policy $pi_{ heta}$ 也学习 behavior policy $eta_{ heta_{prime}}$. serving policy 用公式(3)中off-policy correction 训练,样本权重不止依赖与reward,还依赖importance weight$frac{pi_{ heta}}{eta_{ heta^{prime}}}$ 去解决data bias。

在实验期间,我们观察到学习策略(测试)的开始是通过行为策略(控制)获取的数据。图4绘制了由我们的提名者根据对照人群中的视频等级在对照和实验中选择的视频的CDF(rank 1是control model中推荐最多的视频,最右边是最少被推荐的视频)。我们可以看到test model(绿色)更倾向于那些较少被control model探索过的视频。我们看到top ranks之外的视频被推荐数提升了三倍,这与我们在图2中展现的模拟实验结论是一致的。当忽略数据收集与处理的bias会产生强者恒强的现象。因此视频被推荐,可能仅仅是因为他在behavior policy里曾大量被推荐,而off-policy correction可以帮忙解决这个问题。

有趣的是,在线上实验中,我们并没有观察到control与test群体之间的 ViewTime 发生统计显著性变化。然而,我们看到视频数量增加了0.53%,这在统计学上是显著的,这表明用户确实得到了更多的享受。(注:个人觉得这个对发文侧会有一个显著的促进,作者留存应该会提升,长期看也对用户也是正向的,不过谷歌这篇论文没有提

Top-K Off-Policy

我们现在聚焦于理解是否Top-K off-policy比标准的off-policy提升用户体验。我们用同样的模型结构使用公式6的top-K off-policy corrected梯度更新训练,然后和上一节的off-policy模型比较。在本实验中,我们让方程 (8)的 K = 16 和上限 c=e^3 ;后边我们会更详细地探讨这些超参数。

虽然我们之前测试过的标准off-policy correction过于关注top-1 item,而top-K off-policy correction收敛于更平稳的政策,其中会有non-zero mass在用户其他感兴趣的项目上。 这反过来导致更好的top-K推荐。 鉴于我们可以推荐多个项目,top-K policy让我们向用户提供比标准off-policy correction更好的整体体验。 特别是,我们发现测试流量中ViewTime增加了0.85%,观看的视频数量略微减少了0.16%。(注:短视频的话,可以再关注下finish指标的变化

Understanding Hyperparameters

最后,我们直接比较不同的超参数的选择如何影响top-K off-policy correction对平台上的用户体验。我们在top-K off-policy correction成为生产模型后进行了这些测试。

Number of actions

我们先测了下top-K中的K。我们用$K in{1,2,16,32}$训练了三个结构相同的模型。The control (production) model is the top-K off-policy model with K = 16. 我们在图5画了5天实验的结果。当K=1时,top-K就是标准的off-policy correction。与基线K = 16相比 K = 1 导致ViewTime掉了0.66%。K = 2 也不好,不过差距变小了,ViewTime下降了0.35%,K = 32的效果类似基线。我们后续的实验显示K = 8 在ViewTime上有一定的正向(+0.15% statistically significant)

Capping

这里我们来探讨下方差减小技术对学到的推荐系统的最终质量的影响。论文Section4.4里weight capping在最初实验里拿到了最大的收益。我们没有观察到normalized importance sampling,or TRPO [36]对指标的提升。我们搞了个回归测试研究weight capping的影响,比较了c = e^3和c = e^5。当我们取消对importance weight的限制时,学到的策略$π_θ$可能会过度适应一些意外获得高回报的logged actions。 Swaminathan和Joachims [43]描述了倾向过拟合的类似效果。 在线上实验中,当the cap on importance weight被增大时,我们观察到ViewTime显著下降了0.52%。

Conclusion and Future Works

这篇paper讲了policy gradient-based top-K推荐系统在Youtube上的应用。我们将REINFORCE的action space扩展到数百万这个级别,并且稳定的运行在线上生产环境中。为了展示这种方法的全部收益,我们演示了如何通过结合a learned logging policy和新颖的top K-off-policy correction来解决logged data中的bias。我们进行了广泛的分析和实验,来衡量了解和解决这些潜在的biases的重要性。 我们认为这些是使强化学习对推荐产生实际影响的重要步骤,并为研究人员和从业人员探索将RL应用于推荐系统提供了坚实的基础。

  • Reinforement Learning Framework for Recommender Systems
  • Future Work
  • Better state representation through LRD
  • Better exploration and planning
  • Beyond systems and user:improve Youtube ecosystem

参考

  • https://www.youtube.com/watch?v=HEqQ2_1XRTs
  • https://arxiv.org/pdf/1812.02353.pdf


曾在美团做过一年强化学习在推荐系统的落地工作,本文是期间工作的总结

美团技术团队:强化学习在美团「猜你喜欢」的实践?

zhuanlan.zhihu.com图标

几点主观感受:

1. 业务场景和MDP决定效果的上界。RL适用于真正存在多轮交互,且推荐能力能够决定长期用户价值的场景。比如信息流和短视频比电商更合适一些。

2. 现阶段的RL不是推荐系统的标配,甚至多数情况下不是ROI最高的选择,但这部分长期收益有监督的方法拿不到。总有人将走上陡峭的山路,因为山就在那里。

3. 山脚的旅人远远地观望,谈论,质疑,但对于有幸攀上一座山峰的旅人而言,veni, vidi, vici.

最近有点忙,有空整理一下思路回答。


不怎么样,原理上就不符合强化学习的原则,St到St_1基本上不可控,线上开发极为复杂且不稳定。一旦出现大的问题,是不可承受的损失。

之前看过几篇论文,比如京东那个,不过也就是看看而已,尤其是国人写的文章,可信度和可复现各个方面极其值得存疑。

推荐系统,在线实时的监督学习是一个能极大提高指标的方法。但不是强化学习。 (Bandit不包括在内)


过去几个月合作做了一篇RL应用在推荐领域的论文。

感触很深,RL优点在于确实能缓解longTail和coldStart问题,缺点是迭代运算真的太慢,而且用不起百级别的原始特征,这导致的结果就是一众烂大街的boosting演算法加上千级别原始特征,F1基本不差于RL,训练时间几乎1/10,更不用谈监督模型得到后输入特征立刻就得到标签。

RL在推荐领域研究,目前个人看好的是针对推荐系统三大问题下手,比精确率等一众指标以目前算力看还是缓缓。


我对目前强化学习应用于推荐系统不太看好,原因在推荐系统中的推荐列表好比智能体,则用户就好比环境,用户对于推荐列表的好坏会给予反馈,从而不断迭代优化推荐列表使得累计回报达到最大,而目前对于强化学习演算法的测试要么基于离线静态数据集,要么建立一个模拟器,试问静态数据集能否包含真实环境中产生的所有可能性即(s,a,r),如果包含所有可能性则强化学习就变成了监督学习,如果不能,如何通过静态数据集去评估决策模型的好坏,可能这个决策模型针对于现有数据集表现良好,而对于其它数据集则无效,所以永远不上线去测试模型都无法说明该模型的优劣,即使设计一个模拟器,但模拟器终究是基于已有数据集构造的,能否保证模拟器的泛化能力包含所有可能性,这几乎不可能,这其实是一个强化学习的一个分支sim2real问题,还有待于解决,所以RL4Rec对目前来说还有点太前沿了,还有很多问题亟待解决^_^。


推荐阅读:
相关文章