以 YouTube 論文學習如何在推薦場景應用強化學習

導讀:近期,業界開始流傳 YouTube 成功將 RL 應用在了推薦場景,並且是 YouTube 近幾年來取得的最顯著的線上收益。

放出了兩篇論文:

[1] Top-K Off-Policy Correction for a REINFORCE Recommender System

https://arxiv.org/pdf/1812.02353.pdf

[2] Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology

https://arxiv.org/pdf/1905.12767.pdf

個人建議兩篇論文都仔細讀讀,TopK 的篇幅較短,重點突出,比較容易理解,但細節上 SlateQ 這篇更多,對比着看更容易理解。而且,特別有意思的是,這兩篇論文都說有效果,但是用的方法卻不同,一個是 off-policy,一個是 value-base,用 on-policy。很像大公司要做,把主流的幾種路線讓不同的組都做一遍,誰效果好誰上。個人更喜歡第二篇一些,會有更多的公式細節和工程實踐的方案。

很多做個性化推薦的同學,並沒有很多強化學習的背景,而 RL 又是一門體系繁雜的學科,和推薦中常用的 supervised learning 有一些區別,入門相對會困難一些。本文將嘗試根據這兩篇有工業界背景的論文,來解答下 RL 在推薦場景解決什麼問題,又會遇到什麼困難,我們入門需要學習一些哪些相關的知識點。本文針對有一定機器學習背景,但對 RL 領域並不熟悉的童鞋。

本文的重點如下:

  • 目前推薦的問題是什麼
  • RL 在推薦場景的挑戰及解決方案
  • 常見的套路是哪些

推薦系統目前的問題

目前主流的個性化推薦技術的問題,突出的大概有以下幾點:

  • 優化的目標都是 short term reward,比如點擊率、觀看時長,很難對 long term reward 建模。
  • 最主要的是預測用戶的興趣,但模型都是基於 logged feedback 訓練,樣本和特徵極度稀疏,大量的物料沒有充分展示過,同時還是有大量的新物料和新用戶涌入,存在大量的 bias。另外,用戶的興趣變化劇烈,行爲多樣性,存在很多 Noise。
  • pigeon-hole:在短期目標下,容易不停的給用戶推薦已有的偏好。在另一面,當新用戶或者無行爲用戶來的時候,會更傾向於用大爆款去承接。

RL應用在推薦的挑戰

看 slide ( 見參考資料 [3] )

  • extremely large action space:many millions of items to recommend. 如果要考慮真實場景是給用戶看一屏的物料,則更誇張,是一個排列組合問題。
  • 由於是動態環境,無法確認給用戶看一個沒有看過的物料,用戶的反饋會是什麼,所以無法有效模擬,訓練難度增加。
  • 本質上都要預估 user latent state,但存在大量的 unobersever 樣本和 noise,預估很困難,這個問題在RL和其他場景中共存。
  • long term reward 難以建模,且 long/short term reward。tradeoff due to user state estimate error。

旅程開始

熟悉一個新領域,最有效率的做法是和熟悉的領域做結合。接下來,讓我們先簡單看下 RL 的基本知識點,然後從 label、objective、optimization、evaluation 來切入吧。

1. RL 的基本知識

有一些基本的 RL 知識,我們得先了解一下,首先是場景的四元組結構:

RL 最大的特點是和環境的交互,是一種 trial-error 的過程,通常我們會用 MDP 來描述整個過程,結合推薦場景,四元組數學定義如下:

  • S: a continuous state space describing the user states;
  • A: a discrete action space, containing items available for recommendation;
  • P : S × A × S → R is the state transition probability;
  • R : S × A → R is the reward function, where r(s, a) is the immediate reward obtained by performing action a at user state s.

2. RL 在推薦場景的 Label 特點

衆所周知,RL 是典型的需要海量數據的場景,比如著名的 AlphaGo 採用了左右互博的方式來彌補訓練數據不足的問題。但是在推薦場景,用戶和系統的交互是動態的,即無法模擬。舉個例子,你不知道把一個沒有推薦過的商品 a 給用戶,用戶會有什麼反饋。

① 老生常談 Bias

好在推薦場景的樣本收集成本低,量級比較大,但問題是存在較爲嚴重的 Bias。即只有被系統展示過的物料纔有反饋,而且,還會有源源不斷的新物料和用戶加入。很多公司會採用 EE ( Explore & Exploit ) 的方式去解決,有些童鞋表示 EE 是天問,這個點不能說錯,更多的是太從技術角度考慮問題了。

