1. 程式人生 > 實用技巧 >【論文導讀】CIKM2019|MIND---召回階段的多興趣網路模型

【論文導讀】CIKM2019|MIND---召回階段的多興趣網路模型

前言

本次分享2019年由阿里團隊發表在CIKM上的論文“Multi-Interest Network with Dynamic Routing for Recommendation at Tmall”,應用膠囊網路的動態路由演算法來構建一個多興趣網路MIND,是一個召回階段的模型。
本文約4.2k字,預計閱讀15分鐘。

1. 背景

文章是基於「手機天貓App」的背景來探索在十億級別的天貓使用者和商品中,給每個使用者進行個性化的推薦。天貓的推薦(工業推薦)的流程主要分為「召回階段和排序階段」。召回階段負責檢索數千個與使用者興趣相關的候選物品,之後,排序階段預測使用者與這些候選物品互動的精確概率。「文章做的是召回階段的工作」

,來對滿足使用者興趣的物品的有效檢索。

1.1 多興趣

建立「使用者興趣模型」「尋找使用者興趣表示」是非常重要的。但在天貓塑造使用者興趣並不是一件小事,因為「使用者的興趣存在著多樣性」。平均上,10億使用者訪問天貓,每個使用者每天與數百種產品互動。互動後的物品往往屬於不同的類別,說明使用者興趣的多樣性。

1.2 使用者興趣表示

  1. 基於協同過濾的方法通過歷史互動物品或隱藏因子來表示使用者興趣,但會遇到「稀疏或計算問題」

  2. 基於深度學習的方法用低維Embedding向量表示使用者興趣,但作者認為,這是「多興趣表示的一個瓶頸」,因為不得不去壓縮所有與使用者多興趣相關的的所有資訊到一個表示向量,所有關於使用者多興趣的所有資訊是混合在一起的,導致召回階段的物品檢索不準確。除非維度特別大,才能表示大量的興趣資訊(而維度一般會選擇較小的值:8,16,32等);

  3. DIN在Embedding的基礎上加入Attention,來捕捉使用者興趣的多樣性。但採用Attention機制,「對於每一個目標物品,都需要重新計算使用者表示」,因此無法應用在召回階段(DIN屬於CTR模型);

1.3 膠囊網路

Hinton在2011年首次提出了“膠囊”的概念,“膠囊”是一組聚合起來輸出整個向量的小神經元。採用動態路由代替反向傳播來學習膠囊之間的連線權值,並利用期望最大化演算法(EM)對其進行改進,克服了一些不足,獲得了更好的精度。

對於膠囊網路和動態路由學習有幫助的部落格:

  • 【論文導讀】淺談膠囊網路與動態路由演算法

  • https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-i-intuition-b4b559d1159b

  • https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-ii-how-capsules-work-153b6ade9f66

  • https://medium.com/ai%C2%B3-theory-practice-business/understanding-hintons-capsule-networks-part-iii-dynamic-routing-between-capsules-349f6d30418

2. 主要貢獻

文章關注的是在召回階段使用者的多興趣的問題,提出了使用「動態路由的多興趣網路(MIND)」 來學習使用者表示。

最主要的「創新點」是:採用膠囊網路的動態路由演算法來獲得使用者多興趣表示,將使用者的歷史行為聚整合多個集合內容,每一組歷史行為進一步用於推斷對應特定興趣的使用者表示向量。這樣,對於一個特定的使用者,MND輸出了多個表示向量,它們共同代表了使用者的不同興趣。「使用者表示向量只計算一次」(與DIN比較理解),可用於在匹配階段從十億個尺度的物品中檢索相關物品。

3. MIND模型

3.1 問題表示

一篇足夠優秀的論文,都會有對整篇論文研究的問題進行公式化描述。

3.1.1 任務目標

召回任務的目標是對於每一個使用者 從十億規模的物品池 檢索出包含與使用者興趣相關的上千個物品集。

3.1.2 輸入內容

對於模型,每個樣本的輸入可以表示為一個三元組: ,其中 代表與使用者 互動過的物品集,即使用者的歷史行為; 表示使用者的屬性,例如性別、年齡等; 定義為目標物品 的一些特徵,例如物品id和種類id等。

3.1.3 核心任務

MIND的核心任務是學習一個從原生特徵對映到「使用者表示」的函式,使用者表示定義為:

其中 為使用者 的表示向量, 為embedding的維度, 是表示向量的數量,即興趣的數量。若 ,即其他模型(如Youtube DNN)的Embedding表示方式。

