推薦系統預訓練任務的研究進展

© 作者|陳昱碩

機構|中國人民大學高瓴人工智能學院碩士

研究方向 | 推薦系統  

本文主要介紹推薦系統預訓練任務的研究進展,文章也同步發佈在 AI****Box 知乎專欄(知乎搜索 AI Box 專欄),歡迎大家在知乎專欄的文章下方評論留言,交流探討!

引言: 最近幾年,各種預訓練模型在 NLP,CV 等領域都取得了顯著的效果。最近的一些工作也開始在研究如何將預訓練與推薦系統任務相結合。目前主要有兩種結合方式:一種是將預訓練好的外部表示,例如知識圖譜信息,文本信息等,通過知識遷移的方式引入推薦系統;另一種是在推薦系統的數據上進行預訓練任務,發掘推薦數據上的自監督信號,從而一定程度上緩解推薦數據上的稀疏問題。本文主要是介紹關於後者的相關論文,它們從不同的角度設計了各種自監督信號和訓練方法,增強推薦系統數據自身的表達能力。我對這些論文進行了閱讀和分析,歡迎大家批評與討論。

一、論文列表

1. S^3-Rec: Self-Supervised Learning for Sequential Recommendation with Mutual Information Maximization

這篇論文是本實驗室和美團的研究人員在 CIKM 2020 上發表的。其主要是利用序列化數據內在的關聯性得到自監督信號,並通過多種預訓練方法增強數據的表示能力,以提高序列化推薦的表現。

https://arxiv.org/pdf/2008.07873

在以往的序列化模型中,通常是依靠計算 “下一個物品推薦” (Next Item Prediction) 損失來學習序列化模型。但已有研究表明,推薦系統數據的稀疏性等問題會影響用戶的歷史交互序列的學習效果。爲了能夠更好的建模用戶的歷史交互序列,一些研究還使用了語義信息更加豐富的上下文特徵 (例如物品的屬性),儘管這些上下文特徵能夠一定程度提升模型效果,但由於損失函數的原因,使得模型不太能關注到用戶的交互序列與上下文特徵的關聯。

爲了解決上述的問題,這篇論文使用了自監督學習的方法來改進用戶交互序列的學習過程。它主要設計了四個自監督學習任務,並通過互信息最大化的方法,以捕獲物品 - 屬性間,序列 - 物品間,序列 - 屬性間和序列 - 子序列間的相關性(如上圖四個方框所示)。注意到這四個自監督學習任務是從不同的數據粒度以及不同的數據形式發掘數據的相關性,所以相比於之前的序列化模型,S3-Rec 可以很好的捕捉上下文數據與交互序列的相關性,學習到更好的序列化數據的表示。最後再通過下游推薦任務的微調,使得模型能夠得到更好的推薦結果。

2. UPRec: User-Aware Pre-training for Recommender Systems


這篇論文是清華大學劉知遠老師組的同學在 2021 年發表的論文。與上文的 S3-Rec 主要是結合物品側的數據不同,這篇論文主要是使用用戶側的數據來增強序列化數據的表示能力。

https://arxiv.org/pdf/2102.10989

受到之前 BERT 在 NLP 任務中取得的成果,這篇論文也同樣使用 BERT 去建模用戶的歷史交互序列。爲了能夠學習到更好的交互序列表示,這篇論文設計了三個不同的預訓練任務。第一,爲了能夠捕獲交互序列的內部結構特徵,其仿照 BERT 的訓練方式,讓模型去預測被掩蓋的物品 (Mask Item Prediction);第二,通過將用戶的歷史交互序列輸入給 BERT,得到用戶的表示向量,再通過這個表示向量去預測用戶的屬性特徵 (User Attribute Prediction),這個任務主要是希望模型能夠從用戶的屬性特徵中得到更多的監督信號,以提升序列化數據的表示能力;第三,考慮到用戶的社交關係 (social relations) 也能在一定程度改善個性化推薦的效果,這篇論文還設計了社交關係預測 (Social Relation Detection) 的預訓練任務,通過 BERT 學習到的用戶表示去預測用戶之間的社交關係,從而提升模型對用戶交互序列的建模能力。下圖便展示了模型結構以及模型與三個預訓練任務之間的數據流。

最後,這篇論文再通過 “下一個物品推薦” (Next Item Prediction) 來微調前面預訓練好的模型。實驗結果表明了這種預訓練方法能夠提升模型的表現。

3. Augmenting Sequential Recommendation with Pseudo-Prior Items via Reversely Pre-training Transformer


