Google | 創造Youtube單次上線最高收益!解決推薦中的信息繭房困境

星標/置頂小屋,帶你解鎖

最萌最前沿的NLP、搜索與推薦技術

文 | 江城

編 |  夕小瑤


今天分享一下Google在WSDM 2019的一篇將強化學習應用於Youtube推薦的論文,作者宣稱是獲得了Youtube近兩年來單次上線的最高收益。文章仔細介紹了RL在Youtube上的實踐方案細節以及相應的收益,同時介紹了很多實踐中的Best Practice,是一篇工業界實踐色彩濃重的論文,非常值得一讀。


衆所周知,工業界大規模推薦系統一般都是有百萬、千萬級甚至更大規模的item候選集,因此從RL的角度來說,action空間異常的龐大。同時用戶規模都是數以十億計,帶來了複雜的user state空間。當前主流做法都是從大規模用戶隱式行爲日誌中訓練學習,但是這樣會有一個明顯造成 信息繭房困境 的System Bias——日誌中的用戶隱式反饋只包含了前一版本系統推薦選中曝光出去items,對於未被曝光/選中的item候選項則完全無法學習。

本文以Youtube推薦爲場景,提出了一種基於策略梯度(例如REINFORCE)的算法來解決上述的System Bias。本文主要貢獻點:

  1. REINFORCE Recommender:擴展REINFORCE算法應用於擁有百萬級別量級超大action空間的工業界線上系統;

  2. Off-Policy Candidate Generation:在召回階段使用off-policy矯正來解決基於多種行爲策略下積累用戶歷史數據進行學習帶來的數據偏差;

  3. Top-K Off-Policy Correction:提出一種新穎的Top-K off-policy矯正方案來優化同時推薦多個候選item時的矯正問題;

  4. Benefits in Live Experiments:證明了在線上實驗的效果,展示了在提升用戶長期滿意度的價值。

論文鏈接 

https://arxiv.org/abs/1812.02353 

公衆號「夕小瑤的賣萌屋」後臺回覆關鍵詞【0706】下載論文PDF

介紹

傳統監督學習的方案在推薦系統中是有明顯的侷限性的。一方面,新模型迭代時使用的訓練樣本是當前模型選中並推薦給用戶的,但是沒有被選中的候選集的用戶反饋則無從得知;另一方面,傳統監督學習的方案的優化目標是最大化推薦的即時收益,導致了系統更傾向於推薦大衆化或者熟悉的候選item。

與此同時,強化學習在推薦系統中的應用也存在着明顯的困難:

  • 超大的action空間;

  • 實行exploration的成本較大:系統複雜而且容易帶來糟糕用戶體驗;

  • 如何從當前模型策略收集的行爲日誌中學習;

  • 部分觀測性;

  • 帶有噪聲的reward;

建模策略π

本文在Youtube中應用強化學習的建模示意圖如下所示。RL中幾個關鍵元素

  • Agent:candidate generator也就是召回;

  • State:用戶表示,包含context,user profile特徵等;

  • Reward:用戶滿意度反饋;

  • Action:從百萬量級的候選video中選擇Top-K;

前面提到的一個關鍵問題:如何從當前模型策略收集的行爲日誌中學習新的模型策略呢? 如下圖所示,將收集到的用戶行爲日誌一分爲二。前半部分Sequential Past用來表徵User state;後半部分Sequential Future用來計算Reward。

User State Representation

本文使用RNN來針對User state的變換進行建模,實驗了LSTM/GRU等單元,最後實際使用的是Chaos Free RNN,其比較穩定且高效。

Reward

Reward建模方面,則是典型的針對未來收益進行指數衰減加和。

Action

基於User state,策略π的求解就是在action空間上的softmax。爲了加速計算,在訓練階段使用了 sampled softmax;在serving階段則是使用鄰近搜索算法來獲取top K的候選集。

Policy-based RL

在推薦的場景下,給定用戶的行爲序列,系統需要推薦給用戶下一個感興趣的候選item(也就是action)。Policy-based RL的目標就是希望能夠學習到一個隨機策略π,來最大化期望的累積收益。

