【问题标题】:Utilizing multiple, weighed data models for a Mahout recommender为 Mahout 推荐器使用多个加权数据模型
【发布时间】:2013-03-29 16:12:02
【问题描述】:

我有一个基于用户相似度的布尔偏好推荐器。我的数据集本质上包含 ItemId 是用户决定阅读的文章的关系。我想添加第二个数据模型,其中包含 ItemId 是对特定主题的订阅。

我能想到的唯一方法是将两者合并在一起,抵消订阅 ID,这样它们就不会与文章 ID 冲突。对于加权,我考虑放弃布尔偏好设置并引入偏好分数,其中文章子集的偏好分数为 1(例如),订阅子集的偏好分数为 2。

但是,我不确定这是否可行,因为偏好分数与我所追求的权重并不完全相似;它们可能包含一些低分表示不满意的概念。

我不得不想象有更好的方法来做到这一点,或者至少对我的计划进行一些调整,使其更符合我的愿望。

【问题讨论】:

    标签: mahout recommendation-engine


    【解决方案1】:

    我认为您的想法是正确的。是的,您想要比订阅和文章的简单存在/不存在更具表现力,因为它们的含义有些不同。我建议选择反映其相对频率的权重。例如,如果用户一直阅读 10 万篇文章并进行了 10000 次订阅,那么您可以选择订阅权重为“10”,阅读权重为“1”。

    如果您将这些值视为偏好分数,这并不完全有效,原因有很多。如果您使用一种像对待它们一样对待它们的方法,即线性权重,则效果会更好。

    我会向您指出 ALS-WR 算法,该算法专为此类输入而设计。例如:Collaborative Filtering for Implicit Feedback Datasets

    这在 Mahout 中实现为 Hadoop 上的 ParallelALSFactorizationJob。虽然需要 Hadoop,但它工作得很好。 (虽然我确实在 Mahout 中编写了大部分推荐程序代码,但我不能对此表示赞赏。)

    广告:我正在致力于将“下一代”系统商业化,该系统是从我在 Mahout 的工作演变而来的,名称为 Myrrix。它是 ALS-WR 的实现,非常适合您的输入类型。 download and run 很容易,不需要 Hadoop。

    鉴于它可能直接适合您的问题,我不介意将其插入此处。

    【讨论】:

    • 我没有看到 Myrrix 支持多个数据集,除了实验示例:合并推荐
    • 我不是指合并模型。在这里,不同的数据集是用户文章和用户订阅数据。两者都可以添加到一个模型中,具有不同的权重。实际上它们是什么并不重要。它们仅由权重定义。
    • 所以我们可以有不同权重的重复条目(相同的 ID) - 它被计算两次(考虑到权重)?
    • 是的,这些将被求和。该模型是增量/加法输入。但是,如果两个事物具有相同的 ID,那么它们就是相同的事物(对模型而言)。您不会以这种方式组合不同类型的“项目”,因为不同类型的事物会有不同的 ID。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-08-30
    相关资源
    最近更新 更多