專欄 | 9 篇頂會論文解讀推薦中的序列化建模:Session-based Neural Recommendation

 2017-11-12 14:30:00.0

原標題:專欄 | 9 篇頂會論文解讀推薦中的序列化建模:Session-based Neural Recommendation

作者丨白婷

學校丨中國人民大學博士生

研究方向丨深度學習、推薦系統,大數據管理與分析方法

本文經授權轉載自知乎專欄RUC AI Box」。

前言

本文對 Recurrent Neural Network 在推薦領域的序列數據建模進行梳理,整理推薦領域和深度學習領域頂會 RecSys、ICLR 等中的 9 篇論文進行整理。圖片和文字來源於原文,幫助讀者理解,有爭議的請聯繫我。

Session-based neural recommendation

首先介紹下 session-based 的概念:session 是服務器端用來記錄識別用戶的一種機制。典型的場景比如購物車,服務端爲特定的對象創建了特定的 Session,用於標識這個對象,並且跟蹤用戶的瀏覽點擊行爲。我們這裏可以將其理解爲具有時序關係的一些記錄序列。

寫作動機

傳統的兩類推薦方法——基於內容的推薦算法和協同過濾推薦算法(model-based,memory-based)在刻畫序列數據中存在缺陷:每個 item 相互獨立,不能建模 session 中 item 的連續偏好信息。

傳統的解決方法

1. item-to-item recommendation approach (Sarwar et al.,2001; Linden et al., 2003) : 採用 session 中 item 間的相似性預測下一個 item。缺點:只考慮了最後一次的 click 的 item 相似性,忽視了前面的的 clicks, 沒有考慮整個序列信息。

2. Markov decision Processes (MDPs)(Shani et al., 2002):馬爾科夫決策過程,用四元組 (S: 狀態, A: 動作, P: 轉移概率, R: 獎勵函數)刻畫序列信息,通過狀態轉移概率的計算點擊下一個動作:即點擊 item 的概率。缺點:狀態的數量巨大,會隨問題維度指數增加。MDPs 參見博客 [1]

Deep Neural Network 的方法

Deep Neural Network(RNN:LSTM 和 GRU 的記憶性)被成功的應用在刻畫序列信息。因爲論文中主要採用 GRU,下面簡單介紹下 GRU(LSTM 詳解參考博客[2])。

GRU的原理:GRU 輸入爲前一時刻隱藏層和當前輸入,輸出爲下一時刻隱藏層信息GRU 包含兩個門:reset 門和: update 門,其中用來計算候選隱藏層,控制的是保留多少前一時刻隱藏層的信息;用來控制加入多少候選隱藏層的信息,從而得到輸出。GRU 可以靈活控制長短距離的依賴信息,適合刻畫序列數據。

到此,已經說明用 GRU 來刻畫 session 中的序列的合理性。下面我們來梳理相關的工作。

Session-based recommendations with recurrent neural networks

ICLR 2016

本文的貢獻在於首次將 RNN 運用於 Session-based Recommendation,針對該任務設計了 RNN 的訓練、評估方法及 ranking loss。

Motivation (Why):第一篇提出將 RNN 應用到 session-based recommendation 的論文。

Main Idea (What):一個 session 中點擊 item 的行爲看做一個序列,用 GRU 來刻畫。

How:

模型(GRU4REC)架構

型輸入:session 中的點擊序列,

, 1 ≤ r < n,通過 one hot encoding 編碼,通過 embedding 層壓縮爲低維連續向量作爲 GRU 的輸入。

模型輸出:每一個 item 被點擊的預測概率,y=M(x), where y=[y1, y2...ym]。

M:模型函數。yi 是 item i 的預測點擊概率。

Model Architecture

訓練策略

爲了提高訓練的效率,文章採用兩種策略來加快簡化訓練代價,分別爲:

Training strategy:爲了更好的並行計算,論文采用了 mini-batch 的處理,即把不同的session拼接起來,同一個 sequence 遇到下一個 Session時,要注意將 GRU 中的一些向量重新初化。

Training data sample:因爲 item 的維度非常高,item 數量過大的概率會導致計算量龐大,所以只選取當前的正樣本(即下一個點擊的 item)加上隨機抽取的負樣本。論文采用了取巧的方法來減少採樣需要的計算量,即選取了同一個 mini-batch 中其他 sequence 下一個點擊的 item 作爲負樣本,用這些正負樣本來訓練整個神經網絡。

