协同过滤的几种应用方式
以使用者为基础(User-based)的协同过滤:
用相似统计的方法得到具有相似爱好或者兴趣的相邻使用者,所以称之为以使用者为基础(User-based)的协同过滤或基于邻居的协同过滤(Neighbor-based Collaborative Filtering)。方法步骤:
1.收集使用者资讯
收集可以代表使用者兴趣的资讯。一般的网站系统使用评分的方式或是给予评价,这种方式被称为「主动评分」。另外一种是「被动评分」,是根据使用者的行为模式由系统代替使用者完成评价,不需要使用者直接打分或输入评价资料。电子商务网站在被动评分的资料获取上有其优势,使用者购买的商品记录是相当有用的资料。
2.最近邻搜索(Nearest neighbor search, NNS)
以使用者为基础(User-based)的协同过滤的出发点是与使用者兴趣爱好相同的另一组使用者,就是计算两个使用者的相似度。例如:寻找n个和A有相似兴趣使用者,把他们对M的评分作为A对M的评分预测。一般会根据资料的不同选择不同的演算法,目前较多使用的相似度演算法有Person Correlation Coefficient、Cosine-based Similarity、Adjusted Cosine Similarity。
3.产生推荐结果
有了最近邻集合,就可以对目标使用者的兴趣进行预测,产生推荐结果。依据推荐目的的不同进行不同形式的推荐,较常见的推荐结果有Top-N推荐和关联推荐。 Top-N推荐是针对个体使用者产生,对每个人产生不一样的结果,例如:透过对A使用者的最近邻使用者进行统计,选择出现频率高且在A使用者的评分项目中不存在的,作为推荐结果。关联推荐是对最近邻使用者的记录进行关联规则(association rules)挖掘。
以项目为基础(Item-based)的协同过滤:
以使用者为基础的协同推荐演算法随着使用者数量的增多,计算的时间就会变长,所以在2001年Sarwar提出了基于项目的协同过滤推荐演算法(Item-based Collaborative Filtering Algorithms)。以项目为基础的协同过滤方法有一个基本的假设:“能够引起使用者兴趣的项目,必定与其之前评分高的项目相似”,透过计算项目之间的相似性来代替使用者之间的相似性。方法步骤:
1.收集使用者资讯
同以使用者为基础(User-based)的协同过滤。
2.针对项目的最近邻搜索
先计算己评价项目和待预测项目的相似度,并以相似度作为权重,加权各已评价项目的分数,得到待预测项目的预测值。例如:要对项目A和项目B进行相似性计算,要先找出同时对A和B打过分的组合,对这些组合进行相似度计算,常用的演算法同以使用者为基础(User-based )的协同过滤。
3.产生推荐结果
以项目为基础的协同过滤不用考虑使用者间的差别,所以精度比较差。但是却不需要使用者的历史资料,或是进行使用者识别。对于项目来讲,它们之间的相似性要稳定很多,因此可以离线完成工作量最大的相似性计算步骤,从而降低了线上计算量,提高推荐效率,尤其是在使用者多于项目的情形下尤为显著。
以模型为基础(Model- based)的协同过滤:
以使用者为基础(User-based)的协同过滤和以项目为基础(Item-based)的协同过滤统称为以记忆为基础(Memory based)的协同过滤技术,他们共有的缺点是资料稀疏,难以处理大资料量影响即时结果,因此发展出以模型为基础的协同过滤技术。以模型为基础的协同过滤(Model-based Collaborative Filtering)是先用历史资料得到一个模型,再用此模型进行预测。以模型为基础的协同过滤广泛使用的技术包括Latent Semantic Indexing、 Bayesian Networks…等,根据对一个样本的分析得到模型。
0 Responses to “协同过滤(Collaborative Filtering)扫盲班(4)”