我很好奇当今许多社交网站上的作品功能。
例如,您输入您喜欢的电影列表,系统会建议您喜欢的其他电影(基于喜欢与您相同的电影的其他人的电影)。我认为在大型数据集中以直接sql方式(我的电影加入电影 - 用户加入电影标题的用户电影组并对其应用计数)将由于此类查询的“沉重”而无法实现。
同时我们不需要精确的解决方案,近似就足够了。我想知道有没有办法像传统的RDBMS那样实现类似模糊查询的方法,这些方法可以快速执行但有一些不合理性。或者如何在真实系统上实现这些功能。
答案 0 :(得分:2)
这是协作过滤或推荐
除非你需要一些非常复杂的斜率,否则一个预测器就是其中一个更简单的预测器就像50行python,Bryan O’Sullivan’s Collaborative filtering made easy,the paper by Daniel Lemire et al. introducing "Slope One Predictors for Online Rating-Based Collaborative Filtering"
这种方法只有一个用户在更改时才更新,而在某些情况下,其他用户只需更新处理整个数据库
我使用那个python代码来预测文件中没有出现的单词的数量,但我遇到了内存问题等等,我想我可能会写一个内存不足的版本,可能使用sqlite
在那个矩阵中使用的矩阵是三角形的,沿着对角线的边是镜像的,因此只需要存储矩阵的一半
答案 1 :(得分:1)
您正在寻找的术语是“协作过滤”
阅读编程集体智慧,O'Reilly Press
答案 2 :(得分:0)
最简单的方法是使用贝叶斯网络。有些图书馆可以为您处理大部分数学。