天天看點

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

作者:十方           

Controllable Multi-Interest Framework for Recommendation

1.ComiRec與衆不同之處

該論文是阿裡在2020年發表在KDD的論文,解決的是序列化推薦的問題,用user以往的行為序列去推薦user接下來最感興趣的item。這篇論文,認為之前很多序列化推薦方法都最終産生一個user emb去item emb空間中檢索出最相關的item,而user在一段時間内,是有多種興趣的,應該要映射到多個emb去檢索。

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

如上圖所示,Emma點選了3大類的item,分别是首飾,包包,化妝品,推薦的時候也應該推薦這3大類的商品。

2.問題定義

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec
推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

3.多興趣序列推薦架構

當有了使用者行為序列後,獲得多興趣向量的方法有很多,論文主要介紹了兩種,一個是動态路由方法(ComiRec-DR),另一個是self-attention(ComiRec-SA)方法。

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

如上圖所示,模型的輸入就是使用者行為序列(和使用者有互動的itemID seq)。ItemID seq輸入到Embedding Layer裡,然後再輸入到Multi-Interest Extraction子產品中,獲得多個興趣向量,最後取離樣本label(single Item ID)最近的興趣向量計算softmax損失。Serving階段,每個興趣向量召回Top-N Items,然後輸入到Agrregation Module,最終平衡準确性和多樣性召回Top-N的items。

4.動态路由方法

提到動态路由算法,不得不提到膠囊網絡。我們知道,每個神經元的輸出多半是個機率,或者是激活的程度,是一個标量,那麼有沒有可能一個神經元包含其他屬性呢,進而達到提升網絡表達能力的效果。膠囊網絡就是如此,可以用向量來代替單個神經元的标量。一個膠囊就是一個向量,表示特定類型實體的各個參數。輸入為較為低層次的膠囊:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

其中,n表示膠囊的個數,k表示每個膠囊内向量的維數,對應到ComiRec-DR中,n表示序列的長度,k表示每個item emb的維數。

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

這一步大家可以了解為,item空間和興趣空間建立聯系。然後做預測向量的權重求和:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

由算法進行學習的。最終膠囊網路的輸出,也不是用傳統的Relu這樣的激活函數,而是用的非線性函數squashing,為了確定短向量可以被壓縮至接近0的長度,長向量壓縮至接近1的長度,并且保證方向不變,看下squashing長啥樣:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

各位聰明的讀者已經發現,我們指定最終層j的數量(最終膠囊的數量),即為最終興趣的個數。這樣論文就完美的把Comi和膠囊網絡完美結合了,最後通過動态路由算法學習參數即可。下圖是動态路由算法的僞代碼:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec
推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

5.Self-Attentive方法

這個方法相對于動态路由方法,就特别容易了解了。用了self-attention的機制,給定一個矩陣H(d * n),n表示使用者序列的長度,d表示每個item的緯度,我們用下式計算attention值:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

W1是da* d的矩陣,W2是da * k的矩陣,我們知道最終A是n * k的矩陣,最後通過attention矩陣聚合使用者序列,計算出Vu:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

Vu是d * k的矩陣,表示k個興趣,每個興趣是d維向量。

6.模型訓練

模型訓練通過找到和目标item (ei)最接近的興趣向量(vu),然後用softmax計算出目标item的機率,最後累加logloss。因為負例數量龐大,論文提到進行采樣處理。

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec
推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec
推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

7.Aggregation Module

在獲得多個興趣向量後,每個向量都能ANN檢索出top-N個item,怎麼聚合這些item呢?一個思路就是按點積排序後取top,這是提升推薦系統準确率很有效的方法,但是考慮到多樣性,就出現了下式:

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec

公式比較簡單,同時考慮了user和item的關系,還有item和item直接的關系。user和item關系越強,f越大,item直接關系越少,g函數越大,是以我們要最大化Q,就可以平衡準确率和多樣性。

8.結論

看實驗結果,我們看到在亞馬遜和淘寶資料集上,ComiRec都效果優于很多算法,同時我們還看到在淘寶資料上,多樣性确實提高了,十方目前也在探索該算法在廣告推薦領域的應用,歡迎大家加入煉丹筆記一起交流學習。

推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec
推薦算法煉丹筆記:阿裡序列化推薦算法ComiRec