天天看點

KDD2019 | 強化學習優化推薦系統長期收益

| 作者:陽光明媚

| 機關:華東師範大學

| 研究方向:推薦系統、強化學習

強化學習在訓練agent時,優化的目标是最大化決策所能帶來的長期獎勵。傳統的基于監督學習的推薦系統往往不考慮長期獎勵,而是僅考慮短期的收益(例如此刻推薦什麼物品點選率最高,或者本日推薦什麼轉化率最高)。是以,如果可以用強化學習的訓練方式來訓練推薦系統模型,使得推薦系統可以更多地考慮長期收益,就會使得決策模型眼光更長遠,長遠來看可能會帶來更高的受益。關于推薦系統與強化學習相結合的背景知識,可查閱強化學習推薦系統的模型結構與特點總結。

(*^▽^*)祝大家明天六一兒童節快樂~

KDD2019 | 強化學習優化推薦系統長期收益

這次介紹的文章:Reinforcement Learning to Optimize Long-term User Engagement in Recommender Systems,就是以此為切入點,考慮用強化學習優化互動式推薦的長期使用者參與度,原文連結:

https://arxiv.org/pdf/1902.05570.pdfarxiv.org

強化學習之是以可以模組化決策的長期收益,奧秘在于其優化目标。監督學習優化目标一般是最小化決策值與标簽值的差異,例如二範數。如果我們從“獲得獎勵”的角度看待監督學習,當模型決策與标簽一緻或者相似時獲得獎勵,不一緻或者不相似時就得不到獎勵甚至得到懲罰,監督學習希望最大化每次決策所能得到的獎勵,也就是每次決策都要和标簽類似。這樣做顯然沒有從全局考慮問題:在序列化推薦場景中,可能為了得到使用者的點選率,模型會重複推薦同一物品,而沒有考慮到前面已經反複推薦過該物品了。

而對于強化學習來說,其希望最大化的獎勵是長期獎勵

KDD2019 | 強化學習優化推薦系統長期收益

KDD2019 | 強化學習優化推薦系統長期收益

是沒有可以去監督學習的标簽的,隻能通過最小化TD error的方式去近似:

KDD2019 | 強化學習優化推薦系統長期收益

r是與環境互動時獲得的及時獎勵,在推薦系統中對應使用者的正向行為,例如收藏,下單。

下表對比了強化學習與監督學習在模組化獎勵上的不同:

學習範式 模組化的獎勵 獎勵含義 動作選擇的依據 優化目标(最小化)
強化學習 Q(s,a) s狀态采取動作a所能得到的長期獎勵 選擇最大化Q的動作 ∣∣Q(st,at)−(rt+Q(st+1,at+1))∣∣2
監督學習 R(s,a) s狀态采取動作a,環境所傳回的即時獎勵 選擇最大化R的動作 ∣∣R(st,at)−rt∣∣2

TD error的訓練方式雖然理論上是可行的,但是實踐中容易出現過估計(對一些決策過分的高估其

KDD2019 | 強化學習優化推薦系統長期收益

值),且訓練不穩定的問題,這也是強化學習理論性質優美,但在工業界難落地的主要原因。本文所要介紹的京東這篇優化推薦系統長期收益的文章,其實按照論文中的講解,從頭到尾都沒有上線測試,但是其中的一些思路還是值得借鑒。

獎勵設定

獎勵包括即時獎勵與延遲獎勵,最終的獎勵為各種獎勵的權重和:

KDD2019 | 強化學習優化推薦系統長期收益

其中

KDD2019 | 強化學習優化推薦系統長期收益

,被拼接起來的三項分别為:

  • 即時獎勵,使用者的點選或者下單行為
KDD2019 | 強化學習優化推薦系統長期收益
  • 延遲獎勵,使用者浏覽時長:
KDD2019 | 強化學習優化推薦系統長期收益
  • 延遲獎勵,使用者傳回時間:
KDD2019 | 強化學習優化推薦系統長期收益

其中

KDD2019 | 強化學習優化推薦系統長期收益

是超參數,

KDD2019 | 強化學習優化推薦系統長期收益

是兩次通路之間的時間間隔。

值函數模組化

值函數的形式和DQN相同,就是

KDD2019 | 強化學習優化推薦系統長期收益

,論文對于Q網絡畫了一張複雜的模型圖,但其主要内容都是關于資料的embedding:

KDD2019 | 強化學習優化推薦系統長期收益

f_j代表使用者的回報,如點選,購買,停留,劃過等;d_j代表行為持續時間。

整個過程可以概括如下:

得到初始item的embedding後,與使用者行為的投影矩陣相乘:

KDD2019 | 強化學習優化推薦系統長期收益

然後與dwell time特征拼接喂給LSTM:

KDD2019 | 強化學習優化推薦系統長期收益

不同的使用者行為對應隐特征又會被各自喂入各自的LSTM,進一步提取不同使用者行為對應的特征:

KDD2019 | 強化學習優化推薦系統長期收益

拼接user embedding得到最終的狀态的表示:

KDD2019 | 強化學習優化推薦系統長期收益

item embdgging作為動作的表示,将狀态動作輸入MLP,輸出作為Q值:

KDD2019 | 強化學習優化推薦系統長期收益

使用者模拟器

使用者模拟器部分,是用的普通的監督學習模型,加一個多任務學習,輸出使用者行為類型以及持續時間,是否線上以及下次傳回時間,模型結構圖:

KDD2019 | 強化學習優化推薦系統長期收益

這裡面的state-action embedding部分,與Q網絡結構圖中的embedding部分一樣,可以直接拿來用。

完整算法流程

算法流程圖很長,但是整個流程就是簡單的四部分:

  1. 線下的日志資料提取使用者行為,預訓練使用者模拟器
  2. 推薦政策與使用者模拟器互動,收集轉移元組
  3. 根據轉移元組訓練Q網絡
  4. 根據資料訓練使用者模拟器
KDD2019 | 強化學習優化推薦系統長期收益
KDD2019 | 強化學習優化推薦系統長期收益

實驗效果

文章先做了一些實驗,證明自己的模型确實可以捕獲使用者的長期興趣,然後有實驗證明了本文算法相比于其他base算法在一些短期和長期度量上的優越性,但是一直回避了一個問題,就是使用者模拟器的效果對最終模型的效果影響幾何?因為文章和base模型對比的實驗效果都是從使用者模拟器中得來的,使用者模拟器的性能是以就至關重要,文章回避了這一點。但是使用者模拟器的思路,在虛拟淘寶中也有用到,另外,滴滴的基于深度強化學習的派單系統,據說(葉傑平在報告上說)也用到了類似思路的模拟環境。

KDD2019 | 強化學習優化推薦系統長期收益