推荐系统----FM原理与实现

英文原文链接:http://nowave.it/factorization-machines-with-tensorflow.html

因子分解机(Factorization Machine, FM)是由Steffen Rendle提出的一种基于矩阵分解的机器学习算法,其主要用于解决数据稀疏的业务场景(如推荐业务),特征怎样组合的问题。

问题描述:预测电影评分

实现思路:通过特征描述实现对电影评分的预测,对电影特征进行one-hot编码,然后通过线性模型训练参数,当新的item出现时,代入线性模型得到电影评分。

1)one-hot编码

2)普通线性模型,y是预测评分,w是第i个参数,xi是第i个特征

3)普通线性模型只考虑单个属性,忽略了多个属性之间的关系,在FM模型中,考虑了特征之间的关联,所以相比线性模型,多了后面特征组合的部分

4

4)(3)在计算wij时要计算一个矩阵W,需要计算n(n-1)个变量,在数据稀疏时计算困难,引入辅助向量V

W = V * V^T

实际计算时

具体实现

1)one-hot编码后的形式,将特征中的每一种属性及其取值的组合列出,根据每一个物品给与参考值。