推薦系統(tǒng)排序算法--FFM模型

1脑漫、FFM理論

在CTR預(yù)估中,經(jīng)常會遇到one-hot類型的變量袋坑,one-hot類型變量會導(dǎo)致嚴(yán)重的數(shù)據(jù)特征稀疏的情況仗处,為了解決這一問題好爬,在上一講中趴拧,我們介紹了FM算法赌结。這一講我們介紹一種在FM基礎(chǔ)上發(fā)展出來的算法-FFM(Field-aware Factorization Machine)密末。

FFM模型中引入了類別的概念,即field旷档。還是拿上一講中的數(shù)據(jù)來講模叙,先看下圖:

1、點擊數(shù)據(jù)

在上面的廣告點擊案例中鞋屈,“Day=26/11/15”范咨、“Day=1/7/14”、“Day=19/2/15”這三個特征都是代表日期的厂庇,可以放到同一個field中渠啊。同理,Country也可以放到一個field中权旷。簡單來說替蛉,同一個categorical特征經(jīng)過One-Hot編碼生成的數(shù)值特征都可以放到同一個field,包括用戶國籍拄氯,廣告類型躲查,日期等等。

為了使用FFM方法译柏,所有的特征必須轉(zhuǎn)換成“field_id:feat_id:value”格式镣煮,field_id代表特征所屬field的編號,feat_id是特征編號鄙麦,value是特征的值典唇。數(shù)值型的特征比較容易處理,只需分配單獨的field編號胯府,如用戶評論得分介衔、商品的歷史CTR/CVR等。categorical特征需要經(jīng)過One-Hot編碼成數(shù)值型骂因,編碼產(chǎn)生的所有特征同屬于一個field炎咖,而特征的值只能是0或1,如用戶的性別侣签、年齡段塘装,商品的品類id等急迂。除此之外影所,還有第三類特征,如用戶瀏覽/購買品類僚碎,有多個品類id且用一個數(shù)值衡量用戶瀏覽或購買每個品類商品的數(shù)量猴娩。這類特征按照categorical特征處理,不同的只是特征的值不是0或1,而是代表用戶瀏覽或購買數(shù)量的數(shù)值卷中。按前述方法得到field_id之后矛双,再對轉(zhuǎn)換后特征順序編號,得到feat_id蟆豫,特征的值也可以按照之前的方法獲得议忽。

在FFM中,每一維特征 x_{i} 十减,針對其它特征的每一種field f_{i} 栈幸,都會學(xué)習(xí)一個隱向量 x_{i,f_{j} } 。因此帮辟,隱向量不僅與特征相關(guān)速址,也與field相關(guān)。也就是說由驹,“Day=26/11/15”這個特征與“Country”特征和“Ad_type"特征進(jìn)行關(guān)聯(lián)的時候使用不同的隱向量芍锚,這與“Country”和“Ad_type”的內(nèi)在差異相符,也是FFM中“field-aware”的由來蔓榄。

假設(shè)樣本的n個特征屬于 f個field并炮,那么FFM的二次項有nf個隱向量。而在FM模型中甥郑,每一維特征的隱向量只有一個渣触。FM可以看作FFM的特例,是把所有特征都?xì)w屬到一個field時的FFM模型壹若。根據(jù)FFM的field敏感特性嗅钻,可以導(dǎo)出其模型方程。

? ??????????????????????????????????????y(x)=w_{0}+ \sum_{i=1}^n w_{i} x_{i}+ \sum_{i=1}^{n} \sum_{j=i+1}^n <v_{i, f_{j} }, v_{j, f_{i} }> x_{i} x_{j}

可以看到店展,如果隱向量的長度為k养篓,那么FFM的二次參數(shù)有nfk 個,遠(yuǎn)多于FM模型的nk個赂蕴。此外柳弄,由于隱向量與field相關(guān),F(xiàn)FM二次項并不能夠化簡概说,其預(yù)測復(fù)雜度是 O(kn^2)碧注。

下面以一個例子簡單說明FFM的特征組合方式。輸入記錄如下:

2糖赔、通常數(shù)據(jù)

這條記錄可以編碼成5個特征萍丐,其中“Genre=Comedy”和“Genre=Drama”屬于同一個field,“Price”是數(shù)值型放典,不用One-Hot編碼轉(zhuǎn)換逝变。為了方便說明FFM的樣本格式基茵,我們將所有的特征和對應(yīng)的field映射成整數(shù)編號。

3壳影、FFM格式

那么拱层,F(xiàn)FM的組合特征有10項,如下圖所示宴咧。

4根灯、FFM的組合特征

其中,紅色是field編號掺栅,藍(lán)色是特征編號箱吕。

2、FFM實現(xiàn)細(xì)節(jié)

