u1, v1,1
u1,v2,1
u2,v3,1
MR1(用户物品的倒排列表)
key: userid
value: itemid:score,itemid,score
MR2(共献矩阵,输入为MR1的输出)
key: itemid1,itemid2
value:{userid1, userid2,userid3}
MR3(共献矩阵和评分矩阵相乘)
分布式缓存map预先存储共献矩阵:
101:101 5 ; 101:102 3
<101,<101/102, 5/3>>
评分矩阵:userid1 101:5, 102:3, 103:2.5
根据评分矩阵的itemid,查询map的value, 然后找到对应item(102,103)的共献次数*评分,然后累加,然后输出 key为101:userid1 value为累加分数
别的用户有101:107的共献次数而当前用户没有对107打分,则通过这种方式可以实现对107打分