【问题标题】:Is there any way to perform recommendation for entities with one to many association?有没有办法为具有一对多关联的实体执行推荐?
【发布时间】:2013-10-26 19:40:55
【问题描述】:

我正在尝试针对用户和项目是一对多关联的特定用例的推荐系统(学术练习)。假设在给定时间,特定项目只能由一个用户拥有。用户一次可以拥有多个项目。任何特定项目都有许多可能让拥有用户感兴趣的类似项目。我想找到一个项目并将其推荐给用户。通常在基于用户的推荐中,实体会有多对多的关联。如果用户 U1 拥有项目 I1、I2、I3 并且用户 U2 拥有项目 I1、I2、I3、I4,我们会向 U1 推荐 I4。在我的情况下,一件物品在给定时间只能由一个用户拥有。在这种情况下如何进行推荐。是否可以执行基于用户的推荐?

【问题讨论】:

  • 用户可以“交易”物品吗?是否有拥有不同物品的广泛历史,有时是可用的(无人拥有)?没有这个,我不知道任何推荐系统都有用。
  • 嗨,肖恩,同一个项目可以由不同的用户在不同的时间点拥有。但一般不会经常发生。
  • 项目在什么意义上是相似的,如果它没有根据用户行为来定义......你必须更多地说明你认为是这样一个过程的基础。您对商品有分类吗?等等
  • 他们有分类。它类似于数据上的标签。每个项目可以关联多个标签。

标签: machine-learning mahout recommendation-engine collaborative-filtering mahout-recommender


【解决方案1】:

一种可能的选择是始终将一个问题转移到另一个问题上。给定一对多信息,您可以为每个项目 X(知道某种相似性度量,这里 必需,没有它,您将无法做任何推荐)您可以创建一个对象“项目类似于X 在某种程度上”称它为 C[X],一旦你遍历所有项目——你就会得到新的数据。您有用户和“项目集群”C。现在您可以假设用户 A“喜欢”集群 C[X],如果用户 A 喜欢 C[X] 中的任何项目。这样,您就可以在同一数据上建立多对多关系,并进行一些“平滑”。现在您可以使用任何类型的现有系统,一旦您获得推荐 C[Y],您就可以“推荐”来自 C[Y] 的任何免费(可用)项目。

【讨论】:

  • 相似性度量并不是推荐的严格要求,尽管它是一种常见的方法。但是,这就是这里的全部问题,这里任何计算的基础是什么?从那里描述基于邻域的算法如何工作并没有真正的帮助。
  • this 上下文中是必需的,因为如果没有这种措施,您将不了解推荐(因为您知道的所有项目都已被采用)。
  • 需要的是对项目的一些了解,是的,但您通常不需要相似度指标。例如,潜在因素模型不基于任何明确的相似性指标。
  • 我明白你的意思。然而 - 我只是提到 这种 情况,并且只提到“某种相似性度量”,作为相似性的概念,而不是严格意义上的任何度量。
猜你喜欢
  • 1970-01-01
  • 2016-05-11
  • 2011-07-31
  • 2019-09-29
  • 2023-03-16
  • 2011-07-19
  • 2012-07-11
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多