目標物品 的embedding函式為:

其中 表示一個Embedding&Pooling層。

3.1.4 最終結果

根據評分函式檢索(根據「目標物品與使用者表示向量的內積的最大值作為相似度依據」,DIN的Attention部分也是以這種方式來衡量兩者的相似度),得到top N個候選項:

3.2 Embedding&Pooling 層

Embedding層的輸入由三部分組成,使用者屬性 、使用者行為 和目標物品標籤 。每一部分都由多個id特徵組成,則是一個高維的稀疏資料,因此需要Embedding技術將其對映為低維密集向量。具體來說,

  • 對於 的id特徵(年齡、性別等)是將其Embedding的向量進行「拼接」,組成使用者屬性Embedding

  • 目標物品 通常包含其他分類特徵id(品牌id、店鋪id等) ,這些特徵有利於物品的冷啟動問題,需要將所有的分類特徵的Embedding向量進行「平均池化」,得到一個目標物品向量

  • 對於使用者行為 ,由物品的Embedding向量組成「使用者行為Embedding列表」

3.3 多興趣提取層【核心工作】

相對於單一向量進行使用者興趣表示,作者採用「多個表示向量」來分別表示使用者不同的興趣。通過這個方式,在召回階段,使用者的多興趣可以分別考慮,對於興趣的每一個方面,能夠更精確的進行物品檢索。

為了學習多興趣表示,作者利用膠囊網路表示學習的動態路由將使用者的歷史行為分組到多個簇中。來自一個簇的物品應該密切相關,並共同代表使用者興趣的一個特定方面。

3.3.1 動態路由

「前提:」 以下內容基本按照原文敘述【具有概括性】,建議先理解通過其他方式理解膠囊網路和動態路由演算法,不然很難理解以下描述。

“膠囊”是一種用一個向量表示的新型神經元,而不是普通神經網路中使用的一個標量。基於向量的膠囊期望能夠表示一個實體的不同屬性,其中膠囊的方向表示一個屬性,膠囊的長度用於表示該屬性存在的概率。

動態路由是膠囊網路中的迭代學習演算法,用於學習低水平膠囊和高水平膠囊之間的路由對數(logit) ,來得到高水平膠囊的表示。

我們假設膠囊網路有兩層,即低水平膠囊和高水平膠囊,其中, 表示膠囊的個數, 表示每個膠囊內的神經元個數(向量長度)。路由對數 通過以下計算得到,進行更新【最開始初始化為0】:

其中 表示待學習的雙線性對映矩陣【在膠囊網路的原文中稱為轉換矩陣】。

通過計算路由對數,將高階膠囊 的候選向量計算為所有低階膠囊的加權和:

其中 定義為連線低階膠囊 和高階膠囊 的權重【稱為耦合係數】,而且其通過對路由對數執行softmax來計算:

最後,應用一個非線性的“壓縮”函式來獲得一個高階膠囊的向量【膠囊網路向量的模表示由膠囊所代表的實體存在的概率】

路由過程重複進行3次達到收斂。當路由結束,高階膠囊值 固定,作為下一層的輸入。

【注】:以上是論文中的定義,具體的內容可以參考其他文章。

3.3.2 B2I動態路由

作者認為原始路由演算法無法直接應用於處理使用者行為資料。因此,提出了「行為到興趣(B2I)動態路由」來自適應地將使用者的行為聚合到興趣表示向量中,它與原始路由演算法有三個不同之處:

  1. 「共享雙向對映矩陣」。在初始動態路由中,我們使用適應的的雙線性對映矩陣 而不是單獨的雙線性對映矩陣。一方面,使用者行為是可變長度的,從幾十個到幾百個不等,因此使用適應的雙線性對映矩陣是可推廣的。另一方面,希望興趣膠囊在同一個向量空間中,但不同的雙線性對映矩陣將興趣膠囊對映到不同的向量空間中。路由對數計算如下:

    其中 是歷史物品 的embedding, 表示興趣膠囊 的向量。雙線性對映矩陣 是在每一對行為膠囊【低階】和興趣膠囊【高階】之間共享。

  2. 「隨機初始化路由對數」。由於利用共享雙向對映矩陣 ,初始化路由對數為0將導致相同的初始的興趣膠囊。隨後的迭代將陷入到一個不同興趣膠囊在所有的時間保持相同的情景。為了減輕這種現象,我們對矩陣通過高斯分佈進行隨機取樣來初始化路由對數,讓初始興趣膠囊與其他每一個不同,類似於穩定的K-Means聚類演算法。

  3. 「動態興趣數量」。由於不同使用者擁有的興趣膠囊數量可能不同,我們引入了一種啟發式規則來自適應調整不同使用者的 值。具體來說,使用者的 值由以下計算:

    這種調整興趣膠囊數量的策略可以為興趣較小的使用者節省一些資源,包括計算和記憶體資源。

