推薦系統遇上深度學習(三十一)--使用自注意力機制進行物品推薦

論文名稱:《Next Item Recommendation with Self-Attention》
論文地址:https://arxiv.org/abs/1808.06414?context=cs

在這篇文章中,我們將介紹一種基于self-attention 的序列推薦算法,該算法使用 self-attention 從用戶短期的交互記錄中學習用戶近期的興趣,同時該模型也使用度量學習的方式保留了用戶的長久的興趣。

整個網絡是在度量學習(metric learning)的框架下進行訓練,實驗表明該方法可以在很大程度上改善序列化推薦的效果。接下來,我們就一探究竟。

1、為什么要用自注意力機制?

推薦系統中,很多情況下我們使用用戶的歷史交互數據進行推薦,比如點擊數據、瀏覽數據、購買數據等等。使用這些交互數據進行推薦,我們可以把推薦問題當作一個序列問題,即通過歷史交互中的物品序列來預測用戶下一個可能發生交互的物品。

既然是序列問題,常用的解法主要有RNN和CNN。RNN中,相鄰的物品之間的關系可以被捕獲,而物品之間的長期關系被保存在隱層狀態中;在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.lxweimin.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的訓練方法進行訓練,即輸入一個正例和一個負例,希望負例的得分至少比正例高γ,否則就發生損失。所以損失函數是如下的加入L2正則項的合頁損失函數:

好啦,模型部分就介紹到這里啦,總體來說,模型的思想還是比較簡單的,綜合了用戶的短期興趣和長期興趣。比較創新的一點就是使用了自注意力機制來表示物品之間的相關性吧。

由這篇論文也可以看出,自注意力機制、Transformer不僅僅在NLP領域得到應用,推薦系統領域也開始嘗試,所以學好這個模型是十分必要的呀!

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 本系列已經寫了二十篇了,但推薦系統的東西還有很多值得探索和學習的地方。不過在這之前,我們先靜下心來,一起回顧下之前...
    文哥的學習日記閱讀 15,150評論 2 43
  • 這篇文章的技術難度會低一些,主要是對推薦系統所涉及到的各部分內容進行介紹,以及給出一些推薦系統的常用算法,比起技術...
    我偏笑_NSNirvana閱讀 12,138評論 5 89
  • 我想當天使或者螞蟻,天使圣潔祥和,不會有不安的心。螞蟻是群居動物,永遠不會孤獨。 諷刺的是,想像越是夸張,就越是渴...
    西班閱讀 224評論 0 2
  • 牡丹亭中掛誰的游魂隱在牡丹下不是那年牡丹好只是你在花旁繞飄來搖去笑聲里有你如花的懷抱杜鵑開的艷醉不倒牡丹的逍遙搖搖...
    墨上城閱讀 1,177評論 18 36
  • 千千萬萬中一個人,一篇文章獻桃苑。 赤膽忠心真情呈現,前世今生緣不斷。 抗魔路上意志更堅,聚合離散簡書牽。 斷鸝神...
    鳴鷗閱讀 96評論 0 3