EE 要解決的是生態問題,必然是要和業務形態結合在一起,比如知乎的內容自薦(雖然效果是呵呵的)。這個點估計我們公司是 EE 應用的很成功的一個了,前陣子居然在供應商口中聽到了準確的 EE 描述,震驚於我們的業務同學平時都和他們聊什麼。

② off-policy vs on-policy

論文 [1] 則採取 off-policy 的方式來緩解。off-policy 的特點是,使用了兩個 policy,一個是用戶 behavior 的 β,代表產生用戶行爲 Trajectory:(s0,A0,s1, · · · ) 的策略,另一個是系統決策的 π,代表系統是如何在面對用戶 a 在狀態 s 下選擇某個 action 的。

RL 中還有 on-policy 的方法,和 off-policy 的區別在於更新 Q 值的時候是沿用既定策略還是用新策略。更好的解釋參考這裏:

https://www.zhihu.com/question/57159315

③ importance weight

off-policy 的好處是一定程度上帶了 exploration,但也帶來了問題:

In particular, the fact that we collect data with a periodicity of several hours and compute many policy parameter updates before deploying a new version of the policy in production implies that the set of trajectories we employ to estimate the policy gradient is generated by a different policy. Moreover, we learn from batched feedback collected by other recommenders as well, which follow drastically different policies. A naive policy gradient estimator is no longer unbiased as the gradient in Equation (2) requires sampling trajectories from the updated policy πθ while the trajectories we collected were drawn from a combination of historical policies β.

常見的是引入 importance weighting 來解決。看下公式:

從公式看,和標準的 objective 比,多了一個因子,因爲這個因子是連乘和 rnn 的問題類似,梯度容易爆炸或消失。論文中用了一個近似解,並有人證明了是 ok 的。

3. RL 在推薦場景的 Objective 特點

在前文中,我們提到,現有的推薦技術,大多是在優化短期目標,比如點擊率、停留時長等,用戶的反饋是實時的。用戶的反饋時長越長,越難優化,比如成交 gmv 就比 ctr 難。

同時也說明,RL 可能在這種場景更有優勢。看下 objective 的形式表達:

可以發現,最大的特點是前面有個累加符號。這也意味着,RL 可以支持和用戶多輪交互,也可以優化長期目標。這個特點,也是最吸引做個性化推薦的同學,大家想象下自已在使用一些個性化產品的時候,是不是天然就在做多輪交互。

輪到 Bellman 公式上場了,先看下核心思想:

The value of your starting point is the reward you expect to get from being there, plus the value of wherever you land next.

看下公式,注意它包含了時間,有助於理解:

在論文 [2] 中,有更多關於 bellman 在 loss 中推導的細節。由於論文 [1] 採用的 policy-gradient 的優化策略,我們需要得到 loss 的梯度:

加入 importance weighting 和一些 correction 後:

更多細節可以去參考論文。

4. optimization 和 evaluation

通常,RL 可以分成兩種,value-base 和 policy-base,雖然不是完全以 optimial 的角度看,但兩種套路的優化方法有較大的區別。其中 value-base 雖然直觀容易理解,但一直被質疑不能穩定的收斂。

they are known to be prone to instability with function approximation.

而 policy-base 則有較好的收斂性質,所以在很多推薦場景的 RL 應用,大部分會選擇 policy-base。當然現在也很有很多二者融合的策略,比如 A3C、DDPG 這種,也是比較流行的。

怎麼訓練 β 和 π?

π 的訓練是比較常規的,有意思的是 β 的學習。用戶的 behavior 是很難建模的,我們還是用 nn 的方式去學一個出來,這裏有一個單獨的分支去預估 β,和 π 是一個網絡,但是它的梯度不回傳,如下圖:

這樣就不會干擾 π。二者的區別如下:

(1) While the main policy πθ is effectively trained using a weighted softmax to take into account of long term reward, the behavior policy head βθ′ is trained using only the state-action pairs;

(2) While the main policy head πθ is trained using only items on the trajectory with non-zero reward 3, the behavior policy βθ′ is trained using all of the items on the trajectory to avoid introducing bias in the β estimate.

爲何要把 evaluation 拿出來講呢?通常,我們線下看 AUC,線上直接看 abtest 的效果。本來我比較期待論文中關於長期目標的設計,不過論文 [1] 作者的方式還是比較簡單,可借鑑的不多:

The immediate reward r is designed to reflect different user activities; videos that are recommended but not clicked receive zero reward. The long term reward R is aggregated over a time horizon of 4–10 hours.

