【发布时间】:2014-08-06 00:18:13
【问题描述】:
我是否可以在不重新计算相似度矩阵的情况下为具有相同项目集内项目偏好的新用户计算推荐,并根据先前存在的用户评分知道项目相似度矩阵?
【问题讨论】:
我是否可以在不重新计算相似度矩阵的情况下为具有相同项目集内项目偏好的新用户计算推荐,并根据先前存在的用户评分知道项目相似度矩阵?
【问题讨论】:
不使用 Mahout 推荐器。他们不能为不在训练集中的用户或项目推荐。
但是,您可以使用 Mahout 的 itemsimilairty 工作以及搜索引擎来完全按照您的描述进行操作。使用 itemsimilarity 创建 item-item 相似性的“指标”矩阵。使用 Solr 之类的东西来索引这些。我通过创建一个 (itemID0,itemID1 itemIDn...) 的 CSV 来做到这一点,每行都有一个 itemID 作为文档 ID 和一个空格分隔的 itemID 令牌列表。可能使用特定于应用程序的 ID,例如 SKU 或目录 ID。
然后,对于搜索查询,使用新用户的历史记录,以项目 ID 标记(与您已编入索引的相同)表示。即使用户不在训练数据中,您也会得到一个有序的推荐项目列表。
如果您使用 Mahout 1.0 快照,现在有一个 spark-itemsimilarity,它接受您的应用程序特定 ID,并以您将提供给搜索引擎的确切格式输出相同的 ID,因此您可能没有数据准备.但是通过一些准备和后期处理,您可以在 0.9 中使用 hadoop 版本的 itemsimilarity 来做同样的事情
MapR 的 Ted Dunning 在“实用机器学习”中描述了这项技术。您可以在他们的网站上免费获得它的副本,或者在 user@mahout.apache.org 邮件列表上询问它。
https://guide.finderbots.com 有一个使用此技术构建的演示站点。您可以通过注册并浏览培训师页面来查看它的工作原理,然后检查您自己的建议——在您的输入和获得您的推荐之间不会重新计算指标。
【讨论】: