Factorization Machines with libFM (2012)論文閱讀

論文連接: https://www.csie.ntu.edu.tw/~b97053/paper/Factorization%20Machines%20with%20libFM.pdfgit

libFM網站:http://www.libfm.org/github

libFM github地址:https://github.com/srendle/libfmweb

libFM manual中文版:http://d0evi1.com/libfm/算法

在MF的基礎上,爲了兼容MF模型不支持的非類別型(categorical)特徵、自動組合線性模型的高階特徵,提出了FM:函數

  • 模型

 

目標label表示成各階特徵的線性組合。post

文中也提到k<<p,由於FM爲了用低維參數擬合高維稀疏數據。學習

等價表示爲:優化

  •  快速預測

計算目標y時可簡化二次項(參考FM初始論文https://cseweb.ucsd.edu/classes/fa17/cse291-b/reading/Rendle2010FM.pdf,符號略有變化):網站

時間複雜度O(kn^2) -> O(kn)spa

  • 參數學習

目標函數L2正則化

- SGD梯度降低算法:

向loss降低的方向每讀一個樣本走一小步。

 

- ALS/CD座標降低算法:

每次讀入全部樣本並更新一個參數,令導數爲0,結合公式6獲得每步的最新取值:

cache策略:

ALS相對SGD:沒有學習率,不作額外工做只能求解迴歸問題。

 

- MCMC馬爾科夫鏈蒙特卡洛算法:

機率解釋:

ALS和SGD都是參數的點估計。MCMC與ALS相似都是逐個維度優化參數,可是屬Bayes派別,用採樣方法(Gibbs採樣)模擬出參數的分佈。

超參數符號解釋:

 

When comparing the conditional posterior of model parameters for MCMC (Eq. (30)) and the ALS solution (Eq. (22)), it can be seen that both are very similar, that is, θ ∗ = μ ̃ θ with α = 1 and μ· = 0. The difference is that MCMC samples from the posterior distribution, while ALS uses the expected value.

「MCMC在後驗分佈上採樣模擬後統計獲得參數的估計值,而ALS是直接使用參數的數學指望求解。」

MCMC方法有個優點是正則項能夠做爲超參數進入Bayes模型,用一個超先驗參數決定超參數,從而避免對正則項調參。代價是引入了超先驗參數及其分佈。可是超先驗參數少於正則項個數,並且最終效果受超先驗參數的選擇不敏感

參考文獻 Bayesian Factorization Machines  https://pdfs.semanticscholar.org/a8b9/ff1c5b8600ef63baa5de0999a0d986661d7d.pdf

模型預測效果對超參數先驗參數不敏感,經驗較優值:

 

用MCMC在條件後驗機率分佈上採樣:

 

 

 - 算法總結

三種算法比較:

新手建議先用最簡單的MCMC。分解維度k初始設置低維,逐步調整初始方差init_stdev,分解維度k和迭代次數iter。

 

  • 試驗評估

- Netflix challenge: rating prediction

 - recommendation

相關文章
相關標籤/搜索