推薦算法
一另假、推薦問題
??在推薦問題中,我們通常需要根據(jù)一系列的特征預(yù)測出一定的目標齿尽。比如一個電影網(wǎng)站要給用戶推薦合適的電影继榆,則推薦什么電影以及推薦電影的排序就是我們的目標,而user ID袖外、電影名稱史隆、用戶以往觀看過的電影、用戶以往給出的電影評分曼验、觀影時間等等就是我們可能會用到的特征泌射。
目標 | 特征 |
---|---|
推薦的電影、電影排序 | user ID蚣驼、電影名稱魄幕、以往觀看的電影、以往的電影評分颖杏、觀影時間 |
??對于特征的表示纯陨,常用的一種方式是one-hot encoding:一個特征,若其有N個狀態(tài)留储,則用N位寄存器來表示它翼抠,其中每一個狀態(tài)都占用一個獨立的寄存器位。假設(shè)有一群大學(xué)生获讳,其特征包括了性別阴颖、學(xué)校、專業(yè):
- 性別:[male, female]
- 學(xué)校:[THU, PKU, ZJU, MIT, Harvard, Stanford]
- 專業(yè):[EE, CS, ME, IEOR, Physics, Mathmatics]
??對于一個學(xué)生丐膝,若性別為male表示為[1, 0]量愧,就讀于THU表示為[1, 0, 0, 0, 0, 0],專業(yè)為EE的學(xué)生表示為[1, 0, 0, 0, 0, 0]帅矗,其所有特征可以表示為[1, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 0]偎肃,可以想象用這種方式得到的特征將會是非常稀疏的向量。
二浑此、推薦算法
1. Factorization Machine (FM)算法
優(yōu)勢 | |
---|---|
1 | 可以對非常稀疏的數(shù)據(jù)做參數(shù)估計 |
2 | FM算法為線性復(fù)雜度累颂,能處理非常大的數(shù)據(jù)量 |
3 | 對任何形式的數(shù)據(jù),F(xiàn)M都有很好的適應(yīng)性 |
??假設(shè)特征向量為x = [x1, x2, ..., xn]凛俱,則在FM模型下紊馏,輸出與特征的關(guān)系為:
??其中
??下圖是利用特征,預(yù)測目標的示意圖蒲犬,圖中1-4列藍色部分表示user ID朱监,接下來5列紅色部分表示當前用戶正要評價的電影,后面5列黃色部分表示其他用戶評價過的電影的分數(shù)原叮,后面一列綠色部分表示用戶數(shù)據(jù)收集自2009年1月后所經(jīng)歷的月份赌朋,后面5列棕色部分表示用戶上一個評價的電影凰狞,最后結(jié)果部分表示用戶對這部電影的評分。
??FM可以間接分析出在原表中不直接相關(guān)的兩個因素沛慢,比如在上圖中xA和xST不直接相關(guān)赡若,二者的直接關(guān)聯(lián)因子應(yīng)為wA,ST=0。但是通過factorization interaction參數(shù)<VA, VST>团甲,我們能夠估計出xA和xST之間的關(guān)系:
??1. xB和xC有相似的因子向量VB和VC逾冬,因為他們在預(yù)測Star War電影評分時,和VSW有相似的交互關(guān)系躺苦,即<VB, VSW>和<VC, VSW>是相似的身腻;
??2. 因子向量VA和VC是不同的,因為A給TI的評分為5匹厘,給SW的評分為1嘀趟,而C給TI的評分為1,給SW的評分為5愈诚;
??3. 因子向量VSW和VST是相似的她按,因為B在給二者評分時是相似的;
??4. 所以<VA, VST>和<VA, VSW>應(yīng)該是相似的炕柔,也就是說通過間接的方式估計出了酌泰,xA和xST應(yīng)該與xA和xSW的關(guān)系相似。
學(xué)習(xí)方法
??主要訓(xùn)練的參數(shù)有w0,w和V匕累,采用梯度下降的算法進行訓(xùn)練陵刹,關(guān)于不同參數(shù)的梯度如下所示。
2. DeepFM——for click through rate (CTR) prediction
??在很多推薦系統(tǒng)中欢嘿,推薦的目標是使得鏈接點擊的數(shù)量最高衰琐,因此給用戶推薦的內(nèi)容應(yīng)按照預(yù)測的用戶點擊量來排序。有時候不同鏈接的點擊量的收益是不同的炼蹦,對于每一個點擊我們可以賦予一個權(quán)重或者出價(bid)碘耳,則排序的目標變?yōu)镃TR*bid。
現(xiàn)有的方法在對特征交互關(guān)系分析時或是只能分析高維相關(guān)性或是只能處理低維相關(guān)性框弛。DeepFM是一種結(jié)合FM和深度神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu),能夠同時考慮低維和高維特征交互捕捂。其網(wǎng)絡(luò)結(jié)構(gòu)如下所示:
??整個網(wǎng)絡(luò)包括了FM和Deep兩個子網(wǎng)絡(luò)瑟枫,設(shè)二者的輸出分別為yFM和yDNN,則最終的輸出為:y=sigmoid(yFM+yDNN)指攒。DeepFM網(wǎng)絡(luò)將輸入的一階特征以及二階交互特征交于FM層處理慷妙,更高階的特征交互則交于深度隱層處理。
輸入特征:網(wǎng)絡(luò)的輸入為x=[xfield1, xfield2, ..., xfieldm]允悦,其中m為輸入特征的數(shù)量膝擂,每一個特征,若是離散的,則用one-hot encoding方式來表示架馋,若是連續(xù)的則用其連續(xù)值來表示狞山。
Dense Embedding:Embedding層是將每一個特征xi(注意不是每一個字段)乘上一個隱含向量vi,其中vi的維度為k1叉寂,k是認為設(shè)定的一個值萍启。即通過Embedding層后,我們能得到V={v1x1, v2x2, ..., vnxn}屏鳍。對于輸入的每一個字段(field)勘纯,Embedding層與輸入層是全連接的。具體的網(wǎng)絡(luò)結(jié)構(gòu)如下圖所示钓瞭。每一個特征字段都有一個對應(yīng)的Embedding驳遵,比如Field 1對應(yīng)e1,此Embedding的包含k個元素山涡,比如e1堤结,其第i個元素(i=1, 2, ..., k)值為v1ix1+v2ix2+...+vfield1ixfield1i。
FM Layer: FM層起的作用和前面提到的FM算法中一樣佳鳖,但值得注意的是霍殴,根據(jù)DeepFM結(jié)構(gòu)圖,在做FM時系吩,同一個字段內(nèi)的兩個特征并不會做內(nèi)積来庭,只有不同字段之間的特征才會做內(nèi)積。但奇怪的是文獻中并沒有明確說到提到這一點穿挨,仍然采用原有所有特征兩兩做內(nèi)積的公式月弛。
Hidden Layer:深層網(wǎng)絡(luò)隱層的輸入為Embedding的每一個元素,比如input1=v11x1+v21x2+...+vfield11xfield11科盛。
??總結(jié)而言:DeepFM結(jié)構(gòu)通過將Embedding后的特征數(shù)據(jù)同時輸入了一個FM網(wǎng)絡(luò)和一個Deep隱層網(wǎng)絡(luò)帽衙,其中FM網(wǎng)絡(luò)考慮特征的低階交互關(guān)聯(lián),Deep隱層網(wǎng)絡(luò)考慮特征的高階交互關(guān)聯(lián)贞绵。此外厉萝,此網(wǎng)絡(luò)結(jié)構(gòu)可以自動從輸入的特征中選擇出強關(guān)聯(lián)性的特征,而不需要人為挑選關(guān)聯(lián)特征榨崩。
3. NeuralFM
??NeuralFM網(wǎng)絡(luò)的結(jié)果如下所示
??此圖中沒有包括輸出與輸入特征的線性關(guān)聯(lián)部分谴垫,但在網(wǎng)絡(luò)中其仍然是存在的。網(wǎng)絡(luò)的主要創(chuàng)新點在于提出了Bi-Interaction Pooling層母蛛,事實上翩剪,這層完成的事情就是計算特征的二階交互關(guān)聯(lián),得到一個k維的向量彩郊,并將此向量輸入至全連接網(wǎng)絡(luò)中前弯。
??網(wǎng)絡(luò)在Frappe和MovieLens兩個數(shù)據(jù)集上進行了測試蚪缀,相較于其余FM方法,比如LibFM恕出,Wide&Deep等網(wǎng)絡(luò)询枚,NeuralFM的效果是最好的,但好的不明顯剃根,預(yù)測精度提升有限哩盲。
參考文獻
- S. Rendle. Factorization machines. In ICDM, 2010.