协同过滤:如何确定每个用户的产品隐式分数?
-
12-09-2019 - |
题
在实现了推荐产品的算法并取得了一些成功之后,我现在正在寻找计算该算法的初始输入数据的方法。
我的目标是计算用户有某种历史记录的每个产品的分数。
我目前正在收集的数据:
- 用户历史订单
- 匿名用户和注册用户的产品浏览历史记录
所有这些数据都带有时间戳。
我在寻找什么
我正在寻找一些建议,理想情况下这个问题应该更多地进行讨论,而不是寻求单一的“正确”答案。
- 我可以为用户收集的任何可以直接暗示对产品感兴趣的附加数据
- 将这些数据转化为每个产品的分数的算法/方程
我不寻找什么
为了避免这个问题因错误的答案而脱轨,一旦我获得了每个用户的数据,我就会做以下事情:
- 使用k-means聚类算法生成多个用户聚类(目前为21个),使用皮尔逊系数作为距离得分
- 对于每个用户(按需),通过在其集群内查找最相似和最不相似的用户,并重复任意深度来计算相似用户的图表。
- 根据用户图表中其他用户的偏好计算每个产品的分数
- 对分数进行排序以返回推荐列表
基本上,我并不是在寻找一旦我做什么的想法 有 输入数据(稍后我可能需要进一步的帮助,但这不是这个问题的重点),只是为了了解如何首先生成此输入数据
解决方案
这是一个干草的回应:
- 查看产品所花费的时间
- 对产品留下的评论的语义解释
- 制作有关产品、品牌或产品类别的讨论页面并从语义上解释评论
- 他们是否共享产品页面(电子邮件、del.icio.us 等)
- 浏览器(与笔记本电脑相比,移动设备可能会让他们在页面上花费的时间更少,同时表现出极大的兴趣)和连接速度(影响 amt.在页面上花费的时间)
- Facebook 个人资料相似度
- 热图数据(例如à la Kissmetrics)
你们销售什么类型的产品?这可能有助于我们更好地回答您。(因为这是一个老问题,所以我正在向 @Andrew Ingram 和任何其他有相同问题并通过搜索找到此线程的人提出问题。)
其他提示
- 您可以允许用户明确说明他们的偏好,就像 Netflix 允许用户指定星级一样。
- 您可以为他们购买的所有商品分配一个正数值,因为您说您确实有他们的购买历史记录。为他们没有买的东西分配零
- 你可以对他们购买的东西进行某种加权,并根据流行情况进行调整。(如果几乎每个人都购买了某种产品,那么它并不能告诉您有关他们也购买了该产品的人的更多信息)请参阅 “词频-逆文档频率”
- 您还可以为用户查看但未购买的商品分配一些较小的数值。
不隶属于 StackOverflow