关于Slope one算法的实际应用 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
leben
V2EX    问与答

关于Slope one算法的实际应用

  •  
  •   leben 2011-05-25 13:44:05 +08:00 5138 次点击
    这是一个创建于 5256 天前的主题,其中的信息可能已经有所发展或是发生改变。
    假设有N个用户和M张照片,用户可以标记喜欢或者不喜欢某一张照片,使用slope one算法应该怎么计算某个用户可能喜欢那些照片。

    slope one算法的原理基本看明白了,但是还是没想明白应该怎么样将这个应用到实际项目中去,求达人指点一二,谢谢谢谢。
    3 条回复    1970-01-01 08:00:00 +08:00
    ray58750034
        1
    ray58750034  
       2011-05-25 14:17:30 +08:00
    我想到的一个方案是, 比如 A B两张照片, X喜欢照片A, 如何计算X喜欢照片B的可能性:
    计算所有喜欢照片A的人中喜欢照片B的数量的比例, 作为打分样本1;
    计算所有喜欢照片B的人中喜欢照片A的数量的比例, 作为打分样本2;

    (样本1 + 样本2) /2 就是X喜欢照片B的可能性。
    leben
        2
    leben  
    OP
       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服务器计算,我看豆瓣是单独用机器做数据挖掘的。

    希望有熟悉这个方面的达人多多指点。
    ray58750034
        3
    ray58750034  
       2011-05-25 15:10:41 +08:00
    这里的样本1 可以理解为user1, 只是因为你的系统没有打分这个环节,所以用另一种方式采样,使得它有打分而已。

    具体做法,就是把一对一的模型应用到大数据里去, 然后尽量都事先算好,多做缓存。

    还有你的第二点,我觉得不需要把所有喜欢过的照片做基准, 算法搞复杂了可能准确性反而只有低。
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     4305 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 23ms UTC 10:13 PVG 18:13 LAX 03:13 JFK 06:13
    Do have faith in what you're doing.
    ubao snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86