【问题标题】:Can Myrrix be used for user-based collaborative filtering?Myrrix 可以用于基于用户的协同过滤吗?
【发布时间】:2013-01-06 00:04:45
【问题描述】:

我可以像使用Apache Mahout 一样使用Myrrix 进行用户对用户的推荐吗?如果是,请描述或提供方法链接。

我想使用 Myrrix 是因为它易于使用的 REST API,并且因为它非常快速和轻量级。我需要向全新用户推荐(新用户,但他们每个人都有 100 个项目偏好) - Myrrix 的 recommendToAnonymous 可以证明非常很方便,但我不确定我是否可以如果它不允许用户对用户的推荐,请使用它。

【问题讨论】:

    标签: mahout collaborative-filtering myrrix


    【解决方案1】:

    这取决于您所说的用户对用户推荐是什么意思——基于用户相似性的推荐?不,这不是它的工作方式;它基于矩阵分解。但这只是一个实现细节。

    我认为问题是,它是否支持您想要的操作?如果您想向新用户推荐,是的,它可以在一个用户的 1 个数据点之后做到这一点。通过/preference 添加用户项目首选项,然后只需调用/recommend。或者您可以添加所有 100,然后推荐。或者你可以使用/recommendToAnonymous,是的。

    如果您的意思是计算最相似的用户——是和否。不,没有直接的 API 方法。您必须运行第二个模型,其中项目和用户被翻转,然后计算最相似的项目。

    【讨论】:

    • 我希望肖恩能得到你的答复!抱歉不清楚,我的确切需求是:我有一个用户项目偏好列表。我想向特定用户推荐前 N 个用户。如果我要使用 Mahout,我可以使用 MySQLBooleanPrefJDBCDataModel 和 GenericBooleanPrefUserBasedRecommender 来做到这一点。我认为您暗示了一些有助于在第二个模型中通过“翻转”实现我想要的东西?能详细点吗?
    • 明白了,您的意思是翻转用户时间列并使用 /similarity/{itemID1} ?这会足够好吗?考虑到我的简单要求,您会建议将其作为 Mahout 方法的替代品吗?我尽量避免使用 Mahout,因为 Myrrix 使用起来非常简单。
    • 你可以向用户推荐用户,如果你的数据是真正的用户-用户交互数据(比如,我们是否连接,我们交换的消息数量)。那么你的“项目”也是用户。您的输入就像“userID1,userID2”(实际上您应该发送它和“userID2,userID1”)。没有翻转;无论如何,数据是对称的。您可以向用户推荐用户,也可以计算最相似的用户,这最终会略有不同。
    • 但我的数据有点像一个附属网络,行字面上是用户项目而不是用户用户。我不确定类似的项目(翻转后)是否会给我很好的用户推荐,我想我需要尝试一下。谢谢。
    • 我翻转了列并尝试了 Myrrix 的 /similarity,还尝试了 Mahout 的 GenericItemBasedRecommender.mostSimilarItems() ;从您的回答 here 中了解到。两者都运作良好!再次感谢!
    猜你喜欢
    • 2012-04-30
    • 2013-09-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-10-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多