Factorization Machines(因子分解机)
本文是大阪大学的Steffen Rendle 文章Factorization Machines ,该作者是因子分解机的提出者,后续又对其进行改进,本文是对其原始论文的解读。
一、FM的优点在于其可以提取用户和项目的交叉特征,由于在提取特征的时候采用的是类似矩阵分解的方法,可通过控制特征的维数k来保持模型的泛华能力,避免过拟合的问题,在稀疏数据下仍然适用。
二、FACTORIZATIONMACHINES(FM)
因子分解机的模型为:
这里,w0是总体的偏置,wi是xi的系数,
2.1因子分解机的直观理解
下面我将从男女生恋爱的角度对因子分解机做直观分析。首先做下声明,得分y为男生对女生的喜欢程度,用户U代表男生,项目I代表女生。
式子(1)包括三个部分,第一部分常数项可以理解为总体男生对总体女生的底分。第二项是wixi的和,对于男生部分的wi,,可以理解为男生的痴情程度,一个男生越痴情,那么他对女生的依恋程度就越高,该男生对女生的总体评分会相对较高;对于女生部分的wi,可以理解为女生的优秀程度,女生越优秀,显然男生会更加喜欢,那么该女生的总体评分则越高。第三部分是男生女生的交互关系,可以理解为男女之间的感觉,这个感觉包括k维的特征,k是一个超参数,其k值大小取决于男生的人数,女生的人数以及男生对女生评分数据的稀缺程度。下面重点来探索下男女之间的感觉。
如果男生A和男生B对女生1的感觉是一致的,那么vA和vB也必然是一致的。这是因为感觉一致即dot(vA,v1)和dot(vB,v1)这两个值是相等的,由于是同一个女生,所以v1也是相等的,那么vA=vB。如果一个男生对两个女生的感觉一致,那么这两个女生v1=v2。反之,如果两个男生A,C对同个女生差距很大,则vA和vC差别很大,如果一个男生对两个女生1,3的感觉差别很大,那么v1和v3的差别也是很大。
从本质上说,因子分解机也是探索一种相似性,其与协同过滤算法是类似的,但是这两者的区别在于,因子分解机同时考虑了男生和男生间的相似性以及女生和女生间的相似性,但是协同过滤要么只考虑男生之间的相似性,要么只考虑女生之间的相似性。
2.2因子分解机计算复杂度
如果对式子1直接进行计算,那么其复杂度是O(kn2),但是我们可以通过简单的数学变换将其转化为O(kn),由于前面两项的计算复杂度都是O(kn),所以我们只需要对第三项进行处理
2.3因子分解机的梯度计算
三、SVM vs FM
3.1SVM
对于线性核的svm其得分的预测为:
从式10可以看出,它预测得分时仅仅考虑了男生的痴情程度和女生的优秀程度。
对于二次项核的svm,其得分的预测为:
由于wu和wu,u都是作用用户的编码,wi和wi,i都是作用在项目的编码,可以将其合并成一个,那么上式与式10的区别在于多了wu,i这个交叉项,下面来考虑这个交叉项的作用。
由于在svm中假设u和i是独立的,即(1,3)和(2,3)是没有任何关系的,对于test集的某一个项目(u,i),它必然不可能包含在训练集中,那么对应的wu,i的值是无法得到的,可能就是初始化的值0,所以使用二项式的核函数的svm跟线性核的svm本质上是一样的。而FM考虑了不假设用户和项目这种交互关系是独立的,因而其参数估计wi,j是通过vi,vj点乘得到的,如果k的设置得当,可以有效的避免overfitting的问题。