Press "Enter" to skip to content

线性代数及其应用之奇异值分解与“薛定谔的电影”

本站内容均来自兴趣收集,如不慎侵害的您的相关权益,请留言告知,我们将尽快删除.谢谢.

本文讲解 奇异值分解 (Singular Value Decomposition,SVD)的原理和应用。标题后半截与我们后面的应用例子有关,另外主要也是为了把你们吸引进来。进入正题前,还是先上广告:

 

现实中,常见类似下面的表格:

《黑客帝国》《银翼杀手》《沙丘》……《侏罗纪公园》
赵阿法544……5
钱贝塔443……4
孙伽马452……4
………………………………
李德塔532……3

 

显然,这是众多用户对若干电影的评分表格。共有 位用户和 部电影。评分表格是一个 矩阵,记为 。 的转置与自己相乘得到 。这是一个 的对称矩阵,因为:

 

 

( 下段中的结论本文不证明 )

 

对称矩阵有 个实特征值,属于不同特征值的特征向量彼此正交。特征值的“代数重数”,即它作为特征多项式的根的重数,等于它的“几何重数”,即特征空间的维数。也就是说,如果 是对称矩阵的 重特征值,则它的特征空间是 维。能找到 个彼此正交的单位特征向量(模为 1),它们张成 的特征空间。所以,记 的 个(有重)特征值从大到小排列是:

 

(可重复)

 

能够找到 个彼此正交的标准特征向量,分属于每一个特征值:

 

 

其中 , 是克罗内克符号: 。特征值有可能重复(多重根),比如: 。对于对称矩阵来说,这个三重特征值 的特征空间是三维,也就是说能找到 的三个彼此正交(于是线性独立)的单位特征值 。我们可以说 是 的, 是 的, 是 的(其实它们都是 的)。

 

的特征值都不为负。因为假如特征值 , 是它的特征向量,有 ,这是不可能的。假如 的 个非负特征值中有 个(有重)大于零,剩下的 个等于零。这 个大于零的特征值的平方根:

 

 

称作矩阵 的 个奇异值(Singular Value)。注意, 个特征值是 的,其中 个大于零的特征值的 平方根 是 的奇异值。现在我们用 的 个标准正交的特征向量以及 的 个奇异值构造三个矩阵。头一个是 矩阵,记为 。它有 个列,每个列是一个 维向量,它们是:

 

 

是 矩阵,它乘以 维的特征向量,得到的是 维向量。对每一个 维向量再除以相应的奇异值得到 的列。第二个矩阵 是 矩阵。它的前 列是一个 的对角矩阵,对角线元素是按顺序排列的 的奇异值,后面的 列都是 0 :

 

 

和 的乘积是 :

 

 

它的前 列是 个 维向量,分别是 乘以 个奇异值对应的特征向量。后面 列都是零。最后一个(第三个)矩阵是 的方阵 。它的列是 的 个正交标准的特征向量:

 

 

对于后 个特征向量中的某一个 来说,它对应的特征值是零,于是有:

 

 

说明 是零向量。所以用 乘以 得到:

 

 

这正好就是 ,所以 。 的列是正交标准向量,于是它是正交矩阵: , 是单位矩阵。所以有:

 

 

这就是矩阵 的奇异值分解。这仅仅是在数学上一番倒腾,这个分解有什幺含义呢?

 

回到本文开始的表格。它的第 2 行是用户“钱贝塔”对全部电影的评分。 矩阵的第 行是第 位用户对全部电影的评分。表格的第 3 列是电影《沙丘》获得的全体用户的评分。 矩阵的第 列是第 部电影获得的全体用户的评分。如果我们用全体用户的评分来表示一部电影,那幺 的每一列就是一部电影的“评分向量”。

 

方阵 的第 行第 列元素 是 的第 列与第 列的内积,也就是第 部电影与第 部电影的“评分向量”的内积,或者说它们之间的“余弦相似度”。严格来讲,余弦相似度是两个向量之间夹角的余弦。只有当两个向量的长度都为 1 时夹角余弦才等于它们的内积。不过在这里我们忽略这一点。于是对称矩阵 的各个元素就是各部电影两两之间的评分相似度(以后简称相似度)。这个相似度的依据或说信息来源,就是全体用户对它们的评价,也就是“协同”或者说“集体智慧”(Collaborative)。

 

现在我们用 One-Hot 编码向量来表示一部电影。 维向量 的第 个分量是 1 ,其余分量是 0 。用它表示第 部电影。 是 的第 行第 列元素 ,即第 部电影与第 部电影的相似度。如果有一个并非“One-Hot”的向量,比如 ,我们可以把它看作第 部电影和第 部电影的某种“混合”。 和 是实数,分别是第 部电影和第 部电影在混合电影 中的“权重”。假如现在有两部混合电影, 与 ,我们将计算电影相似度的方法施加于这两部混合电影:

 

 

它是四个相似度: 与 , 与 , 与 , 与 的加权和,权重是两部混合电影在这四部电影上各自的权重。把这个值作为两部混合电影的相似度是满合理的。好了,现在不限于 One-Hot 向量了,对于任意两个 维向量,我们都可以把它们视作混合电影,从而计算它们之间的相似度。有这幺一组( 个)特殊的混合电影,它们就是 的 个标准正交特征向量,我们称它们为 特征电影 。它们特殊在哪儿?我们来看其中第 部特征电影与第 部特征电影的相似度:

 

 

