推荐算法炼丹笔记:阿里序列化推荐算法ComiRec
Controllable Multi-Interest Framework for Recommendation
1.ComiRec與眾不同之處
該論文是阿里在2020年發表在KDD的論文,解決的是序列化推薦的問題,用user以往的行為序列去推薦user接下來最感興趣的item。這篇論文,認為之前很多序列化推薦方法都最終產生一個user emb去item emb空間中檢索出最相關的item,而user在一段時間內,是有多種興趣的,應該要映射到多個emb去檢索。
如上圖所示,Emma點擊了3大類的item,分別是首飾,包包,化妝品,推薦的時候也應該推薦這3大類的商品。
2.問題定義
3.多興趣序列推薦框架
當有了用戶行為序列后,獲得多興趣向量的方法有很多,論文主要介紹了兩種,一個是動態路由方法(ComiRec-DR),另一個是self-attention(ComiRec-SA)方法。
如上圖所示,模型的輸入就是用戶行為序列(和用戶有交互的itemID seq)。ItemID seq輸入到Embedding Layer里,然后再輸入到Multi-Interest Extraction模塊中,獲得多個興趣向量,最后取離樣本label(single Item ID)最近的興趣向量計算softmax損失。Serving階段,每個興趣向量召回Top-N Items,然后輸入到Agrregation Module,最終平衡準確性和多樣性召回Top-N的items。
4.動態路由方法
提到動態路由算法,不得不提到膠囊網絡。我們知道,每個神經元的輸出多半是個概率,或者是激活的程度,是一個標量,那么有沒有可能一個神經元包含其他屬性呢,從而達到提升網絡表達能力的效果。膠囊網絡就是如此,可以用向量來代替單個神經元的標量。一個膠囊就是一個向量,表示特定類型實體的各個參數。輸入為較為低層次的膠囊:
其中,n表示膠囊的個數,k表示每個膠囊內向量的維數,對應到ComiRec-DR中,n表示序列的長度,k表示每個item emb的維數。
這一步大家可以理解為,item空間和興趣空間建立聯系。然后做預測向量的加權求和:
由算法進行學習的。最終膠囊網路的輸出,也不是用傳統的Relu這樣的激活函數,而是用的非線性函數squashing,為了確保短向量可以被壓縮至接近0的長度,長向量壓縮至接近1的長度,并且保證方向不變,看下squashing長啥樣:
各位聰明的讀者已經發現,我們指定最終層j的數量(最終膠囊的數量),即為最終興趣的個數。這樣論文就完美的把Comi和膠囊網絡完美結合了,最后通過動態路由算法學習參數即可。下圖是動態路由算法的偽代碼:
5.Self-Attentive方法
這個方法相對于動態路由方法,就特別容易理解了。用了self-attention的機制,給定一個矩陣H(d * n),n表示用戶序列的長度,d表示每個item的緯度,我們用下式計算attention值:
W1是da* d的矩陣,W2是da * k的矩陣,我們知道最終A是n * k的矩陣,最后通過attention矩陣聚合用戶序列,計算出Vu:
Vu是d * k的矩陣,表示k個興趣,每個興趣是d維向量。
6.模型訓練
模型訓練通過找到和目標item (ei)最接近的興趣向量(vu),然后用softmax計算出目標item的概率,最后累加logloss。因為負例數量龐大,論文提到進行采樣處理。
7.Aggregation Module
在獲得多個興趣向量后,每個向量都能ANN檢索出top-N個item,怎么聚合這些item呢?一個思路就是按點積排序后取top,這是提升推薦系統準確率很有效的方法,但是考慮到多樣性,就出現了下式:
公式比較簡單,同時考慮了user和item的關系,還有item和item直接的關系。user和item關系越強,f越大,item直接關系越少,g函數越大,所以我們要最大化Q,就可以平衡準確率和多樣性。
8.結論
看實驗結果,我們看到在亞馬遜和淘寶數據集上,ComiRec都效果優于很多算法,同時我們還看到在淘寶數據上,多樣性確實提高了,十方目前也在探索該算法在廣告推薦領域的應用,歡迎大家加入煉丹筆記一起交流學習。
http://weixin.qq.com/r/XSjP1zrEzGezrX60931P (二維碼自動識別)
總結
以上是生活随笔為你收集整理的推荐算法炼丹笔记:阿里序列化推荐算法ComiRec的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 推荐系统炼丹笔记:大规模推荐Deep R
- 下一篇: 炼丹面试官的面试笔记