【问题标题】:Recommendation systems - converting transaction counts to star ratings推荐系统 - 将交易计数转换为星级
【发布时间】:2014-04-09 19:47:18
【问题描述】:

我正在做一些关于推荐系统的探索性工作,并且一直在阅读涉及基于用户、基于项目和 SVD 算法的协同过滤技术。我也在尝试 R 的推荐实验室包。

文献中的一个明显假设是用户数据已根据评级量表标记项目,例如在 1 到 5 星之间。我正在研究用户数据没有评级而只是交易的问题。例如,如果我想向用户推荐餐馆,我拥有的唯一数据是他访问其他餐馆的频率。

如何将这些“交易”计数转换为可供期望固定比例评级的推荐算法使用的评级?我想到的一种方法是简单的分箱:

0 stars = 0-1 visits
1 star  = 2-3 visits
...
5 stars = 10+ visits

但是,这似乎不太好用。例如,如果某人只去过一次餐厅,他可能仍然很喜欢它。

任何帮助将不胜感激。

【问题讨论】:

  • 请阅读about SO:“包括你尝试过的细节。不要问...[q]你没有尝试找到答案的问题(展示你的工作! )"。
  • 不到 3 年。

标签: r machine-learning data-mining recommendation-engine collaborative-filtering


【解决方案1】:

我会尝试不同的方法。如您所说,仅访问过一次可能表明用户仍然喜欢该餐厅,但您不确定。您的目标不是针对单个用户进行优化,而是针对所有用户进行优化。因此,为此,您可以将数据拆分为训练数据和测试数据。在不同尺度的训练数据上进行训练并在测试数据上进行测试。

不同的尺度可能是

  • 二进制标度(0:从未访问过,1:已访问过)。这主要用于在线商店(购买或不购买)。一次访问会支持您的假设。

  • 您提供的 5 星等级或其他范围。您也可以使用超过 5 颗星。我可能不会将 0-1 访问分组。

应选择精度最高的方法。

【讨论】:

    【解决方案2】:

    这里有一个想法:用户去过零次或一次的餐厅不会告诉你他们喜欢什么。他们去过很多次的餐馆告诉你很多。为什么不只寻找与顾客最常光顾的餐厅相似的餐厅呢?通过这种方式,您使用的是正面信息(他们喜欢什么),但没有负面信息,因为您无论如何都无法访问它。

    如果您绝对必须推断出一些连续的衡量标准,我认为根据过去的行为来查看再次访问的倾向是明智的。这将从选择该餐厅的先验概率(背景频率,或只是在餐厅上的统一)开始,其可能性项与对该餐厅的访问次数相关。这样一来,用户访问餐厅的次数越多,他们再次访问的可能性就越大。

    【讨论】:

    • 谢谢。当您说“为什么不只寻找与顾客最常光顾的餐厅相似的餐厅?”时,这意味着基于项目的协同过滤。但研究文献和我正在使用的软件(R推荐实验室)都表明餐厅需要处于相同的规模,例如我询问的 1-5 星评级。
    • 是的,我明白了。您想使用其他用户的“评分”来推荐任何给定用户应该做什么。我的观点仍然存在——你不能从频率中得出星级。为什么不将用户的分布表示为他们在餐厅的分布(访问频率)而不是一组餐厅:星级条目?据推测,这些技术可以适应这种设置
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-31
    • 2018-10-23
    • 1970-01-01
    • 1970-01-01
    • 2020-10-20
    • 2020-11-08
    相关资源
    最近更新 更多