損失函數

損失函數的選擇也影響着模型的效果,文章嘗試兩種損失函數:

Point-wise ranking loss,即認爲負樣本爲 0,正樣本爲 1 的 loss function,發現訓練出來的模型並不穩定,因爲在推薦裏面,並不存在絕對的正樣本和負樣本,用戶可能對多個 item 存在偏好。

故採用 Pairwise ranking,即正樣本的 loss 要低於負樣本。本文使用了兩種基於 Pairwise ranking 的 loss function:

BPR:一種矩陣分解法,公式:

TOP1:一種正則估計,公式:

數據集

RecSys Challenge 2015:網站點擊流

Youtube-like OTT video service platform Collection

評價指標

recall@20、MRR

Baselines

POP:推薦訓練集中最受歡迎的 item;

S-POP:推薦當前 session 中最受歡迎的 item;

Item-KNN:推薦與實際 item 相似的 item,相似度被定義爲 session 向量之間的餘弦相似度;

BPR-MF:一種矩陣分解法,新會話的特徵向量爲其內的 item 的特徵向量的平均,把它作爲用戶特徵向量。

實驗結果及總結

Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations

RecSys 2016

這篇文章主要貢獻:探究如何將 item 屬性信息(如文本和圖像)加入到 RNN 框架中,探究了幾種融合 item 屬性的模型框架。

Motivation (Why):Items typically have rich feature representations such as pictures and text deions that can be used to model the sessions.

Main Idea (What): Here we investigate how these features can be exploited in Recurrent Neural Network based session models using deep learning.

How:

模型架構

模型輸入:item ID, Item features (texts and image)

模型輸出:next click scores of each items

1. Baseline architectures: ID only, Feature only, Concatenated input

2. p-RNN architectures: Parallel, Parallel shared-W, Parallel interaction

實驗結果及結論

Parallel 並行更新 item ID 和 feature 的模型達到最好的效果,Parallel shared-W 和 Parallel interaction 交互模型並沒有好的效果,可能原因重複的序列信息加重了模型的訓練負擔。

Incorporating Dwell Time in Session-Based Recommendations with Recurrent Neural Networks

RecSys 2017

本文的貢獻在於將用戶在 session 中 item 上的停留時間長短考慮進去。

Motivation (Why): 用戶在 session 中的 item 停留時間越長,越感興趣。

Main Idea (What): We explore the value of incorporating dwell time into existing RNN framework for session-based recommendations by boosting items above the predefined dwell time threshold.

How:

模型架構

對於 session 中的一個序列 item 集合 x= { [x1,x2...xn] },以及每個 item xi 的停留時間

,設定單位時間閾值 t。如此我們可以將每個 item 按照單位時間劃分成

個時間片。如下圖所示,其餘訓練方式與第一篇文章相同,實驗證明可以提升推薦效果。

實驗結果

Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks

RecSys 2017

本文的貢獻在於提出一種層次化的 RNN 模型,相比之前的工作,可以刻畫 session 中用戶個人的興趣變化,做用戶個性化的 session 推薦。

Motivation (Why): 用戶的歷史信息反映了用戶的興趣愛好,應該在下一個 session 的推薦中考慮進去。

Main Idea (What): 提出一種層次化的 RNN 模型,可以解決 (1) session-aware recommenders:傳遞用戶的歷史興趣愛好到下一個 session 中;(2) session-based recommenders:當用戶沒有歷史記錄時,對用戶當前 session 進行建模。

How:

模型架構

用兩個 GRU,Session-level GRU 和 User-level 的 GRU 分別刻畫 session 信息和 user歷史信息,模型架構圖如下,對於一個用戶的多個 sessions,當一個 session 結束時,用該 session 的輸出作爲當前的 user 的表示,並用來初始化下一個 session 的輸入。

數據集

Baseline

實驗結果

When Recurrent Neural Networks meet the Neighborhood for Session-Based Recommendation

RecSys 2017

本文的貢獻在於提出將 session 中的 RNN 模型,與 KNN 方法結合起來,能夠提高推薦的效果。

Motivation (Why): 如果一個 item 在與當前 item 相似的 session 中出現,那麼這個 item 出現的可能性更大。

Main Idea (What): 提出一種 Session-based kNN 算法。

How:

session-based 方法

找出與當前 session 最相近的 k most similar past sessions in the training data

item i 在當前 session 中出現的概率是:

如果 item i 有出現在 k 個最相近的 session 中,

