基于用户的协同过滤算法-适宜于分布式处理的用户相似度计算

做过推荐系统的人估计都会懂得下面公式中基本元素的含义,这里就不多做解释了,这个算法是我在一个项目中开发的,原本该算法是一个并行处理的算法,为了阐述算法的本质,我把它凝练成下面的代码段,重点在于阐述原理。

用户相似度矩阵的计算原理

image

N(u): 用户u操作过的物品集合

N(i) : 对物品i有过操作的用户集合

Wuv : 用户u,v的相似度

 

image

存储模型

Ø使用mongoDB作为数据存储模型,这是因为mongoDB作为非关系数据库在存储嵌套文档时具有更高的效率。

ØmongoDB将数据缓存在内存中,只当必要时才会将数据写入外存,但是对开发者来说其屏蔽了内外存交互的细节。

实验时我用了8台pc机,在其中四台上搭建了一个mongoDB集群,另外四台用于做并发系统,测试数据集是MovieLens,其中用户数量为70000,项目数量为10681,用户行为为1000万。

pc机的配置为

image

程序运行完毕用时2.1h。

posted on 2012-11-01 21:59  Razzit  阅读(1841)  评论(0编辑  收藏  举报

导航