傳統(tǒng)的特征交叉是先手動再組合特征,再通過各種分析手段篩選特征的方法——低效。
Poly2模型
Degree-2 Polynomial Margin (Poly2)
Poly2模型總的參數(shù)數(shù)量為
相比LR模型喉刘,新增個(gè)交叉特征廉邑,任意兩個(gè)參數(shù)都是獨(dú)立的糙箍。
我們可以把所有的寫成矩陣:
上面的矩陣是關(guān)于對角線對稱的雹拄。
Poly2模型的缺陷
1、容易發(fā)現(xiàn)饰剥,要訓(xùn)練需要和同時(shí)不為0,而推薦系統(tǒng)中的共現(xiàn)矩陣是很稀疏的,因此你難以訓(xùn)練組合特征的參數(shù)。
2霎冯、參數(shù)量由LR的個(gè)直接上升到個(gè),極大的增加了模型訓(xùn)練的復(fù)雜度贷岸。
FM模型 (因子分解機(jī)墓卦,F(xiàn)actorization Machine忠怖,F(xiàn)M)
因?yàn)?img class="math-inline" src="https://math.jianshu.com/math?formula=%5Chat%20W" alt="\hat W" mathimg="1">是關(guān)于對角線對稱的鞋拟,所以可以分解成,其中是,也就是說矩陣有行,任意兩行的內(nèi)積一共有個(gè)值环揽,那么假設(shè)函數(shù)為:
肛根,是向量掺喻,對應(yīng)矩陣的第行和第行褂乍。
此時(shí)參數(shù)量為只酥。復(fù)雜度為叫胖,但是我們可以對上面的公式進(jìn)行變換,使得復(fù)雜度降低為線性的,具體推導(dǎo)過程如下:
FFM模型
Field Factorization Machine垦藏,F(xiàn)FM
首先要理解什么是特征域(Field) ?
對于分類變量性別:[男勤哗,女,未知]
對于年齡分箱后:[x<=20诱咏,20<x<=40映屋,40<x<=60湾蔓,x>60]
對于一個(gè)33歲的女人桃序,其one-hot編碼為:0100100,前3個(gè)數(shù)字表示性別柠衅,后4個(gè)數(shù)字表示年齡,這7個(gè)特征對應(yīng)兩個(gè)特征域即性別和年齡键科。
在FM中沒有特征域的概念,或者說所有的特征都屬于1個(gè)特征域,即此時(shí)1個(gè)特征域?qū)?yīng)1個(gè)矩陣次哈,其大小為巨坊;
在FFM模型中带斑,如果有個(gè)特征域苦银,就有個(gè)矩陣。不同的Field變成one-hot編碼后得到的sparse features數(shù)量書不同的烟逊,所以不同F(xiàn)ield對應(yīng)的矩陣的行長度是不同的访雪,列長度為冬阳。當(dāng)特征與特征交叉時(shí),從對應(yīng)的特征域矩陣(即一組向量)中選擇第行向量刑顺;從對應(yīng)的特征域矩陣中選擇第行向量蹲堂,那么就有假設(shè)函數(shù):
顯然FFM模型的參數(shù)量為柒竞。
FM模型的復(fù)雜度由可以降低為朽基,但是FFM模型不具有FM模型的等價(jià)推導(dǎo)稼虎,所以其復(fù)雜度為招刨。所以實(shí)際應(yīng)用中,要在模型效果(FFM更好)和工程投入(FM投入写蛉础)之間做出權(quán)衡柳击。
總結(jié)
不管是Poly2腻暮,F(xiàn)M還是FFM都可以由2階(兩兩交叉)推廣到多階,但是帶來的是復(fù)雜度的急劇增加哭靖,不具有實(shí)際工程應(yīng)用條件具垫。所以Poly2,F(xiàn)M和FFM都只適合兩兩特征組合试幽!
https://tech.meituan.com/2016/03/03/deep-understanding-of-ffm-principles-and-practices.html
https://blog.csdn.net/ddydavie/article/details/82667890
https://www.cnblogs.com/pinard/p/6370127.html