因子分解机即其变体
前言
FM (Factorization Machine)
假设一个点击预测的问题可以建模为:
| Clicked? | Country=USA | Country=China | Month=May | Month=June | Month=July | Type=Movie | Type=Game |
|---|---|---|---|---|---|---|---|
| 1 | 1 | 0 | 1 | 0 | 0 | 1 | 0 |
| 0 | 0 | 1 | 0 | 1 | 0 | 0 | 1 |
| 1 | 0 | 1 | 0 | 0 | 1 | 0 | 1 |
那么可以将是否点击作为预测目标,该问题可以认为是一个回归问题,或者是二元分类问题。那么预测的目标可以建模为:
\[\hat{y}(x) := w_0 + \sum_{i=1}^{n}w_ix_i + \sum_{i=1}^{n}\sum_{j=i+1}^{n} <v_i, v_j> x_i x_j\]其中模型的参数有\(w_0 \in \mathbb{R}, w \in \mathbb{R}^n, V \in \mathbb{R}^{n \times k}\)。
\(<\cdot, \cdot>\)代表的是两个维度为\(k\)的向量的点积运算,即:
\[<v_i, v_j> := \sum_{f=1}^k v_{i, f} \cdot v_{j, f}\]FFM (Field-aware Factorization Machine)
\[\hat{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\][slides]