一、推薦中如何定義強化學習的幾個元素
方式1:
Agent:推薦引擎。
Environment:用戶。
Reward:如果一條新聞被點擊,計+1,否則為0。一次推薦中10條新聞被點擊的新聞個數作為Reward。
State:包含3個部分,分別是用戶標簽、候選新聞的新聞標簽和用戶前4屏的點擊歷史(如果沒有就置0)。
Action:推出的10篇新聞。
方式2:
狀態S:定義為用戶的使用歷史,比如用戶過去在時間 t 前點擊、下載、安裝、購買過的 N 個 item。而且這個序列要按照時間順序。
動作A:被模型基於用戶狀態 s計算出來的一個推薦列表(多個item)
獎勵R:推薦智能體給出了at之后,用戶會給出他的反饋,他可以進行曝光、點擊、下單,智能體立即根據這些反饋計算出來獎勵
二、與ctr預估的區別
Ctr預估只考慮預測新聞的點擊率,不考慮具體的推薦策略。利用ctr進行的推薦的流程通常是預測候選新聞的ctr,策略部分是人為規定的規則,可以簡單的取top10或者經過各種過濾,去掉重復,規定不同大類下的新聞個數之后取10個新聞,然后推薦給用戶。強化學習可以說一方面在給新聞預測得分的同時,另一方面考慮了推薦的策略,也就是說策略部分也由模型自己學到。
Ctr模型的推薦過程只考慮了單次推薦里用戶的點擊率,對於不同的Session之間無法建模。相反,強化學習的本質是用於解決序列決策問題,在給用戶第一次推薦的時候,就可以考慮之后第5次、第10次推薦的收益(由參數決定),讓用戶在整個瀏覽app的過程中的點擊量最高,這一點是ctr完全無法勝任的。
當然強化學習也有缺點,就是訓練復雜,往往需要更細致的參數設置和更多訓練trick才可能有效。Ctr預測則是一個完全常規的有監督問題,輸入用戶和新聞特征,擬合ctr,訓練起來相對強化學習簡單許多。
Deep Reinforcement Learning for List-wise Recommendations(京東發表的論文中文理解)