因子分解机模型FM原理与python实现

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=1nwixi
由于一阶线性回归模型过于简单,欠拟合现象严重;于是我们引入二阶线性回归方程:
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=1nwixi+i=1nj=i+1nwijxixj
参数说明:
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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值