論文名稱:《Next Item Recommendation with Self-Attention》
論文地址:https://arxiv.org/abs/1808.06414?context=cs
在這篇文章中,我們將介紹一種基于self-attention 的序列推薦算法陡舅,該算法使用 self-attention 從用戶短期的交互記錄中學習用戶近期的興趣甩卓,同時該模型也使用度量學習的方式保留了用戶的長久的興趣像棘。
整個網絡是在度量學習(metric learning)的框架下進行訓練脓杉,實驗表明該方法可以在很大程度上改善序列化推薦的效果业筏。接下來姨俩,我們就一探究竟柬祠。
1北戏、為什么要用自注意力機制?
推薦系統(tǒng)中漫蛔,很多情況下我們使用用戶的歷史交互數據進行推薦嗜愈,比如點擊數據、瀏覽數據莽龟、購買數據等等蠕嫁。使用這些交互數據進行推薦,我們可以把推薦問題當作一個序列問題毯盈,即通過歷史交互中的物品序列來預測用戶下一個可能發(fā)生交互的物品剃毒。
既然是序列問題,常用的解法主要有RNN和CNN奶镶。RNN中迟赃,相鄰的物品之間的關系可以被捕獲,而物品之間的長期關系被保存在隱層狀態(tài)中厂镇;在CNN中纤壁,通過卷機核的窗口滑動來捕獲物品之間的關系。但是捺信,這兩種方式都沒有顯式地建模物品之間的關系酌媒,而建模這種可能存在的關系是很有必要的。
這里寫一下個人的理解迄靠,不一定是對的秒咨,求大佬輕噴。使用自注意力機制可能得到的結果類似于聚類掌挚,相似的物品之間相關性權重高雨席,加權的結果使得它們在空間中的距離越來越近。舉個例子吠式,假設用戶最近看過的10部電影中有5部科幻電影陡厘,5部愛情電影抽米。科幻電影之間的相關性較高糙置,極端一點云茸,均為0.2,假設五部電影對應的向量為n1,n2,n3,n4,n5谤饭,那么n1 = 1/5(n1+n2+n3+n4+n5)标捺,n2 = 1/5(n1+n2+n3+n4+n5),..,n5 = 1/5(n1+n2+n3+n4+n5)揉抵,最終的結果就是n1=n2=n3=n4=n5亡容。當然上面的只是極端情況,實際中很難實現功舀,不過只是想通過這個例子說明一下個人的理解萍倡。
接下來,我們介紹一下模型的原理辟汰。
2列敲、模型原理
2.1 問題定義
序列推薦問題的定義如下,假設我們有用戶的集合U和物品的集合I帖汞,用戶的總數為M戴而,物品的總數為N,使用Hu表示用戶的交互序列:
我們的目標是在給定user交互序列的情況下翩蘸,預測user下一個將要進行交互的item所意。
2.2 使用自注意力機制建模短期興趣
用戶近期的交互行為反映了用戶的近期興趣,這里使用自注意力機制來進行建模催首。如下圖所示:
這里扶踊,我們假定使用用戶最近的L條記錄來計算短期興趣。如果我們使用X表示整個物品集合的embedding郎任,那么秧耗,用戶u在t時刻的前L條交互記錄所對應的embedding表示如下:
Xut也將作為transformer 中block的輸入。接下來舶治,就是自注意力機制的計算過程 :
對于上面的過程不清楚的同學分井,可以看一下參考之前的博客:http://www.reibang.com/p/b1030350aadb
這里,作者做了以下幾點處理:
1霉猛、首先尺锚,作者還在計算softmax前先掩掉Q′K′T得到的矩陣對角線值,以避免對角線上物品自身的內積分配過大的權重惜浅;
2瘫辩、其次,作者直接使用輸入的Xut與attention score相乘,而不是先計算一個V′伐厌,使用V′與attention score相乘阅仔;
3、最后弧械,作者在embedding乘上attention權重后,直接將embedding在序列維度求平均空民,作為用戶短期興趣向量刃唐;
除上面的基礎結構外,作者還提到了可以增加poistional embeddings界轩,這主要是給輸入加入時間信號画饥。時間信號的計算如下:
時間信號的大小跟Q′和K′的形狀是一樣的,二者可以直接對位相加浊猾。
2.3 長期興趣建模
上面的self-attention模塊只使用了近期的L個交互抖甘,我們還希望建模用戶的長期興趣,不同于之前的矩陣分解葫慎,認為用戶和物品屬于兩個不同的空間衔彻,這里我們把用戶和物品放入同一個空間中。我們可以認為這是一個興趣空間偷办,用戶的長期興趣可以表示成空間中的一個向量艰额,而一個物品也可以想象成是一種興趣,同樣映射到這個興趣空間中的一個向量椒涯。那么柄沮,如果一個用戶對一個物品的評分高的話,說明兩個興趣是相近的废岂,那么它們對應的向量在空間中距離應該較近祖搓。這個距離用平方距離計算:
上式中,U是用戶的興趣向量湖苞,V是物品的興趣向量拯欧,這與之前定義的X是物品的兩種表示。
2.4 模型訓練
綜合短期興趣和長期興趣袒啼,模型的整體架構如下:
綜合兩部分哈扮,我們便可以得到用戶對于某個物品的推薦分,這里推薦分越低蚓再,代表用戶和物品越相近滑肉,用戶越可能與該物品進行交互:
而模型采用pair-wise的訓練方法進行訓練,即輸入一個正例和一個負例摘仅,希望負例的得分至少比正例高γ靶庙,否則就發(fā)生損失。所以損失函數是如下的加入L2正則項的合頁損失函數:
好啦娃属,模型部分就介紹到這里啦六荒,總體來說护姆,模型的思想還是比較簡單的,綜合了用戶的短期興趣和長期興趣掏击。比較創(chuàng)新的一點就是使用了自注意力機制來表示物品之間的相關性吧卵皂。
由這篇論文也可以看出,自注意力機制砚亭、Transformer不僅僅在NLP領域得到應用灯变,推薦系統(tǒng)領域也開始嘗試,所以學好這個模型是十分必要的呀捅膘!