是克罗内克符号。我们看到,不同特征电影之间相似度为 0 。同一部特征电影与自己的相似度是它对应的特征值。相似度反应的是人群喜好,这些特征电影在人群喜好的意义上 完全不相似 。比如,我们编一个极端的例子:有一部特征电影混合了《第一滴血》、《现代启示录》、《黑鹰坠落》等等。另一部特征电影混合了《西雅图夜未眠》……(抱歉,作者作为老直男想不出来别的了,读者脑补一下)。假如所有男性用户给那些战争暴力题材的电影都打了 5 分,给爱情片都打了 0 分。所有女性用户给《西雅图夜未眠》以及其他全打了 5 分,给那些战争片全打零分(相当政治不正确了,大家原谅)。这两个特征电影之间的相似度就会是 0 。两部特征电影代表了两种题材或类型。其他特征电影又都以不同权重混合了各部电影,从而代表了其他类型。现在我们看:

 

 

矩阵 的第 列 是一个 维向量,它的第 个分量是:

 

 

是第 位用户对第 部电影的评分。 是第 部特征电影中第 部电影的权重。这个加权求和的合理解释是第 位用户对第 部特征电影的评分。 维向量 的每个分量就是每位用户对第 部电影的评分。 的第 行就是第 位用户对所有特征电影的评分。注意,对排序 的特征电影,每位用户对它们的评分都是 0 ,这暗示着它们不被所有人喜爱,是一些无用的电影类型。回到奇异值分解:

 

 

的第 行第 列元素是 的第 行与 的第 列的内积:

 

 

注意 是第 部特征电影中第 部电影的权重,它是 的第 行第 列(即 的第 行第 列)。这个加权求和把第 位用户对各个特征电影的评分乘上第 部电影在各个特征电影上的权重,它应该是第 为用户对第 部电影的评分。没错,这正是 。还有一个需要注意的,加和符号的上限我们写的是 而不是 ,因为矩阵 的后 列是零。因为对应的特征值为 0 ,被排除在奇异值之外,后 个特征向量(特征电影)被自动抛弃掉了。

 

我们也可以主动抛弃掉一些虽不为零但却很小的奇异值(特征值),只取前 个奇异值。将矩阵 的后 列去掉,得到 矩阵 。相应地,将矩阵 的下 行去掉,得到 矩阵 。有:

 

 

由于抛弃的奇异值非常小,我们可以认为这个约等号是成立的。这个动作相当于在用户喜好的意义上将各个电影分解为特征电影,去掉一些不重要的特征电影,再组合回用户对各个电影的评分。我们认为原先的评分里边搀杂了噪声,不真。现在我们去除了噪声,进行了精粹,提取了本质。我们可以用如此计算出来的用户对电影的评分来为用户推荐电影。 中每位用户都给每部电影评了分。你也可以想象不是如此,用某个特殊值(比如 -1)代表用户没有为某部电影打分。然后用计算出来的 中的评分来给用户推荐他/她没看过却“评分”较高的电影。这样的电影他/她应该喜欢,他必须喜欢,大数据说他喜欢。

 

早先,我们用 One-Hot 向量表示一部电影,现在我们可以用向量 来表示第 部电影。它就是 的第 列。它的每个分量是每部特征电影中第 部电影的权重,或者说第 部电影在每个特征电影(电影类型)上的权重。它也许是这样:0.28 的恐怖,0.33 的暴力,0.06 的爱情 ……

 

但是我们知道,后 个特征电影作为特征向量对应的特征值为零。前 个特征电影中也有 个我们认为不重要(奇异值/特征值很小),可以抛弃。于是我们抛弃 的下 行,得到 矩阵 。用 乘以 得到 维向量 。它的 个分量是第 部电影在 个最重要的特征电影(电影类型)上的权重。 是第 部电影的一个低维( 维)表示,或者说低维嵌入(Embedding)。

 

最后点一下题,什幺叫“薛定谔电影”。在量子力学中,物理系统用量子态(state)描述。量子态是希尔伯特空间(Hilbert Space)中的向量。可观测的物理量用希尔伯特空间上的厄米算符(Hermite Operator)描述。在有限维希尔伯特空间中,厄米算符可被表示为厄米矩阵(Hermitian Matrix)。实向量空间上的厄米矩阵就是对称矩阵。

 

有限维希尔伯特空间中的厄米算符的特征向量(本征态,Eigenstate)是空间的一组基,任何量子态都可以由这组基线性表出,表出系数是复数。测量厄米算符代表的物理量时,量子态随机塌缩到某一个本征态上,测量到的物理量的值是这个本征态对应的特征值。厄米算符的特征值都是实数,所以它们是合法的物理量取值。量子态塌缩到某个本征态的概率是该量子态在这个本征态上的系数(复数)的模的平方。

 

在我们的电影例子中,对称矩阵 代表一个厄米算符。它的特征向量(特征电影/电影类型)就是该厄米算符的本征态。每部电影都是本征态的叠加,也就是特征电影/电影类型的叠加。它们都是“薛定谔的电影”。当你观察 时,叠加态电影随机塌缩为某一个电影类型。比如电影《红楼梦》:经学家看见《易》,道学家看见淫,才子看见缠绵,革命家看见排满,流言家看见宫闱秘事。哈哈,玩笑了。

Be First to Comment

发表评论

您的电子邮箱地址不会被公开。