我有一个物品数据库,它将被列宁索引,由用户标签和mahout分类。文章将有一定的分数标记(用户可以同意或不同意标签,Mahout发现的标签将与用户的相同处理。

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

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

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

有帮助吗?

解决方案

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

如果您真的想想成为推荐问题,我可能会说你的物品是标签。任何时候您与标记交互,就像查看标记的页面标记x,y和z,那么表示您对“项目”x,y和z更感兴趣,然后这里的推荐问题是建议新的标签兴趣。

您可以尝试使用与标记的简单交互计数为数字“评级”,尽管我认为在推荐上下文中不会产生很大的结果。使用数量的日志更好,但仍然感觉错了。您可以忽略交互计数,只是使用用户和标签曾经互动的事实,或者不是 - “布尔首选项”。

最能匹配此输入的推荐算法模型,即我知道,是您在parallelAlactorizationJob中看到的交替最小二乘型号。我不知道这是否适用于您,但这是我调查的算法是否有时间和倾向。它的输入更像是“互动强度”而不是评级,它会这样对待它,这就是你在这里有什么。

其他提示

很多时候,让用户明确地说出他们感兴趣的标签是更容易的。这是例如堆栈溢出所做的。如果标签是一个他们对的标签,你可以通过某种量提高分数。

如果您想做更多隐含的东西,Mahout有一个常见问题推荐。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top