其中,$\hat{w}_{i, j}$是交叉特征的参数,它有一组参数定义:$\hat{w}_{i, j}=<\overrightarrow{\mathbf{v}}_{i}, \overrightarrow{\mathbf{v}}_{j}>=\sum_{l=1}^{d} v_{i, l} \times v_{j, l}$
即:$\hat{\mathbf{W}}=\left[\begin{array}{cccc}{\hat{w}_{1,1}} & {\hat{w}_{1,2}} & {\cdots} & {\hat{w}_{1, K}} \\ {\hat{w}_{2,1}} & {\hat{w}_{2,2}} & {\cdots} & {\hat{w}_{2, K}} \\ {\vdots} & {\vdots} & {\ddots} & {\vdots} \\ {\hat{w}_{K, 1}} & {\hat{w}_{K, 2}} & {\cdots} & {\hat{w}_{K, K}}\end{array}\right]=\mathbf{V}^{T} \mathbf{V}=\left[\begin{array}{c}{\overrightarrow{\mathbf{v}}_{1}^{T}} \\ {\overrightarrow{\mathbf{v}}_{2}^{T}} \\ {\vdots} \\ {\overrightarrow{\mathbf{v}}_{K}^{T}}\end{array}\right]\left[\begin{array}{cccc}{\overrightarrow{\mathbf{v}}_{1}} & {\overrightarrow{\mathbf{v}}_{2}} & {\cdots} & {\overrightarrow{\mathbf{v}}_{K}}\end{array}\right]$
模型待求解的参数为:
$w_{0} \in \mathbb{R}, \overrightarrow{\mathbf{w}} \in \mathbb{R}^{n}$
$\mathbf{V}=\left(\overrightarrow{\mathbf{v}}_{1}, \cdots, \overrightarrow{\mathbf{v}}_{K}\right) \in \mathbb{R}^{d \times K}$
其中:
$w_0$表示全局偏差;
$w_i$用于捕获第$i$个特征和目标之间的关系
$\hat{w}_{i,j}$用于捕获$(i,j)$二路交叉特征和目标之间的关系。
$\overrightarrow{\mathbf{v}}_{1}$,它是$\mathbf{V}$的第$i$列。
5.FM模型的计算复杂度为$O(K \times K \times d)=O\left(K^{2} d\right)$,但是经过数学转换之后其计算复杂度可以降低到$O(Kd)$:
$\sum_{i=1}^{K} \sum_{j=i+1}^{K} \hat{w}_{i, j} \times x_{i} \times x_{j}=\sum_{i=1}^{K} \sum_{j=i+1}^{K} \sum_{l=1}^{d} v_{i, l} \times v_{j, l} \times x_{i} \times x_{j}$
$=\sum_{l=1}^{d}\left(\sum_{i=1}^{K} \sum_{j=i+1}^{K}\left(v_{i, l} \times x_{i}\right) \times\left(v_{j, l} \times x_{j}\right)\right)$
$=\sum_{l=1}^{d} \frac{1}{2}\left(\left(\sum_{i=1}^{K} v_{i, l} \times x_{i}\right)^{2}-\sum_{i=1}^{K} v_{i, l}^{2} \times x_{i}^{2}\right)$
因此有:
$\hat{y}(\overrightarrow{\mathbf{x}})=w_{0}+\sum_{i=1}^{K} w_{i} \times x_{i}+\frac{1}{2} \sum_{l=1}^{d}\left(\left(\sum_{i=1}^{K} v_{i, l} \times x_{i}\right)^{2}-\sum_{i=1}^{K} v_{i, l}^{2} \times x_{i}^{2}\right)$
其计算复杂度为$O(Kd)$
6.FM模型可以用于求解分类问题(预测各评级的概率),也可以用于求解回归问题(预测各评分大小)。
对于回归问题,其损失函数为MSE:$\mathcal{L}=\sum_{(\overrightarrow{\mathbf{x}}, y) \in \mathbb{S}}(\hat{y}(\overrightarrow{\mathbf{x}})-y)^{2}+\sum_{\theta \in \Theta} \lambda_{\theta} \times \theta^{2}$
对于二分类问题,其损失函数为交叉熵:
$\phi(\overrightarrow{\mathbf{x}})=w_{0}+\sum_{i=1}^{K} w_{i} \times x_{i}+\frac{1}{2} \sum_{l=1}^{d}\left(\left(\sum_{i=1}^{K} v_{i, l} \times x_{i}\right)^{2}-\sum_{i=1}^{K} v_{i, l}^{2} \times x_{i}^{2}\right)$
$p(\hat{y}=y | \overrightarrow{\mathbf{x}})=\frac{1}{1+\exp (-y \phi(\vec{x}))}$
$\mathcal{L}=\left(-\sum_{(\vec{x}, y) \in \mathbb{S}} \log p(\hat{y}=y | \vec{x})\right)+\sum_{\theta \in \Theta} \lambda_{\theta} \times \theta^{2}$
其中:评级集合为$y \in\{-1,1\}$一共两个等级
$p(\hat{y}=y | \overrightarrow{\mathbf{x}})$为样本$\overrightarrow{x}$预测为评级$y$的概率,满足:
$p(\hat{y}=1 | \overrightarrow{\mathbf{x}})=\frac{1}{1+\exp (-\phi(\overrightarrow{\mathbf{x}}))}$
$p(\hat{y}=-1 | \overrightarrow{\mathbf{x}})=\frac{1}{1+\exp (\phi(\overrightarrow{\mathbf{x}}))}$
损失函数最后一项是正则化项,为了防止过拟合,$\Theta=\left\{w_{0}, \overrightarrow{\mathbf{w}}, \mathbf{V}\right\}$。其中$\lambda_{\theta}$为参数$\theta$的正则化参数,它是模型的超参数。
可以针对每个参数配置一共正则化系数,但是选择合适的值需要进行大量的超参数选择。论文推荐进行统一配置:
对于$w_0$,正则化系数为$\lambda_{w_0}=0$,这表示不需要对全局偏差进行正则化。
对于$w_i$,统一配置正则化系数为$\lambda_w$
对于$v_{i,l}$,统一配置正则化系数为$\lambda_v$
7.FM可以处理不同类型的特征:
离散型特征 categorical:FM 对离散型特征执行 one-hot 编码。 如,性别特征:“男” 编码为 (0,1),“女” 编码为 (1,0) 。