這篇論文是 UIC 的俞士綸老師組的同學發表在 SIGIR 2021 上的。其重點是在如何通過預訓練的方式來增強原有的序列化數據。

https://arxiv.org/pdf/2105.00522

首先這篇論文介紹了序列化推薦的冷啓動問題,即當輸入的用戶交互序列長度過短時,推薦模型的性能會下降的問題。這篇論文以 Amazon Beauty 這個數據集爲例,超過 75% 的交互序列長度小於 7,推薦模型在這些較短的交互序列上的表現通常會比較差。

爲了解決這一問題,這篇論文使用預訓練模型來擴充短序列,即先使用 transformer 訓練一個反向的預測模型,這個模型能反向預測一個序列之前的物品。然後再使用這個模型去預測 (捏造) 較短序列的前驅物品,將較短的序列補充成一定長度的序列。最後使用這些增強的序列去微調之前訓練好的序列化模型,他們稱這種基於預訓練的數據增強爲 Augmenting Sequential Recommendation with Pseudo-prior items (ASReP)。之後的實驗也說明了這個方法的有效性。

4. One4all User Representation for Recommender Systems in E-commerce


這篇論文是 NAVER 公司在 2021 年發表的。它主要是在用戶的歷史交互記錄序列上進行預訓練,通過預訓練去提升下游任務的表現,比如用戶畫像等任務。

https://arxiv.org/pdf/2106.00573

這篇論文的主要特點是它設計了名爲 ShopperBERT 的預訓練模型,這個模型使用了兩種數據增強方式:分別是隨機打亂一段序列和隨機截斷。隨機打亂可以減少模型對購買序列順序的強依賴,可以增強模型的魯棒性,隨機截斷則可以減少模型對過長距離交互記錄的計算,使得模型能夠更加關注局部的交互記錄。

之後該論文又使用了兩種計算用戶交互記錄表示的方法,一種是平均池化(ShopperBERT-MP),另一種是使用 BERT 中 CLS 的表示(ShopperBERT-CLS)。在隨後的關於下游任務的實驗中,這兩種方法在不同的任務和指標上具有不同的優勢,兩者都比沒有經過預訓練的模型表現要好。

5. Self-supervised Learning for Large-scale Item Recommendations


這是一篇 Google 公司在 2020 年發表的論文。和上文中基於 BERT 類的預訓練模型不同,這裏是基於推薦系統中經典的雙塔模型設計的預訓練框架。

https://arxiv.org/pdf/2007.12865

這篇論文主要是構建了一個關於物品特徵的自監督學習框架,從而提高了雙塔模型中關於物品側的表示學習能力。這個自監督學習框架首先會將輸入的物品特徵進行兩次不同的數據增強,然後再利用對比學習的損失函數,希望模型能夠將同一個物品的特徵表示儘可能相同,不同的物品的特徵表示儘可能不同。具體框架如下圖所示:

這裏關於物品特徵的數據增強分爲兩個步驟:MaskingDropout,其中 masking 是隨機掩蓋一些輸入特徵,dropout 就是簡單的隨機丟失一些輸入特徵。但由於物品的不同特徵可能存在着一些關聯性,隨機 masking 可能會使得模型在自監督學習的過程中,通過關聯度較高的特徵來 “猜” 出被 mask 的特徵,使得自監督學習任務變得簡單。爲了解決這一問題,這篇論文又提出了 Correlated Feature Masking (CFM) 方法,這個方法首先會計算不同特徵之間的互信息。然後在 masking 的過程中,先會隨機選取一個特徵 f_seed ,然後選取互信息最大的幾個特徵進行 mask,以緩解上文提到的問題。在後續的實驗中,也驗證了其提出的自監督對比學習的雙塔模型,以及 CFM 方法的有效性。

6. Self-supervised Graph Learning for Recommendation


這篇論文是何向南老師組的同學發表在 SIGIR 2021 的工作。其主要貢獻是研究了圖神經網絡的預訓練方式,提高了圖神經網絡在推薦任務上的準確性和魯棒性。

https://arxiv.org/pdf/2010.10783

近些年有不少將圖神經網絡應用在推薦系統的上的工作,並取得了一定的效果。但在推薦系統的數據中,存在着數據稀疏、數據分佈不均勻和存在噪聲數據等問題。同時由於圖神經網絡的訓練方式,會產生這兩個問題:一個是模型對度數較少的節點 (即冷門商品和用戶) 的學習不夠充分,另一個是容易被噪聲數據干擾。這篇論文主要是研究了基於圖神經網絡的預訓練方式,即通過隨機的 dropout 圖中節點 (Node Dropout)、dropout 圖中的邊 (Edge Dropout) 和隨機遊走 (Random Walk) 的方式,得到每個節點的多個 “視角”,並通過對比學習的方式,來最大化不同節點表示的差距。這樣的數據增強和預訓練方式能夠從原始的圖數據中發掘出更多的監督信號,使得圖神經網絡能夠更好的學習到節點表示。

