13
矩阵分解及隐性语义索引 在第 6 章中我们介绍了词项-文档矩阵的概念,即由 M 个词项和 N 篇文档组成的一个 M×N 的权重矩阵 C,矩阵的每行代表一个词项,每列代表一篇文档。即使对于一个中等规模的文档 集来说,词项文档矩阵 C 可能都会有上万的行和列。在 18.1.1 节中,我们首先给出了线性代数 中的一类所谓矩阵分解(matrix decomposition)的运算。18.2 节中,我们将使用矩阵分解的某 个具体形式来建立词项文档矩阵的低秩(low-rank)逼近矩阵。18.3 节考察了该低秩逼近矩阵 在索引和检索文档时的应用,这也就是人们常常提到的 LSILatent Semantic Indexing,隐性语 义索引)技术。尽管 LSI IR 目前的评分和排名当中并不是一个非常重要的技术,但是它在某 些领域的文档聚类当中仍然充满生命力(参见 16.6 节)。如何理解并发挥 LSI 的潜力仍然是一 个活跃的研究领域。 不需要复习基本线性代数知识的读者可以直接跳过 18.1 节,当然我们还是建议阅读一下例 18-1,因为它强调了后面要用到的特征值的一些重要性质。 18.1 线性代数基础 本节当中我们简单地回顾一些必要的线性代数背景知识。令 C 为一个 M×N 的词项-文档矩 阵,其中的每个元素都是非负实数。矩阵的秩(rank)是线性无关的行(或列)的数目,因此 rank(C)min{M,N}。一个非对角线上元素均为零的 r×r 方阵被称为对角阵(diagonal matrix), 它的秩等于其对角线上非零元素的个数。如果上述对角阵上的 r 个元素都是 1,则称之为 r 维单 位矩阵(identity matrix),记为 I r 对于 M×M 的方阵 C 及非零向量 x r ,有 Cx x λ = r r 18-1满足上式的 λ 被称为矩阵 C 的特征值(eigenvalues)。对于特征值 λ,满足等式(18-1)的 M 维非零向量 x r 称为其右特征向量(right eigenvector)。对应最大特征值的特征向量被称为主特 征向量(principal eigenvector)。同样,矩阵 C 的左特征向量(left eigenvectors)是满足下列等 式的 M 维向量 yT T yC y λ = r r 18-2C 的非零特征值的个数最多是 rank(C)等式(18-1)可以改写成 ) 0 M C I x λ = r ,这个等式称为特征方程(characteristic equation), 18

18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

  • Upload
    others

  • View
    41

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

矩阵分解及隐性语义索引

在第 6 章中我们介绍了词项-文档矩阵的概念,即由 M 个词项和 N 篇文档组成的一个 M×N

的权重矩阵 C,矩阵的每行代表一个词项,每列代表一篇文档。即使对于一个中等规模的文档集来说,词项—文档矩阵 C 可能都会有上万的行和列。在 18.1.1 节中,我们首先给出了线性代数中的一类所谓矩阵分解(matrix decomposition)的运算。18.2 节中,我们将使用矩阵分解的某个具体形式来建立词项—文档矩阵的低秩(low-rank)逼近矩阵。18.3 节考察了该低秩逼近矩阵在索引和检索文档时的应用,这也就是人们常常提到的 LSI(Latent Semantic Indexing,隐性语义索引)技术。尽管 LSI 在 IR 目前的评分和排名当中并不是一个非常重要的技术,但是它在某些领域的文档聚类当中仍然充满生命力(参见 16.6 节)。如何理解并发挥 LSI 的潜力仍然是一个活跃的研究领域。

不需要复习基本线性代数知识的读者可以直接跳过 18.1 节,当然我们还是建议阅读一下例子 18-1,因为它强调了后面要用到的特征值的一些重要性质。

18.1 线性代数基础

本节当中我们简单地回顾一些必要的线性代数背景知识。令 C 为一个 M×N 的词项-文档矩阵,其中的每个元素都是非负实数。矩阵的秩(rank)是线性无关的行(或列)的数目,因此有 rank(C)≤ min{M,N}。一个非对角线上元素均为零的 r×r 方阵被称为对角阵(diagonal matrix),它的秩等于其对角线上非零元素的个数。如果上述对角阵上的 r 个元素都是 1,则称之为 r 维单位矩阵(identity matrix),记为 Ir。

对于 M×M 的方阵 C 及非零向量 xr,有

Cx xλ=r r 。 (18-1)

满足上式的 λ被称为矩阵 C 的特征值(eigenvalues)。对于特征值 λ,满足等式(18-1)的M 维非零向量 xr称为其右特征向量(right eigenvector)。对应 大特征值的特征向量被称为主特征向量(principal eigenvector)。同样,矩阵 C 的左特征向量(left eigenvectors)是满足下列等式的 M 维向量 y:

T Ty C yλ=r r

。 (18-2)

C 的非零特征值的个数 多是 rank(C)。

等式(18-1)可以改写成 ) 0MC I xλ− =r

( ,这个等式称为特征方程(characteristic equation),

第 18 章

Page 2: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

278 第 18 章 矩阵分解及隐性语义索引

可以通过求解这个方程来得到矩阵的特征值。因此,C 的特征值也就是方程 ( ) | 0MC Iλ− =| 的解,

其中|S|表示的是方阵 S 的行列式(determinant)。 ( ) | 0MC Iλ− =| 是一个以 λ为变量的 M 阶多项式

方程,因此它 多有 M 个根,这些根也就是矩阵 C 的特征值。即使 C 中所有元素都是实数,那么这些特征值通常也有可能是复数。

下面我们将进一步考察特征值和特征向量的更多性质,从而为 18.2节的 SVD(Singular Value

Decomposition,奇异值分解)建立起核心思想。首先,我们考察矩阵-向量乘法和特征值之间的关系。

例 18-1 考虑矩阵 30 0 00 20 00 0 1

S⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠

很明显,矩阵的秩是 3,并且具有 3 个非零特征值 λ1=30、λ2=20 及 λ3=1,它们对应的特征向量分别是:

1 2 3

1 0 00 , 1 , 00 0 1

x x x⎛ ⎞ ⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟ ⎜ ⎟= = =⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎜ ⎟ ⎜ ⎟ ⎜ ⎟⎝ ⎠ ⎝ ⎠ ⎝ ⎠

r r r 。

对每个特征向量而言,它与 s 相乘相当于用单位矩阵的某个倍数去乘以该特征向量,对于不同的特征向量,具体的倍数也有所不同。现在我们考虑任意一个向量,比如

246

v⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠

r ,我们总是可以将 vr 表示成 S 的三个特征向量的线性组合,对于本例有:

1 2 3

24 2 4 66

v x x x⎛ ⎞⎜ ⎟= = + +⎜ ⎟⎜ ⎟⎝ ⎠

r r r r 。

假定用 S 乘以 vr ,则有:

1 2 3

1 2 3

1 1 2 2 3 3

(2 4 6 ) 2 4 6 2 4 6

Sv S x x xSx Sx Sx

x x xλ λ λ

= + +

= + += + +

r r r r

r r r

r r r

1 2 360 80 6x x x= + +r r r (18-3)

上例表明,即使 vr 是一个任意的向量,用 S 去乘以它的效果都取决于 S 的特征值及特征向

量。另外,从公式(18-3)看一个非常直观的结论就是,相对而言,S vr 的大小更不受 S 的小特征值影响。上例中,由于 λ3=1,所以(18-3)式中 右边的加数的影响较小。实际上,如果完

Page 3: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.1 线性代数基础 279

全忽略(18-3)式的 右边对应于 λ3=1 的特征向量,那么 S vr 的结果就是60800

⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

而不是正确结果

60806

⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

,但是不论采用哪一种指标(比如差向量的长度)来计算,这两个向量都相对比较接近。

这也意味着,对于矩阵-向量的乘积来说,较小的特征值及其特征向量的影响也较小。我们将带着这种直观理解来研究 18.2 节中的矩阵分解和低秩逼近问题时我们也带着这种直观理解。在这之前,我们来考察某些特殊形式的矩阵的特征向量和特征值,这些才是我们特别感兴趣的内容。

对于对称(symmetric)矩阵 S,不同特征值所对应的特征向量之间是正交的(orthogonal)。另外,如果 S 是实对称矩阵,那么所有特征值也都是实数。

例 18-2 考虑如下实对称矩阵:

2 11 2

S⎛ ⎞

= ⎜ ⎟⎝ ⎠

。 (18-4)

将上述矩阵代入特征方程 | 0S Iλ− =| 可以得到二次方程 (2−λ)2−1=0,对这个方程求

解可以得到两个特征值 3 和 1,它们对应的特征向量11

⎛ ⎞⎜ ⎟⎝ ⎠

和11

⎛ ⎞⎜ ⎟−⎝ ⎠

是正交的。

18.1.1 矩阵分解

本节将介绍将方阵分解成多个矩阵因子乘积的方法,并且这几个矩阵因子都可以从方阵的特征向量导出。这个过程我们称之为矩阵分解(matrix decomposition)。18.3 节中将要讨论的文本分析技术依赖于矩阵分解技术,那里的矩阵分解技术与本节所介绍的技术类似。所不同的是,在 18.3 节中我们主要考虑的是非方阵形式的矩阵分解。本节当中的方阵分解非常简单,数学上也充分严谨,它们能够帮助读者理解矩阵分解的过程。18.2 节介绍的更复杂的矩阵分解技术的数学推导过程不在本书范围之内。

下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理 18-1,它给出了实方阵的基本因子分解方法。而第二个,也就是定理 18-2 给出了实对称方阵的分解方法,这是后面奇异值分解定理(定理 18-3)的基础。

定理 18-1(矩阵对角化定理) 令 S 为 M×M 的实方阵,并且它有 M 个线性无关的特征向量,那么存在一个特征分解:

1S U U −= Λ 。 (18-5)

Page 4: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

280 第 18 章 矩阵分解及隐性语义索引

其中,U 的每一列都是 S 的特征向量,Λ 是按照特征值从大到小排列的对角阵,即:

1

21,

... i i

M

λλ

λ λ

λ

+

⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

H 。 (18-6)

如果特征值都不相同,那么该分解是唯一的。

为了理解定理 18-1,我们将 U 记为 S 的特征向量的一个表示:

1 2( ... ) MU u u u=r r r

。 (18-7)

于是,我们有:

1 2

1 1 2 2

1

21 2

( ) ( )

( )...

M

M M

M

M

SU S u u uu u u

u u u

λ λ λλ

λ

λ

==

⎛ ⎞⎜ ⎟⎜ ⎟=⎜ ⎟⎜ ⎟⎝ ⎠

r r rL

r r rL

r r rL 。

因此,我们得到 SU U= Λ 或者 1S U U −= Λ 。

我们接下来将介绍另一个紧密相关的分解方法,它将对称方阵分解成其特征向量导出的矩阵的乘积。这将为我们后面介绍的文本分析的主要工具—SVD 技术奠定基础。

定理 18-2(对称对角化定理) 假定 S 是一个 M×M 的实对称方阵,并且它有 M 个线性无关的特征向量,那么存在如下一个对称对角化分解:

TS Q Q= Λ 。 (18-8)

其中,Q 的每一列都是 S 的互相正交且归一化(单位长度)的特征向量,Λ 是对角矩阵,其每个对角线上的值都对应 S 的一个特征值。另外,由于 Q 是实矩阵,所以有: 1 TQ Q− = 。

我们将基于该定理来建立词项-文档矩阵的低秩逼近矩阵。

习题 18-1 如下 3 × 3 对角矩阵的秩是多少?

1 1 00 1 11 2 1

⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

习题 18-2 证明 λ=2 是如下矩阵的特征值,并求出相应的特征向量:

6 24 0

C−⎛ ⎞

= ⎜ ⎟⎝ ⎠

习题 18-3 计算式(18-4)中 2×2 矩阵的唯一的特征分解结果。

Page 5: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.2 词项—文档矩阵及 SVD 281

18.2 词项—文档矩阵及 SVD

迄今为止我们介绍的分解都是基于方阵,然而,我们感兴趣的是 M×N 的词项—文档矩阵 C,如果排除极端罕见的情况,那么我们有 M≠N。另外,C 基本上也不可能是对称矩阵。为此,我们先给出对称对角化分解的一个被称为 SVD 的扩展形式,然后在 18.3 节中说明如何将它用于构建 C 的近似矩阵。SVD 的完整数学推导超出了本书的范围,这里我们按照定理 18-3 的陈述将SVD 与 18.1.1 节的对称对角化分解关联起来。给定矩阵 C,U 是一个 M×M 的矩阵,其每一列是矩阵 CCT 的正交特征向量,而 N×N 矩阵 V 的每一列都是矩阵 CTC 的正交特征向量。这里 CT

是 C 的转置矩阵。

定理 18-3 令 r 是 M×N 矩阵 C 的秩,那么 C 存在如下形式的 SVD(参见图 18-1):

TC U V= Σ 。 (18-9)

其中

1.CCT 的特征值 λ1, λ2,…, λr等于 CTC 的特征值;

2.对于 1≤ i ≤ r,令 i iσ λ= ,并且 λi ≥ λi+1。M × N 的矩阵Σ 满足Σ ii=σi,其中 1≤ i≤ r,

而Σ 中其他元素均为 0。

图 18-1 SVD 的示意图。该示意图给出了两种情况:上图中, M × N 的矩阵 C 满足 M > N。而下图中 M < N

其中,σi 就是矩阵 C 的奇异值(singular value)。了解定理 18-3 和 18-2 之间的关系是非常有益的,下面我们将介绍这一点。而对于定理 18-3 我们不加以证明,正如前面提到的那样,这并不在本书范围之内。

将(18-9)式与其转置相乘,有:

T T T T T TCC U V V U U U= Σ Σ = ΣΣ 。 (18-10)

在(18-10)式中,左边是一个实对称方阵,而 右边正好是定理 18-2 给出的对称对角化分解形式。那么左边的 CCT 代表什么呢?它实际上是一个方阵,其每行和每列都对应 M 个词项中的一个。矩阵中的第 i 行、第 j 列的元素实际上是第 i 个词项与第 j 个词项基于文档共现次数的一个重合度计算指标。其精确的数学含义依赖于构建 C 所使用的词项权重方法。假定 C 是第

Page 6: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

282 第 18 章 矩阵分解及隐性语义索引

1 章图 1-1 所示的词项-文档出现矩阵,那么 CCT 的第 i 行、第 j 列的元素是词项 i 和词项 j 共现的文档数目。

当记录 SVD 分解的数值结果时,由于其他部分都是零,常规做法是将 Σ表示成一个 r×r 的对角方阵,所有奇异值排列在对角线上。同样,对应于 Σ中被去掉的行,U 中的 右 M-r 列也被去掉。对应于 Σ中被去掉的列,V 中的 右 N-r 列也被去掉。这种 SVD 的书写形式有时被称为简化的 SVD(reduced SVD)或截断的 SVD(truncated SVD),这个概念我们还会在习题 18-9

中遇到。下面,所有的例子和习题都将使用这种形式。

例 18-3 这里给出一个秩为 2 的 4×2 矩阵的 SVD 例子,奇异值Σ 11=2.236,Σ 22=1。

1 1 0.632 0.0000 1 0.316 0.707 2.236 0.000 0.707 0.7071 0 0.316 0.707 0.000 1.000 0.707 0.7071 1 0.632 0.000

C

− −⎛ ⎞ ⎛ ⎞⎜ ⎟ ⎜ ⎟− −⎛ ⎞⎛ ⎞⎜ ⎟ ⎜ ⎟= = ⎜ ⎟⎜ ⎟⎜ ⎟ ⎜ ⎟− − − −⎝ ⎠⎝ ⎠⎜ ⎟ ⎜ ⎟

−⎝ ⎠ ⎝

− −− − − −− −

− − − ⎠

。 (18-11)

同 18.1.1 节的矩阵分解定义一样,矩阵的 SVD 分解可以通过很多算法来实现,其中大部分都有可公开使用的软件包,在 18.5 节给出了一些参考文献材料。

习题 18-4 令

1 10 11 0

C⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠

。 (18-12)

为某个文档集上的词项-文档出现矩阵,计算词项的共现矩阵 CCT。当 C 是一个词项-文档出现矩阵时,CCT 对角线上的元素是什么?

习题 18-5 验证公式(18-12)所示矩阵的 SVD 结果是:

0.816 0.000

0.408 0.7070.408 0.707

U−⎛ ⎞

⎜ ⎟= − −⎜ ⎟⎜ ⎟−⎝ ⎠

, 1.732 0.0000.000 1.000

⎛ ⎞Σ = ⎜ ⎟

⎝ ⎠,

0.707 0.7070.707 0.707

TV− −⎛ ⎞

= ⎜ ⎟−⎝ ⎠。 (18-13)

并验证定理 18-3 给出的所有性质。

习题 18-6 假定 C 是词项-文档出现矩阵,那么 CTC 的元素的含义是什么?

习题 18-7 令

0 2 10 3 02 1 0

C⎛ ⎞⎜ ⎟= ⎜ ⎟⎜ ⎟⎝ ⎠

。 (18-14)

上式为一个词项-文档矩阵,其中每个元素都是词项频率,因此词项 1 在文档 2 中出现 2 次,而在文档 3 中出现 1 次。计算 CCT,并找出两个词项的 高词频都出现在同一文档时所对应的元素。

Page 7: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.3 低秩逼近 283

18.3 低秩逼近

接下来我们介绍一个看似与 IR 无关的矩阵逼近问题,我们可以利用 SVD 对该问题求解,然后将之应用到 IR 领域。

给定 M × N 的矩阵 C 及正整数 k,我们想寻找一个秩不高于 k 的 M × N 的矩阵 Ck,使得两个矩阵的差 X = C − Ck 的 F−范数(Frobenius Norm,弗罗宾尼其范数) 小,即下式 小:

2

1 1|| ||

M N

F i ji j

X X= =

= ∑∑ 。 (18-15)

因此,X 的 F−范数度量了 Ck 和 C 之间的差异程度。我们的目标是找到一个矩阵 Ck,会使得这种差异极小化,同时又要限制 Ck 的秩不高于 k。如果 r 是 C 的秩,那么很显然 Cr=C,此时矩阵差值的干一范数为 0。当 k 比 r 小得多时,我们称 Ck 为低秩逼近(low-rank approximation)矩阵。

SVD 可以用于解决矩阵低秩逼近问题,接着我们将其应用到词项-文档矩阵的逼近问题上来。为此,我们要进行如下三步操作:

(1) 给定 C,按照公式(18-9)构造 SVD 分解,因此 C = UΣVT;

(2) 把 Σ中对角线上 r-k 个 小奇异值置为 0,从而得到 Σk;

(3) 计算 Ck = UΣkVT 作为 C 的逼近。

由于 Σk 多包含 k 个非零元素,所以 Ck 的秩不高于 k。然后,我们回顾一下例 18-1 的直观性结果,即小特征值对于矩阵乘法的影响也小。因此,将这些小特征值替换成 0 将不会对 后的乘积有实质性影响,也就是说该乘积接近 C。接下来 Eckart 及 Young 给出的定理将会告诉我们,实际上,上述过程产生了一个秩为 k 的矩阵,它的 F−范数误差 小。

定理 18-4

2

| ( ) 1min || || || ||

r

F k F iZ rank Z k i kC Z C C σ

== +

− = − = ∑ 。 (18-16)

由于奇异值按照降序排列,即σ1≥ σ2≥ …,因此,我们从上述定理可以知道Ck是C的秩为k

的 佳逼近,其中误差的大小(采用C−Ck的F−范数来度量)等于 2

1

r

ii k

σ= +∑ ①。所以,k越大,该

误差也越小。当k=r时,由于Σr=Σ,所以此时的误差为 0。给定 r < M, N的话,有σr+1=0,因此,Cr=C。

为了深入理解为什么从 Σ 去掉 小的 r−k 个奇异值的过程能够产生低误差的 k −秩逼近,下面我们考察一下 Ck 的形式:

Tk kC U V= Σ (18-17)

① 原文为σk+1,有误。——译者注

Page 8: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

284 第 18 章 矩阵分解及隐性语义索引

1 0 0 0 00 0 0 00 0 0 00 0 0 0 00 0 0 0

TkU V

σ

σ

⎛ ⎞⎜ ⎟⎜ ⎟⎜ ⎟=⎜ ⎟⎜ ⎟⎜ ⎟⎝ ⎠

L

L

(18-18)

1

kT

i i ii

u vσ=

= ∑ r r 。 (18-19)

其中, iur 和 ivr 分别是 U 和 V 的第 i 列。因此, Ti iu vr r 是一个 1-秩矩阵,于是我们将 Ck 表示成 k

个 1-秩矩阵的加权和,每个矩阵的权重是一个奇异值。由于 σ1≥ σ2≥ …,所以当 i 增加时,1-

秩矩阵 Ti iu vr r 的权重也随之减小。

习题 18-8 利用(18-13)式所示的 SVD 分解,计算公式(18-12)中矩阵 C 的 1-秩逼近 C1,并

给出该逼近下的 F−范数误差值。

习题 18-9 考虑习题 18-8 中计算结果。在图 18-2 中,我们注意到 1-秩逼近情况下 σ1 是个标量。令 U1 表示 U 的第一列,V1 表示 V 的第一列。试证明 C 的 1-秩逼近可以写成 U1σ1V1

T = σ1U1V1T。

图 18-2 利用 SVD 的低秩逼近示意图。虚线框内给出的是受小奇异值影响的可以去除的矩阵元素

习题 18-10 习题 18-9 可以推广到 k-秩逼近情况。令 U'k 和 V'k 分别表示保留 U 和 V 前 k 列后得到的矩阵,那么 U'k 是一个 M × k 矩阵,而 V'kT 是个 k × N 矩阵。因此,我们有

Tk k k kC U V ′′ ′ ′= ∑ 。 (18-20)

其中 Σ'k 是 Σk 的一个 k × k 的子方阵,其对角线上的奇异值是 σ1, σ2, …σk。利用(18-20)的 大好处是可以去掉 U 和 V 中很多冗余的零列向量,从而可以明显地减少那些不影响低秩逼近结果的乘法计算。SVD 的这个版本有时也被称为简化的 SVD 或者截断的 SVD,它在计算低秩逼近时更简单。试对例 18-3 中的矩阵 C,求出 Σ2 和 Σ'2。

18.4 LSI

下面我们来介绍如何利用SVD分解来找到词项-文档矩阵C的某个低秩逼近,在这个低秩逼近下能够为文档集中的每篇文档产生一个新的表示。同样,查询也可以映射到这个低秩表示空间,从而可以基于新的表示来进行查询和文档的相似度计算。这个过程被称为LSI①。

① 这个术语也有人译成潜语义索引/标引、潜在语义索引/标引、潜性语义索引/标引、隐含语义索引/标引等。LSI

Page 9: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.4 LSI 285

首先,我们来介绍引入 LSI 的目的所在。回顾一下在第 6 章中介绍的将查询和文档均表示成向量的向量空间表示方法。这种表示的优点包括:可以将查询和文档转换成同一空间下的向量,可以基于余弦相似度进行评分计算,能够对不同的词项赋予不同的权重,除了文档检索之外还可以推广到诸如聚类和分类等其他领域,等等。但是,向量空间表示方法没有能力处理自然语言中的两个经典问题:一义多词(synonymy)和一词多义(polysemy)问题。一义多词指的是不同的词(比如 car 和 automobile)具有相同的含义。向量空间表示不能捕捉诸如 car 和automobile 这类同义词之间的关系,而是将它们分别表示成独立的一维。因此,计算查询 qr(如car)和文档 d

r(同时包含 car 和 automobile)的相似度 q d⋅

rr 时,就会低估了用户所期望的相似度。而一词多义指的是某个词项(如 charge)具有多个含义,因此在计算相似度 q d⋅

rr 时,就会高估了用户所期望的相似度。一个很自然的问题就是,能否利用词项的共现情况(比如,charge是和 steed 还是 electron 在某篇文档中共现),来获得词项的隐性语义关联从而减轻这些问题的影响?

即使对一个中等规模的文档集来说,词项-文档矩阵 C 也可能有成千上万个行和列,它的秩数目大概也是这个数量级。在 LSI 中,我们使用 SVD 分解来构造 C 的一个低秩逼近 Ck,其中 k

远小于矩阵 C 原始的秩。在本节后面所引用的一些研究工作当中,实验时 k 的取值往往在几百以内。这样,我们就可以将词项—文档矩阵中每行和每列(分别对应每个词项和每篇文档)映射到一个 k 维空间,为 CCT 和 CTC 的 k 个主特征向量(对应 k 个 大的特征值)可以定义该空间。需要注意的是,不管 k 取值如何,矩阵 Ck 仍然是一个 M × N 的矩阵。

接下来,和原始空间一样,我们利用新的 k-维空间的 LSI 表示来计算向量的相似度。向量 qr

可以通过下式变换到 LSI 空间:

1 Tk k kq U q−= ∑r r。 (18-21)

现在我们利用第 6 章介绍的余弦相似度来计算查询和文档、文档之间或者查询之间的相似度。我们注意到,(18-21)式中的 qr并不一定要求是查询,它可以是词项空间中的一个任意向

量。这也意味着,如果我们有某个文档集的 LSI 表示,那么一篇不属于该文档集的新文档就可以通过(18-21)式转换成 LSI 表示。这样就允许将文档增量式地加入到 LSI 表示当中。当然,这种增量式的加入过程并不能体现新加入文档中的词项的共现关系(有时甚至忽略这些文档所包含的新词项)。因此,当文档被不断加入时,LSI 表示的质量会有所降低, 终必须要对 LSI

表示进行重新计算。

Ck 到 C 的逼近性使得我们希望仍然可以保留原有的余弦相似度的相对大小:如果在原始空间中查询和文档相近,那么在新的 k 维空间中它们仍然比较接近。但是这本身并不是十分有趣,特别是当原始的稀疏向量 qr转换成低维空间中的密集向量 kqr 时,新空间下的计算开销会高于原

始空间。

的另外一个名称是(latent semantic analysis,简称 LSA。)——译者注

Page 10: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

286 第 18 章 矩阵分解及隐性语义索引

例 18-4 考虑如下词项—文档矩阵 C =

利用 SVD 分解,可以将其分解生成三个矩阵的乘积。首先,矩阵 U 为

当在词项—文档矩阵上使用 SVD 分解时,得到的矩阵 U 被称为 SVD 词项矩阵 (SVD

term matrix)。奇异值矩阵Σ =

后,我们得到 VT,在词项—文档矩阵进行 SVD 分解的情况下,它被称为 SVD 文档

矩阵(SVD document matrix)。

去掉Σ 中除两个 大值之外的奇异值,我们有 Σ2=

基于该矩阵,可以计算 C2=

hazy
删划线
错了,应该是Σ(2)*VT(2)=
Page 11: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.4 LSI 287

需要注意的是,该低秩矩阵可能会包含负值,这一点和原始矩阵 C 是不同的。

考察上例中的矩阵 Σ2 及 C2 就会发现,每个矩阵的 后三行都是零。这表示,公式(18-18)

中的 SVD 分解结果 UΣVT 只需要保留 Σ2 和 VT 的两行即可。于是,将这些矩阵表示成其截断矩阵 Σ'2 和(V’)T。此时,截断 SVD 分解中的文档矩阵(V')T 为

