LSA 与 PCA(文档聚类)

机器算法验证 聚类 主成分分析 数据挖掘 svd 潜在语义分析
2022-02-04 08:03:03

我正在研究文档聚类中使用的各种技术,我想澄清一些关于 PCA(主成分分析)和 LSA(潜在语义分析)的疑问。

首先 - 它们之间有什么区别?我知道在 PCA 中,SVD 分解应用于术语协方差矩阵,而在 LSA 中它是术语文档矩阵。还有别的事吗?

第二 - 他们在文档聚类过程中的作用是什么?从我目前所读到的内容,我推断它们的目的是减少维度、减少噪声并将术语之间的关系合并到表示中。在执行 PCA 或 LSA 之后,将传统算法(如 k-means 或凝聚方法)应用于缩减的术语空间,并使用典型的相似性度量,如余弦距离。如果我错了,请纠正我。

第三 - 在应用 PCA/LSA 之前是否对 TF/IDF 术语向量进行归一化是否重要?在那之后它们应该再次标准化吗?

第四 - 假设我对 LSA/PCA 减少的术语空间进行了一些聚类。现在,我应该如何为结果集群分配标签?由于尺寸与实际文字不对应,这是一个相当困难的问题。我想到的唯一想法是使用原始术语向量为每个集群计算质心并选择具有最高权重的术语,但这听起来效率不高。这个问题有一些具体的解决方案吗?我什么也没找到。

我将非常感谢澄清这些问题。

3个回答
  1. PCA 和 LSA 都是使用 SVD 的分析。PCA 是一类通用的分析,原则上可以以多种方式应用于枚举文本语料库。相比之下,LSA 是一种非常明确指定的分析和减少文本的方法。两者都利用了可以从上下文中提取含义的想法。在 LSA 中,上下文是通过术语文档矩阵以数字形式提供的。在您提出的 PCA 中,通过提供术语协方差矩阵在数字中提供上下文(其生成的细节可能可以告诉您更多有关 PCA 和 LSA 之间关系的信息)。您可能想在这里查看更多详细信息。
  2. 你在这里基本上走上了正轨。使用它们的确切原因将取决于使用数据的人的上下文和目的。
  3. 答案可能取决于您正在使用的程序的实施。
  4. 仔细和伟大的艺术。大多数人认为这些语义模型的维度是不可解释的。请注意,您几乎可以肯定地期望存在不止一个基本维度。当因子分析中存在多个维度时,我们会旋转因子解以产生可解释的因子。但是,出于某种原因,这些模型通常不会这样做。您的方法听起来像是开始您的艺术的原则性方式......虽然我不确定维度之间的缩放是否足够相似以信任集群分析解决方案。如果您想玩弄意义,您还可以考虑一种更简单的方法,其中向量与特定单词有直接关系,例如HAL

LSI是在term-document矩阵上计算的,而PCA是在协方差矩阵上计算的,这意味着LSI试图找到最好的线性子空间来描述数据集,而PCA试图找到最好的并行线性子空间。

只是对罗素皮尔斯答案的一些扩展。

1)本质上LSA是应用于文本数据的PCA。SVD 用于 PCA 时,它不是应用于协方差矩阵,而是直接应用于特征样本矩阵,也就是 LSA 中的术语文档矩阵。不同之处在于 PCA 通常需要对数据进行特征标准化,而 LSA 则不需要。

Andrew Ng的精彩讲座说明了 PCA 和 LSA 之间的联系。

2/3)由于文档数据的长度不同,通常标准化大小是有帮助的。这里应该使用按样本归一化而不是按特征归一化。在实践中,我发现在 LSI 之前和之后进行标准化很有帮助。

如果聚类算法度量不依赖于幅度(比如余弦距离),则可以省略最后的归一化步骤。

4)它认为从集群中获取有意义的标签通常是一个困难的问题。有些人提取了最大化语料库和集群之间分布差异的术语/短语。另一种方法是使用带有预定义标签的半监督聚类。