我们正在建设的一个市场允许人们将他们的商品挂牌出售,但要成批/成袋/成箱。我们正在寻找一个内置的推荐引擎,但大多数文章似乎更适合于“销售”大量产品的市场-即亚马逊,netflix等。因为每个列表都有点独特,推荐引擎的最佳方法是什么?有什么相关的文章吗?
我们知道人们过去买过的东西。我们知道他们正在寻找的大小或年龄适合性。
列出的捆绑包有类别、品牌、大小/年龄、颜色和自由格式文本。
有什么想法可以帮助我们开始吗?如果我们的数据存储在MySQL中,您认为最好的语言是什么?
发布于 2011-03-25 20:19:06
您可以使用推荐引擎过滤以下几种内容。您可以根据特定用户以前购买过的内容进行过滤(在您的情况下,哪些功能已经出现在他们购买的产品中)。你还可以根据社交分组--用户喜欢他们,或者产品分组--过滤其他产品,比如你以前卖过的产品。我建议您首先对产品进行集群,然后将个人或组映射到该产品集群中的功能。所以,你最终会得到一个推荐引擎,上面写着:使用该功能购买商品的人也购买了具有这些功能的商品。然后,你可以为已知用户创建一个引擎:你倾向于购买具有这些功能的产品,这里有更多类似的项目。最后,您可以为组构建一个引擎:像这样的人倾向于购买具有这些功能的产品。
有了几个模型,您的系统可以转向适当的模型,这取决于他们目前所知道的:已知用户、已知用户组或已知的浏览历史记录。
由于您推荐了一批更独特的产品,因此在获得推荐后,您将希望添加一个额外的模型,以过滤掉不适当的推荐。这个模型将代表兼容性。使用用户以前使用的相同主机的新游戏比其他主机更兼容。如果他们上个月买了一辆新车,你不会推荐一辆新车,但可能会推荐十家洗车行。
您可以对最后一个模型使用几个不同的概念。如果你打算在你的模型中添加人们头脑中的显性知识,你可能想要建立一个信念网络,过滤掉不合适的推荐。如果要使用集体智能,可以使用简单回归、支持向量机或人工神经网络。我会选择最容易实现的过滤器,而不用担心选择你构建的第一个模型。在选定一个模型之前,您可能会构建几个模型,只要付出适当的努力,就会得到好的结果。
你的过滤模型将经历一个测试阶段,在这个阶段,你提出一个建议,过滤它的适当性,然后通过某种人工干预再次过滤它--一组你希望过滤器学习的“答案”,或者只是一个人仔细检查结果。然后,您将使用更新后的结果重新训练过滤器,重新采样并再次测试。
就推荐引擎而言,您可以使用GNU科学库(可用于任何平台的绑定)进行SVD。如果要使用大数据,还可以选择Mahout推荐引擎( Hadoop世界的一部分)。对于过滤器,您可能希望查看apophenia、libsvm或FANN。
你也可以选择在一个分析框架中工作一段时间,直到你觉得你已经掌握了事情。可供选择的有Weka、R、Octave、Matlab、Maple和Mathematica。我想我已经在价格方面列出了它们,然后才是易用性。
就资源而言,有几本很好的介绍性书籍:《集体情报》、《曼宁的MEAP》、《数据挖掘》(全部关于Weka)和《Modeling with Data》(apophenia )。
我的最后一个想法是,无论你的推荐引擎是否成熟,大部分价值都在用户体验中。亚马逊的一个人写道,当他们告诉用户为什么要做推荐时,他们的推荐引擎工作得最好。这有助于用户快速采用你的推理(对他们的旧的和好的购买的情感反应),或者拒绝它并继续(他们已经有这样的东西了,他们不需要另一个)。
发布于 2011-03-25 07:05:56
就我个人而言,我更喜欢Ruby,但是Ruby、Python和Perl可以很容易地连接到MySQL。
我喜欢Ruby的原因之一是它的ORM,这是一个非常强大的Sequel,使得数据库访问非常容易管理。如果你使用MVC,Ruby有Rails,它支持ActiveRecord作为它的对象关系映射,这也使得与MySQL的对话变得很容易。还有Sinatra和Padrino,它们都是重量较轻的ORM,但功能也非常强大。他们更加开箱即用,与Sequel很好地集成。
https://stackoverflow.com/questions/5426723
复制