1 簡介
本文是根據2010年 Steffen Rendle的《Factorization Machines》翻譯總結的。Factorization Machines簡稱FM,因子分解機。
FM結合了因子分解的優點和支援向量機SVM的優點。
FM用因子參數建構了所有變量間的互動。這些互動通常是存在很大的稀疏性,FM的優點就是處理這些稀疏性。而且是線性的計算時間。可以直接進行優化計算的。
另外,像其他因子模型,比如matrix factorization、parallel factor analysis,以及一些特定模型,如 SVD++, PITF or FPMC。這些模型的缺點是,他們不通用,都是針對特定的輸入資料,特定的任務。而FM隻需要改變相應的輸入資料就可以模拟這些模型,是以FM更通用,尤其是對因子模型鄰域不熟悉的使用者。
總之,FM的優點如下:
1)FM可以在非常稀疏的資料下進行參數估計,而SVM不能;
2)FM是線性複雜度,不依賴支援向量。FM可以支援大資料,如Netflix,有1億個訓練執行個體。
3)FM是一個通用的預測器,可以應用于任何真實的特征向量。而其他的因子模型對輸入資料有諸多限制。而FM隻需要定義輸入資料的特征向量,就可以模拟這些模型。
2 稀疏性
如下圖,藍色的4列代表使用者,第一列是1的話,代表使用者A;第2列是1的話,代表使用者B;接着是紅色的5列,代表看了不同的電影,看了TI電影的,在紅色第一列标1. 可以看到資料很稀疏。
![](https://img.laitimes.com/img/__Qf2AjLwojIjJCLyojI0JCLiAzNfRHLGZkRGZkRfJ3bs92YsYTMfVmepNHLuVzVZNTOsNWNod0YsB3MMBjVtJWd0ckW65UbM5WOHJWa5kHT20ESjBjUIF2X0hXZ0xCMx81dvRWYoNHLrdEZwZ1Rh5WNXp1bwNjW1ZUba9VZwlHdssmch1mclRXY39CXldWYtlWPzNXZj9mcw1ycz9WL49zZuBnL2kDOzUDMzMTM1AjMxAjMwIzLc52YucWbp5GZzNmLn9Gbi1yZtl2Lc9CX6MHc0RHaiojIsJye.png)
3 FM
3.1 模型公式
3.2 在稀疏下的參數估計
在稀疏的情況下,通常沒有足夠的資料評估參數間的互動關系。FM卻可以在稀疏下表現的很好,主要是其通過因子他們,打破了互動參數間的獨立性。這意味着,一個互動的資料可以用來評估其他相關的互動。
舉個例子:使用者A和電影Star Trek(ST)之間沒互動,但和Star Wars有互動。使用者B、C都和電影 Star War(SW)有相似的互動;使用者A和C都對電影Titanic、Star War有互動,但不同的互動向量(不同的電影等級評價);使用者B和這兩個電影Star Trek(ST)、Star War(SW)都有相似的互動,,這樣下來,直覺上,我們預測使用者A對電影Star Trek(ST)的互動(評價),會和其與Star Wars的互動類似。
3.3 時間計算複雜度
下面公式證明FM的計算複雜度是O(kn)。
3.4 FM可以預測的類型
1)回歸
2)二分類:hinge loss or logit loss.
3)排名ranking: pairwise classification loss
3.5 可以采用梯度下降學習
4 FM vs SVMs
SVM的公式可以重寫如下:
SVM與FM對比總體如下:
1)SVM的密集參數要求所有互動的直接關系,但這些資料在稀疏情況下經常不存在。而FM可以很好處理稀疏;
2)FM可以直接的被學習,而非線性的SVM通常是對偶式的學習。
3)FM的模型公式是獨立于訓練資料的,但SVM依賴部分訓練資料,如支援向量。