【问题标题】:Full-text personalized search with Mahout使用 Mahout 进行全文个性化搜索
【发布时间】:2012-03-28 22:36:26
【问题描述】:

我有一个文章数据库,它将被 Lucene 索引,按用户标签和 mahout 分类。文章会有一定的标签分数(用户可以同意或不同意标签,mahout 发现的标签将被视为与用户相同)。

我想从个人资料和交互历史中找出用户的兴趣(可能是对某个标签的兴趣)。

如何存储用户的兴趣?
以及如何使用用户的兴趣对搜索结果进行排序或过滤?

我的方法可行吗?可行的?可扩展吗?
我可以使用什么样的技术和算法?请推荐!

【问题讨论】:

    标签: java search lucene mahout personalization


    【解决方案1】:

    这听起来更像是一个搜索问题,而不是推荐问题。您主要是根据标签对搜索结果进行排序和过滤。因此,我认为 Lucene 通常是部署工具,而不是 Mahout。 (虽然使用 Mahout 分类器来学习标签是非常正确的。)

    如果你真的想把它想象成一个推荐问题,我可能会说你的项目是标签。任何时候你和一个标签交互,比如查看一个标签为 X、Y 和 Z 的页面,这表明你对“项目”X、Y 和 Z 更感兴趣。然后这里的推荐问题是建议新的标签兴趣。

    您可以尝试使用与标签交互的简单计数作为数字“评级”,但我认为这在推荐器上下文中不会产生很好的结果。用count的log比较好,但还是感觉不对。您可以忽略交互计数,只使用用户和标签曾经交互过或没有交互过的事实——“布尔偏好”。

    据我所知,与此输入最匹配的推荐算法模型是您在 ParallelALSFactorizationJob 中看到的交替最小二乘模型。我不知道这是否对您有用,但如果您有时间和意愿,这就是我会研究的算法。它的输入更像是“交互强度”而不是评级,它就是这样对待它的,这就是你在这里所拥有的。

    【讨论】:

    • 感谢您的回答。我明白你关于建议感兴趣的新标签的观点。但是有没有算法接受文章的分类和用户的兴趣作为输入,输出一些有意义的信息来对搜索结果进行排序和过滤?
    • 如果你知道文章有什么标签,用户有什么标签,这就是一个简单的搜索问题。返回与给定用户重叠最多的项目。也许您可以使用对数似然相似性度量,这在 Mahout 中。
    【解决方案2】:

    很多时候,让用户明确说出他们感兴趣的标签会更容易。例如,堆栈溢出就是这样做的。如果标签是他们感兴趣的标签,您可以将分数提高一些。

    如果你想做一些更隐含的事情,Mahout 有一个 FAQ 推荐。

    【讨论】:

      猜你喜欢
      • 2011-12-03
      • 2019-10-22
      • 2011-10-22
      • 2012-07-29
      • 2023-03-02
      • 2010-11-11
      • 2010-11-25
      • 2017-06-04
      • 2013-04-23
      相关资源
      最近更新 更多