图 18-3 给出了(V’)T 中文档向量在二维空间下的示意图,需要指出的是,相对于矩阵 C 而言,

C2 更密集。

图 18-3 18-4 示例中文档简化成(V’)T 中 2 维向量后的示意图

一般来说,可以将求 C 的低秩逼近看成是一个约束优化问题(constrained optimization

problem):在 Ck 的秩 多为 k 的条件下,从 C 出发寻找词项和文档的一个表示 Ck,使得 C−Ck

的 F−范数误差值 小。当将词项/文档表示到 k 维空间时,SVD 应该将共现上相似的词项合在一起。这个直觉也意味着,检索的质量不仅不太会受降维的影响,而且实际上有可能会提高。

文献 Dumais(1993)和 Dumais(1995)基于普遍所使用的 Lanczos 算法来计算 SVD 分解,并在 TREC 语料和任务上对 LSI 进行了一系列实验。在实验当时(20 世纪 90 年代早期),数万篇文档上的 LSI 计算在单机上大约需要一整天。这些实验也达到或超过了当时 TREC 参加者的中游水平。在 20%左右的 TREC 主题中,他们的系统得分 高,在平均水平上使用大约 350 维

hazy
附注
这就是每个文档K维空间的表示形式
hazy
删划线
Page 12: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

