推薦系統召回模型之MIND用戶多興趣網絡

MIND算法全稱爲:Multi-Interest Network with Dynamic Routing for Recommendation at Tmall,由阿里的算法團隊開發。

1. 概括

工業界的推薦系統通常包括召回階段和排序階段。召回階段我們根據用戶的興趣從海量的商品中去檢索出用戶(User)感興趣的候選商品( Item),滿足推薦相關性和多樣性需求。目前的深度學習模型的套路是將User和Item在同一向量空間中進行Embedding表示,使用User的Embedding表示User的興趣。然而實際情況是User的興趣是多種多樣的,使用一個Embedding不足以全面的表示User的興趣信息。

該文的創新點在於:

1. 通過Mulit-Interest Extractor Layer 獲取User的多個興趣向量表達。提出了具有動態路由特點的多興趣網絡,利用Dynamic Routing以自適應地聚合User歷史行爲到User興趣表達向量中;

2. 通過Label-Aware Attention 標籤感知注意力機制,指導學習User的多興趣表達Embedding;

2. MIND模型結構

MIND模型的整體結構如下:

圖1 MIND網絡結構圖

輸入層:

  • User畫像特徵;

  • User行爲特徵,即產生行爲(歷史點擊或購買等)的Item列表和Item屬性列表;

  • 正標籤,即User真實發生行爲(下一次點擊或購買等)的 Item ID;

Embedding層:

  • 將ID信息映射成稠密向量,即Embedding;

Pooling層:

  • 將行爲序列的Item和Item屬性的Embedding表達進行mean, sum或max等池化操作;

Multi-interest Extractor 層:(本文重點)

  • 輸入:User行爲序列的Embedding Features,即 Pooling層 結果;

  • 輸出:Interest Capsules,用戶的多興趣Embedding表達;

H layers:

  • 多個興趣Embedding分別經過兩個全連接層,得到User最終的多個興趣Embedding表達;

Training服務:

  • 輸入層:

    • H layers 結果作爲 Label-aware Attention層的Keys和Values(此時Keys=Values);

    • 正標籤,即User真實發生行爲(下一次點擊或購買等)的 Item ID,作爲Query;

  • Label-aware Attention層:

    • 對輸入的Keys和Query做內積、Softmax等操作作爲Keys的權重值w;

    • 使用w與Values做內積,然後對應元素求和,得到一個Embedding,作爲User對當前正標籤Item的興趣分佈;

  • Sampled Softmax Loss層:

    • 抽取多個負標籤,與正標籤組成 Sampled 組;

    • 使用 tf.nn.sampled_softmax_loss 函數得到正標籤的概率;

Serving服務:

  • 輸入層:

    • H layers 結果作爲 User 最終的多個興趣Embedding表達;

    • 全集 Item 的Embedding表達;

  • TopN Recall:

    • 針對User的多興趣Embedding,根據faiss或annoy在全集 Item 池中檢索,獲得User興趣Embedding所感興趣的候選Item集合;

3. MIND模型理論部分

3.1 MIND模型的問題定義

每個User-Item的實例可以使用三元組  表示,其中 表示User發生行爲的Item集合, 表示User的畫像特徵(例如:性別,年齡等), 表示目標Item的畫像特徵(例如Id, 類型Id, 品牌Id等)。

MIND模型的主要任務:

(1)學習一個函數可以將User-Item實例映射爲User的興趣Embedding表達集合:

其中: 表示Embedding的向量長度, 表示User的興趣Embedding個數。

(2)學習Item的Embedding表達:

(3)線上Serving服務檢索,獲得N個User感興趣的候選Item池:

 

3.2 Embedding和Pooling層

MIND模型的輸入是:User特徵 ,User行爲序列特徵 ,和label Item  。

  • User Embedding:User Id(例如:年齡,性別等)經過Embedding 後通過Concat 操作後作爲用戶側特徵輸入;

  • Item Embedding:Item Id(例如:Item Id,類型Id,品牌Id等)經過Embedding 後統一經過Pooling 層得到Item側特徵輸入;

  • User行爲序列特徵Embedding:多個Item Embedding&Pooling 後,得到用戶行爲序列輸入  。

3.3 Multi-Interest Extractor Layer

該層主要是採用多個向量來表達 User 不同的興趣,將 User 的歷史行爲分組到多個 Interest Capsules 的過程。實現邏輯如下:

輸入:

  • User行爲序列特徵Embedding,  ;

  • 迭代次數  ;

  • 興趣膠囊個數  ;

輸出:

  • 興趣膠囊Embedding, 

定義:

(1)動態興趣個數 ;

(2)低階行爲向量Embedding表達: 代表User的行爲向量(同  );

(3)高階興趣向量Embedding表達: 代表User的興趣向量(同  );

(4)行爲向量  與興趣向量  之間的 路由logit:

(5)雙線性映射矩陣 

步驟:

(1)計算興趣Embedding個數  ;

(2)初始化  (使用正態分佈初始化);

(3)遍歷迭代次數  :

        (3.1)對所有的行爲路由  ,計算  ;

        (3.2)對所有的興趣路由  ,計算  ,和  ;

        (3.3)迭代更新  ;

3.4 Label-aware Attention Layer

通過多興趣提取器層,對用戶行爲序列embedding 我們得到多個個興趣Capsule 表達用戶多樣的興趣分佈,不同的興趣Capsule表示用戶興趣的不同偏好。爲了評估多個興趣Capsule對目標Item 相關度及貢獻度,我們設計標籤意識的Attention 機制來衡量目標Item 選擇使用哪個興趣Capsule,具體表述見 Training服務。表達式:

 

其中:  是指數。

3.5 Training & Serving

訓練的目標是:使用User的Embedding  ,正標籤 Item Embedding  ,和隨機抽樣負標籤 Items Embedding  ,使用如下公式進行計算:

 

損失函數:

 

ok,MIND的理論部分介紹到此結束,歡迎討論交流。

參考:

1. Multi-Interest Network with Dynamic Routing forRecommendation at Tmall

2. Dynamic Routing Between Capsules

3. Attention Is All You Need

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章