【序列推薦】RecSys2020|FISSA---融合物品相似度模型和自注意力網絡的推薦

2021-02-20 推薦算法的小齒輪
前言

文章發表在2020年的頂會RecSys,提出了一個融合物品相似度和自注意力機制的序列推薦模型FISSA。FISSA融入了SASRec模型,將其看作是提取用戶行為的局部表示(local representation,短期興趣),又加入了對全局偏好(global preferences,長期興趣)的提取。並且,提出一種類似LSTM單元的門控函數,將兩者進行有效的融合。
「原文地址」:https://dl.acm.org/doi/10.1145/3383313.3412247
有意思的是,給我推薦了上次發表在RecSys的論文SSE-PT。

本文約3.0k字,預計閱讀10分鐘。

概要

本篇論文拋出了當下序列推薦模型中兩個重要的問題:

對於很多序列推薦模型中,例如SASRec、Caser,它們太過關注於用戶的局部偏好,也就是短期興趣,而忽略了用戶的長期興趣。而向AttRec、STAMP等模型,建立長期興趣(作者將其稱為全局、靜態的偏好)的方法太過簡單,低估了其作用;作者認為,現在絕大多數模型,都認為能夠從用戶的歷史行為中完全能夠捕捉到用戶當前興趣,這是一種理想主義。在現實中,用戶的意圖往往是很難進行確定的,特別是處於一個長期行為(電影、長時間的一個購物記錄),而不是一個短期行為(聽音樂)。判斷一個新產品是否能吸引用戶的正確方法是,考慮它如何能引起用戶不同部分的興趣(即短期興趣和長期興趣)。

【注】談一談我個人的一些看法,關於第1點,其實現在很多序列推薦模型都開始將用戶行為序列建模分為兩個部分:短期偏好和長期偏好,但是對於長期偏好的建模確實過於簡單【嘗試過通過self-attention來提取長期偏好(平均),不過效果一般,短期偏好才是yyds】。第2點,等於是得到兩個興趣後,如何去合併?不錯的方法是分配不同的權重,而權重是通過計算候選物品與興趣的相似程度。其實DIN模型就是這樣做的(通過attention),但是他是CTR模型,如果放到召回(Top-K)中,會影響模型預測效率,應該很難使用FAISS庫等可以計算鄰近。

因此,作者提出了FISSA模型有效的解決上述兩個問題。

模型結構

FISSA模型結構清晰,分為三個模塊,局部表示學習(Local Representation Learning)、全局表示學習(Global Representation Learning)、門控函數(Gating)。模型結構如下所示:

問題定義

定義用戶集合

局部表示學習

第一部分是採用self-attention的局部表示學習模塊,並沒有什麼創新,不過作者自己也指出了,本篇論文不要過多的關注局部表示模塊,因為大家都已經做得很好了,所以主要來看全局表示學習是如何做的。這裡我簡單闡述下:

作者規定輸入序列為用戶

【注】與Transformer提供的方法不同,但其實在很多使用self-attention網絡的序列推薦模型中都使用上述方法,我經過實驗,確實比Transformer提供的positional encoding方法效果更好。

接下來就是將通過多個self-attention block(SABs):

對於單個SAB:

其中

最終,通過多個SABs,其中輸出向量

【注】這裡稍微有點歧義,SASRec也是類似的寫法,看過兩篇論文以及他們的原始碼我才能真正理解為啥這裡輸出的是一個向量。我簡單進行下解釋:

首先,SASRec、FISSA的輸入是一個用戶的整個歷史行為,即在訓練中能獲得的長度為

因此,對於通過SABs得到「最後一個向量」。對比發現,FISSA/SASRec採用的方式減少了內存的消耗,且提高了訓練速度。

關於SABs的數量,作者也提到了,如果為1,那麼可以來捕獲長期依賴,但是對於2及以上,則更關注於最近的信息。

全局表示學習

第二部分是全局表示學習模塊,用來提取用戶的長期偏好,作者先是通過FISM(傳統的推薦模型)來引入。在FISM中,用戶

對下一個交互物品的預測分數為:,這可以理解為用戶

作者認為不同的歷史物品應該具有不同的權重。但如何來分配權重呢?這裡作者採用了attntion mechanism,但是比較有意思的是模型中的query是可學習的

其中

另外,作者加入了dropout layer:

因此最終得到的全局表示矩陣

【注】這裡得到

聯合---物品相似度門控

第三部分是局部表示與全局表示的融合。如何聯合局部表示和全局表示,作者早期分別做了求和(summation)和拼接(concatenation)的測試,結果證明求和效果更好,但作者認為這些組合方法仍然只是基於歷史信息,這可能是理想化的。

為了解決序列推薦中用戶意圖不確定性的問題,受「神經注意物品相似度(NAIS)」 的啟發,作者提出一個item similarity gating模塊,通過建模候選物品

