您的位置:首页 > 编程语言

集体智慧编程_推荐系统2

2010-11-02 23:03 288 查看
上一篇里面的协作过滤方法是基于用户的,方法都是首先需要找到与自己相近的用户,让后利用这些小范围的用户来对自己没有看到过的东西进行推荐。但是考虑一个情况,比如说淘宝,注册用户已经超过了六千万左右,而且现在还在不停的涨。那么上面的基于用户的协作过滤方法的一个问题就是,对一个用户推荐通常需要和其他所有的用户进行计算,并得出最终的推荐信息。在大数据量面前,这个算法的缺点就是计算量太大。这里将要介绍的“基于物品的协作过滤”算法就能避免这些大数据量的计算。这里的“避免”的意思是,不需要在线的实时的计算,而是可以在后台已经计算好。

总体的思路很简单,为每件物品计算与其最相近的其他物品。然后我们为某为用户提供推荐时,就可以查看他曾经评分过的物品,并从中选出排位靠前者(这多少代表了一些喜好)。再构造一个加权的列表,其中包含了与这些选中物品最为相近的其他物品。

选择一个物品相近的物品的算法我们上次其实就已经讲过了,就是将原先的key是人的打分的矩阵进行转换,变成key是物品的矩阵。这样就可以用前面的算法来计算对于每一个物品,其他物品与其的相似程度。这一步完成之后就是推荐了。首先还是需要知道被推荐用户的喜好,所以需要找出一些他打分比较高的电影,然后根据这些电影来计算其它电影的推荐分值。首先对于其中的一个电影,那么其他电影与其相似性我们是知道的,那么就可以用这个电影的打分乘以他们的相似度,来得到对未知电影的打分。这样将所有的电影的打分加起来归一化,就能够得到其它电影的推荐指数了。

听起来听简单的,其实也是这么简单的。从这两种推荐方法来看,目的都是需要得到一个推荐的列表,而这个列表的排序需要一定的权值。怎么计算权值,一个是找到品位相投的用户,用他们的打分来综合对这个列表打分。另一个是根据自己以前的打分的记录,然后根据这些打分的记录来对列表进行打分。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: