leben
2011-05-25 14:47:44 +08:00
这个办法倒是蛮简单的,呵呵。不过我想实现的是一个照片推荐系统,一对一的原理都比较简单,但是涉及到具体怎么做,我有点摸不到头绪。从来没有接触过这方面。
简单看了一下,slope one是基于rate的,就是说user必须给item一个rate,这个rate是一个范围,然后slope one会计算当前用户对某一个item可能给出的rate。但是如果仅仅是0和1的时候就不适合了,因为0.5你是算0还是1。
据说amazon的item-to-item是根据余弦相关度做的,这方面google有一篇文章说明。我的理解是把某一个item的用户是否喜欢作为维度,将item视为一个向量,然后计算任意两个item的余眩,余眩越小相似度越高。
这两种算法问题不大,我的问题是,怎么样在系统中应用。
1、每次查看一张图片的时候是否要计算当前图片和其他所有图片的相似度,然后排序列出相似度最高的那些。
2、如果我想看当前用户可能喜欢的照片,那么基准就是当前用户所有习惯过得照片,那这个获取的相似照片应该怎么排列。
3、实际上这些算法都非常耗费时间,肯定不能实时生成,实际使用应该使用的是数据挖掘吧,那么它的计算频率、计算时间、选取的样本。还有应该不会在web或者db服务器计算,我看豆瓣是单独用机器做数据挖掘的。
希望有熟悉这个方面的达人多多指点。