Sean talks

Attitude is everything

0%

DRN : A Deep Reinforcement Learning Framework for News Recommendation

Introduction

現今新聞推薦系統中,許多的研究透過加入類神經網路 (Neural) 加強了模型的預測效能,但在變動快速的新聞生態以及用戶偏好容易隨時間改變的特性下,要作出優秀的預測仍是一大挑戰。

總的來說本作將問題視為三個部分:

  1. 過往的研究往往嘗試以提升 current reward 的預測為目標,卻忽略可能對未來推薦造成的影響。
  2. 大部分的推薦系統通常僅考慮用戶 點擊 或其他 user feedback 作為模型建模的依據 (label) ,但本作認為應對 User 之於系統的 滿意程度 多做著墨
  3. 當今推薦系統常有重複推薦相似新聞內容給用戶的問題,舉例來說:在某一時間中的重大新聞被系統大量重複推薦給用戶

因此本作基於上述 3 個議題提出基於 Deep Reinforcement Learning 的模型框架 (DRN) 以對應問題:

  1. 提出 Deep Q learning 以同時考慮 current & future reward 建模
  2. DRN 除了可考慮 user feedback 外,更進一步去估算 user activeness 造成的影響
  3. 使用 Dueling Bandit Gradient Descent Algo. 作搜索 (Exploration) 以避免推薦重覆相似的新聞,且避免推薦 Unrelated 的新聞

Problem Define

input

  • user $u$
  • time $t$
  • list of candidate news $l$

output

  • list of top-k recommended news $L$

Model Framwork

關於模型框架可以分為線下網路(offline)與線上網路(online)。

  • 線下網路:透過蒐集的用戶-新聞點擊紀錄進行訓練,以監督式學習進行 $Q$ Net 的學習。
  • 線上網路則分為下列四個環節更新模型:
    1. PUSH: 在每一個 timestamp $t$ 下,當用戶 $u$ 發送請求時,系統 agent $G$ 將根據輸入的 $u, l$ 與 state 產生推薦結果 $L$ 推薦給用戶。
    2. FEEDBACK: 用戶對推薦內容 $L$ 的反饋。
    3. MINNOR UPDATE: (DBGD) 每個 timestamp 後,模型根據用戶訊息(state)、推薦之新聞(action) 與用戶反饋(reward) 進行模型更新,並評估比較 exploitation network $Q$ 和 exploration network $\hat{Q}$ 的表现,若 $\hat{Q}$ 表現優於 $Q$ 時,另當前 $Q$ 網路參數向 $\hat{Q}$ 參數調整方向更新,反之更新參數不變。
    4. MAJOR UPDATE: (DQN) 在一定的時間 $T_R$ 過後,agent $G$ 透過儲存在 Memory 中的歷史資訊(feedback $B$, user activeness) 對 $Q$ 進行參數更新。本作透過間隔一個小時來進行更新,在期間蒐集多次反饋紀錄。

model framework

Deep Reinforcement Learning for recommendation

本作是採用 Dueling-Double-DQN 的方法進行深度強化學習。
將 user feature, context feature 作為當前的 state ,並以 news feature, user-news interaction feature 作為 action,透過 Q 網路模型輸出當前狀態 state 採取這個 action 的 Q 值。

估量 Q 值的方式則是透過同時考慮當前狀態的 reward 與未來的 reward。

$y_{s,a} = Q(s,a) = r_{imm.} + \gamma r_{future}$

$r_{imm.}$ 將考慮用戶點擊反饋與用戶活動度反饋; $\gamma r_{future}$ 則採取 Double-DQN 方法進行預測:

$y_{s,a,t} = r_{a,t+1} + \gamma Q(s_{a,t+1}, \underset{a’}{\mathrm{argmax}} Q(s_{a,t+1}, a’; W_t); W_t’)$

其中:

  • $r_{a,t+1}$ 透過 memory 紀錄,表示執行 action $a$ 時的用戶反饋
  • $\underset{a’}{\mathrm{argmax}} Q(s_{a,t+1}, a’; W_t)$ 則為當初執行 $a$ 時的 state ,嘗試在 $s_a$ 時找到最佳 action $a$,以獲取最佳未來反饋
  • 每一次的迭代後將 $W_t, W_t’$ 進行互換

$Q$ 函數計算的方式則是透過 Dueling Network
分解成 $V(s)$和 $A(s,a)$ 如圖:

q net

User Activeness

User Activeness 則是本作提出的用戶反饋指標,為估量用戶再次使用系統的可能性,或視為使用系統的頻率,並認為好的推薦結果可增加用戶使用的意願。
透過文中 (3)~(6) 式可以計算出時間 t 時用戶返回系統的機率,並計算出一定時間內的活躍程度如圖。

最後可將 total reward 定義為:
$r_{total} = r_{click} + \beta r_{active}$

user active

Exploration

exploration

強化學習中常見的探索方式如 $ϵ−greedy$ 會隨機推薦新的新聞給用戶,將導致可能推薦未相關 (unrelated) 的商品而導致推薦的效果下降。

作者則採用 Dueling Bandit Gradient Descent Algo. 進行探索 (exploration),agent $G$ 透過當前網路 $Q$ 產生出推薦 $L$,並同時以探索網路 $\hat{Q}$ 產生另外的推薦預測 $\hat{L}$。並以 $L$ & $\hat{L}$ 進行 probabilistic interleave 產生新列表 $\bar{L}$,若 $\hat{Q}$ 表現優於 $Q$ 時,另當前 $Q$ 網路參數向 $\hat{Q}$ 參數調整方向更新如:

$w’ = w + η \hat{w}$

反之更新參數不變。

Reference