分解机模型简介及其推导(Factorization Machine)

457 阅读

假设有一个预测问题,其数据是一个矩阵$X \in R^{n\times p}$。其中,$X$的第$i$行是$x_i \in R^p$,用一个$p$维的向量描述一个对象,而$y_i$则表示第i行数据对应的标签(如图1所示)。分解机是将输入变量编程一个$d$阶相互交互的参数。例如,

假设分解机分解成2阶的结果是:

\tilde{y}(x):= w_0 + \sum_{j=1}^p w_jx_j + \sum_{j=1}^{p}\sum_{j'=j+1}^{p}x_jx_{j'}\sum_{f=1}^kv_{j,f}v_{j'f}

其中,$k$是分解的维度,模型的参数集合是

\Theta=\{w_0,w_1,\cdots,w_p,v_{1,1},\cdots,v_{p,k}\}
w_0 \in R
\textbf{w} \in R^p
V \in R^{p\times k}

FM模型的第一个部分是一个变量之间的一元的交互(类似于脸型回归模型)。第二部分是嵌套的求和结果,包括所有的变量对,即:

x_jx_{j'}

分解机模型和标准多项式回归模型最重要的区别就是变量之间交互的影响并不是有一个对立的参数

w_jw_{j'}

决定的。而是由一个分解参数决定:

w_{j,j'}\approx \left\langle v_j,v_{j'} \right \rangle = \sum_{f=1}^k v_{j,f}v_{j',f}

而这个分解参数与假设变量之间的交互影响是一个低阶的影响决定的。这使得分解机可以在很系数的数据中做估计。

DataLearner 官方微信

欢迎关注 DataLearner 官方微信,获得最新 AI 技术推送

DataLearner 官方微信二维码