作者有如下定義:

Gating模塊中,輸入有三種item,即候選物品

門控函數

其中

【注】其實就是將三者進行拼接,然後經過一個全連接網絡。然後

其中

最後,預測候選物品

損失函數:

【注】與其他直接計算用戶抽象表示與候選物品的相似度不同的是,多了一個門控函數,但是卻採用了類似attention的做法,不過只有兩個值(全局和局部),不清楚這樣做在工業界是否可行?

實驗

「數據集:」

「指標:」

recall(Rec@10):在用戶的單物品召回測試中,等價於點擊率hit ratio;normalized discounted cumulative gain (NDCG@10);

驗證時,與SASRec一樣,正負樣本比例為1:100。

「實驗結果:」

FISSA取得了最好的實驗結果,特別是在Beauty、Games、Steam三個數據集上更為明顯。詳細的實驗內容可以參考原文。

總結

讀完這篇文章還是有一定收穫的,作者很多的想法和我目前的一些idea類似,不過作者想得更加的全面(不然我也能發頂會了)。對於門控函數部分,我持保留意見,認為這樣模型更接近於CTR模型,且會降低模型的效率,需要進行諮詢下工業界的大佬進行更進一步的了解。

相關焦點

  • 圍觀RecSys2020 | 推薦系統頂會說了啥?
    RecSys2020主頁:RecSys – ACM Recommender Systems(https://recsys.acm.org
  • 【論文導讀】DLP-KDD2019|BST---使用Transformer進行序列推薦
    文章最主要的內容就是「通過Transformer模型在用戶行為序列中捕獲序列信息來進行推薦」。其餘內容與其他Embedding&MLP的模型沒有本質上的變化。本文主要聚焦於推薦系統中排序階段的任務,「即可以把它看作是一個CTR預估任務」。
  • BERT4Rec:使用Bert進行序列推薦
    BERT4Rec簡介根據用戶歷史的行為,對用戶動態的偏好進行建模,對於推薦系統來說是有挑戰的和重要的。之前的算法使用序列神經網絡從左向右地編碼用戶的歷史交互信息為隱含表示,進而進行推薦,因此只利用了單向的信息進行建模。
  • 一文帶你了解推薦系統——常用召回和排序技術
    例如用戶A和用戶B的興趣類似,如果用戶A對周星馳的電影《功夫》比較感興趣,則系統更傾向於向用戶B推薦該電影。  ItemCF 更適用於興趣變化比較穩定的應用,用戶在一段時間內更傾向於尋找一類物品,這時利用物品相似度為其推薦相關物品是契合用戶動機的。例如X電影和Y電影為相關程度較高的搞笑類電影,如果用戶A對X電影比較感興趣,則系統更傾向於向用戶A推薦Y電影。
  • 當推薦系統遇見注意力機制
    DIN和DIEN都是阿里針對CTR預估的模型,都主要是對用戶歷史行為數據的進一步挖掘的工作。CTR預估任務是,根據給定廣告/物品、用戶和大量的上下文情況等信息,對點擊進行預測,所以對用戶的興趣理解,歷史行為數據非常重要。
  • 【KDD2020】 圖模型信息融合
    本文將介紹兩篇發表於KDD 2020的與圖模型信息融合相關的工作。第一篇工作為《HGMF: Heterogeneous Graph-based Fusion for Multimodal Data with Incompleteness》,該工作主要是基於異質圖來解決多模態學習中在信息融合時會遇到的模態缺失問題。
  • 序列推薦模型梳理(Sequential Recommendation)
    序列推薦的模型,隨著整個CS research領域的發展,也是一直在不斷變化。從最開始的Markov chain,到後來的RNN,CNN模型,以及現在流行的transformer。每個時期的序列推薦模型,基本上也是對應著該時期用的比較多的NLP模型。本文梳理了序列推薦模型的發展變化,幫助大家理清楚序列推薦系統的設計思路。
  • SIGIR 2020 | 引入用戶微觀行為與物品知識的會話推薦
    研究動機與基本思想會話推薦( Session-based recommendation )是指只利用用戶在最近一段時期(會話)內的交互物品序列去預測用戶下一個可能交互的物品,會話內的交互物品序列可準確捕捉用戶的短期偏好,對於當前時間點的推薦具有重要意義。
  • 推薦系統丨YouTube召回模型設計
    隨著網際網路行業的高速發展,人們獲取信息的方式越來越多。人
  • 推薦場景中——DIN排序模型講解和應用
    記得先點藍字關注我哦~作者介紹知乎@王多魚京東的一名推薦算法攻城獅。主要負責商品推薦的召回和排序模型的優化工作。前言前文介紹了一種普適性比較強的DeepFM排序模型,易用且部署簡單。本文結合用戶的行為序列數據剖析一下由阿里媽媽算法團隊開發的深度興趣網絡模型(下稱DIN模型)。
  • HLBPR:一種混合的基於局部相似度的BPR算法
    在這篇文章中,我們介紹一種混合的基於局部相似度的貝葉斯個性化排序(簡稱HLBPR)算法來解決數據稀疏性的問題。我們的主要思路是通過用戶消費記錄的局部相似性來發掘用戶感興趣的潛在商品,然後使用這些擴充的數據來優化物品排序。最後,我們通過在兩個實際數據集上的實驗來證明我們模型的有效性。
  • Graph Embedding:深度學習推薦系統的基本操作
    相反,Embedding 之後,千萬級別的維度可以縮小到自定義的維度大小(例如1000)。變成向量之後的商品,可以直接通過計算向量相似度,尋找相似的商品,直接推薦給客戶。通過計算用戶和物品的 Embedding 相似度,Embedding 可以直接作為推薦系統或計算廣告系統的召回層或者召回方法之一,例如 Youtube 推薦系統。
  • 【博士論文】基於網絡特徵學習的個性化推薦系統
    推薦系統可以幫助用戶獲取所需要的信息,改善信息超載的問題。推薦系統的技術核心是對用戶歷史、物品屬性和上下文等信息進行建模,推斷出用戶的興趣愛好,並向用戶推薦感興趣的物品。因此,實用的推薦算法需要有很強的擴展性,可以方便地融合各種輔助信息。
  • 深度學習推薦系統中各類流行的Embedding方法 (下)
    DeepWalk算法的具體步驟如下:圖(a)是原始的用戶行為序列。圖(b)基於這些用戶行為序列構建了物品關係圖。可以看出,物品A和B之間的邊產生的原因是用戶U1先後購買了物品A和物品B。如果後續產生了多條相同的有向邊,則有向邊的權重被加強。在將所有用戶行為序列都轉換成物品關係圖中的邊之後,全局的物品關係圖就建立起來了。
  • ACL 2019論文分享:百度閱讀理解知識和文本融合模型KT-NET
    通過在海量無標註文本數據上預訓練足夠深的網絡結構,使當前最先進的語言表示模型能夠捕捉複雜的語言現象,更好地理解語言、回答問題。然而, 基於語言表示的機器閱讀理解模型通常還是從詞法、句法層面抽取答案,缺乏相應的背景知識以支撐對問題的深度理解和精準回答。
  • 深度學習推薦系統中各類流行的Embedding方法 (上)
    在此基礎上,Embedding向量往往會與其他推薦系統特徵連接後一同輸入後續深度學習網絡進行訓練。  (3)通過計算用戶和物品的Embedding相似度,Embedding可以直接作為推薦系統的召回層或者召回策略之一(比如Youtube推薦模型等)。Embedding對物品、用戶相似度的計算是常用的推薦系統召回層技術。
  • 賽爾原創 | ACL20 如何使用選擇機制提升自注意力網路能力?
    相比傳統的循環神經網絡以及卷積神經網絡,自注意力網絡優勢在於其高度的運算並行性以及更加靈活的建模輸入元素的依存關係能力。傳統的自注意力網絡模型在計算每個元素的表示的時候,將所有的輸入的元素考慮在內,而不管其對於當前元素的相關性。本問題提出通用的基於選擇機制的自注意力網絡模型(SSANs),其可以針對每個計算表示的元素,動態地選擇其相關性的子集,以此作為輸入進行後續的自注意力網絡的計算。
  • RNN和LSTM弱!爆!了!注意力模型才是王道
    所有這些企業已經將RNN及其變種替換為基於注意力的模型,而這僅僅是個開始。比起基於注意力的模型,RNN需要更多的資源來訓練和運行。RNN命不久矣。為什麼記住RNN和LSTM及其衍生主要是隨著時間推移進行順序處理。
  • 橫截面與時間序列因子模型比較
    The Review of Financial Studies. 2020, 33(5): 1891-1926.推薦原因:我們使用Fama和MacBeth(1973)的橫截面回歸方法構建了與Fama和French(2015)的時序因子相對應的橫截面因子。實證結論表明,只使用橫截面因子的時間序列模型比使用時間序列因子的時間序列模型能更好地解釋股票投資組合平均收益。
  • 怎麼給海量商品設計推薦系統?阿里蓋坤團隊提出深層樹結構檢索模型
    研究人員們早期提出的協同過濾推薦算法(collaborative filtering)就是一類能以相對小的計算能力處理大規模語料的算法,其中典型的基於物品的協同過濾算法 ItemCF 可以預先計算物品對之間的相似度,然後根據用戶的歷史行為選出最相似的物品。