288 第 18 章 矩阵分解及隐性语义索引

的 LSI 也比常规的向量空间方法稍高。下面列出了 早从他们工作中得到的结论,而这些结论在后续的其他实验中也得到了验证。

SVD 的计算开销很大,在撰写本书之际,还没听说过有成功分解超过一百万篇文档的实验。这也是一个阻碍 LSI 推广的主要障碍。一个解决这个障碍的方法是对文档集随机抽样然后基于抽取出的样本子集建立 LSI 表示,剩余的其他文档可以基于公式(18-21)进行转换。

如果减低 k 值,那么如预期一样,召回率将会提高。

令人奇怪的是,当 k 取几百之内的数目时,某些查询的正确率实际上也会得到提高。这也意味着,对于合适的 k 值,LSI 能部分解决一义多词的问题。

当查询和文档的重合度很低时,LSI 的效果 好。

上述实验中也记录了一些 LSI 的失效模式,在这些模式下一些 LSI 不如更传统的索引和相似度计算方法。 值得一提(或许是很明显)的是,LSI 仍然延续了向量空间检索的两个缺点:无法表示否定(比如寻找包含 german 但同时不包含 shepherd 的文档)和无法完成布尔查询条件。

如果将简化后的空间中的每一维都解释成一个簇,而每篇文档在该维上的(相似度得分)值看成是到这个簇的隶属度,那么就可以把 LSI 看成软聚类(soft clustering)的一种。

