博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
基于物品的协同过滤mysql_百万用户,八十万商品,如何计算基于物品的协同过滤...
阅读量:6360 次
发布时间:2019-06-23

本文共 477 字,大约阅读时间需要 1 分钟。

问题描述:

数据包含了一百四十万用户对80万商品的打分。要利用基于物品的协同过滤来计算。如果直接两两计算140万维的向量相似度,肯定不行啊。

问题分析:

每个物品的向量虽然是140万维的,但是其实给一个物品打分的用户其实不多,这个矩阵是非常稀疏的。而且根据长尾问题来说,大部分物品只有很少的用户有过评分。

总结来说就是每个物品评分的用户远远小于140万,每个用户评价过的商品远远小于80万。所以我们的问题就转换为如何处理这个稀疏的矩阵。

解决方法:

在计算相似度时,选用了夹角余弦(因为相比于杰卡德,夹角余弦考虑了评分的大小,实测效果更好)

第一步首先按商品ID进行group by,数据转换为,商品:评价过该商品用户。然后计算商品向量的长度,也就是用户评分的平方之和再开平方。

第二步,按用户id进行group by,将数据转换为,用户id :该用户评价过得商品。然后计算两个商品的相似度。得到:评分

第三步,累加商品对的评分,除以两个商品的向量长度得到相似度。

参考资料:

https://www.jianshu.com/p/ae1fe36fdb90

转载地址:http://ldima.baihongyu.com/

你可能感兴趣的文章
sql 分组查询前N名
查看>>
OpenGL_ES1.1在wince6.0的初始化。
查看>>
HTML教程XHTML教程:HTML标记嵌套使用技巧
查看>>
Codeforces Round #424 (Div. 2) A-C
查看>>
yum
查看>>
解决eclipse报PermGen space异常的问题
查看>>
java基础:10.4 Java FX之形状
查看>>
站立会议第五天
查看>>
solr_架构案例【京东站内搜索】(附程序源代码)
查看>>
并列句分析
查看>>
lync相关功能介绍
查看>>
工作中InnoDB引擎数据库主从复制同步心得
查看>>
Windows Server 2008 AD R2 AD回收站恢复删除用户两种方法的比较
查看>>
有感而发:你为何如此怕“高级”二字?
查看>>
时间稍纵即逝,好久不见~ [QQ群均已解散,暂只保留UE4群]
查看>>
深入浅出之-route命令实战使用指南
查看>>
python的分布式任务并行处理框架Jug简单使用
查看>>
电信级虚拟化到来-【软件和信息服务】2014.04
查看>>
对OpenBSD中的OSPF和BGP路由协议的探索
查看>>
轻松掌握shell编程中数组的常见用法及示例
查看>>