3.4 標籤意識的注意力層

通過多興趣提取層,多個興趣膠囊從使用者行為embedding建立。在訓練期間,我們設計一個標籤意識注意力層「讓標籤(目標)物品選擇使用過的興趣膠囊」。特別的,對於每一個標籤物品,我們計算興趣膠囊和標籤物品embedding之間的相似性,並且計算興趣膠囊的權重和作為目標物品的使用者表示向量,通過相應的相容性確定一個興趣膠囊的權重【這裡和DIN中的Attention幾乎一樣,「但key與value的含義不同」】。其中目標物品是query,興趣膠囊既是keys也是values,如圖2所示。使用者 關於物品的輸出向量通過以下計算得到:

其中pow定義每個元素的指數級操作, 是一個可調節的引數來調整注意力分佈。當 接近0,每一個興趣膠囊都得到相同的關注。當 大於1時,隨著 的增加,具有較大值的點積將獲得越來越多的權重。考慮極限情況,當 趨近於無窮大時,注意機制就變成了一種硬注意,選關注最大的值而忽略其他值。在我們的實驗中,我們發現使用硬注意導致更快的收斂。

3.5 訓練與服務

3.5.1 訓練

得到使用者向量 和標籤物品embedding 後,計算使用者 與標籤物品 互動的概率:

目標函式為:

其中 是訓練資料包含使用者物品互動的集合。因為物品的數量可伸縮到數十億,所以分母(10)的和運算在計算上是禁止的。因此。使用取樣的softmax技術來讓目標函式可追蹤,並且選擇Adam優化來訓練MIND。

3.5.2 服務

訓練結束後,拋開標籤意識注意力層,MIND網路得到一個使用者表示對映函式 。在服務期間,使用者的歷史序列與自身屬性喂入到 ,每個使用者得到多興趣向量。然後這個「表示向量通過一個近似鄰近方法來檢索top N物品」

4. 實驗

4.1 資料集

選擇兩個資料集進行評估:

(1)Amazon Book,一個廣泛應用的公開電子推薦資料集;

(2)TmallData,包含了10天內天貓使用者的200萬隨機取樣的歷史行為;

4.2 指標

命中率作為衡量推薦效能的主要指標

4.3 方法比較

  • WALS加權交錯最小二乘法(WALS)是一種經典的矩陣分解演算法,用於將使用者與物品互動矩陣分解為使用者與物品的隱含因子。基於使用者隱藏因素與目標物品的相容性進行推薦;

  • YouTube DNN如前所述,YouTube DNN是工業推薦系統中最成功的深度學習方法之一;

  • MaxMF 該方法引入了一種高度可擴充套件的非線性潛因子分解方法來建模多個使用者興趣;

4.4. 實驗結果

以上結果證明了使用多個使用者表示向量是建立使用者興趣多樣性模型,是提高推薦準確度的有效方法。

4.5 超引數分析

  • 路由對數:根據高斯分佈。我們考慮到 的不同值會導致不同的收斂從而對效能產生影響,選擇0.1,1.0,5.0,結果如上所示。3個值的曲線基本重疊。這顯示了MIND對於 的值是非常健壯的;

  • 標籤意識注意力的權值 :當 ,結果差很多,因為各興趣關注程度相同。隨著 的增大,與目標物品相似度越高的興趣表示向量獲得的關注量越大,當 ,最接近目標物品的興趣表示優於組合興趣表示,使MIND收斂更快,效能最好;

5. 總結

MIND模型最主要的創新是通過膠囊網路的動態路由演算法來捕捉使用者的多個興趣。而在訓練過程中加入一個標籤意識注意力層也是一個不錯的trick。可以與之前看過的ComiRec模型進行一個對比。

往期精彩回顧

【論文導讀】KDD2020|阿里團隊最新的多元興趣推薦模型---ComiRec

【論文導讀】淺談膠囊網路與動態路由演算法

掃碼關注更多精彩

點分享

點點贊

點在看