确定大型数据集的余弦相似度

原文标题Determining cosine similarity for large datasets

我目前正在使用超过 250 万张图像的数据集,其中我使用图像本身作为相互比较,用于基于内容的推荐引擎。

我使用以下代码使用一些预先计算的嵌入来计算余弦相似度。

cosine_similarity = 1-pairwise_distances(embeddings, metric='cosine')

但是我的问题是,目前我估计需要大约 11,000GB 的内存来创建这个相似度矩阵;

是否有任何替代方法可以在我的数据集中的每个数据点之间获取相似性度量,或者是否有其他方法可以完成整个过程?

原文链接:https://stackoverflow.com//questions/71665964/determining-cosine-similarity-for-large-datasets

回复

我来回复
  • lejlot的头像
    lejlot 评论

    你有 2,500,000 个条目。所以得到的矩阵有 6.25e+12 个条目。你需要问问自己你打算如何处理这些数据,只计算你需要的,然后存储就会随之而来。余弦距离的计算几乎是免费的(它实际上是一个点积)所以你总是可以“即时”做它,不需要预先计算,问题真的归结为实际时间/计算量。

    2年前 0条评论