推荐算法

协同过滤算法
物品1 | 物品2 | 物品3 | 物品4 | 物品5 | |
---|---|---|---|---|---|
Alice | 5 | 3 | 4 | 4 | ? |
用户1 | 3 | 1 | 2 | 3 | 3 |
用户2 | 4 | 3 | 4 | 3 | 5 |
用户3 | 3 | 5 | 1 | 5 | 4 |
用户4 | 1 | 3 | 5 | 2 | 1 |
- 基于用户(User)的协同过滤:
Alice
与用户2
相似,所以预测为5。 - 基于商品(Item)的协同过滤:
物品5
与物品3
相似,Alice对物品3打了4分,所以预测物品5也为4。
相似度计算
余弦相似度
衡量用户向量i
与j
之间的夹角,夹角越小,说明相似度越大,两个用户越相似。
局限性:对于【评分不规范】,存在有些用户喜欢打高分或喜欢打低分,会影响相似度计算结果。
皮尔逊相关系数
相对于余弦相似性,皮尔逊相关系数通过用户平均对个独立评分进行修正,减少用户评分偏置的影响。
其他
- 欧氏距离
- 曼哈顿距离
- 马氏距离
Funk SVD 算法
传统SVG在缺失问题上的问题
历史上对缺失值的研究有很多,对于一个没有被打分的物品来说,到底是应该给它补一个 0 值,还是应该给它补一个平均值呢?由于在实际过程中,元素缺失值是非常多的,这就导致了早期的 SVD 不论通过以上哪种方法进行补全在实际的应用之中都是不可以被接受的。
加入偏移项后的 Funk-SVD
在预测模型中添加三项偏移的模型,被称为 BaisSVD。
- Biased Item : (物品偏移), 表示了物品接受的评分和用户没有多大关系,物品本身质量决定了的偏移。
- Biased User : (用户偏移), 有些用户喜欢打高分,有些用户喜欢打低分,用户决定的偏移。
- Biased Mean : (全局平均值偏移),根据网站全局打分设置的偏移,可能和整体用户群和物品质量有相对应的关系。
公式说明:
符号含义:
$\gamma$ rates 学习率
$\lambda$ regularization 正则化项
b biased 偏移
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Utopia🛸!
评论
匿名评论
✅ 你无需删除空行,直接评论以获取最佳展示效果