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