1
導語
真實世界中的綜合推薦系統(例如微信看一看)通常需要從上百萬異質物品中進行推薦。直接在百萬候選集上使用複雜的推薦算法,往往會引入難以承受的時間成本。因此,工業級綜合推薦系統一般由召回(matching)和排序(ranking)兩個模塊組成。召回模塊負責快速從百萬級數據中檢索出百級別物品候選,排序模塊負責準確對這些召回來的物品候選排序,得到最後的推薦結果。由於推薦物品來源多種多樣,特徵也不盡相同,同時也為了兼顧多樣性,召回部分通常會使用多隊列召回(multi-channel matching)策略。
然而,在現實系統中,綜合推薦系統經常會引入新的數據源,這部分冷啓動的召回通道在行為稀疏時往往表現較差。
為了解決這些問題,作者提出一種Internal and contextual attention network (ICAN)模型,通過加強多隊列之間特徵域(feature field)交互和環境信息,得到更好的(冷啓動)召回效果。作者在微信看一看系統上進行了離線和在線實驗,均獲得顯著提升。目前ICAN已部署與看一看線上召回系統。
2
模型背景與簡介
綜合推薦系統(例如微信看一看)能夠綜合不同來源(例如公眾號、新聞源、網頁)和不同媒體形態(例如文章、微博、長視頻、短視頻等)的物品進行聯合推薦,為用户提供便利的一站式的信息獲取服務。隨着信息的指數級爆炸增長,真實世界的綜合推薦系統通常需要從千百萬異質物品中進行篩選和推薦。一些複雜的user-item pair-wise的推薦算法,如DIN、DeepFM、AutoInt等,需要窮盡所有候選集進行計算。
然而,在百萬千萬級的數據下,哪怕接近線性時間的計算複雜度也是系統難以接受的。於是,真實推薦系統往往會劃分為召回(matching)和排序(ranking)兩個串行的模塊。召回模塊負責從百萬級數據中快速檢索出一個小的物品候選子集(通常是幾百的規模),排序模塊負責準確對這些召回來的物品候選排序,得到最後的推薦結果。同時,由於綜合推薦的物品來源多種多樣,物品屬性和特徵也不盡相同,在召回部分通常會使用多隊列召回(multi-channel matching)策略處理不同來源的物品。這種召回-排序結構是現在大規模推薦系統的主流架構。
圖1給出了看一看場景中綜合推薦的示例,包含文章、長視頻、短視頻三種召回隊列(channel)。
圖1:微信看一看綜合推薦示例
在現實系統中,綜合推薦系統經常會引入新的數據源。微信看一看中較主要的信息來源和召回隊列就超過了幾十個。這部分冷啓動的召回通道在建立初期,用户行為往往比較稀疏,基於用户行為的CTR預估模型表現較差。需要注意的是,和針對冷啓動用户的推薦算法不同,冷啓動召回隊列(新信息源的召回隊列)中冷啓動的是物品和物品所擁有的特徵本身。
一個直觀的方法是使用用户在其它隊列上的點擊等行為,預測用户在新信息源上物品的偏好,但是不同隊列包含的特徵域(feature field)可能不一樣。不同信息源可能會有特徵域上的種類差異,即使是相同特徵域(如tag/topic/category),特徵含義也很可能不相同(不同數據源的tag/topic/category體系和粒度不同,難以進行直接對應)。模型需要學習到不同特徵域之間的映射關係,但是很少有召回工作關注冷啓動隊列的問題
在這篇論文中,作者想要提升推薦系統在多隊列召回,特別是冷啓動召回上的表現。作者提出一種Internal and contextual attention network (ICAN)模型,通過加強多隊列之間特徵域交互和環境信息,得到更好的(冷啓動)召回效果。作者基於微信看一看綜合推薦系統,在離線和在線上均進行了CTR預估實驗,並在多個指標上取得了最好結果。這個工作的貢獻點如下:
1、這篇工作第一次強調了推薦系統多隊列冷啓動召回的任務。這項任務在學術界暫時沒有太多關注,但是在工業級推薦系統中是一個對結果影響重大的實際難題。
2、作者提出了一個Internal and contextual attention network (ICAN)模型,是第一次結合了跨隊列特徵域之間的交互信息進行召回的工作。
3、模型在離線和在線的召回指標上均獲得顯著提升,並且目前成功部署於微信看一看系統,服務千萬用户。
3
模型結構
這篇論文目的是使用多隊列之間的特徵域交互,輔助推薦系統在多隊列(冷啓動)召回上的效果。圖2給出了ICAN模型的整體架構。
圖2:ICAN的整體模型架構
如圖2所示,ICAN模型首先將成熟隊列和冷啓動隊列中的用户行為序列同時作為輸入,並按照特徵域把每個隊列中的行為序列拆分成不同的特徵域序列。然後,ICAN通過Contextual Attention Layer抽取多隊列特徵域和環境相關的特徵。接下來,ICAN通過Internal Attention Layer中的field-level self-attention挖掘不同隊列的不同特徵域之間的交互信息。最後,模型融合用户行為、用户基本屬性、推薦上下文信息以及用户社交屬性信息等,參考RecSys2016的Youtube召回模型的訓練方式,離線使用softmax基於CTR預估進行訓練,在線使用類似基於FAISS的快速召回工具進行召回。這樣,線上ICAN召回的時間複雜度就控制在O(log(n))。模型的核心創新點在於針對多隊列冷啓動召回問題提出的基於特徵域的跨隊列信息交互。
具體地,在第一步,模型首先將成熟隊列和冷啓動隊列中的用户行為序列同時作為輸入。和傳統的session-based recommendation不同,ICAN把所有隊列中的每個item向量按照其特徵域數目拆分成n份,並根據特徵域組成n個新的序列。例如在article隊列中,每個article的特徵域由文章的[ID, tag, category]三個特徵域組成,那在ICAN的輸入中,用户在article隊列上的點擊行為即分為ID, tag, category三個序列。每個特徵域序列經過encoder得到特徵域的向量。
第二步,作者使用Contextual Attention Layer,抽取前述特徵域向量中和當前隊列的環境(contexts)相關的特徵。這裏的環境主要有兩個因素,其一是當前召回所在的隊列,其二是推薦的上下文環境(包括網絡狀況等因素)。模型通過注意力機制,獲得了環境特化的特徵域向量:
第三步,作者使用Internal Attention Layer,讓環境特化後不同隊列下的不同特徵域之間進行充分的特徵交互。這裏,作者使用了field-level self-attention模型,進行不同特徵域之間的特徵交互:
和傳統self-attention不同,這裏輸入的不是item矩陣,而是item按特徵域拆分,並在隊列內進行序列聚合後的特徵域矩陣。這是因為ICAN主要目的是學習到不同隊列特徵之間的交互信息。這樣在冷啓動隊列中進行推薦時,本隊列用户行為不足或本隊列特徵學習不夠充分的情況下,可以藉助其他隊列的信息學習到用户在冷啓動隊列中的偏好。另外,在使用其它成熟隊列點擊進行訓練時,模型也可以對冷啓動隊列的特徵進行更新。
第四步,模型融合用户行為、用户基本屬性、推薦上下文信息以及用户社交屬性信息,通過MLP得到了(環境特化後的)用户向量。模型基於用户向量,使用softmax進行CTR預估。Loss如下:
此loss認為和用户向量相似的物品向量更可能被點擊。因此,在線上進行實時召回時,ICAN只需要使用一次前饋神經網絡即可獲得用户向量,然後基於類似FAISS的快速召回工具進行K近鄰召回即可,相似度使用用户向量和物品向量之間的餘弦相似度。這樣,線上召回的時間複雜度就控制在O(log(n))內,能夠在線快速處理千萬級物品候選。
4
實驗結果
作者在微信看一看上進行了離線和線上實驗。由於是召回模型,離線指標上ICAN更加關注用户可能點擊的物品是否被召回,並不在意點擊的物品具體排在第幾位。因此,在離線指標上,作者沒有使用AUC /MAP這類排序指標,而是使用了hit rate作為指標。由於線上實際使用top500作為召回結果,作者主要考慮了100,200,500三種情況。結果如下:
圖3:離線召回實驗結果
在多種指標下,ICAN模型在成熟隊列和冷啓動隊列上都得到了最佳的效果,其中在冷啓動隊列上提升更為顯著。ICAN的消融實驗也説明了Contextual Attention Layer和InternalAttention Layer的有效性。線上實驗結果也説明ICAN能夠提升CTR、list-wise CTR、閲讀時長和平均點擊類別數(多樣性指標)等多項指標,顯著提升了線上效果。
除此之外,作者還進行了兩種attention的可視化。以圖4為例,我們可以發現在冷啓動隊列(短視頻隊列)中進行召回時,長視頻的tag特徵域似乎起到了很大的作用,甚至高於短視頻自己的category/tag特徵域的作用權重。圖5也説明在internal attention中,不同特徵域之間存在一定的交互範式。這樣的結果説明兩點:(1)使用成熟隊列信息輔助冷啓動隊列是很有必要的。(2)把隊列信息從物品級拆分成特徵域級是很有必要,因為不同隊列的不同特徵域之間交互模式不同。
圖4:Contextual Attention的heatmap
圖5:Internal Attention的heatmap
5
總結
本文提出了一個ICAN模型,使用多隊列之間的特徵域交互,輔助提升推薦系統在多隊列(冷啓動)召回上的效果。模型針對任務進行了特徵域級別的拆分,使得不同隊列之間的交互變得更為精細。ICAN使用了直觀的模型,在工業級大規模推薦數據集和線上系統中均得到了成功的驗證。未來,更復雜細緻的交互方式和與多任務學習/遷移學習的融合可能會是潛在的研究方向。