【问题标题】:Not a single recommendation available with Apache MahoutApache Mahout 没有一个可用的建议
【发布时间】:2015-04-09 01:48:42
【问题描述】:

我已经使用 apache mahout 测试了基于用户的建议,并且它与提供的示例数据配合良好。

但是,我有自己的数据,但无法获得任何建议。我发现这是由于数据太稀疏,但我会感谢专家的建议;)

它仅使用购买历史记录,因此我将所有用户 ID 的产品评级为 4.0 产品 ID 购买。

这里是数据文件:http://we.tl/RcR83vcHQI

您能否给我一些建议以开始提出一些有用的建议?

提前谢谢你。

【问题讨论】:

    标签: mahout recommendation-engine mahout-recommender collaborative-filtering


    【解决方案1】:

    这是 Mahout 新手的常见问题。 0.9 及之前的版本要求您的 ID 是连续的非负整数。这包括用户和项目 ID。它们在 Mahout 中用作所有输入矩阵中的行号和列号。

    有几种方法可以解决这个问题,例如为用户和项目 ID 保留 HashBiMap(Guava 集合)。如您所见,将第一个 ID 分配给它的 Mahout ID 为 0 并将关系存储在地图中。继续查看您的 ID 以找到下一个唯一的 ID,并为其分配 Mahout ID = 1 等。

    然后,您将从推荐人那里获得 Mahout ID。您可以使用双向 HashBiMap 将它们转换为您的应用程序特定的 ID。

    BTW Mahout(1.0-snapshot 或更高版本)现在拥有一个全新的推荐系统,该推荐系统基于使用搜索引擎提供推荐并使用 Mahout 计算模型。它将直接接受您的输入 - 在内部进行 ID 转换。与旧 Hadoop 版本相比,它具有许多优点,包括:

    1. 多模式:它可以在许多不同的项目集上提取许多不同的用户操作。这允许您使用用户的大部分点击流进行推荐。
    2. 实时结果:它在 Solr 或 Elastic 搜索中具有非常快速的可扩展服务器。
    3. 由于实时性,它可以向新用户或具有最近历史记录的用户推荐。较旧的 Hadoop Mahout 推荐器仅向训练数据中的用户和项目推荐——它们无法对未在训练中使用的历史做出反应。新推荐器可以使用实时收集的数据,甚至是新用户。

    此处描述了新的 Multimodal Recommender:

    【讨论】:

    • 感谢您的宝贵信息。但是,我仍然有 0 reco :((使用了 hashbimap)
    • 你能在 pastebin 或类似的地方发布数据的 sn-p 吗?
    猜你喜欢
    • 1970-01-01
    • 2017-09-14
    • 2013-05-10
    • 2015-12-31
    • 2012-03-20
    • 1970-01-01
    • 1970-01-01
    • 2013-12-23
    • 2012-02-15
    相关资源
    最近更新 更多