因子分解机模型(Factorization Machines)
FM模型的基本原理
FM模型的引入
country | festival | checked |
---|---|---|
China | Chinese new year | 1 |
China | Thanksgiving | 0 |
American | Thanksgiving | 1 |
从以上表格可以看出,American”与“Thanksgiving”、“China”与“Chinese New Year”这样的关联特征,对用户的点击有着正向的影响。换句话说,来自“China”的用户很可能会在“Chinese New Year”有大量的浏览、购买行为,而在“Thanksgiving”却不会有特别的消费行为。
再比如,用户更常在饭点的时间下载外卖app,因此,引入两个特征的组合是非常有意义的。
FM模型的方程
首先我们定义特征的组合含义如下:
(1)一阶特征:即单个特征,不产生新特征,如 x 1 x_{1} x1
(2)二阶特征:即两个特征组合产生的新特征,如 x 1 x 2 x_{1}x_{2} x1x2
(3)高阶特征:即两个以上的特征组合产生的新特征,如 x 1 x 2 x 3 x_{1}x_{2}x_{3} x1x2x3
一阶特征的线性回归方程:
y ^ = w 0 + ∑ i = 1 n w i x i \hat{y}=w_{0}+\sum_{i=1}^{n}{w_{i}x_{i}} y^=w0+i=1∑nwixi
由于一阶线性回归模型过于简单,欠拟合现象严重;于是我们引入二阶线性回归方程:
y ^ = w 0 + ∑ i = 1 n w i x i + ∑ i = 1 n ∑ j = i + 1 n w i j x i x j \hat{y}=w_{0}+\sum_{i=1}^{n}{w_{i}x_{i}}+\sum_{i=1}^{n}{\sum_{j=i+1}^{n}{w_{ij}x_{i}x_{j}}} y^=w0+i=1∑nwixi+i=1∑nj=i+1∑nwijxixj
参数说明:
x i x j x_{i}x_{j} xixj:表示两个互异特征组合的二阶特征
w i j w_{ij} wij:表示二阶特征的交叉项系数
但上述二阶线性回归模型存在致命缺陷:
在互联网场景下用户的行为记录是极其稀疏的,而训练二阶特征组合系数 w i j w_{ij} wij,需要大量特征分量 x i x_{i} xi和 x j x_{j} xj都非零的样本;显然在互联网场景下无法满足。
为了克服模型无法在稀疏数据场景下学习二阶特征系数 w i j w_{ij} wij的问题,我们可以引用矩阵分解模型中使用的思想,将每个特征用k维的隐向量来表示。
例如,可以将i特征用隐向量表示为 V i V_{i} Vi,将j特征用隐向量表示为 V j V_{j} Vj,而将 w i j w_{ij} wij表示为隐向量 V i V_{i} V