习题 18-11 假定有一个文档集合,其中每篇文档可以是英文或者是西班牙文。整个文档集如图 18-4

所示。图 18-5 给出了与图 18-4 相关的英语和西班牙语的术语表。当然,该术语表只用于帮助理解,对检索系统来说是不可见的。

图 18-4 习题 18-11 中的文档 图 18-5 习题 18-11 中的术语表

(1) 构造该文档集的词项-文档矩阵 C。为简单起见,只使用原始词频而不是归一化的 tf-idf 权重。

请务必清晰标出矩阵的每一维。

(2) 写出矩阵 U2、Σ'2 及 V2,并推出 2-秩逼近矩阵 C2。

(3) 简述矩阵 CTC 的元素(i,j)代表的意义。

(4) 简述矩阵 C2TC2 的元素(i,j)所代表的意义,解释它为什么与 CTC 中的元素(i,j)不同。

Page 13: 18 · 18.2 节介绍的更复杂的矩阵分解技 术的数学推导过程不在本书范围之内。 下面我们先给出将方阵分解成特殊矩阵乘积的两个定理,第一个是定理18-1,它给出了实

18.5 参考文献及补充读物 289

18.5 参考文献及补充读物

Strang(1986)给出了一篇相当出色的综述,该综述包含了SVD在内的矩阵分解。定理 18-4

