【问题标题】:User matching with current data与当前数据匹配的用户
【发布时间】:2011-04-04 05:55:46
【问题描述】:

我有一个数据库,其中包含两种不同类型的用户(导师和学员),我希望第二组(导师)能够“搜索”第一组(导师)中与他们的个人资料相匹配的人。导师和学员都可以随时进入并更改其个人资料中的项目。

目前,我正在使用 Apache Mahout 进行用户匹配 (recommender.mostSimilarIDs())。我遇到的问题是每次有人搜索时我都必须重新加载用户数据。就其本身而言,这并不需要那么长时间,但是当 Mahout 处理数据时,它似乎需要很长时间(3000 名导师和 3000 名学员需要 14 分钟)。处理后,匹配只需几秒钟。我还在处理过程中一遍又一遍地收到相同的 INFO 消息(“已处理 2248 个用户”),而查看代码显示该消息应仅每 10000 个用户输出一次。

我正在使用 GenericUserBasedRecommender 和 GenericDataModel,以及 NearestNUserNeighborhood、AveragingPreferenceInferrer 和 PearsonCorrelationSimilarity。我从数据库中加载指导者,将指导者添加到 POJO 列表中,并将它们转换为 FastByIDMap 以提供给 DataModel。

有没有更好的方法来做到这一点?产品负责人需要为每次搜索提供最新数据。

【问题讨论】:

    标签: java matching mahout


    【解决方案1】:

    (我是作者。)

    你不应该每次都要求它重新加载数据,这是为什么呢?

    14 分钟听起来太长了,加载这么少的数据也太长了,有问题。您可以在 user@mahout.apache.org 跟进更多信息。

    您会看到来自DataModel 的日志消息,您可以在您选择的日志系统中禁用它。它打印一个最终计数。这没什么好担心的。

    我建议您不要使用PreferenceInferrer,除非您绝对知道自己想要它。你这里真的有评分吗?如果没有,我可能会建议LogLikelihoodSimilarity

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-03-14
      • 2022-06-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-03-22
      相关资源
      最近更新 更多