1 特征值与特征向量
A * vi = li * vi, 则称vi为A的特征向量, li为该特征向量对应的特征值。 vi为列向量。若vi点乘vi即 vi'*vi 结果为1,则称vi为单位特征向量
若一组正交的单位特征向量vi, i from 1 to n, 构成矩阵V = {v1 v2 ... vn}, 单位正交矩阵。 e称为标准单位正交矩阵,eii=1, eij=0
A * V = {Av1 Av2 ... Avn}
= {l1v1 l2v2 ... lnvn}
= {v1 v2 ... vn} * D, D是n*n的对角矩阵, Dii = li, 可以按li由大到小排列 。
= V * D
notes: 矩阵的左乘,是操纵矩阵的行向量; 矩阵的右乘法, 是操纵矩阵的列向量
例如 2 * A 结果中, 表示将A的每行中的元素都乘以2
(2 0 .. 0
0 1 .. 0
.
.
0 0 .. 1) * A 结果中, 表示将A的第一行中的元素都乘以2
(2 1 .. 0
0 1 .. 0
.
.
0 0 .. 1) * A 结果中, 值是将A的第一行中的元素都乘以2再加上第2行
因此, A * V = V * D, V是单位正交矩阵, 等式两侧右边各乘以V’[V'为V的转置矩阵,transpose], 即
====> A * V * V' = V * D * V'
====> A = V * D * V' V * V'结果是标准单位正交矩阵e
2 特征值分解(EVD) [1的结论]
若A是对称矩阵, 则A必定可以表示为 A = V*D*V' V'为V的转置矩阵,transpose
且V的列向量是A的特征向量, V是单位正交矩阵。
D是对角矩阵, 对角元素是A的特征值
称V*D*VT 为矩阵A的特征值分解(enginvalue decomposition, EVD)
===特征值分解不需要对称这个条件。 Avi = li vi, 求出所有正交的vi及其对应的li就是特征值分解过程
3 只有方阵才能进行特征值分解(EVD), Ann = Vnn * Dnn * V'nn; 那么当Amn,m!=n不是方阵是该如何?
4 奇异值分解 singular value decomposition
1) Amn 不是方阵, 但 A'A 是n*n的方阵; 令矩阵B = A'A, B可进行特征值分解 B = VDV', V为单位正交向量;设vi为V的列向量,li为对应的特征值 i from 1 to n
2) Avi 点乘 Avj = (Avi)' * (Avj) = vi'A'Avj = vi'Bvj = vi' li vj = li (vi' vj) = 0, i!=j时。 i=j时值为li。 令si = sqrt(li)
==>因此矩阵{Av1 Av2 ... Avn}是正交矩阵
==>因此矩阵{Av1/s1 Av2/s2 ... Avn/sn} 是单位正交矩阵, 令ui = Avi/si, 即U是单位正交矩阵
==>因此有 Avi = ui*si, A*V = U*S, Sii = si = sqrt(li), li是矩阵A'A的第i大的特征值, U和V均是单位正交矩阵
==>因此有 A*V*V' = U*S*V', 即A = U * S * V'
==>OOOOOKKKKK
5 基本性质、定义
1) U的列向量称作A的左奇异向量, V的列向量称作A的右奇异向量
2) A的对角矩阵中的元素是对应的矩阵A'A的特征值的平方根
3) V是A'A的单位正交特征矩阵,对应向量的特征值为li; U是AA'的单位正交矩阵,对应向量的特征值也是li
===>A'A = (USV')' (USV') = (VS'U') (USV') = V(S'S)V', S是对角矩阵,因此S'S也是对角矩阵。
===>本式的含义就是将矩阵A'A进行特征值分解。得到的特征向量就是vi, 对应的特征值就是S'S的对角元素 si*si, 即li
4) 计算A的奇异值分解时, 可以不用计算A'A; 通过A直接可以得到A的奇异值即左右矩阵
6 文本降维的应用
1) 设A为原始的Term-Document矩阵,行为term, 列为doc
2) 进行奇异值分解,得到A = USV'
3) 降维:选择S中前k个最大的特征值, 保留U、V中的前k行,得到矩阵A的近似矩阵
===> 近似Amn = Umk Skk (Vmk)' 。 此后用A表示原始A经过降维处理之后的近似矩阵
===> 这里可以变化如下 A = T S D', 其中T就是上式中的U, D就是上式中的V; T表示term, D表示Document
===> A中两个行向量点乘的值表示两个词在文档中共同出现的程度。 因此矩阵A*A'就可以得到所有词与词的相似程度
===> A*A' = TSD'*DS'T' = TS*(TS)'; 因此AA'的(i,j)元素, 就可以用TS的第i行与第j行来表示。 TS的行看作是term的坐标,就是潜在语义空间的坐标
===> A'*A = DS'T'*TSD' = DS*(DS)';========================================================DS的行看做为doc的坐标
4) 文本检索
4.1) 根据输入串,得到词频列向量 Q
4.2) 计算Dq = Q'TS",得到该查询串表示的文档在语义空间的坐标。 S"表示S的逆矩阵; Dq为 1*k矩阵。。是个行向量
4.3) 应该是Dq与DS的行向量计算夹角. OOO4.3) 计算Dq与降维后的近似矩阵A的列向量之间的夹角来判断相似性OOO。
=============================================================================
衡量两个词的近似程度: A * A' = TS *(TS)'
衡量两个文档的近似程度:A' * A = DS *(DS)'
衡量词与文档的相关程度: A = TSD' = TSh *(DSh)', Sh表示S的1/2次方
TS, t*k矩阵,term在语义空间中的坐标; t为term个数
DS,d*k矩阵,docs在语义空间中的坐标; d为docs个数