我不了解算法级别的SVD。但我知道人们用它来缩小尺寸。我有两个共现矩阵(维度为 50,000 个单词乘以 50,000 个单词),它们存储有关任何单词一起使用次数的信息。两个矩阵以相同的方式构造(行和列彼此匹配)。
如果我执行 SVD 将它们的维度减少到 300,两个矩阵的新列是否仍然相互匹配并表示相同的语言结构?
奇异值分解是广义的特征分解。它接受任何 m 乘 n 的矩阵,并为其找到正交基。它会减小尺寸的原因是有一种特殊类型的 SVD,称为截断的 SVD。在线性代数中,你了解到有一种叫做矩阵秩的东西。
秩表示矩阵中线性独立向量的最大数量。SVD使用一种称为Gram-Schmidt的东西来获得这个正交基,这些基是(一种)线性独立的向量。
您正在谈论的共现矩阵使用的是NLP(自然语言处理)。在这里,它指示两个单词是否在特定上下文中一起出现。很明显,您不能将维度减小到某个点以上。SVD 的要点是从根本上以特定方式表示单词的出现。
它仍然会匹配他们的结构吗 - 是的,它会。但是,例如,假设矩阵的秩是 300,而你去 250。然后您将丢失信息。关于低秩矩阵近似有一个定理。它被称为埃卡特-杨-米尔斯基定理。
如果你低于这一点,你实际上会对语言结构的近似误差有限制。