因子分解机将支持向量机SVM的优势结合分解模型。如SVM,因子分解机是一个通用的预测器,可以用在任意实数值向量上。但是不同于SVM,因子分解机能通过分解参数对变量之间的交互关系进行建模;即使在非常稀疏的场景下,如推荐系统,也能对交叉特征进行建模。因子分解机可以通过算式优化,在线性时间内进行应用计算;而且不同于SVM在对偶形式中求解问题,FM在原问题空间进行求解,不需要支持向量等,可以直接对模型参数进行估计。
对于度为2的因子分解机模型FM:
其中
,
表示长度为k的向量之间的內积。
矩阵V中的第i行向量 v i v_i vi表示第i个变量的参数,其向量长度为k。
度为2的因子分解机能够捕获所有的单个变量和交叉变量:
因子分解机作为一个通用的预测器,可以用于:
因子分解机的公式可以表示成:线性回归+二阶交叉项。其求解过程主要集中在交叉项的计算。这项计算借鉴了完全平方公式:***(a+b)²=a²+2ab+b²***,2ab=(a+b)²-a²-b²
时间复杂度也从 O ( k n 2 ) O(kn^2) O(kn2)变为了 O ( k n ) O(kn) O(kn)。
参数的估计使用随机梯度下降法。