寫在前面
FM全稱為factorization machine, 可以用解決回歸爹梁、二分類問題
目的:解決高維稀疏數(shù)據(jù)中特征組合問題,適用于categorical feature担锤。
參考文獻
1、http://www.cnblogs.com/Matrix_Yao/p/4773221.html 梳理了ctr估計問題的大致流程具则,給出了一些工業(yè)界的方法苛骨,可以當(dāng)做入門資料
2、https://blog.csdn.net/google19890102/article/details/45532745 針對于fm講的很透徹顾稀,有些點沒提到达罗,程序很好懂
3、https://blog.csdn.net/g11d111/article/details/77430095 背景交代很清楚静秆,我的背景介紹也是copy他的
4粮揉、關(guān)于fm與LR的比較,可以參看https://www.zhihu.com/question/27043630/answer/151138052最高贊的回答
5诡宗、https://blog.csdn.net/itplus/article/details/40536025 理論進階
背景
1滔蝉、稀疏數(shù)據(jù)
強調(diào)一點,F(xiàn)M的適用對象是稀疏數(shù)據(jù)塔沃。這一點之后會有更深入的介紹蝠引。
實際中阳谍,很多特征類型是categorical型,比如性別特征螃概,有男矫夯、女兩個選項,如果將男性標記為1吊洼,女性標記為2是不太合理的训貌,因為數(shù)字是具有意義的,2是1的2倍冒窍,而不能說女性是男性的2倍递沪,所以對于categorical feature都會使用獨熱編碼one-hot encoding,將男性標記為[1,0]综液,女性標記為[0,1]款慨。其他的categorical feature還有很多,比如文章類型谬莹,娛樂檩奠、運動、軍事附帽、科技等等埠戳,這些類別之間不具有數(shù)值意義的關(guān)系,同理需要使用one-hot encoding蕉扮,關(guān)于one-hot encoding整胃,如果你還不太了解,請看https://www.imooc.com/article/35900
categorical feature做完one-hot encoding之后是非常稀疏的慢显,這在實際中十分常見爪模,而許多方法對于稀疏數(shù)據(jù)都束手無策,比如SVM荚藻,它無法在非常稀疏的數(shù)據(jù)下學(xué)習(xí)復(fù)雜的非線性內(nèi)核空間中的參數(shù)屋灌。
2、特征組合
在進行數(shù)據(jù)分析的過程中应狱,特征工程是非常重要的一步共郭,在特征工程這部分處理的好的話可以讓模型的效果事半功倍。實際中有很多特征是相關(guān)聯(lián)的疾呻,比如一般女性用戶看化妝品服裝之類的廣告比較多除嘹,而男性更青睞各種球類裝備。那很明顯岸蜗,女性這個特征與化妝品類服裝類商品有很大的關(guān)聯(lián)性尉咕,男性這個特征與球類裝備的關(guān)聯(lián)性更為密切。如果我們能將這些有關(guān)聯(lián)的特征找出來璃岳,顯然是很有意義的年缎。FM就提供了一種這樣特征組合的思路悔捶。
原理
我們還是先從線性模型說起好啦:)
一般的線性模型為
n表示n維特征
如果在線性模型中加入二階特征的組合,那么會是這個樣子的
這里存在一個問題单芜,對于稀疏數(shù)據(jù)來說蜕该,xi 和xj同時不為0的情況非常少,這樣會導(dǎo)致Wij無法通過訓(xùn)練獲得洲鸠。為了解決這個問題堂淡,F(xiàn)M誕生了,我們看一下FM是如何解決這個問題的:
這也解釋了FM因式分解機名字的由來扒腕,它是將Wij進行了拆解绢淀。FM的模型為
求解
先不急著看如何求解的,這部分想解釋下為什么將Wij拆解成vi和vj就能夠求解了呢袜匿?這部分在作者的論文中有提到更啄,下面的圖片看著不太舒服的話稚疹,可以去看論文的第三部分:)
求解的話肯定需要一個優(yōu)化目標,就是使損失函數(shù)最小
其中内狗,
表示的是階躍函數(shù)Sigmoid
基于隨機梯度下降方式的求解:
這也解釋了為什么FM的計算復(fù)雜度為O(kn)
FM優(yōu)點
1怪嫌、可以對稀疏數(shù)據(jù)中的特征進行組合
2、計算時間復(fù)雜度為O(kn)
3柳沙、FM是一種可以與任何實值特征向量一起使用的通用預(yù)測器岩灭。
缺點
你發(fā)現(xiàn)了沒?在做特征組合的時候赂鲤,我們不確定是同一域內(nèi)的特征相組合(這不太合理噪径,比如男性【1,0】兩個維度數(shù)據(jù),如果組合的是性別本身這兩個維度数初,不太有意義)找爱,還是組合的是域間維度,比如性別和商品類別之間的組合是有意義的泡孩,對FM的一個改進是FFM, FFM是使得特征有自己的歸屬域车摄,比如男性【1,0】是性別域,這兩維數(shù)據(jù)不能拆開仑鸥,下次我們再詳細介紹一下FFM.