深度学习神经网络协同过滤模型(NCF)与用户协同过滤(UCF)的区别

一、效果图

点我查看在线demo

二、启发式推荐系统

推荐系统的核心是根据用户的兴趣需求,给用户推荐喜欢的内容。常用的推荐算法有启发式推荐算法,可分为基于用户的 协同过滤,基于物品的协同过滤。

1、基于用户的协同过滤(UCF)

主要考虑的是用户和用户之间的相似度,只要找出相似用户喜欢的物品,并预测目标用户对对应物品的评分,就可以找到评分最高的若干个物品推荐给用户。

复制代码
举例:
--------+--------+--------+--------+--------+
    |   X    |    Y   |    Z   |    R   |
--------+--------+--------+--------+--------+
a   |   5    |    4   |    1   |    5   |
--------+--------+--------+--------+--------+
b   |   4    |    3   |    1   |    ?   |
--------+--------+--------+--------+--------+
c   |   2    |    2   |    5   |    1   |
--------+--------+--------+--------+--------+

a用户给X物品打了5分,给Y打了4分,给Z打了1分
b用户给X物品打了4分,给Y打了3分,给Z打了1分
c用户给X物品打了2分,给Y打了2分,给Z打了5分

那么很容易看到a用户和b用户非常相似,但是b用户没有看过R物品,
那么我们就可以把和b用户很相似的a用户打分很高的R物品推荐给b用户,
这就是基于用户的协同过滤。
2、基于物品的协同过滤(ICF)

主要考虑的是物品和物品之间的相似度,只有找到了目标用户对某些物品的评分,那么就可以对相似度高的类似物品进行预测,将评分最高的若干个相似物品推荐给用户。

复制代码
举例:
--------+--------+--------+--------+--------+
    |   X    |    Y   |    Z   |    R   |
--------+--------+--------+--------+--------+
a   |   5    |    5   |    1   |    5   |
--------+--------+--------+--------+--------+
b   |   5    |    5   |    1   |    2   |
--------+--------+--------+--------+--------+
c   |   5    |    5   |    5   |    1   |
--------+--------+--------+--------+--------+
d   |   5    |    ?   |    ?   |    ?   |
--------+--------+--------+--------+--------+

a用户给X物品打了5分,给Y打了5分,给Z打了1分,给R打了5分
b用户给X物品打了5分,给Y打了5分,给Z打了1分,给R打了2分
c用户给X物品打了5分,给Y打了5分,给Z打了5分,给R打了1分

那么很容易看到a用户、b用户、c用户都喜欢图书X,Y,
那么当用户d也喜欢图书X时,就会把图书Y推荐给用户d
因为基于用户a、b、c的评分,系统会认为喜欢X书籍的人在很大程度上会喜欢Y书籍。
这就是基于物品的协同过滤。
3、启发式推荐算法优缺点

优点:易于实现,并且推荐结果的可解释性强。

缺点:

难以处理冷启动问题:当一个用户或一个物品没有足够的评分数据时,启发式协同过滤算法无法对其进行有效的预测,因为它需要依赖于已有的评分数据。

对数据稀疏性敏感:如果数据集中存在大量的缺失值,启发式协同过滤算法的预测准确率会受到影响,因为它需要依赖于完整的评分数据来进行预测。

推荐类型单一化:推荐结果容易陷入一个小范围的困境,如果某个用户特别喜欢小说类的图书,那么这种系统就会不断地推荐小说类图书,实际上这个用户很有可能也喜欢历史、文学、传记类的图书,但是囿于冷启动问题,无法进行推荐。

三、神经网络协同过滤模型(NCF)

为了解决启发式推荐算法的问题,基于神经网络的协同过滤算法诞生了,神经网络的协同过滤算法可以通过将用户和物品的特征向量作为输入,来预测用户对新物品的评分,从而解决冷启动问题。

对数据稀疏性的鲁棒性:神经网络的协同过滤算法可以自动学习用户和物品的特征向量,并能够通过这些向量来预测评分,因此对于数据稀疏的情况也能进行有效的预测。

更好的预测准确率:神经网络的协同过滤算法可以通过多层非线性变换来学习用户和物品之间的复杂关系,从而能够提高预测准确率。

可解释性和灵活性:神经网络的协同过滤算法可以通过调整网络结构和参数来优化预测准确率,并且可以通过可视化方法来解释预测结果。

所以基于神经网络协同过滤模型是目前推荐系统的主流形态。

相关推荐
大强同学5 分钟前
亲身测评 Web Access 改写 AI 联网使用体验
人工智能·windows·microsoft·ai编程
三声三视10 分钟前
从“Vibe Coding“到生产事故:为什么你的AI代码正在埋雷?——AI时代规范驱动开发的生存指南
人工智能·ai编程·代码规范
AI-Ming10 分钟前
程序员转行学习 AI 大模型: 踩坑记录,HuggingFace镜像设置未生效
人工智能·pytorch·python·gpt·深度学习·学习·agi
dev派15 分钟前
【LangChain】中间件开发:扩展Agent能力
人工智能
水上冰石16 分钟前
dify修改端口号
人工智能
大模型任我行18 分钟前
清华:Agent记忆框架AdaMem
人工智能·语言模型·自然语言处理·论文笔记
flying_131419 分钟前
图神经网络分享系列-HAN(Heterogeneous Graph Attention Network)-torch(一)
深度学习·神经网络·torch·图神经网络·gat·han·语义级注意力
阿_旭19 分钟前
基于YOLO26深度学习的【电力巡检异常检测与语音提示系统】【python源码+Pyqt5界面+数据集+训练代码】
人工智能·python·深度学习·电力巡检异常检测
Gavin_Huangw20 分钟前
NLP基础06
人工智能·自然语言处理
monsion21 分钟前
Code Agent 不是编程工具:它是今天最接近通用 Agent 的现成形态
人工智能·vscode·个人开发