遷移學習與跨域推薦,以及解決跨域推薦的方法
本文主要是詳細介紹一下跨域推薦,包含但不局限于以下幾個部分:
-
遷移學習
-
跨域推薦
-
跨域推薦可以怎么做
-
冷啟動的其他一些方法
-
-
可以參考的論文有哪些
1. 遷移學習
以下內容參考【推薦系統中的多任務學習-盧明冬】進行修改和介紹,更多詳細內容可以閱讀:https://lumingdong.cn/multi-task-learning-in-recommendation-system.html。
1.1 遷移學習介紹
遷移學習(Transfer Learning,TL)**是屬于機器學習的一種研究領域。它專注于存儲已有問題的解決模型,并將其利用在其他不同但相關問題上。比如說,用來辨識汽車的知識(或者是模型)也可以被用來提升識別卡車的能力。
ML vs TL
遷移學習設計用于解決這些相互隔離的學習方式,可以利用先前訓練模型中的知識(即特征,權重等)訓練新的模型,實現從其它任務獲取的知識去解決相關的問題,甚至可以解決諸如新任務具有較少數據等問題。
1.2 遷移學習可以解決哪些問題
-
大數據與少標注的矛盾:雖然有大量的數據,但很多都是沒有標簽的,這些數據應用無監督模型會比較好,但是當使用有監督模型時就不太友好了,而如果選擇人工標注則會耗時耗力
-
大數據與弱計算的矛盾:普通人無法擁有龐大的數據量與計算資源。因此需要借助于模型的遷移,比如圖像識別中進行對訓練好的模型進行 fine-tuning 完成自己的任務
-
普適化模型與個性化需求的矛盾:即使是在同一個任務上,一個模型也往往難以滿足每個人的個性化需求,比如特定的隱私設置。這就需要在不同人之間做模型的適配
-
特定應用(如冷啟動)的需求
遷移學習中還有三個比較重要的問題,即:
-
遷移什么(What To Transfer):如何選擇我們的先驗知識進行遷移,并不是所有的源域都可以遷移到目標域,比如說一個文本分類的經驗知識遷移到圖像分類上顯然是不合適的,因此在選定遷移的源域和目標域時一定要判斷兩者有相關性,不論是用戶還是item
-
何時遷移(When To Transfer):什么時候可以進行遷移,什么時候不能遷移?在某些場景中,遷移知識可能要比改進知識更糟糕(該問題也稱為 “負遷移”)。我們的目標是通過遷移學習改善目標任務的性能或結果,而不是降低它們。(避免負遷移)
-
如何遷移(How To Transter):如何進行遷移學習?我們需要確定跨域或跨任務實現知識實際遷移的方法。該問題涉及如何改進現有的算法和各種技術(設計遷移方法)
1.3 遷移學習基本概念
遷移學習中有兩個很重要的概念:域(domain)和任務(Task)。
域:數據特征和特征分布組成,是學習的主體
-
源域 (Source domain):已有知識的域
-
目標域 (Target domain):要進行學習的域
任務:由目標函數和學習結果組成,是學習的結果
域的不同有兩種可能的場景:
-
特征空間不同
例如文本分類任務中,中文文本和英文文本的特征空間不同
圖像識別任務中,人臉圖片和鳥類圖片的特征空間不同
-
邊緣概率分布不同
例如文本分類任務中,文本都是中文語言的特征空間,但討論的是不同的主題,如政治和娛樂
圖片識別任務中,圖片都是鳥類的特征空間,但一個是在城市中拍到的鳥,一個是在大自然中拍到的
任務的不同也有兩種可能的場景:
-
標簽空間不同
例如在文本分類任務中,一個標簽是新聞類別標簽,一個標簽是文本情感標簽;
人臉識別任務中,一個標簽是性別,一個標簽是人名。
-
條件概率不同
例如源和目標數據類別分布不均衡。這種情況非常普遍,可用過采樣(over-sampling)、欠采樣(under-sampling)、SMOTE 等方法進行處理。
一般標簽不同,條件概率分布也會不同,因為很少會出現兩個不同的任務有不同的標簽空間而條件概率分布完全相同的情況。
也有論文將域(domain)和 任務(task)合二為一稱之為一個 dataset,cross-dataset 指的就是 domain 或者 task 不同
1.4 遷移學習分類
按特征空間分
-
同構遷移學習(Homogeneous TL): 源域和目標域的特征空間相同
-
異構遷移學習(Heterogeneous TL):源域和目標域的特征空間不同
按遷移情景分
參考上圖,根據所使用的傳統機器學習算法,遷移學習方法可分類為:
-
歸納式遷移學習(Inductive Transfer learning):在該場景中,源域和目標域相同,但源任務和目標任務彼此不同。算法嘗試利用來自源域的歸納偏差幫助改進目標任務。根據源域中是否包含標記數據,歸納式遷移學習可以進一步分為類似于**多任務學習(Multi-task Learning) 和 自學習(Self-taught Learning)**這兩類方法
-
直推式遷移學習(Transductive Transfer Learning):源域和目標域不同,學習任務相同。在該場景中,源任務和目標任務之間存在一些相似之處,但相應的域不同。通常源域具有大量標記數據,而目標域沒有。根據特征空間或邊緣概率的設置不同,直推式遷移學習可進一步分類為多個子類
-
無監督遷移學習(Unsupervised Transfer Learning):源域和目標域均沒有標簽。該場景類似于歸納式遷移學習,重點關注目標域中的無監督任務
下表總結了上述遷移學習策略在不同場景和領域下的對比:
-
基于樣本的遷移學習(Instance transfer):通常,理想場景是源域中的知識可重用到目標任務。但是在大多數情況下,源域數據是不能直接重用的。然而,源域中的某些實例是可以與目標數據一起重用,達到改善結果的目的。對于歸納式遷移,已有一些研究利用來自源域的訓練實例來改進目標任務,例如 Dai 及其合作研究者對 AdaBoost 的改進工作
-
基于特征表示的遷移學習(Feature-representation transfer): 該類方法旨在通過識別可以從源域應用于目標域的良好特征表示,實現域差異最小化,并降低錯誤率。根據標記數據的可用性情況,基于特征表示的遷移可采用有監督學習或無監督學習
-
基于參數的遷移學習(Parameter transfer): 該類方法基于如下假設:針對相關任務的模型間共享部分參數,或超參數的先驗分布。不同于同時學習源和目標任務的多任務學習,在遷移學習中我們可以對目標域的應用額外的權重以提高整體性能
-
基于關系知識的遷移學習(Relational-knowledge transfer): 與前面三類方法不同,基于關系知識的遷移意在處理非獨立同分布(i.i.d)數據即每個數據點均與其他數據點存在關聯。例如,社交網絡數據就需要采用基于關系知識的遷移學習技術
下表清晰地總結了不同遷移內容分類和不同遷移學習策略間關系:
OK上邊的便是關于遷移學習的介紹了,相信你讀完之后會有自己的理解!
2. 跨域推薦
那什么是跨域推薦呢?一句話概括就是:當遷移學習應用到推薦系統中時就被稱為跨域推薦(Cross-Domain Recommendation)。
跨域推薦的目的一般是有下面幾個:
-
冷啟動:比如一個公司的兩個APP業務,用戶群體交叉很大,但是item不同,當A業務的用戶首次來訪B業務時,如何做出有效的推薦,從而提升留存、轉化率,跨域推薦為冷啟動提供了一種新的思路,但其局限性也很強,對于一些一個公司只有一個業務的場景是很難適用的
-
跳出信息繭房:基于同業務的推薦,往往會讓用戶的興趣越變越窄,因為都是基于用戶的行為進行挖掘的,當使用跨域推薦時可以跳出原先的舒適圈,從而改善推薦系統的平衡性、多樣性和新奇性
-
減少數據稀疏性,提高準確度:同樣是針對兩個不同業務場景而言的,新業務或者其中一個業務由于某些原因數據比較稀疏,通過引入跨域推薦,豐富數據
-
強化用戶偏好:新用戶的偏好是很弱的,通過跨域推薦強化用戶偏好
3.跨域推薦可以怎么做
3.1 基于頻繁模式挖掘
獲取用戶在域A和域B中的共現行為,構造共現pair對 <itemA, itemB>,當其共現次數大于某個值時,認為其有效,最終可以得到域A中item的“相似”域B中的item list
或者計算itemA與itemB的相關性,計算公式為:
其中:
-
為物品的共現次數,為對物品有行為的用戶數,為對物品有行為的用戶數
-
表示總的用戶數
3.2 簇類熱門
-
獲取域A item的embedding,userID的embedding向量則由用戶最近行為的item序列的平均得到
-
對域A的用戶進行聚類,得到每個簇類的top 熱門
-
用戶訪問域B時 推薦其所在簇類下的熱門
這里不一定使用embedding進行聚類,也可以根據屬性進行聚類
3.3 基于屬性標簽映射
通過源域的屬性標簽和目標域的屬性標簽在用戶訪問序列的共現,構建屬性映射,有兩種方法:
-
基于統計的方法,計算源域屬性和目標域屬性的相關性
-
word2vec,通過屬性序列,生成屬性的embedding
例如,用戶的屬性點擊序列數據為
-
user1: cate1, cate2, cate2, tag1, cate2, tag2,...
-
user1: cate3, cate4, tag1, cate2, tag3,...
基于統計的方法計算
統計包含(cate1,tag1)(cate2,tag2)(cate3,tag1)....的用戶數作為分子
統計包含cate1,cate2,....,tag1,tag2的用戶數作為分母,計算相關性
基于word2vec的方式
基于word2vec、skip-gram的方式,按天劃分session,計算得到cate和tag的embedding
3.4 基于FM
可以參考論文:2014_Cross-Domain Collaborative Filtering with Factorization Machines
這個后期會單獨出一篇文章來介紹其原理和實戰應用!歡迎關注!
3.5 基于隱因子映射
參考論文:Cross-Domain Recommendation: An Embedding and Mapping Approach
-
分別構建源域和目標域的user、item embedding
-
構建源域和目標域 user embedding的映射函數 f
-
使用映射函數f將源域中的user embedding表示成 目標域中的user embedding,然后根據 embedding相似進行召回
參考文章: 論文|一種基于Embedding和Mapping的跨域推薦方法
3.6 基于DNN
4.參考的論文有哪些
跨域推薦在業界被關注的比較多,發表的論文也很多,這里列舉了一些比較經典的論文,可以在公眾號回復【跨域推薦論文】獲取。
-
2014_Cross-Domain Collaborative Filtering with Factorization Machines
-
2015_Cross-domain recommendation without shared users or items by sharing latent vector distributions
-
2016_A Multi-View Deep Learning Approach for Cross Domain User Modeling in Recommendation Systems
-
2016_WRAP-connecting-social-media-e-commerce-He-2018
-
2017_CCCFNet- A Content-Boosted Collaborative Filtering Neural Network for Cross Domain Recommender Systems
-
2017_Cross-Domain Recommendation via Clustering on Multi-Layer Graphs
-
2017_Cross-Domain Recommendation- An Embedding and Mapping Approach
-
2018_Cross-Domain Recommendation for Cold-Start Users via Neighborhood Based Feature Mapping
-
2018_Cross-domain Recommendation via Deep Domain Adaptation
-
2019_DDTCDR- Deep Dual Transfer Cross Domain Recommendation
-
2019_Easy Transfer Learning by Exploiting Intar-domain Structures
-
2019_Transfer Learning with Domain-aware Attention Network for Item Recommendation in E-commerce
-
2020_MiNet- Mixed Interest Network for Cross-Domain Click-Through Rate Prediction
5. 參考
-
https://lumingdong.cn/multi-task-learning-in-recommendation-system.html#%E8%BF%81%E7%A7%BB%E5%AD%A6%E4%B9%A0
-
https://xmzzyo.github.io/2020/04/12/Cross-domain-Recommendation/