推荐系统必须有快速反应能力,众所周知,现在网络上充满着各种各样的信息,而且数量相当庞大,并且还在以相当惊人的速度增长,如何在海量的信息中快速的找到我们所需要的信息并快速的反馈给用户,是互联网推荐系统需要考虑的一个十分重要的问题。
推荐系统中最核心和关键的部分就是使用的推荐算法,其在很大程度上决定了推荐系统性能的优劣。推荐算法大致可以分为以下几类:1、基于内容的推荐算法(content-based recommendation)2、协同过滤推荐算法(collaborative filtering recommendation)3、基于知识的推荐算法(knowledge-based recommendation)。
传统的基于内容的过滤是直接分析内容进行推荐,推荐质量相对较差。基于协同过滤算法的推荐,针对用户的爱好进行分析,在用户群中找到具有相同爱好的用户,分析这些相同用户对相关特定信息的评价,预测该指定用户对此信息的爱好程序。另外考虑到与spark库中现有的基于movielens数据库做的ALS(Alternating Least Squares)算法,我们可以利用这个算法做基于spark streaming的流式协同过滤算法。下面分几个部分分别介绍协同过滤算法。
一、协同过滤算法的前提假设
协同过滤的前提假设是:
1、所有用户的兴趣资料均来自用户对不同事物的评分。
2、不同的用户群是通过对不同的用户兴趣划分的。
3、所有用户对事物的评价将和与其具有相同兴趣的用户群中的用户评价相同。
二、协同过滤算法的步骤
经典的协同过滤推荐过程一般分为下面两步:首先,获取用户信息&#