Policy-based RL的求解思路是根據策略梯度可以迭代求解出最優的隨機策略π。使用log-trick可以將上述對累積reward梯度的計算轉化爲對策略π的梯度計算。

Off-Policy矯正

如果解決系統的“部分觀測性”問題?本文使用importance weighting的方式來處理推薦系統當前模型行爲策略和新策略不一致的問題。

經過推導發現,爲了處理系統偏差問題,Off-policy的更新迭代與On-policy的更新迭代唯一的區別只需要在梯度的基礎上乘以一個矯正係數即可,如下圖總結所示。這個矯正係數主要包含兩部分:一部分是當前學習的新策略π;另一部分是用戶行爲日誌保存時推薦系統的行爲策略β

預估行爲策略β

上述Off-Policy Learning中的矯正係數,當前學習的新策略π可以前向傳導計算得到,那用戶行爲日誌保存時推薦系統的行爲策略如何得到呢?理想情況下我們可以記錄當時系統選擇action對應的概率。但是在推薦場景下:

  1. 推薦系統的召回部分有很多的agents,RL只是其中的一路召回,其他的agents我們無法控制也就無法記錄對應選擇action的概率;

  2. 一些agents有確定性的策略,也就是β爲0或者1時無法高效地利用用戶行爲日誌進行訓練;

答案是直接使用一個單獨的網絡來進行預估即可。本文采用了上下文獨立的neural estimator,對於每一個收集到的state-action pair,用另外一個softmax來估計β。如下圖所示,在主流程學習當前新策略π的基礎上,預估β的網絡重複利用了從RNN結構生成出來的用戶狀態s,用另外一個單獨的softmax層對日誌中的系統行爲策略進行建模。爲了避免β對生成用戶狀態的主策略π產生干擾影響,本文中block掉β對用戶狀態s的梯度回傳,β策略的梯度回傳只用來更新其單獨的item embedding。本文中提到也嘗試過將兩個策略單獨分開建模,發現帶來額外計算開銷的同時並沒有任何離線和線上指標的提升。

儘管兩個策略π和β共享用戶state參數,但是他們之間有着顯著的區別

  1. 主策略π使用考慮長期reward的softmax進行訓練,而行爲策略β則僅僅使用state-action pairs進行訓練;

  2. 主策略π使用用戶行爲歷史上非零reward的樣本進行訓練,而行爲策略β則使用用戶行爲歷史上全部的樣本進行訓練。

也正是因爲針對系統行爲策略β進行預估,一方面行爲策略可以是0或者1的確定性策略;另外一方面,即便是有多路召回也就是多個agents選擇不同actions的時候,那麼行爲策略預估的便是在狀態s下動作a發生的頻率。

Top-K Off-Policy矯正

上面提到的Off-Policy Correction只是針對Top 1推薦的矯正,實際場景中系統往往會一次性地同時返回K個item,用戶可能全部看到也可能只看到一部分,並可能與不止一個item發生交互。也就是說我們的建模需要擴展一下,希望找到一個隨機策略π,每個動作action選擇K個items,去最大化預期累積收益。這裏只需要改造一下原來的目標函數

但是這樣的話有一個問題是動作空間會呈指數級增長,當候選集是百萬甚至千萬級別的時候更是大的可怕。爲了解決這個問題,我們假定一組不重複items的預期獎勵等於每個item預期獎勵的總和。這樣的話就可以簡單修改下原有的梯度方程式得到新的梯度更新邏輯:

經過推導發現,Top-K的Off-Policy矯正方案的更新梯度只是在原有Top-1的更新梯度上增加了一個額外的乘數。可以定性地理解一下這個額外的乘數:

  • 隨着π -> 0,lambda -> K,相比於標準的off-policy correction,Top-K的Off-Policy correction的梯度更新會增大K倍;

  • 隨着π -> 1,lambda -> 0,額外的乘數則會是策略梯度更新趨向於0;

也就是說,當候選項目在主策略π中具有較小概率時,Top-K的Off-Policy矯正比標準矯正更快地更新修正。一旦候選項目在主策略中已經佔了一定概率後,則Top-K的Off-Policy矯正會將梯度趨向於零。這反過來允許其他有可能感興趣的候選item得到一定的選中機會。正如本文在模擬和線上實驗中展示的那樣,當標準的Off-Policy矯正收斂於固定選擇某個項目的最優策略時,Top-K的Off-Policy矯正會產生更好的Top-K推薦。

