协作过滤:为每个用户确定产品隐含分数的方法?

And*_*ram 6 data-mining collaborative-filtering

实现了一个算法来推荐产品取得了一些成功,我现在正在研究计算该算法的初始输入数据的方法.

我的目标是计算用户具有某种历史记录的每种产品的分数.

我目前收集的数据:

  • 用户订单历史记录
  • 匿名用户和注册用户的产品综合浏览量历史记录

所有这些数据都带有时间戳.

我正在寻找什么

我正在寻找一些建议,理想情况下,这个问题应该更多地用于讨论,而不是针对单个"正确"的答案.

  • 我可以为用户收集的任何其他数据,这些数据可以直接暗示对产品的兴趣
  • 用于将该数据转换为每个产品的分数的算法/等式

我不想要的

为了避免这个问题被错误的答案脱轨,一旦我为每个用户提供了这些数据,这就是我正在做的事情:

  • 使用k-means聚类算法生成大量用户聚类(目前为21个),使用皮尔逊系数进行距离评分
  • 为每个用户(按需)通过在其群集中查找其最相似和最不相似的用户并重复任意深度来计算他们的类似用户的图表.
  • 根据用户图表中其他用户的偏好计算每个产品的分数
  • 对分数进行排序以返回推荐列表

基本上,我不找就怎么做,一旦我的想法输入数据(稍后我可能会需要进一步的帮助,但它不是这个问题点),只是对如何生成此输入数据的想法第一名

iso*_*mes 2

这是一个干草的回应:

  • 查看产品所花费的时间
  • 对产品留下的评论的语义解释
  • 制作有关产品、品牌或产品类别的讨论页面并从语义上解释评论
  • 他们是否共享产品页面(电子邮件、del.icio.us 等)
  • 浏览器(与笔记本电脑相比,移动设备可能会让他们在页面上花费的时间更少,同时表现出极大的兴趣)和连接速度(影响在页面上花费的时间)
  • Facebook 个人资料相似度
  • 热图数据(例如 à la Kissmetrics)

你们销售什么类型的产品?这可能有助于我们更好地回答您。(因为这是一个老问题,所以我正在向 @Andrew Ingram 和任何其他有相同问题并通过搜索找到此线程的人提出问题。)