代码之家  ›  专栏  ›  技术社区  ›  Andrew Ingram

协同过滤:如何为每个用户确定产品的隐含分数?

  •  6
  • Andrew Ingram  · 技术社区  · 15 年前

    在实现了一个推荐成功产品的算法之后,我现在正在寻找计算该算法初始输入数据的方法。

    我的目标是为每个用户有某种历史记录的产品计算一个分数。

    我目前正在收集的数据:

    • 用户订单历史记录
    • 匿名用户和注册用户的产品页面视图历史记录

    所有这些数据都是时间戳。

    我在找什么

    我在寻找一些建议,理想情况下,这个问题应该更多地被讨论,而不是仅仅针对一个“正确”的答案。

    • 我可以为用户收集的任何其他数据,这些数据可以直接表示对产品感兴趣
    • 将此数据转换为每个产品得分的算法/方程式

    我不想找的东西

    为了避免这个问题因为错误的答案而出轨,下面是我为每个用户提供这些数据后要做的事情:

    • 使用k-均值聚类算法生成多个用户集群(目前为21个),使用Pearsons系数生成距离分数。
    • 对于每个用户(按需),通过在集群中查找他们最相似和最不相似的用户,并重复任意深度来计算他们的相似用户图。
    • 根据用户图表中其他用户的偏好计算每个产品的得分
    • 对分数进行排序以返回建议列表

    基本上,我一次都不想知道该怎么做 输入数据(稍后我可能需要进一步的帮助,但这不是这个问题的重点),只是为了了解如何首先生成这个输入数据

    2 回复  |  直到 10 年前
        1
  •  2
  •   isomorphismes Marcin    13 年前

    这是一个回应的制作者:

    • 花在产品上的时间
    • 关于产品的评论的语义解释
    • 制作一个关于产品、品牌或产品类别的讨论页面,并用语义解释这些评论。
    • 如果他们共享产品页面(电子邮件、del.icio.us等)
    • 浏览器(移动可能会使他们在笔记本电脑上花费更少的时间,同时显示出极大的兴趣)和连接速度(影响AMT)。在页面上花费的时间)
    • Facebook简介相似性
    • 热图数据(例如la kissmetrics)

    你卖什么产品?这可能有助于我们更好地回答你。(因为这是一个古老的问题,所以我要同时向@andrew ingram和任何其他有相同问题并通过搜索找到此线索的人讲话。)

        2
  •  1
  •   nont    15 年前
    1. 您可以允许用户显式地陈述他们的偏好,就像Netflix允许用户分配星星一样。
    2. 你可以为他们买的所有东西指定一个正数,因为你说你确实有他们的购买历史。给他们没买的东西归零
    3. 你可以为他们买的东西做一些加权值,根据流行的东西进行调整。(如果几乎每个人都买了一件产品,它不会告诉你他们也买了一个人的情况)看 "term frequency–inverse document frequency"
    4. 您还可以为用户查看但未购买的商品指定一些较小的数值。
    推荐文章