【问题标题】:Is this an approach to user-item recommendations that could work这是一种可行的用户项目推荐方法吗
【发布时间】:2014-10-11 03:28:53
【问题描述】:

我正在设计一个应用程序,该应用程序包含基于用户交互(协同过滤)的推荐系统。在他的主页上向用户展示了一组 6 个要与之交互的项目。将有 50 到 300 个项目。可以执行以下操作:

  1. 点击一个项目(强烈兴趣)
  2. 刷新一个项目(一些兴趣)
  3. 打开阅读更多对话框(有些兴趣)
  4. 不要做任何事情(没有兴趣)

收集和存储这些数据。系统应该向用户推荐感兴趣的项目。我正在考虑将这些数据转化为评级系统。

选项 A)如果用户点击一个项目,这将被转换为 5 的隐式生命周期评级。刷新一个项目它是 4,依此类推。所以我的 user->item 矩阵看起来像这样:

       item 1 | item 2 | item 3
john   5                 4
jane   4

在这个例子中,约翰点击了第 1 项并刷新了第 3 项。评级只能真正上升,即如果用户之前刷新过一个项目,我写一个 4 并且仅在稍后单击该项目时才更新为 5 .

选项 B) 每次用户执行上述操作之一时,我都会为项目增加一个标量值,这意味着它可以无限增长。

       item 1 | item 2 | item 3
john   55       1        30
jane   41       9

也许这是个问题,因为现在这些数字更难转化为从 1 到 10 的评分量表

选项 C)我分别计算每次互动

       item 1 click | item 1 refresh | item 1 read
john   3              1                       
jane   1                               1

这里的问题是“阅读”一个项目可能只完成一次。

无论我选择什么选项,我的想法是首先使用余弦相似度或皮尔逊相关性等方法找到相似的用户。然后从该列表中挑选前 10 到 30 名用户,并编制一份他们最喜欢的项目的顶级列表。然后,我会从该列表中推荐当前用户过去几乎没有互动过的项目。

这是可行的吗?我担心找到相似的用户会消除为当前用户找到有趣(新)项目的机会。

【问题讨论】:

    标签: recommendation-engine collaborative-filtering cosine-similarity pearson


    【解决方案1】:

    您的建议听起来很合理。您对找不到新项目的担忧反映了基于元数据的协同过滤方法。要找到新项目,您无疑必须进行一些内容分析,这将是一个单独的阶段。例如,如果您的项目是新闻文章,您可能会尝试为每个用户确定重要的关键字。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-02
      • 2010-11-04
      • 2023-03-31
      • 2013-06-06
      • 2011-04-15
      • 2017-08-19
      • 2011-05-31
      • 1970-01-01
      相关资源
      最近更新 更多