在接下來的篇幅中,這篇論文分別從理論和實驗的角度,分別分析和說明了這種預訓練方式,確實可以緩解推薦數據中的數據稀疏、數據分佈不均勻和存在噪聲數據等問題對圖神經網絡的影響。

7. Self-Supervised Hypergraph Convolutional Networks for Session-based Recommendation


這篇論文是昆士蘭大學發表在 AAAI 2021 上的工作。其主要是爲會話推薦系統提出了一種超圖 (Hypergraph) 的建模方式,並提出了相應的圖卷積網絡。

https://arxiv.org/pdf/2012.06852

這個工作主要是將會話推薦系統建模爲超圖模型,併爲這個超圖以及其對應的線超圖 (Line Graph of Hypergraph) 建立了雙通道超圖卷積網絡 Dual channel Hypergraph Convolutional Network (DHCN)。同時,爲了增強超圖的表示能力,這篇論文還使用了自監督學習的預訓練任務,通過最大化超圖通道的表示與線超圖通道的表示之間的互信息,以提高模型的訓練效率和表達能力。

最後的實驗結果也表明了使用超圖建模會話推薦模型以及預訓練任務的有效性。

8. Curriculum Pre-Training Heterogeneous Subgraph Transformer for Top-N Recommendation


這篇論文是本實驗室於 2021 年發表的。這篇論文的主要貢獻是設計了關於推薦系統數據的異質子圖,並在這個異質子圖上設計了新的自注意力網絡以及課程學習方式,從而提升異質子圖模型在推薦數據上的表現。

https://arxiv.org/pdf/2106.06722

這篇工作主要目的是設計一個更有效的訓練方式,將異質圖網絡裏的信息引入推薦系統。之前的研究主要分爲兩類:基於路徑的方法 (Path-based methods) 和基於圖表示學習的方法 (Graph representation learning)。基於路徑的方法主要是能夠捕獲用戶與物品之間的路徑信息,而基於圖表示學習的方法則是能學習到用戶與物品的節點信息。這兩種方法的關注點不一樣,前者只能學習到到某一條路徑的信息,而不太能反映圖的結構;後者可以學習到圖的結構信息,但對於預測某對具體的用戶 - 物品對時,往往會受到其他相關度較低節點的干擾。

爲了結合上述的兩種方法,以及緩解他們的缺點,這篇論文提出了構造異質子圖,並在異質子圖上進行自監督學習的方法。首先其設計了基於特定交互的異質子圖 (Interaction-specific Heterogeneous Subgraph),即使用 metapath2vec 方法隨機生成從用戶到物品的若干條相關度較高的路徑,通過這些路徑構造子圖,使得模型能夠只關注於相關節點的信息,以減少干擾;接下來,再基於這個異質子圖設計了異質子圖的自注意力網絡 (Heterogeneous Subgraph Transformer);最後,爲了能夠讓模型能夠更加好的學習到局部和全局的特徵,該工作還設計了對應的課程學習過程 (Curriculum Pre-training),讓模型從局部特徵的學習 (遮蓋節點,遮蓋邊以及元路徑預測) 過渡到全局特徵的學習 (關於增刪改異質子圖路徑的對比學習)。具體的模型結構與訓練的數據流如上所示。後續的實驗也說明了這種異質子圖的構造和預訓練方式的有效性。

二、小結

最近兩年出現了一些在推薦系統數據上進行預訓練的研究。它們主要分爲基於序列化數據的預訓練和基於圖數據的預訓練這兩大類。基於序列化數據的模型通常會採取類似 BERT 完形填空式的任務,來增強數據的表示能力;而基於圖數據的預訓練任務主要會通過 mask 節點或邊,增刪節點和邊的方式,並通過對比學習,得到更全面,更具有魯棒性的節點表示。這些預訓練任務普遍都使用了諸如對比學習、最大化互信息等方法來計算自監督損失。通過預訓練任務,各種模型都一定程度上緩解了數據稀疏的問題,提高了模型的冷啓動性能。最後希望本文能夠給讀者帶來一些啓發。如有不同見解,歡迎大家進行批評與討論。

本文由 Readfog 進行 AMP 轉碼,版權歸原作者所有。
來源https://mp.weixin.qq.com/s/FNhm0A5Q9Jx5_ieEatMUxQ