主要内容:动机
FM算法模型
FM算法VS 其他算法
一、动机
在传统的线性模型如LR中,每个特征都是独立的,如果需要考虑特征与特征直接的交互作用,可能需要人工对特征进行交叉组合;非线性SVM可以对特征进行kernel映射,但是在特征高度稀疏的情况下,并不能很好地进行学习;现在也有很多分解模型Factorization model如矩阵分解MF、SVD++等,这些模型可以学习到特征之间的交互隐藏关系,但基本上每个模型都只适用于特定的输入和场景。为此,在高度稀疏的数据场景下如推荐系统,FM(Factorization Machine)出现了。
下面所有的假设都是建立在稀疏数据的基础上,举个例子,根据用户的评分历史预测用户对某部电影的打分,这里的每一行对应一个样本,Feature vector x表示特征,Targer y表示预测结果。从下图可以看出,这是一个稀疏特征的例子,后面的相关内容会以此为例子进行说明。
特征中的前四列表示用户u(one-hot编码,稀疏),接着五列表示电影i(ont-hot编码,稀疏),再接下去五列表示用户u对电影i的打分(归一化特征),紧接着一列表示时间(连续特征),最后五列表示用户u对电影i打分前评价过的最近一部电影(one-hot编码,稀疏)
二、FM算法模型