Variance Reduction技巧

前文在推導策略梯度時使用了一階近似來減少梯度估計的方差。但是當importance weight較大時,策略梯度仍然會有較大的方差。importance weight較大意味着新策略與舊的行爲策略偏差較大,尤其發生在舊行爲策略探索比較少的候選集。

我們實驗了多種在conterfactual learning和RL文獻中提出的集中技術來控制梯度估計的方差,這些技術大部分情況下都可以降低方差,但是代價就是會在梯度估計中引入一些偏差。譬如Wieght Capping、NIS、TRPO等。

Exploration

衆所周知,訓練數據的分佈會非常嚴重地影響是否能夠學習到一個好的策略。探索舊的行爲策略很少採取的action的探索策略已經被廣泛應用。在實際系統中,暴力探索譬如 ϵ-greedy,在Youtube推薦中是不合適的,因爲在大概率情況下會帶來非常糟糕的用戶體驗。

我們使用了Boltzmann探索在不影響用戶體驗的前提下,得到探索數據的收益。我們考慮採用隨機策略,也就是並非推薦概率最高的K個items而是從主策略π中採樣而來。考慮到主策略計算完整的softmax開銷太大,因此我們使用最近鄰方案來尋找top M個(M >> K)候選集再在此基礎上進行採樣。這樣既限制了推薦影響體驗的候選集的風險,同時又保證了計算效率,而且還可以獲得EE帶來的收益。

模擬實驗

本文首先設計模擬實驗,以便在可控的環境下闡明off-policy correction的收益。爲了簡化,我們假設問題是無狀態的,換句話說,獎勵R獨立於用戶狀態,並且動作也不會改變用戶狀態。因此,可以獨立地選擇軌跡上的每個動作。

Off-Policy Correction

第一個模擬實驗中,我們假設有10個items,選中每一個item的收益就是他的index。當我們選擇Top one item時,最優策略就是一直選第十個,因爲其獎勵最大。這裏有一個明顯缺點,當行爲策略越多地選擇次優item,那麼學習到的新策略也就越偏向於選擇次優的item。
下圖比較了當行爲策略β傾向於選擇獎勵最少的item時,是否有Off-Policy修正下的主策略π的分佈情況。也就是最壞情況下,行爲策略一直選擇獎勵最少的,發現我們也會學到一個類似行爲策略一樣不好的策略(如下圖左所示)。而在應用Off-Policy修正讓我們學到了一個最優策略π,不論收集到的行爲策略的數據如何(如下圖右所示)。

Top-K Off-Policy Correction

爲了理解標準Off-Policy correction和Top-K Off-Policy Correction的區別,本文設計了推薦多個items的實驗。同樣假設有10個items,r(a1) = 10,r(a2) = 9,剩下的獎勵都是1。我們專注於推薦Top 2的實驗。同時設定行爲策略β爲均勻分佈,每個item都有同等的機會。

從行爲策略β中採樣得到action-reward的pairs,標準的Off-Policy矯正有着如下的更新梯度:

而Top-K的Off-Policy矯正則有着另外一種梯度更新形式:

對比二者的梯度更新形式就可以發現,在Top-K的Off-Policy的梯度下,當π(a_i)很小時,lambda接近於K,那麼迭代更新則會激進地增加選中a_i的可能性;當π(a_i)到一個足夠大的值時,lambda接近於0。這時候即便π(a_i)仍然小於1,但是迭代更新時也不會進一步增加選中a_i的可能性。這樣反而可以使獲得第二高reward的item在主策略中得到一定的概率。下圖左、右分別展示了標準方式和Top-K矯正方式學到的策略π。可以看到標準的Off-Policy矯正幾乎全部集中於Top 1 item,也就是說策略基本沒有學到次優項

線上實驗

作者宣稱這是Youtube近兩年以來單詞上線取得的最大收益

