我一直很好奇这些系统是如何工作的.例如,netflix或亚马逊如何根据过去的购买和/或评级确定要做出哪些推荐?是否有任何算法可供阅读?
就这样,这里没有误解,我没有实际的理由要求.我只是想出纯粹的好奇心.
(另外,如果有关于这一主题的现有问题,指向我吧."推荐系统"是一个很难长期来搜索.)
在最基本的情况下,大多数推荐系统通过说两件事之一来工作.
基于用户的建议:
如果用户A喜欢项目1,2,3,4和5,
而用户B喜欢项目1,2,3和4
那么用户B很可能也喜欢项目5
基于项目的建议:
如果购买项目1的用户也不成比例地购买项目2
和用户A购买项目1
那么用户A可能会对项目2感兴趣
这里是你应该知道的算法的大脑转储:
- 集相似性(Jaccard指数和Tanimoto系数)
- n维欧氏距离
- k均值算法
- 支持向量机
这是一个商业上重要的应用程序,Netflix推出了100万美元的奖金,用于将他们的推荐提高10%.
几年后人们越来越近了(我认为他们现在已经上涨了9%左右),但很多原因很难.可能是Netflix奖的最大因素或最大的初步改进是使用称为奇异值分解的统计技术.
我强烈建议你阅读如果你喜欢这个,你肯定会喜欢这个,特别是对Netflix奖和推荐系统的深入讨论.
基本上虽然亚马逊等的原则是相同的:他们寻找模式.如果有人买了星球大战三部曲,那么他们比普通客户更喜欢吸血鬼猎人巴菲(纯粹的例子).
O'Reilly的书"Programming Collective Intelligence"有一个很好的章节,展示了它是如何工作的.很可读.
代码示例都是用Python编写的,但这不是一个大问题.
明尼苏达大学的GroupLens研究研究推荐系统并慷慨地分享他们的研究和数据集.
他们的研究每年都有所扩展,现在考虑在线社区,社交协作过滤以及呈现复杂数据时的UI挑战等细节.