基于内容的规模化推荐

Content based recommendation in scale

这个问题在博客和问答网站上可能重复了很多次,但我还没有找到任何具体的答案。

我正在尝试仅使用他们的购买历史为客户构建推荐系统。

如果是对的,我们将其称为基于内容的推荐而不是协同过滤,因为它不涉及项目的共现或用户对项目的偏好。

我的问题是多方面的:

  1. 是否有任何现有的可扩展 ML 平台可以解决基于竞争的推荐(我可以采用不同的 technologies/language)
  2. 有没有办法调整 Mahout 以获得此结果?
  3. 分类是处理基于内容的推荐的一种方式吗?
  4. 是图数据库擅长解决的问题吗?

注意:我查看了 Mahout(因为我熟悉 Java 并且 Mahout 显然利用 Hadoop 进行分布式处理)在规模上做到了这一点,并且具有经过良好测试的 ML 算法的优势。

感谢您的帮助。任何例子都会非常棒。谢谢。

所谓的项目推荐系统是预先计算相似性的自然候选者,因为项目的属性很少改变。我建议你预先计算每个项目之间的项目相似度,并可能存储每个项目的前 K 个,如果你有足够的资源,你可以将相似度矩阵加载到主内存中以进行实时推荐。

查看我对这个问题的回答,了解在 Mahout 中执行此操作的方法:Does Mahout provide a way to determine similarity between content (for content-based recommendations)?

示例是如何计算项目之间的文本相似度,然后将预先计算的值加载到主内存中。

有关保存值的不同数据结构的性能比较,请查看此问题:Mahout precomputed Item-item similarity - slow recommendation