我們在Youtube推薦的RNN召回模型上做了一些列AB實驗。這個模型是衆多候選生成模型中的一個,在曝光給用戶前會有一個獨立的rank model去進行打分排序。模型根據上述RL算法來訓練,實時獎勵反應着用戶的行爲,推薦的視頻沒被點擊的獎勵爲0。每個實驗中實驗組和對照組使用相同的reward函數。實驗運行了很多天,模型在線上持續訓練,新事件會在24小時內訓練。實驗期間,我們關注了各種線上指標,不過這裏我們主要關注用戶觀看視頻時長ViewTime。

本文在線上的實驗描述了多個連續的改進,最新的推薦系統爲下一個實驗提供訓練數據,這導致一旦生產系統採用新方法,後續實驗就不能與早期系統進行比較。因此,以下每個實驗會作爲組件單獨分析。

探索

本文想衡量是否要像之前描述的採樣softmax模型下使用隨機策略,要比一直根據softmax推薦概率最高的K個item的模型要好。

我們首先將平臺用戶分爲了3個buckets,90%,5%,5%。前兩個buckets基於確定性模型使用確定性策略,最後一個bucket用基於帶探索性數據訓練模型的stochastic policy。確定性模型用前兩個buckets訓練,隨機模型用第一個和第三個bucket訓練。這樣兩個模型訓練使用的數據量是相等的,但隨機模型會因爲探索數據更容易觀察到一些罕見的state,action pair。

按此實驗流程,我們觀察到測試羣體中的ViewTime統計學顯著性地增加了0.07%。雖然改進不大,但它來自相對少量的勘探數據(只有5%的用戶在用隨機政策)。隨着隨機政策的全面啓動,我們預計會有更高的收益。

Off-Policy Correction

如下圖所示繪製了由系統中的召回根據對照人羣中的視頻等級在對照和實驗中選擇的視頻的CDF。當忽略數據收集與處理的bias會產生 強者恆強的現象。因此視頻被推薦,可能僅僅是因爲他在behavior policy裏曾大量被推薦,而Off-Policy Correction可以幫忙解決這個問題。

有趣的是,在線上實驗中,我們並沒有觀察到control與test羣體之間的 ViewTime 發生統計顯著性變化。然而,我們看到視頻數量增加了0.53%,這在統計學上是顯著的,這表明用戶確實得到了更多的享受。

Top-K Off-Policy Correction

在本次實驗中,我們讓前面方程式中的超參K = 16 和上限c=e^3。鑑於我們可以推薦多個項目,Top-K Off-Policy讓我們向用戶提供比標準Off-Policy Correction更好的整體體驗。特別是,我們發現測試流量中ViewTime增加了0.85%,觀看的視頻數量略微減少了0.16%

實驗超參比較

最後,我們直接比較不同的超參數的選擇如何影響Top-K Off-Policy Correction對平臺上的用戶體驗。
首先測了下Top-K中的K。本文用K ∈ {1, 2, 16, 32}訓練了結構相同的模型。當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)。

其次,本文繼續探討了Variance Reduction Technique對學到的推薦系統的最終效果的影響。我們沒有觀察到NIS,或者TRPO對指標的提升。我們搞了個迴歸測試研究weight capping的影響,比較了c = e^3和c = e^5。當我們取消對importance weight的限制時,學到的策略πθπθ可能會過度適應一些意外獲得高回報的logged actions。在線上實驗中,當the cap on importance weight被增大時,我們觀察到ViewTime顯着下降了0.52%


喜歡本文的小夥伴,強烈建議加入賣萌屋的推薦系統討論羣,不僅可以認識衆多志同道合的優秀小夥伴,而且還有若干賣萌屋美麗小姐姐(劃掉)、頂會審稿人、大廠研究員、知乎大V等你來撩哦。

如果提示已滿或過期,或希望加入領域大羣(自然語言處理、搜索技術、推薦系統、算法崗求職等)或其他垂類討論羣,請在後臺回覆關鍵詞【入羣】獲取入口哦。

記得掃描下方二維碼關注並星標置頂,我才能來到你面前哦。

夕小瑤的賣萌屋

_

關注&星標小夕,帶你解鎖AI祕籍

訂閱號主頁下方「撩一下」有驚喜哦

參考文獻

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

[2] https://www.youtube.com/watch?v=HEqQ2_1XRTs

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

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