有什么好的算法可以根据他们以前的选择来推荐某人可能喜欢的东西?(例如被亚马逊推广以推荐书籍,并用于 iRate Radio 或 YAPE 等服务,您可以通过评分项目获得建议)
9 回答
简单明了(订购购物车):
根据一起订购的物品保留交易清单。例如,当有人在亚马逊上购买摄像机时,他们也会同时购买用于录制的媒体。
在决定给定产品页面上“建议”什么时,查看订购该产品的所有订单,计算同时购买的所有其他商品,然后显示同时购买最多的前 5 件商品时间。
您不仅可以根据订单,还可以根据人们在网站上按顺序搜索的内容等从那里扩展它。
就评级系统(即电影评级)而言:
当您输入评级时,它变得更加困难。而不是一个人购买的一篮子离散的物品,你有一个物品评级的客户历史。
那时您正在研究数据挖掘,其复杂性是巨大的。
不过,一个简单的算法与上述算法相距不远,但它采用了不同的形式。取客户评分最高的商品和评分最低的商品,并找到其他具有相似最高评分和最低评分列表的客户。您希望将他们与具有相似极端好恶的其他人匹配 - 如果您只关注喜欢,那么当您提出他们讨厌的东西时,您会给他们带来不好的体验。在建议系统中,您总是希望在“不冷不热”的体验方面犯错,而不是“讨厌”,因为一次糟糕的体验会使他们因使用建议而感到厌烦。
向客户推荐其他最高列表中的项目。
考虑查看“什么是好的推荐算法? ”及其在 Hacker News 上的讨论。
没有明确的答案,而且极不可能有一个标准算法。
您如何做到这一点在很大程度上取决于您想要关联的数据类型及其组织方式。这取决于您如何在应用程序范围内定义“相关”。
通常最简单的想法会产生好的结果。对于书籍,如果您有一个数据库,其中每个书籍条目具有多个属性(例如作者、日期、流派等),您可以简单地选择建议一组来自同一作者、相同流派、相似标题和其他人喜欢这样。
但是,您总是可以尝试更复杂的东西。记录需要此“产品”的其他用户,并建议这些用户过去需要的其他“产品”(产品可以是任何东西,从一本书到一首歌,再到你能想象的任何东西)。大多数具有建议功能的主要网站都会做的事情(尽管它们可能会获取大量信息,从产品属性到人口统计数据,以最好地为客户服务)。
或者你甚至可以求助于所谓的人工智能;可以构建神经网络,将所有这些是产品的属性,并尝试(基于先前的观察)将其与他人联系起来并自我更新。
任何这些情况的混合都可能对您有用。
我个人建议考虑一下您希望算法如何工作以及如何建议相关的“产品”。然后,您可以探索所有选项:从简单到复杂并平衡您的需求。
推荐产品算法现在是一项巨大的业务。NetFlix 只提供 100,000 美元,只是为了稍微提高其算法的准确性。
正如您迄今为止从答案中推断出的那样,并且确实正如您所建议的那样,这是一个庞大而复杂的主题。我不能给你一个答案,至少没有什么还没有说,但我给你指出了几本关于这个主题的优秀书籍:
编程 CI: http: //oreilly.com/catalog/9780596529321/ 是一个相当温和的 Python 示例介绍。
CI In Action: http: //www.manning.com/alag看起来更深入一些(但我只阅读了第一章或第 2 章)并且有 Java 示例。
我认为大多数有用的建议已经被提出,但我想我会提出我将如何去做,只是想一想,因为我没有做过这样的事情。
首先,我会在应用程序中找到要对要使用的数据进行采样的位置,所以如果我有商店,它可能会在结账时。然后我会保存结帐购物车中每个项目之间的关系。
现在,如果用户进入项目页面,我可以计算与其他项目的关系数,并选择与所选项目关系数最多的 5 个项目。
我知道它很简单,并且可能有更好的方法。
但我希望它有所帮助
购物篮分析是您正在寻找的研究领域:
Microsoft 为其分析服务器提供了两种合适的算法: Microsoft 关联算法 Microsoft 决策树算法
查看这篇 msdn 文章,了解有关如何最好地使用 Analysis Services 解决此问题的建议。
我认为在最小均方回归(或类似的东西)上做一个谷歌可能会给你一些值得咀嚼的东西。
亚马逊创建了一个名为 Certona 的推荐平台,您可能会觉得这很有用,它被 B&Q 和 Screwfix 等公司使用,更多信息请访问 www.certona.com/</p>