二进制推荐算法

5

我目前正在为学校的一个任务做一些研究。我有两个数据流,一个是用户评级,另一个是网店搜索、点击和订单历史记录(二进制数据)。

我发现如果使用评级数据,协作过滤是最好的算法族。我找到并研究了以下算法:

基于内存的

  1. 基于用户

    • 皮尔逊相关系数
    • 约束的皮尔逊
    • 向量相似度(余弦)
    • 均方差
    • 加权皮尔逊
    • 相关性阈值
    • 最大邻居数
    • 通过相关性加权
    • Z-score标准化
  2. 基于项目

    • 调整余弦
    • 最大邻居数
  3. 相似度融合

基于模型的

  1. 基于回归
  2. 坡度一
  3. LSI / SVD
  4. 正则化SVD(rsvd / rsvd2 / nsvd2 / svd ++)
  5. 集成的邻居基础
  6. 集群平滑

现在我正在寻找一种使用二进制数据的方法,但我很难弄清楚是否可以使用这些算法中的二进制数据而不是评级数据,或者是否有其他算法族需要考虑?

提前道歉,由于我有阅读障碍并且不是母语写手,因此可能会有拼写错误。感谢marc_s的帮助。

1个回答

3
看看数据挖掘算法,例如关联规则挖掘(也称为市场篮子分析)。在推荐系统中遇到了一个棘手的问题:一元和二元数据很常见,但最好的个性化算法在处理它们时效果不佳。评级数据可以表示单个用户-项目对的偏好;例如,我给这部电影评了4颗星中的5颗星。但是对于二元数据,我们拥有最粗略的评级数据类型:我要么喜欢要么不喜欢某件事物,或者已经消费或未消费某些东西。注意不要混淆二元数据和一元数据:一元数据意味着您知道用户消费了某些东西(编码为1,类似于二元数据),但您不知道用户是否不喜欢或未消费某些东西(用NULL代替二元数据的0)。例如,您可能知道一个人查看了10个网页,但您不知道她如果知道其他页面可用会怎么想。那就是一元数据。您不能从NULL中推断出任何偏好信息。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接