之前學習了強化學習的一些內容以及推薦系統的一些內容,二者能否聯系起來呢!今天閱讀了一篇論文,題目叫《DRN: A Deep Reinforcement Learning Framework for News Recommendation》。該論文便是深度強化學習和推薦系統的一個結合,也算是提供了一個利用強化學習來做推薦的完整的思路和方法吧。本文便是對文章中的內容的一個簡單的介紹,希望對大家有所啟發。
1、引言
新聞領域的個性化推薦十分重要,傳統的方法如基于內容的方法、協同過濾、深度學習方法在建模user-item交互關系時,經常面臨以下三個問題:
1)難以處理新聞推薦的動態變化。這種動態變化體現在兩個方面,首先新聞具有很強的時效性,其次是用戶對于新聞閱讀的興趣是不斷變化的,如下圖所示:
因此,在建模過程中,不僅要考慮用戶對當前推薦的反饋,還要考慮長期的影響。就好比買股票,不能只考慮眼前的收益,而是要考慮未來的預期收益。
2)當前的推薦算法通常只考慮用戶的點擊/未點擊 或者 用戶的評分作為反饋,然而,用戶隔多久會再次使用服務也能在一定程度上反映用戶對推薦結果的滿意度。
3)目前的推薦系統傾向于推薦用戶重復或相似內容的東西,這也許會降低用戶在同一個主題上的興趣度。因此需要進行exploration。傳統方法 e -greedy strategy 或者 Upper Con dence Bound (UCB) 都會在短期對推薦系統的效果造成一定的影響,需要更有效的exploration策略。
因此,本文提出了基于強化學習的推薦系統框架來解決上述提到的三個問題:
1)首先,使用DQN網絡來有效建模新聞推薦的動態變化屬性,DQN可以將短期回報和長期回報進行有效的模擬。
2)將用戶活躍度(activeness score)作為一種新的反饋信息,用戶活躍度在后面會詳細介紹。
3)使用Dueling Bandit Gradient Descent方法來進行有效的探索。
算法的框架如下圖所示:
本文的貢獻主要有:
1)提出了一種強化學習的框架用于在線新聞的個性化推薦
2)使用用戶活躍度作為一種新的反饋,來提高推薦的準確性
3)使用了一種更加高效的探索算法:Dueling Bandit Gra- dient Descent
4)模型可以進行在線學習和更新,在離線和在線實驗上的表現都超過了傳統的算法。
2、問題定義
下面是本文中的一些符號約定:
3、模型詳解
3.1 模型整體框架
模型整體框架如下圖所示:
有幾個關鍵的環節:
PUSH:在每一個時刻,用戶發送請求時,agent根據當前的state產生k篇新聞推薦給用戶,這個推薦結果是exploitation和exploration的結合
FEEDBACK:通過用戶對推薦新聞的點擊行為得到反饋結果。
MINOR UPDATE:在每個時間點過后,根據用戶的信息(state)和推薦的新聞(action)及得到的反饋(reward),agent會評估exploitation network Q 和 exploration network Q ? 的表現,如果exploitation network Q效果更好,則模型保持不動,如果 exploration network Q ? 的表現更好,exploitation network Q的參數將會向exploration network Q ?變化。
MAJOR UPDATE:在一段時間過后,根據DQN的經驗池中存放的歷史經驗,對exploitation network Q 模型參數進行更新。
3.2 特征設計
DQN每次的輸入有下面四部分的特征:
新聞的特征:包括題目,作者,排名,類別等等,共417維
用戶的特征:包括用戶在1小時,6小時,24小時,1周,1年內點擊過的新聞的特征表示,共413*5=2065維。
新聞和用戶的交互特征:25維。
上下文特征:32維的上下文信息,如時間,周幾,新聞的新鮮程度等。
在這四組特征中,用戶特征和上下文特征用于表示當前的state,新聞特征和交互特征用語表示當前的一個action。
3.3 深度強化學習作推薦
這里深度強化學習用的是Dueling-Double-DQN。之前我們介紹過DQN的三大改進,包括Double-DQN,Dueling-DQN和優先經驗回放,這里用到了兩個。將用戶特征和上下文特征用于表示當前的state,新聞特征和交互特征用語表示當前的一個action,經過模型可以輸出當前狀態state采取這個action的預測Q值。
Q現實值包含兩個部分:立即獲得的獎勵和未來獲得獎勵的折現:
立即的獎勵可能包含兩部分,即用戶的點擊獎勵和用戶活躍度獎勵。由于采取了Double-DQN 的結構,Q現實值的計算變為:
再加上Dueling的考慮,模型的網絡結構如下:
文章中關于DQN的理論部分沒有詳細介紹,可以參考我之前寫過的強化學習系列的文章進行理解。
3.4 用戶活躍度
用戶活躍度(User Activeness) 是本文提出的新的可以用作推薦結果反饋的指標。用戶活躍度可以理解為使用app的頻率,好的推薦結果可以增加用戶使用該app的頻率,因此可以作為一個反饋指標。
用戶活躍度的圖示如下:
如果用戶在一定時間內沒有點擊行為,活躍度會下降,但一旦有了點擊行為,活躍度會上升。
在考慮了點擊和活躍度之后,之前提到過的立即獎勵變為:
3.5探索
本文的探索采取的是Dueling Bandit Gradient Descent 算法,算法的結構如下:
在DQN網絡的基礎上又多出來一個exploration network Q ? ,這個網絡的參數是由當前的Q網絡參數基礎上加入一定的噪聲產生的,具體來說:
當一個用戶請求到來時,由兩個網絡同時產生top-K的新聞列表,然后將二者產生的新聞進行一定程度的混合,然后得到用戶的反饋。如果exploration network Q ?的效果好的話,那么當前Q網絡的參數向著exploration network Q ?的參數方向進行更新,具體公式如下:
否則的話,當前Q網絡的參數不變。
總的來說,使用深度強化學習來進行推薦,同時考慮了用戶活躍度和對多樣性推薦的探索,可以說是一個很完備的推薦框架了!
4、實驗比較
4.1 數據集
使用的數據集是新聞app得到的數據:
數據中存在明顯的長尾特點:
4.2 評估指標:
主要用的評估指標有CTR、top-K準確率,nDCG,三者的計算公式如下:
在nDCG中,r是新聞的排序,n是推薦新聞列表的長度。
4.3 實驗設定
4.4 對比模型
本文選取了五個基準模型:LR,FM,Wide&Deep,LinUCB,HLinUCB。同時根據組件的不同(U代表用戶活躍度,EG代表e-greedy,DBGD代表Dueling Bandit Gradient De- scent )強化學習模型又分為以下幾種:
DN:沒有考慮未來收益的Double-DQN
DDQN:考慮未來收益的Double-DQN
DDON+U:考慮未來收益,同時考慮用戶活躍度的Double-DQN
DDQN+U+EG:采用e-greedy作為探索策略的Double-DQN
DDQN+U+DBGD:采用DBGD作為探索模型的Double-DQN
4.5 離線實驗
離線實驗的結果如下所示:
本文提出的模型效果明顯好于基準模型。
4.6 在線實驗
在線實驗的效果分兩部分,準確率和Diversity。
準確率
準確率用CTR來表征,如果CTR高,我們認為模型準確率較好,實驗結果如下:
多樣性
多樣性這里采用的指標是ILS,用來表示推薦列表中item的相似性,如果這個相似性較低,可以認為推薦結果的多樣性較好,計算公式如下:
實驗結果如下:
可以看到DDQN+U+DBGD的多樣性明顯好于其他模型。