推荐系统的目标是向用户推荐他没有体验过的那些物品,没体验过的物品有很多,推荐哪一个呢,这需要预测用户对某个物品的评分,评分高的物品被推荐给用户,所以推荐系统的本质其实是一个预测问题。
协同过滤会先算用户的相似度,然后把相似用户给物品的评分乘以两者的相似度,作为目标用户对物品的预测评分,预测评分大的加入推荐列表,说明协同过滤的最后还是预测。
矩阵分解也是预测问题,基于矩阵分解的推荐算法,简单入门
【我开始一直不明白矩阵分解和推荐系统有什么关系,后来理解了,矩阵分解就是为了预测稀疏(即包含很多未知数值,未知是因为用户没有体验过该物品,因此没有评分)的用户评分矩阵中,缺失(未知)的那些元素的具体是哪些值,假如能够预测出来,那么这些评分中分数最高的那些物品就是推荐列表所需要的】
推荐系统大致分成两类:协同式算法和基于内容的算法。
协同式算法又分为基于邻域(Neighborhood-based)的算法和隐语义模型(Latent Factor Model).
基于邻域的方法认为有做出相似评分的用户具有相似的偏好,而被给予相似评分的物品具有相似的属性。
隐语义模型则认为每个评分向量都是一系列因素(Factor)综合作用的体现。这些因素能从评分中推断出来。推断的方法主要是矩阵分解技术。
经典的矩阵分解方法是SVD,它能识别和减少具有相关性的因素的数量。但SVD需要完整的用户评分向量,而如果评分矩阵是稀疏的,它要求能够对稀疏矩阵进行填充,而且这样做会降低准确率。