這里講得只是一種FFM的實現(xiàn)方式柿冲,并不是唯一的茬高。

2.1 損失函數(shù)

FFM將問題定義為分類問題,使用的是logistic loss假抄,同時加入了正則項

? ??????????????????????????????????????\underset{x}{min}	\sum_{i=1}^L log(1+exp\left\{-y_{i}\phi (W X_{i}  ) \right\})+\frac{\lambda }{2} \left\|W\right\|^2

什么怎栽,這是logisitc loss?第一眼看到我是懵逼的宿饱,邏輯回歸的損失函數(shù)我很熟悉啊熏瞄,不是長這樣的啊谬以?其實是我目光太短淺了强饮。邏輯回歸其實是有兩種表述方式的損失函數(shù)的,取決于你將類別定義為0和1還是1和-1为黎。大家可以參考下下面的文章:https://www.cnblogs.com/ljygoodgoodstudydaydayup/p/6340129.html邮丰。當(dāng)我們將類別設(shè)定為1和-1的時候,邏輯回歸的損失函數(shù)就是上面的樣子铭乾。

2.2 梯度下降

梯度下降方法有很多種剪廉,根據(jù)為提高效率分別衍生了批量梯度下降,隨機(jī)梯度下降及小批量梯度下降炕檩,根據(jù)需求選擇即可

參考文獻(xiàn)

論文:Field-aware Factorization Machines for CTR Prediction

推薦系統(tǒng)遇上深度學(xué)習(xí)(二)--FFM模型理論和實踐

FM系列算法解讀(FM+FFM+DeepFM)

C++版的FFM模型:libFFM

深入FFM原理與實踐

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末斗蒋,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子笛质,更是在濱河造成了極大的恐慌泉沾,老刑警劉巖,帶你破解...
    沈念sama閱讀 218,546評論 6 507
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件妇押,死亡現(xiàn)場離奇詭異跷究,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)舆吮,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,224評論 3 395
  • 文/潘曉璐 我一進(jìn)店門揭朝,熙熙樓的掌柜王于貴愁眉苦臉地迎上來队贱,“玉大人色冀,你說我怎么就攤上這事潭袱。” “怎么了锋恬?”我有些...
    開封第一講書人閱讀 164,911評論 0 354
  • 文/不壞的土叔 我叫張陵屯换,是天一觀的道長。 經(jīng)常有香客問我与学,道長彤悔,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,737評論 1 294
  • 正文 為了忘掉前任索守,我火速辦了婚禮晕窑,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘卵佛。我一直安慰自己杨赤,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 67,753評論 6 392
  • 文/花漫 我一把揭開白布截汪。 她就那樣靜靜地躺著疾牲,像睡著了一般。 火紅的嫁衣襯著肌膚如雪衙解。 梳的紋絲不亂的頭發(fā)上阳柔,一...
    開封第一講書人閱讀 51,598評論 1 305
  • 那天,我揣著相機(jī)與錄音蚓峦,去河邊找鬼舌剂。 笑死,一個胖子當(dāng)著我的面吹牛暑椰,可吹牛的內(nèi)容都是我干的架诞。 我是一名探鬼主播,決...
    沈念sama閱讀 40,338評論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼干茉,長吁一口氣:“原來是場噩夢啊……” “哼谴忧!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起角虫,我...
    開封第一講書人閱讀 39,249評論 0 276
  • 序言:老撾萬榮一對情侶失蹤沾谓,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后戳鹅,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體均驶,經(jīng)...
    沈念sama閱讀 45,696評論 1 314
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 37,888評論 3 336
  • 正文 我和宋清朗相戀三年枫虏,在試婚紗的時候發(fā)現(xiàn)自己被綠了妇穴。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片爬虱。...
    茶點故事閱讀 40,013評論 1 348
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖腾它,靈堂內(nèi)的尸體忽然破棺而出跑筝,到底是詐尸還是另有隱情,我是刑警寧澤瞒滴,帶...
    沈念sama閱讀 35,731評論 5 346
  • 正文 年R本政府宣布曲梗,位于F島的核電站,受9級特大地震影響妓忍,放射性物質(zhì)發(fā)生泄漏虏两。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,348評論 3 330
  • 文/蒙蒙 一世剖、第九天 我趴在偏房一處隱蔽的房頂上張望定罢。 院中可真熱鬧,春花似錦旁瘫、人聲如沸祖凫。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,929評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽蝙场。三九已至,卻和暖如春粱年,著一層夾襖步出監(jiān)牢的瞬間售滤,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,048評論 1 270
  • 我被黑心中介騙來泰國打工台诗, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留完箩,地道東北人。 一個月前我還...
    沈念sama閱讀 48,203評論 3 370
  • 正文 我出身青樓拉队,卻偏偏與公主長得像弊知,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子粱快,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 44,960評論 2 355

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