論文 [2] 中沒有細講。

兩篇論文中還有很大的篇幅來講 Simulation 下的結果,[1] 的目的是爲了證明作者提出的 correction 和 topK 的作用,做解釋性分析挺好的,[2] 做了下算法對比,並且驗證了對 user choice model 魯棒,但我覺得對實踐幫助不大。

One more thing:TopK 在解決什麼問題?

1. listwise 的問題

主流的個性化推薦應用,都是一次性給用戶看一屏的物料,即給出的是一個列表。而目前主流的個性化技術,以 ctr 預估爲例,主要集中在預估單個物料的 ctr,和真實場景有一定的 gap。當然,瞭解過 learning to rank 的同學,早就聽過 pointwise、pairwise、listwise,其中 listwise 就是在解決這個問題。

通常,listwise 的 loss 並不容易優化,複雜度較高。據我所知,真正在實踐中應用是不多的。RL 在推薦場景,也會遇到相同的問題。但直接做 list 推薦是不現實的,假設我們一次推薦 K 個物料,總共有 N 個物料,那麼我們能選擇的 action 就是一個排列組合問題,C_N_K * K! 個,當 N 是百萬級時,量級非常誇張。

這種情況下,如果不做些假設,問題基本就沒有可能在現實中求解了。

YouTube 的兩篇論文,都將問題從 listwise ( 他們叫 slatewise ) 轉化成了 itemwise。但這個 itemwise 和我們常規理解的 pointwise 的個性化技術還是有區別的。在於這個 wise 是 reward 上的表達,同時要引申出 user choice model。

2. user choice model

Pointwise 的方法只考慮單個 item 的概率,論文中提出的 itemwise,雖然也是認爲最後的 reward 只和每個被選中的 item 有關,且 item 直接不互相影響,但它有對 user choice 做假設。比如論文 [2] 還做了更詳細的假設,將目標函數的優化變成一個多項式內可解的問題:

這兩個假設也蠻合理的,SC 是指用戶一次只選擇一個 item,RTDS 是指 reward 只和當前選擇的 item 有關。

有不少研究是專門針對 user choice model 的,一般在經濟學中比較多。推薦中常見的有 cascade model 和 mutilnomial logit model,比如 cascade model,會認爲用戶選擇某個 item 的概率是 p,那麼在一個 list 下滑的過程中,點擊了第 j 個 item 的概率是 (1-p(i))^j * p(j)。

論文 [1] 中最後的 objective 中有一個因子,表達了 user choice 的假設:

簡單理解就是,用 π 當做用戶每次選擇的概率,那上面就是 K-1 不選擇 a 概率的連乘。而論文 [2] 中,RL 模型和現有的監督模型是融合在一起的,直接用 pCTR 模型預估的 pctr 來當這個 user choice 的概率。

最後

這篇寫的有點長,但就算如此,看了本文也很難讓大家一下子就熟悉了 RL,希望能起到拋磚引玉的作用吧。從實踐角度講,比較可惜的是 long term reward 的建模、tensorflow 在訓練大規模 RL 應用時的問題講的很少。最後,不知道 YouTube 有沒有在 mutil-task 上深入實踐過,論文 [2] 中也提到它在 long term 上能做一些事情,和 RL 的對比是怎麼樣的。

參考資料

[1] Top-K Off-Policy Correction for a REINFORCE Recommender System

[2] Reinforcement Learning for Slate-based Recommender Systems: A Tractable Decomposition and Practical Methodology*

[3] Reinforcement Learning in Recommender Systems: Some Challenges

https://slideslive.com/38917655

[4] Top-K Off-Policy Correction

https://zhuanlan.zhihu.com/p/72669137

[5] 強化學習中on-policy 與off-policy有什麼區別?

https://www.zhihu.com/question/57159315

[6] Top-K Off-Policy Correction for a REINFORCE Recommender System on Youtube

http://wd1900.github.io/2019/06/23/Top-K-Off-Policy-Correction-for-a-REINFORCE-Recommender-System-on-Youtube/

作者介紹

吳海波

蘑菇街 | 搜索、推薦排序算法 owner

本文來自 DataFun 社區

原文鏈接

https://mp.weixin.qq.com/s?__biz=MzU1NTMyOTI4Mw==&mid=2247494226&idx=1&sn=a96ea0ad8961ec3698301cf0c4514843&chksm=fbd7583ecca0d128aa0d46ada7c5ab81e8791994ddfe0f167499bb6450576ebe988b1be78107&scene=27#wechat_redirect

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章