大于内存嵌入数据集的社区检测

Community detection for larger than memory embeddings dataset

我目前有一个文本嵌入数据集(768 维)。当前的记录数约为 100 万。我希望通过社区检测算法检测相关嵌入。对于小数据集,我已经可以用这个了:

https://github.com/UKPLab/sentence-transformers/blob/master/examples/applications/clustering/fast_clustering.py

它工作得很好,但是,随着数据集的增长超过内存,它并没有真正扩展。

这里的关键是我可以为社区匹配指定一个阈值。我已经能够找到扩展到大于内存的集群算法,但我总是必须提前指定固定数量的集群。我需要系统帮我检测簇数

我确定有 class 算法 - 希望 python 库 - 可以处理这种情况,但我无法找到它。有谁知道我可以使用的算法或解决方案吗?

这似乎足够小,你可以租一台更大的电脑。

然而,要回答这个问题,通常的做法是将数据聚类成适合内存的几个块(重叠或不重叠),然后对每个块应用更高质量的内存中聚类算法。余弦相似度的一种典型策略是按 SimHashes 聚类,但

  1. 那里有完整的文献;
  2. 如果您已经有了自己喜欢的可扩展聚类算法,可以使用它。