首頁>技術>

在講解排序演算法發展歷程之前,我們先介紹下推薦系統中的資料的特點,排序演算法就是針對這種資料特點設計了不同的解決方案,才有了推薦演算法的發展。

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

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)融合低階、二階、高階進行聯合學習,低階和二階主要強化記憶能力,高階主要強化泛化能力;

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

最新評論
  • BSA-TRITC(10mg/ml) TRITC-BSA 牛血清白蛋白改性標記羅丹明
  • Xshell訪問本地Linux虛擬機器或者遠端伺服器,並解決一些問題