使用Mahout进行全文个性化搜索



我有一个文章数据库,它将由Lucene进行索引,并按用户标签和mahout进行分类。文章将有一定的分数进行标记(用户可以同意或不同意标记,驯马师发现的标记将与用户的标记相同)。

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

如何存储用户的兴趣
如何利用用户的兴趣对搜索结果进行排序或筛选?

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

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

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

你可以尝试使用一个简单的与标签交互的计数作为数字"评级",尽管我认为这在推荐上下文中不会产生很好的结果。使用计数日志更好,但仍然感觉不对。您可以忽略交互计数,只使用用户和标记曾经交互过或没有交互过的事实——"布尔偏好"。

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

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

如果你想做一些更含蓄的事情,Mahout有一个常见问题解答。

最新更新