的工作归功于Eckart 和 Young(1936)。将词项-文档矩阵的低秩逼近与IR进行关联的工作来自Deerwester 等人(1990),后来的相关结果的综述参见Berry 等人(1995)。Dumais(1993)及 Dumais

(1995)介绍了他们在TREC上的实验,其结果表明,至少在某些基准测试上LSI所产生的结果的正 确 率 和 召 回 率 会 高 于 常 规 的 向 量 空 间 检 索 方 法 。 www.cs.utk.edu/˜berry/lsi++/ 及http://lsi.argreenhouse.com/lsi/LSIpapers.html 网站给出了有关LSI文献及软件的详细链接。Schütze

和 Silverstein(1997)评估了在高效K-均值聚类(参考 16.4 节)中LSI及质心截断表示的性能。Bast 和 Majumdar(2005)详细讨论了LSI中简化空间的维度k所承担的角色,并考察了k值取不同水平时不同词项对之间结合的情况。Berry 和 Young(1995)及Littman 等人(1998)将LSI

应用到跨语言检索 ①(cross-language information retrieval)中。LSI(更通常的情况下被称为LSA)已经应用到计算机科学的很多其他领域,并涵盖了从内存建模(memory modeling)到计算机视觉的诸多内容。

Hofmann(1999a, 1999b)给出了 LSI 基本技术的一个初始概率扩展方法。一个更令人满意的用于降维的概率隐性变量模型是 LDA(Latent Dirichlet Allocation)模型(Blei 等人 2003),它是个生成模型并能够给训练集外的文档赋予概率。该模型被 Rosen-Zvi 等人(2004)扩展为一个层次聚类算法。Wei 和 Croft(2006)第一次给出了在大规模情况下的 LDA 评价,发现它的性能要明显高于 12.2 节中提到的查询似然模型,但是不如 12.4 节中介绍的相关性模型,然而相关性模型需要对每个查询进行额外的处理,这一点上 LDA 却不需要。Teh 等人(2006)对LDA 进行了进一步推广,提出了 HDP(Hierarchical Dirichlet processes)过程,它不仅允许在隐性主题的一个无穷混合上抽出一个组(对我们来说,就是一篇文档),而且还允许这些主题在文档之间共享。

①这种 IR 模式下,查询用某种语言描述,而目标文档则由另外一种或多种语言来描述。