协同过滤算法

协同过滤概述

协同过滤(CF Collaborative Filtering)也叫基于近邻的推荐算法,主要思想是:利用已有的用户群过去的行为或意见(总之就是过去的数据)预测未来的数据。根据当前用户(user)对物品(item)的评分,去预测其他用户对其他物品的评分。(就是将 用户x物品的评分矩阵补全)根据已有数据对和已有数据相近的物品进行打分。

算法输入就是用户x物品的评分矩阵。
输出则一般有两类:当前用户对当前物品的喜欢或不喜欢程度的评分数值 以及 n项推荐物品的列表

主要(也是最基础的)实现方式有:

  • 基于用户的协同过滤(最近邻推荐)
  • 基于物品的协同过滤(最近邻推荐)

实现协同过滤的步骤

  1. 收集用户数据
  2. 找到相似用户或物品
  3. 计算推荐

用户行为特征

用户行为 类型 特征 作用
评分 显式 整数化量化的特征,一般取0到5或0到10 通过用户本人的评分,可以准确的获得用户的偏好
投票 显式 布尔量化的偏好,取值可以是0或1 较为精确的获得用户偏好
转发 显式 布尔量化的偏好,取值可以是0或1 站内可获取相似用户
保存书签 显式 布尔量化的偏好,取值可以是0或1 较为精确的获取偏好
标签tag 显式 一些单词,需要对单词进行分析从而获得偏好 分析情感来获取偏好
评论 显式 一些文本,需要对文本处理来获取偏好 分析情感来获取偏好

以上列举了一些常见的推荐特征提取的方法和度量,实际应用中还有很多可以用来做特征的用户行为,其中包括一些隐式特征(比如后面提到的隐语意分析)足见在推荐系统中,特征的提取和选择也非常重要。

相似度度量

前面的解释中提到,协同过滤主要是根据用户或物品之间的相似度来获取最近的n个物品或用户。那么对于相似度,应该如何度量,便成为一个非常重要的内容。

你可能感兴趣的:(协同过滤算法)