【问题标题】:Item-to-item collaborative filtering, how to manage similarity matrix?逐项协同过滤,如何管理相似度矩阵?
【发布时间】:2017-07-21 14:37:40
【问题描述】:

我正在开发一个推荐引擎,我现在面临的一个问题是项目的相似度矩阵非常大。

我计算了 20,000 个项目的相似度矩阵,并将它们存储在一个二进制文件中,调整后的大小接近 1 GB。我觉得它太大了。

如果您有这么多项目,处理相似度矩阵的最佳方法是什么?

任何建议!

【问题讨论】:

  • 你能提供更多细节吗?文件的内容是什么?你的矩阵是什么样子的?

标签: recommendation-engine


【解决方案1】:

实际上相似度矩阵是关于对象与另一个对象的相似程度。每行由对象(行 id)的邻居组成,但您不需要存储所有邻居,例如仅存储 20 个邻居。使用 lil_matrix: from scipy.sparse import lil_matrix

【讨论】:

  • 后来我发现我根本不需要存储相似度矩阵,只需要在推荐的时候计算。计算并没有我想象的那么慢,因为它实际上需要计算整个矩阵的一小部分。
  • @rustohero 你知道吗,如果我在 csr_matrix 中的产品之间有相似之处,例如行 (product_id1, product_id2) 0.45 如何仅过滤与 product_id1 最相似的 x 个产品,而无需将矩阵转换为数组?
猜你喜欢
  • 1970-01-01
  • 2016-08-24
  • 2012-09-27
  • 2020-02-11
  • 1970-01-01
  • 2018-12-12
  • 1970-01-01
  • 2022-01-12
  • 2011-05-09
相关资源
最近更新 更多