3. 请问“两两物品之间的差距”的距离计算用的是Slope One特有的距离计算公式?我看了一篇文章https://arxiv.org/pdf/1202.1112.pdf,里面的公式(28)是计算距离的。物品 A 和物品 B 之间的差距是:((5-3)+(3-4))/2=0.5,物品A和物品C之间的差距是:(5-2)/1=3。与文中相符。
4. 文中最后的加权平均我的理解是上面引文中的公式(30)
5. Slope One 可以做到在线更新我的理解是每当有一个新的用户评分时,只需要把原来该用户对于这个物品的评分值从推荐分数替换成实际分数,然后更新物品间距离矩阵中包含这个物品的行和列即可,每个矩阵元素计算过程中以前的分子和分母值可以保留,只需往分子增加一个项目,分母加1即可更新。同时行或列的值只需计算一次,然后取相反数填到行列转置的位置。而相似度矩阵计算则需要遍历所有和这个物品有公共用户的物品的所有公共用户的评分,我的判断计算量还是要大不少的。
我来回答下老师的作业“为什么说 Slope One 可以做到在线更新呢?我能想到的是存储sku分数的同时也存储了分子和分母,当有个用户新增了对某个sku的分值,则只需在分子中加入,同时在分母中加1,去刷新该sku与这个用户之前打过分数的其他sku之间的分值即可。推荐的时候则从存储的分数里面去计算即可,我想这个耗时也就在100ms之内吧,老师,我这样说对吗?