1. 模型演進 LR -> POLY2 -> FM -> FFM
1.1 LR模型 - 融合多種特征的推薦模型
- 線性回歸模型數(shù)學表達式如下:
- 邏輯回歸數(shù)學表達式如下:
- 邏輯回歸模型的優(yōu)缺點:(1)相比協(xié)同過濾模型僅利用用戶與物品的相互行為信息進行推薦,邏輯回歸模型能夠綜合利用用戶、物品、上下文等多種不同的特征,生成較為全面的推薦結果;(2)邏輯回歸的另外一種表現(xiàn)形式的感知機作為神經(jīng)網(wǎng)絡中最基礎的單一神經(jīng)元,是深度學習的基礎性結構;(3)可解釋性強:邏輯回歸的數(shù)學形式是各特征的加權合,再施以sigmoid函數(shù)。邏輯回歸的簡單數(shù)學形式非常符合人類對預估過程的直觀認知。(4)邏輯回歸模型的局限性:表達能力不強,無法進行特征交叉;需要人工進行特征交叉。
邏輯回歸模型參數(shù)估計參考:http://www.itdecent.cn/p/f7b6cd2f8567
1.2 POLY2模型 - 特征交叉的開始
- 針對特征交叉問題,算法工程師經(jīng)常采用先手動組合特征,再通過各種分析手段帥選特征的方法,但該方法是比較低效率的;因此采用POLY2模型進行特征的“暴力”組合成了可行的選擇。
- 從上述公式可以看到,POLY2(多項式核SVM)對所有特征進行了兩兩交叉(
),并對所有的特征組合賦予權重
[標量]。POLY2通過暴力組合特征的方式,在一定程度上解決了特征組合的問題。POLY2模型本質(zhì)上仍是線性模型,其訓練方法與邏輯回歸并無區(qū)別,因此便于工程上的兼容。
-
POLY2模型存在兩個較大的缺陷: (1)在處理互聯(lián)網(wǎng)數(shù)據(jù)時,經(jīng)常采用one-hot編碼的方式處理類別數(shù)據(jù),致使特征向量極度稀疏,POLY2進行無選擇的特征交叉。原本就稀疏的特征向量更加稀疏,導致大部分交叉特征的權重缺乏有效的數(shù)據(jù)進行訓練,無法收斂。(2)權重參數(shù)的數(shù)量由
直接上升至
,極大地增加了訓練復雜度。
1.3 FM模型 - 隱向量特征交叉
- 為了解決POLY2模型的缺陷,2010年Rendle提出了FM模型;與POLY2相比,其主要的區(qū)別是用兩個向量的內(nèi)積(
[向量])取代了單一的權重系數(shù)
。具體來說,F(xiàn)M為每個特征學習了一個隱權重向量(latent vector),在特征交叉時,使用兩個特征隱向量的內(nèi)積作為交叉特征的權重。

