昨天在了解FM[1]模型的时候一直没有弄清楚这个模型如何应用到推荐场景中,也没有弄清楚FM和MF这两个模型之间的关系,在此感谢师兄的指导。
在分享FM模型之前,先简单的介绍一下MF[2]模型。
矩阵分解是推荐系统中的核心技术,我们将用户和物品构造成一个二维矩阵(后称U-I矩阵),其中每一行代表一个用户,每一列代表一个物品,由于U-I矩阵的稀疏性,许多用户对物品没有过相应的评分,那么预测某一个用户对某一个物品的喜爱程度便成了推荐系统的主要任务。矩阵分解的思想是将U-I矩阵分解为两个低秩稠密的矩阵P和Q,其中P为用户的隐因子矩阵,Q为物品的隐因子矩阵,通过这两个矩阵来预测用户对物品的评分,也即:
但是考虑一些额外因素:1、一些用户给分偏高,一些用户给分较低,2、一些物品本就比较受欢迎,一些物品不被大众所喜爱,3、评分系统的固有属性,与用户物品都无关。因此,考虑到这些因素,将用户对物品的预测函数升级为:
其中α为全局偏置,b_u为用户偏置,b_i为物品偏置。
在简单介绍过MF模型后,接下来就是介绍FM模型了。
相信了解过FM模型的小伙伴们对于这张图并不陌生,蓝色框框内代表用户的one-hot编码,橙色框框内代表物品(此处为电影)的one-hot编码,黄色框框内代表用户评论过的其他物品,并做了归一化,绿色框框内表示评论的时间,紫色框框内表示最近评论过的物品,最后一列Target y表示用户对该物品的一个评分(以x(1)为例,即用户A对电影TI的评分为5)。
那么FM又是如何通过已知数据来预测未知评分的呢?
其中
在这里我们仍以x(1)为例,在仅有用户ID和物品ID信息的前提下,ω_0相当于矩阵分解中全局偏置,x(1)=[1,0,0,1,0,0,0],那么Equation(3)中的第二项相当于矩阵分解中的用户偏置和物品偏置之和,Equation(3)中的第三项相当于矩阵分解中的Equation(1)。那么,其实在在仅有用户ID和物品ID信息的前提下,FM模型与MF模型可以说是一样的。
若有错误和不足还请大家指出~
参考文献:
[1] Koren Y , Bell R , Volinsky C . Matrix Factorization Techniques for Recommender Systems[J]. Computer, 2009, 42(8):30-37.
[2] Rendle S. Factorization Machines[C]// 2011.