2018-07-03

推薦算法

一另假、推薦問題

??在推薦問題中,我們通常需要根據(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)如下所示:

DeepFM

??整個網(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科盛。

Embedding

??總結(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é)果如下所示

NeuralFM

??此圖中沒有包括輸出與輸入特征的線性關(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ù)測精度提升有限哩盲。

參考文獻

  1. S. Rendle. Factorization machines. In ICDM, 2010.
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市狈醉,隨后出現(xiàn)的幾起案子廉油,更是在濱河造成了極大的恐慌,老刑警劉巖苗傅,帶你破解...
    沈念sama閱讀 218,682評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件抒线,死亡現(xiàn)場離奇詭異,居然都是意外死亡渣慕,警方通過查閱死者的電腦和手機嘶炭,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,277評論 3 395
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來逊桦,“玉大人眨猎,你說我怎么就攤上這事∏烤” “怎么了睡陪?”我有些...
    開封第一講書人閱讀 165,083評論 0 355
  • 文/不壞的土叔 我叫張陵,是天一觀的道長匿情。 經(jīng)常有香客問我兰迫,道長,這世上最難降的妖魔是什么炬称? 我笑而不...
    開封第一講書人閱讀 58,763評論 1 295
  • 正文 為了忘掉前任汁果,我火速辦了婚禮,結(jié)果婚禮上玲躯,老公的妹妹穿的比我還像新娘据德。我一直安慰自己,他們只是感情好跷车,可當我...
    茶點故事閱讀 67,785評論 6 392
  • 文/花漫 我一把揭開白布棘利。 她就那樣靜靜地躺著,像睡著了一般姓赤。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上仲吏,一...
    開封第一講書人閱讀 51,624評論 1 305
  • 那天不铆,我揣著相機與錄音蝌焚,去河邊找鬼。 笑死誓斥,一個胖子當著我的面吹牛只洒,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播劳坑,決...
    沈念sama閱讀 40,358評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼毕谴,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了距芬?” 一聲冷哼從身側(cè)響起涝开,我...
    開封第一講書人閱讀 39,261評論 0 276
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎框仔,沒想到半個月后舀武,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,722評論 1 315
  • 正文 獨居荒郊野嶺守林人離奇死亡离斩,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,900評論 3 336
  • 正文 我和宋清朗相戀三年银舱,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片跛梗。...
    茶點故事閱讀 40,030評論 1 350
  • 序言:一個原本活蹦亂跳的男人離奇死亡寻馏,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出核偿,到底是詐尸還是另有隱情诚欠,我是刑警寧澤,帶...
    沈念sama閱讀 35,737評論 5 346
  • 正文 年R本政府宣布宪祥,位于F島的核電站聂薪,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏蝗羊。R本人自食惡果不足惜藏澳,卻給世界環(huán)境...
    茶點故事閱讀 41,360評論 3 330
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望耀找。 院中可真熱鬧翔悠,春花似錦、人聲如沸野芒。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,941評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽狞悲。三九已至撮抓,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間摇锋,已是汗流浹背丹拯。 一陣腳步聲響...
    開封第一講書人閱讀 33,057評論 1 270
  • 我被黑心中介騙來泰國打工站超, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人乖酬。 一個月前我還...
    沈念sama閱讀 48,237評論 3 371
  • 正文 我出身青樓死相,卻偏偏與公主長得像,于是被迫代替她去往敵國和親咬像。 傳聞我的和親對象是個殘疾皇子算撮,可洞房花燭夜當晚...
    茶點故事閱讀 44,976評論 2 355

推薦閱讀更多精彩內(nèi)容

  • # -*- coding: utf-8 -*- import numpy as np import torch i...
    晨曦日月閱讀 376評論 0 0
  • 臨摹半個月后描紅 描紅過程總覺得不如臨摹用心專情 心有旁騖 就描的很糙
    春色如舊閱讀 262評論 0 0
  • 緊張的預(yù)考過后肮柜,你滿身滿心只有一個字:困,想好好的睡一覺七芭,再不醒來素挽。 草草的吃點飯,你便睡了狸驳,在六月底爐火般的集體...
    楓紅云天閱讀 528評論 0 1
  • 01 日子一天一天過预明,我們慢慢長大,都已不再是多年前的紅衣少女耙箍,也沒有找著兩情相悅的伴侶撰糠,只是歲月走過的眉梢,褪去...
    阿拉半仙閱讀 522評論 1 3
  • 今天給大家分享三種我愛吃的食物: 蘋果 每天到公司之后辩昆,在等電腦開機的時候阅酪,我都會吃一個蘋果。紅富士蘋果汁针,紅透的紅...
    huifang963閱讀 177評論 0 0