向量內(nèi)積運算.png
- 本質(zhì)上,F(xiàn)M引入隱向量的做法,與矩陣分解用隱向量代表用戶和物品的做法異曲同工。可以說,F(xiàn)M是將矩陣分解隱向量的思想進行了進一步擴展,從單純的用戶、物品隱向量擴展到所有特征上。 FM通過引入特征隱向量的方式,直接把POLY2模型
級別的權重參數(shù)數(shù)量減少到了
(
為隱向量維度,
)
- 隱向量的引入使得FM能夠更好地解決數(shù)據(jù)稀疏性問題。 例如,在某商品推薦的場景下,樣本有兩個特征,分別是channel和brand。某訓練樣本的特征組合是(ESPN, Adidas)。在POLY2中,只有當ESPN和Adidas同時出現(xiàn)在一個訓練樣本時,模型才能學到這個組合特征對應的權重。而在FM中,ESPN的隱向量也可以通過(ESPN, Gucci) 樣本進行更新,Adidas的隱向量也可以通過(NBC, Adidas)樣本進行更新,這大幅度降低了模型對數(shù)據(jù)稀疏性的要求。甚至對于一個從未出現(xiàn)過的特征組合(NBC, Gucci),由于模型之前已經(jīng)分別學習過NBC和Gucci的隱向量,具備了計算該特征組合權重的能力,這是POLY2無法實現(xiàn)的。
1.4 FFM模型 - 引入特征域的概念
- 相比FM模型,F(xiàn)FM模型引入了特征域感知(field-aware)這一概念,使模型的表達能力更強。假設樣本的
個特征屬于
個field,那么FFM的二次項有
個隱向量。而在FM模型中,每一維特征的隱向量只有一個。FM可以看做FFM的特例,是把所有特征都歸屬到一個field的FFM模型。FFM模型公式如下:
- 上式中,
是第
個特征所屬的field;當
與
進行特征交叉時,
從其
個隱向量中挑選出
與特征
進行交叉。如果隱向量長度為
,那么FFM的二次參數(shù)有
個,遠遠多于FM模型的
個。此外,由于隱向量與field相關,F(xiàn)FM二次項并不能夠化簡,其計算復雜度是
。
- 【特征域的概念解釋】 簡單地講,“域”代表特征域,域內(nèi)的特征一般采用one-hot編碼形成的一段one-hot特征向量。例如,用戶的性別分為:男,女,未知三類。那么對于一個女性用戶來說,采用one-hot方式編碼的特征向量為[0,1,0],這個三維的特征向量就是一個“性別”特征域。將所有特征域拼接起來,就組成了樣本的整體特征向量。
- FFM原理舉例說明,假設在訓練推薦模型過程中接收到的訓練樣本如下。其中Publisher、Advertiser、Gender就是三個特征域,ESPN、NIKE、Male分別是這三個特征域的特征值(需要轉化成one-hot特征); 如果按照FM的原理,特征ESPN、NIKE和Male都有對應的隱向量
,那么ESPN特征與NIKE特征、ESPN特征與Male特征做交叉的權重應該是
和
,其中ESPN對應的隱向量
在兩次特征交叉過程中是不變的。而在FFM中,ESPN與NIKE、ESPN與Male交叉時候特征是不一樣的,分別是
和
;這就是FM和FFM主要的差別。
image.png
2. 如何提升FM計算效率?
- 對于FM模型二階項(
)的時間復雜度為:
,對二階項進行改寫后的時間復雜度為:
,其中
是特征數(shù)量,
表示隱向量維度。
-
【step1】計算說明如下:FM二階項計算的是下面所有黃色正方形相加之和;
step1計算說明.png - 【step2】比較好理解,就是把
的計算展開:
- 【step3】計算說明如下:可以假設
;
step3計算說明.png - 【step4】說明:
和
是相等的,因為是在隱向量的第
維,對所有特征求和;
step4計算說明.png
3. MF與FM模型的關系?
- MF(Matrix Factorization,矩陣分解)模型是在推薦系統(tǒng)領域資深的協(xié)同過濾模型。核心思想是通過兩個低維小矩陣(一個代表用戶embedding矩陣,一個代表物品embedding矩陣)的乘積計算,來模擬真實用戶點擊或評分產(chǎn)生的大的協(xié)同信息稀疏矩陣。當訓練完成,每個用戶和物品得到對應的低維embedding表達后,如果要預測某個用戶
對
的評分的時候,只要它們做個內(nèi)積運算
,這個得分就是預測得分。
矩陣分解模型.png - 本質(zhì)上,MF模型是FM模型的特例,MF可以認為是只有User ID和Item ID這兩個特征Fields的FM模型;MF將這兩類特征通過矩陣分解,來達到將這兩類特征embedding化表達的目的。 而 FM可以看做是MF模型的進一步擴展,除了User ID和Item ID這兩類特征外,很多其它類型的特征,都可以進一步融入FM模型里,它將所有這些特征轉化為embedding低維向量表達,并計算任意兩個特征embedding的內(nèi)積,就是特征組合的權重。
MF與FM的關系.png
參考資料
- FM論文:Factorization Machines https://www.csie.ntu.edu.tw/~b97053/paper/Rendle2010FM.pdf
- FFM論文:Field-aware Factorization Machines for CTR Prediction https://www.csie.ntu.edu.tw/~cjlin/papers/ffm.pdf
- 《深度學習推薦系統(tǒng)》 - 王喆
- 推薦系統(tǒng)召回四模型之:全能的FM模型 https://zhuanlan.zhihu.com/p/58160982
- 深入FFM原理與實踐 https://tech.meituan.com/2016/03/03/deep-understanding-of-ffm-principles-and-practices.html





