矩阵分解实际上就是一个利用更少数目的参数通过某种计算来表示原有数据,然后找到一个方法来计算这些参数的模型。已知的方法有SVD等矩阵分解的方法。SVD虽然在推荐系统中已经发挥了良好的效果,但是在利用SVD进行矩阵分解应用于推荐系统时,不能有缺失值,而缺失值的填充又是一个很难以解决的问题。本节中,将介绍另一种可以不用考虑缺失值的适用于推荐系统的矩阵分解的方法。
该算法由Simon Funk在其主页上写的一篇文章Nerflix update:Try This at Home提出。
其核心思想就是假设用户对商品只关注k个属性,那么每个商品都用对应于这k个属性上的表现,即一个具有k个值的向量来表示,相对应的,每一个用户也用他们对这k个属性的偏好程度,即一个同样具有k个值的向量来表示。那么对用户i和商品j来说,就可以用用户i对某个属性的偏好程度和商品j对应的属性的值相乘,再将这k个值相加得到用户i对商品j的打分来表示用户i对商品j的感兴趣程度。