FM基礎

FM的特點:

  1. 針對稀疏數據也能有效估計;
  2. FM復雜度是線性的,計算快;
  3. 對數據數據沒有嚴格的要求,任意的實數向量都可以。

FM詳細介紹

FM,作為線性回歸的拓展,能夠挖掘特征與特征之間的聯(lián)系。
大家都知道,線性回歸的方程為
y=w_0+\sum_{i=1}^{n}w_ix_i
其中:n是特征維度,w是特征的權重。
度為2的FM的方程為:
y=w_0+\sum_{i=1}^{n}w_ix_i+\sum_{i=1}^{n}\sum_{j=i+1}^{n}\langle \textbf v_i,\textbf v_j\rangle x_ix_j
其中:
w_0 ∈\mathbb R, w∈\mathbb R^n, V∈\mathbb R^{n×k}
V=\left\{ \begin{matrix} \textbf v_1\\\textbf v_2\\\textbf v_3\\...\\\textbf v_n \end{matrix} \right\}

\langle \textbf v_i,\textbf v_j\rangle表示兩個向量的點積,結果是一個值,表示x_ix_j的組合特征權重大小。對于n個特征,總共有n個行向量\textbf v_i,這些向量組成了V。
這里可以看見x_ix_j的交互特征通過向量v_iv_j來表示,這里有一個問題,為什么要用向量來表示這些交互特征而不通過一個值w_{ij}來描述呢?
這里涉及到了FM的關鍵思想:只用一個值w_{ij}來描述交互特征,如果訓練數據中針對兩個特征x_ix_j,沒有同時非0的數據,那么x_ix_j一直等于0,導致w_{ij}一直為0,無法更新。而用向量v_iv_j來表示交互特征的權重,這兩個向量在其他特征更新時會同時更新。v_i揭示了第i個特征的內在屬性,如果特征i與特征j在其他特征上有關聯(lián),反映到向量v_iv_j上,在計算兩者的關系就十分的清楚了。

時間復雜度

原始的FM時間復雜度為O(kn^2),通過簡單的變換,能將復雜度降低到O(kn),而且對于稀疏特征矩陣來說,復雜度可以降低到O(k\overline{m_D}),其中\overline{m_D}$是所有特征非零數量的平均數。

度為d的FM公式

公式如下:

d-way Factorization Machine

其時間復雜度為O(kn^d),也能化簡到線性時間。

FM的分布式計算

分布式計算與LR類似,首先按樣本求wx規(guī)約求和,然后按特征規(guī)約求梯度即可。

FM的擴展:FFM

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

友情鏈接更多精彩內容