推薦系統排序算法的演進

在分析用戶推薦系統程序排序算法之前,我們先介紹下推薦系統中的數據的特點,排序算法就是針對這種數據特點設計了不同的解決方案,纔有了推薦算法的發展。

首先我們先重點介紹下推薦系統中數據的幾個鮮明特點:

1、數據主要以離散數據爲主,連續數據爲輔,其中推薦系統中產生的核心數據絕大部分都是離散數據,所以推薦系統中排序算法就是要怎麼解決大規模離散特徵的學習;

2、樣本收集有限,物品在場景中的出現次數是有限的,而且物品的生命週期比較短,所以收集到的樣本數據有限,所以在推薦系統中的排序算法的參數空間不能太大,否則會出現學習欠擬合。

3、特徵稀疏,應該說是高度稀疏,比如APP空間有上萬或者上十萬,但是每個用戶常用的APP才幾十上百,所以我們在排序算法中需要壓縮特徵空間。

4、在不同場景和不同上下文中的數據差異明顯,所以需要通過設計模型來學習這些特性。

推薦系統中排序算法從90年代發展至今,可以歸納爲以下幾個階段:

1、發展初期(2010年前):人工特徵+ 線性模型階段,引用當年流行的一個詞概括:專家系統。該階段的排序模型的主要架構如下圖所示。


主要特點:
1)原始輸入特徵量級在百、千、萬之間;
2)經過處理後的特徵量級在萬、十萬、百萬、千萬級別都有;
3)模型雖然簡單,但是參數空間小,性能高,效果好;
4)效果提升需要依賴人工特徵建設,基於對業務的理解,通過大量的人工經驗和數據分析挖掘有效的特徵組合;

2、加速發展期(2010年-2015年):自動特徵交叉 + 線性模型階段,一個詞概括:增強記憶。典型代表方法:
1)2010年提出FM
2)2014年提出FFM
3)2014年提出GBDT+LR
4)2014年提出XGBoost
該階段的排序模型的主要架構如下圖所示。

 

主要特點:
1)有監督自動進行二階、高階特徵交叉,這樣就可以記憶各種有效的特徵組合,也就是說我能學習得到用什麼樣的特徵組合能夠更好的區分label標籤。
2)通過參數可以控制特徵交叉的參數空間,比如控制FM隱向量的長度,樹模型的棵數和深度。
3)聯合學習啓蒙,聯合低階、二階、高階進行聯合訓練學習,主要目的是爲了在同一個空間中強化記憶每一個特徵或者特徵組合對預測結果的正向或者負向的影響權重。
4)效果提升顯著,而且只需對個別超參數進行人工調整,簡單高效;

3、深度發展期(2016年-至今):深度模型階段,開始將特徵映射至多維空間中,然後再通過多層網絡去學習特徵之間的相關性,一個詞概括:深度發展。典型代表方法:
1)2016年提出FNN、PNN、NFM,AFM
2)2016年提出Wide & Deep
3)2016年YouTube提出Deep Neural Networks
4)2017年提出DeepFM

該階段的排序模型的主要架構如下圖所示。

主要特點:
1)離散特徵處理向Embedding空間發展,採用低維空間更加合理的表達特徵(比如:休閒遊戲、射擊遊戲、購物美妝可以用8維向量表示,而且休閒遊戲向量與射擊遊戲向量距離比較近,射擊遊戲向量與購物美妝向量距離較遠),這裏即對特徵空間進行了壓縮,也對離散特徵進行了合理的表示;
2)在各個階段通過降維減少參數空間量級(需要重點考慮,在有限的樣本情況需要用盡量少的參數挖掘數據規律);
3)挖掘上下文與目標之間的關係,比如設計XXX序列特徵進行挖掘與目標之間相關性的規律;
4)採用DNN進行高階特徵挖掘;
5)融合低階、二階、高階進行聯合學習,低階和二階主要強化記憶能力,高階主要強化泛化能力;

這三個階段的發展,從特徵的表徵來看可以歸納爲:從單一數據特徵表示—>多元數據特徵表示—>低維稠密的向量空間表示,這裏的發展方向就是如何對:人、物、行爲等數據進行向量表示,基於此向量表示再進行與目標之間相關性學習。

參考:https://blog.csdn.net/seoyundu/article/details/101848917

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章