1. 背景介紹
假設一個廣告分類的問題,根據用戶和廣告位相關的特征,預測用戶是否點擊了廣告。數據如下:
clicked? | Country | Day | Ad_type |
---|---|---|---|
1 | USA | 26/11/15 | Movie |
0 | China | 19/2/15 | Game |
1 | China | 26/11/15 | Game |
由上表可知,3維特征和點擊標簽,對類別特征進行One-hot編碼轉化為數值特征,轉化為數據如下:
clicked? | Country=USA | Country=China | Day=26/11/15 | Day=19/2/15 | Ad_type=Movie | Ad_type=Game |
---|---|---|---|---|---|---|
1 | 1 | 0 | 1 | 0 | 1 | 0 |
0 | 0 | 1 | 0 | 1 | 0 | 1 |
1 | 0 | 1 | 1 | 0 | 0 | 1 |
特征空間還是比較稀疏的,并且在類別空間很大時,特征則越稀疏。并且根據不同的特征組合來看,兩兩組合的特征是十分必要的。原因如下:
通過觀察大量的樣本數據可以發現,某些特征經過關聯之后,與label之間的相關性就會提高。例如,“USA”與“Thanksgiving”、“China”與“Chinese New Year”這樣的關聯特征,對用戶的點擊有著正向的影響。換句話說,來自“China”的用戶很可能會在“Chinese New Year”有大量的瀏覽、購買行為,而在“Thanksgiving”卻不會有特別的消費行為。這種關聯特征與label的正向相關性在實際問題中是普遍存在的,如“化妝品”類商品與“女”性,“球類運動配件”的商品與“男”性,“電影票”的商品與“電影”品類偏好等。
如何表示兩個特征的組合呢?一種方法是采用多項式模型表示兩個特征的組合,為第 i 個特征的取值,
表示特征組合,其參數
即為學習參數,也是
組合的重要程度:
上式稱為 Poly2 模型,參數個數:一次項有 d+1 個,二次項共有 個,而參數與參數之間彼此獨立,在稀疏場景下,二次項的訓練是很困難的。因為要訓練
,需要有大量的
和
都非零的樣本,樣本少則難以估計。
2. FM 模型
Poly2 模型認為參數是彼此獨立的,所以必須進行單獨訓練。但是實踐上不同的特征之間進行組合并非完全獨立。參考矩陣分解,rating 矩陣可以分解為 user 矩陣和 item 矩陣的矩陣乘,如下圖所示:
user 和 item 矩陣的維度分別為 (n, k) 和 (k, m),相比原來的rating矩陣,空間占用得到降低,并且分解后的user矩陣暗含著user偏好,Item矩陣暗含著item的屬性,而user矩陣乘上item矩陣就是rating矩陣中用戶對item的評分。
參考矩陣分解的過程,FM 模型將二次項參數進行分解:
其中是第 i 維特征的隱向量,長度為k,
為內積,值為原來的
。
上式的復雜度可以從 優化到
:
3. FFM 模型
FM模型中,所有特征共享同一個隱空間,每一維特征對應為唯一的隱向量進行特征交互。存在的問題在于:不同特征是按照不同的 filed 劃分,比如 “EPSN、NBC” 屬于廣告商、“Nike、Adidas”屬于廣告主、“Male、Female”屬于性別。描述(EPSN,Nike)和(EPSN,Male)特征組合,FM模型都用同一,而實際上,ESPN作為廣告商,其對廣告主和用戶性別的潛在影響可能是不同的。
表示的不同點為:
FM:
FFM:
FFM的數學公式表示為:
其中和
分別代表第 i 個特征和第 j 個特征所屬的 field,若field有
個,隱向量的長度為
,則二次項系數共有
個,遠多于FM模型的
個。此外,隱向量和field相關,并不能像FM模型一樣將二次項化簡,計算的復雜度是
。通常情況下,每個隱向量只需要學習特定field的表示,所以有
。
下面的圖來自criteo,很好的表示了 Poly2、FM、FFM 模型的區別:
4. 總結
4.1. LR
弊端:無法利用組合特征
4.2. Poly2
弊端:真實業務場景中組合特征高度稀疏,無法更新。
4.3. FM
局限:1. 僅建模二階特征交互【引入深度神經網絡】;2. 所有特征共享同一個latent space
4.4. FFM
不同特征按域劃分。