哪种降维技术最适合BERT句子嵌入?

问题描述

我正在尝试将数百个文本文档聚类,以便每个聚类代表一个不同的主题。我不想使用主题建模(我知道我也可以做到),而是要遵循两步方法

  1. 使用Sentence-BERT(使用SentenceTransformer)创建文档嵌入
  2. 将嵌入内容放入群集算法

我知道我可以在步骤2中使用k-means,但我更喜欢使用软聚类算法,因为我的文档有时属于多个主题。因此,我想获得每个响应属于每个群集的概率。 我的嵌入有768个维,当实现软聚类算法(高斯混合模型)时,我意识到高维会引起问题。因此,我正在考虑使用降维技术(例如PCA)并将这些因素输入到聚类算法中。

但是,我对这种高维空间中的降维不是很熟悉,尤其是在NLP的环境中。任何人都可以在这里建议一个好的方法吗?

谢谢!

解决方法

我认为您应该将 UMAP 视为一种有效的暗淡。减少。 PCA 和 UMAP 都相对快速且易于使用。

UMAP 使用预定义的距离函数作为相似性度量。它试图保留低维空间中点之间的距离。这使得它非常适合 SentenceBERT 嵌入,因为该模型已内置 CosineLoss。

https://umap-learn.readthedocs.io