,如果沒有,那麼認爲該 item 不會出現在當前 session 中。

Hybrid Approach:將 session-based 方法和 kNN 方法結合推薦效果最好。

實驗結果及結論

結論:item 的共現信號 co-occurrence signals 可以用來預測 sequential patterns。

Improved Recurrent Neural Networks for Session-based Recommendations

DLRS 2016

本文的貢獻在於提出將在 GRU4REC 中引入了四條優化方法。

Data augmentation(數據增強)

給定一個session的輸入序列 [x1,x2...xn] , 可以產生多條訓練數據,如([x1,V(x2)], [x1,x2, V(x3)] )如下圖,可以增加訓練數據。此外,用戶可能出現誤點擊的,用 dropout 的方式來泛化數據,可以增強訓練的魯棒性。

Model pre-training

在推薦中,對於 user 和 item 更新都很快的推薦場景,最近的信息更爲重要,文本提出先利用歷史所有數據預訓練出一個模型,然後只選取最近的數據,以預訓練得到的模型權重作爲初始化參數,再訓練一個最終模型。

Use of Privileged information

這是一個 generalized distillation framework。給定序列 [x1,x2...xr] 和對應 label,其相應的 privileged sequence 爲,對應 label 爲,其中 n 爲該 session 總長度(剩餘序列的逆序列)。此時 loss function 變爲:

其中 L 爲距離函數,V(xr) 是 xr 的標籤。

Output embedding

直接預測 item 的 embedding 向量。使預測結果更具有泛化意義,相當於預測了用戶 embedding 後的語義空間中興趣表示,訓練時定義的 loss 爲輸出層與該樣本在 embedding 層的 cosine 相似度。

現有 session-based neural recommendation 論文對比如下:

論文列表

1. Session-based recommendations with recurrent neural networks. (ICLR 2016)

2. Parallel Recurrent Neural Network Architectures for Feature-rich Session-based Recommendations. (RecSys 2016)

3. Incorporating Dwell Time in Session-Based Recommendatons with Recurrent Neural Networks. (RecSys 2017)

4. Personalizing Session-based Recommendations with Hierarchical Recurrent Neural Networks. (RecSys 2017)

5. When Recurrent Neural Networks meet the Neighborhood for Session-Based Recommendation. (RecSys 2017)

6. Improved Recurrent Neural Networks for Session-based Recommendations. (DLRS 2016)

7. Neural Attentive Session-based Recommendation. (CIKM 2017:未公佈論文)

next basket recommendation也可以看做序列數據,之後再做整理

8. Next Basket Recommendation with Neural Networks (Recsys 2015)

9. A Dynamic Recurrent Model for Next Basket Recommendation (SIGIR 2016)

參考文獻

[1] Sarwar, Badrul, Karypis, George, Konstan, Joseph, and Riedl, John. Item-based collaborative filtering recommendation algorithms. In Proceedings of the 10th international conference on World Wide Web, pp. 285–295. ACM, 2001.

[2] Linden, G., Smith, B., and York, J. Amazon. com recommendations: Item-to-item collaborative filtering. Internet Computing, IEEE, 7(1):76–80, 2003.

[3] Shani, Guy, Brafman, Ronen I, and Heckerman, David. An mdp-based recommender system. In Proceedings of the Eighteenth conference on Uncertainty in artificial intelligence, pp. 453–460. Morgan Kaufmann Publishers Inc., 2002.

參考資料

[1] 馬爾可夫決策過程MDP

http://www.cnblogs.com/jinxulin/p/3517377.html

[2] LSTM 詳解

https://colah.github.io/posts/2015-08-Understanding-LSTMs/

[3] SESSION-BASED RECOMMENDATIONS WITH RECURRENT NEURAL NETWORKS

https://zhuanlan.zhihu.com/p/28776432

[4] Improved Recurrent Neural Networks for Session-based Recommendations 閱讀筆記

https://zhuanlan.zhihu.com/p/30550859

我是彩蛋

解鎖新姿勢:用微信刷論文!

PaperWeekly小程序上線啦

今日arXiv√猜你喜歡√熱門資源√

隨時緊跟最新最熱論文

解鎖方式

2. 用PaperWeekly社區賬號進行登陸

3. 登陸後即可解鎖所有功能

關於PaperWeekly

PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公衆號後臺點擊「交流羣」,小助手將把你帶入 PaperWeekly 的交流羣裏。

文章來源:機器之心