协同过滤算法的原理详解

1994年,明尼苏达大学双城分校计算机系的GroupLens研究组设计了GroupLens的新闻推荐系统,并首次提出了协同过滤思想。

维基百科上对协同过滤分别给了广义和狭义两个定义

广义定义:协同过滤是使用涉及多个代理,视点,数据源等之间的协作的技术来过滤信息或模式的过程。

狭义定义:协同过滤是一种通过从许多用户收集偏好或品味信息(协作)来自动预测(过滤)关于用户兴趣的方法。协同过滤方法的基本假设是,如果一个人A在一个问题上与一个人B具有相同的意见,那么A更可能在其他问题上与B意见的相似度高于随机的人。

协同过滤的分类

  • 基于用户的推荐(通过共同口味与偏好找相似邻居用户,K-邻居算法,你朋友喜欢,你也可能喜欢)
  • 基于项目的推荐(发现物品之间的相似度,推荐类似的物品,你喜欢物品A,C与A相似,可能也喜欢C)
  • 基于模型的推荐(基于样本的用户喜好信息构造一个推荐模型,然后根据实时的用户喜好信息预测推荐)

协同过滤推荐步骤

(1)收集用户偏好。例如评分、 投票、转发、保存、书签、标记、评论、点击、浏览时间、购买、分享以及收藏等。

(2)数据数字化。对数据进行减噪与归一化操作,得到一个用户偏好的二维矩阵,一维是用户列表,另一维是物品列表,值是用户对物品的偏好,一般是 [0,1] 或者 [-1, 1] 的浮点数值。

  • 减噪:通过数据挖掘算法过滤数据中的噪音,是一个数据预处理的过程,使得对数据之后的分析更为精确。
  • 归一化:将各个行为的数据都统一到一个相同的取值范围,例如用各类数据除以此类中的最大值,从而使得归一化的数值在[0,1]之间,这是一种最简单的 归一化处理

(3)找到相似的用户和物品。构造相似度计算式来衡量用户与用户(物品与物品)之间的相似度。

(4)计算出来的相似度作为基于用户、项目的协同过滤推荐。

猜你喜欢

转载自blog.csdn.net/qq_24852439/article/details/89300696