我一直很好奇这些系统是如何工作的。例如,netflix 或亚马逊如何根据过去的购买和/或评分确定要提出的建议?有什么算法可以阅读吗?
只是为了这里没有误解,我没有实际的理由问。我只是出于好奇而问。
(另外,如果有关于这个主题的现有问题,请指出它。“推荐系统”是一个很难搜索的术语。)
我一直很好奇这些系统是如何工作的。例如,netflix 或亚马逊如何根据过去的购买和/或评分确定要提出的建议?有什么算法可以阅读吗?
只是为了这里没有误解,我没有实际的理由问。我只是出于好奇而问。
(另外,如果有关于这个主题的现有问题,请指出它。“推荐系统”是一个很难搜索的术语。)
在最基本的情况下,大多数推荐系统通过说两件事之一来工作。
基于用户的推荐:
如果用户 A 喜欢项目 1、2、3、4 和 5,
并且用户 B 喜欢项目 1、2、3 和 4,
那么用户 B 很可能也喜欢项目 5
基于物品的推荐:
如果购买物品 1 的用户也有不成比例地购买物品 2
并且用户 A 购买了物品 1
,那么用户 A 可能会对物品 2 感兴趣
这里是你应该知道的算法的大脑转储:
- 设置相似度(Jaccard 指数和 Tanimoto 系数)
- n 维欧几里得距离
- k-means 算法
- 支持向量机
这是一个如此重要的商业应用程序,Netflix 推出了 100 万美元的奖金,用于将他们的推荐提高 10%。
几年后,人们越来越接近(我认为他们现在上涨了 9% 左右),但由于很多很多原因,这很难。Netflix Prize 的最大因素或最大的初始改进可能是使用了一种称为奇异值分解的统计技术。
我强烈建议您阅读如果您喜欢这个,您一定会喜欢那个,以深入讨论 Netflix Prize 和一般推荐系统。
基本上亚马逊等的原理是一样的:他们寻找模式。如果有人很好地购买了《星球大战》三部曲,那么他们比普通客户更喜欢吸血鬼猎人巴菲(纯属虚构的例子)。
O'Reilly 的书“Programming Collective Intelligence”有一个很好的章节展示了它是如何工作的。非常可读。
代码示例都是用 Python 编写的,但这不是什么大问题。
明尼苏达大学的GroupLens Research研究推荐系统并慷慨地分享他们的研究和数据集。
他们的研究每年都会扩大一点,现在考虑诸如在线社区、社交协作过滤和呈现复杂数据的 UI 挑战等细节。
Netflix 推荐系统的算法实际上是一项竞争性的努力,程序员在其中不断竞争以提高系统的准确性。
但在最基本的术语中,推荐系统会检查与另一个用户的人口统计/兴趣信息密切匹配的用户的选择。
因此,如果您是来自纽约市的 25 岁白人男性,推荐系统可能会尝试为您带来美国东北部其他 21-30 岁年龄段白人男性购买的产品。
编辑:还应该注意的是,您拥有的用户信息越多,您就越能改进算法,以将其他人正在做的事情与相关用户可能感兴趣的事情相匹配。
这是一个分类问题——即将用户分类为可能对某些项目感兴趣的用户组。
一旦被分类到这样的组中,就很容易检查该组中其他用户的购买/喜欢并推荐它们。
因此,贝叶斯分类和神经网络(多层感知器、径向基函数、支持向量机)值得一读。
一种技术是将用户分组到集群中,并从同一集群中的其他用户推荐产品。
主要有两种类型的推荐系统,它们的工作方式不同:
1. 基于内容。这些系统根据特征信息提出建议。这是关于项目(关键字、类别等)和用户(偏好、配置文件等)的信息。
2.协同过滤。这些系统基于用户-项目交互。这是诸如评级、购买数量、喜欢等信息。
这篇文章(由我工作的公司出版)概述了这两个系统,一些实际示例,并建议何时实施它们是有意义的。
当然有算法会推荐你喜欢的项目。为此已经实施了不同的数据挖掘技术。如果您想了解有关推荐系统的更多基本信息,请访问此博客。这里已经涵盖了所有基础知识,以了解推荐系统。