Geeks_Z の Blog Geeks_Z の Blog
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)

Geeks_Z

AI小学生
首页
  • 学习笔记

    • 《HTML》
    • 《CSS》
    • 《JavaWeb》
    • 《Vue》
  • 后端文章

    • Linux
    • Maven
    • 汇编语言
    • 软件工程
    • 计算机网络概述
    • Conda
    • Pip
    • Shell
    • SSH
    • Mac快捷键
    • Zotero
  • 学习笔记

    • 《数据结构与算法》
    • 《算法设计与分析》
    • 《Spring》
    • 《SpringMVC》
    • 《SpringBoot》
    • 《SpringCloud》
    • 《Nginx》
  • 深度学习文章
  • 学习笔记

    • 《PyTorch》
    • 《ReinforementLearning》
    • 《MetaLearning》
  • 学习笔记

    • 《高等数学》
    • 《线性代数》
    • 《概率论与数理统计》
  • 增量学习
  • 哈希学习
GitHub (opens new window)
  • 线性代数

  • 概率论与数理统计

  • 矩阵

    • 理解矩阵-孟岩
    • 新理解矩阵-苏剑林
    • 低秩近似之路一伪逆
    • 低秩近似之路二SVD
    • 低秩近似之路三CR
      • 问题背景
      • 初步近似
      • 采样视角
      • 延伸讨论
      • 文章小结
    • 低秩近似之路四ID
    • Monarch矩阵
  • 分布

  • 数学笔记
  • 矩阵
Geeks_Z
2024-11-06
目录

低秩近似之路三CR

低秩近似之路(三):CR

Author: [苏剑林]

Link: [https://zhuanlan.zhihu.com/p/3977810830]

最佳排版请看原博客:

低秩近似之路(三):CR - 科学空间|Scientific Spaces (opens new window)在https://kexue.fm/archives/10407 (opens new window)中,我们证明了SVD可以给出任意矩阵的最优低秩近似。那里的最优近似是无约束的,也就是说SVD给出的结果只管误差上的最小,不在乎矩阵的具体结构,而在很多应用场景中,出于可解释性或者非线性处理等需求,我们往往希望得到具有某些特殊结构的近似分解。

因此,从这篇文章开始,我们将探究一些具有特定结构的低秩近似,而本文将聚焦于其中的CR近似(Column-Row Approximation),它提供了加速矩阵乘法运算的一种简单方案。

问题背景

矩阵的最优r 近似的一般提法是

argminrank(M~)≤r⁡‖M~−M‖F2 其中M,M~∈Rn×m,r<min(n,m)。在前两篇文章中,我们已经讨论了两种情况:

1、如果M~ 再有其他约束,那么M~ 最优解就是U[:,:r]Σ[:r,:r]V[:,:r]⊤,其中M=UΣV⊤ M 奇异值分解(SVD);

2、如果约定M~=AB(A∈Rn×r,B∈Rr×m),且A(或B)已经给定,那么M~ 最优解是AA†M(或MB†B),这里的† “https://kexue.fm/archives/10366 (opens new window)”。

这两个结果都有很广泛的应用,但它们都没有显式地引入M~ M 构上的关联,这就导致了很难直观地看到M~ M 关联,换言之M~ 可解释性不强。 此外,如果目标中包含非线性运算如ϕ(XW),通常也不允许我们使用任意实投影矩阵来降维,而是要求使用“选择矩阵(Selective Matrix)”,比如ϕ(XW)S=ϕ(XWS) 于任意矩阵S 是恒成立的,但对于选择矩阵S 恒成立的。 所以,接下来我们关注选择矩阵约束下的低秩近似。具体来说,我们有X∈Rn×l,Y∈Rl×m,然后选定M=XY,我们的任务是从X 选出r 、从Y 选出相应的r 来构建M~,即 argminS⁡‖X[:,S]⏟CY[S,:]⏟R−XY‖F2s.t.S⊂{0,1,⋯,l−1},|S|=r

这里的S 以理解为slice,即按照Python的切片规则来理解,我们称X[:,S]Y[S,:] XY “CR近似”。注意这种切片结果也可以用选择矩阵来等价描述,假设X[:,S] 第1,2,⋯,r 分别为X 第s1,s2,⋯,sr ,那么可以定义选择矩阵S∈{0,1}l×r:

Si,j={1,i=sj0,i≠sj

即S 第j 的第sj 元素为1,其余都为0,这样一来就有X[:,S]=XS 及Y[S,:]=S⊤Y。

初步近似

如果我们将X,Y 别表示成

X=(x1,x2,⋯,xl),Y=(y1⊤y2⊤⋮yl⊤)

其中xi∈Rn×1,yi∈Rm×1 是列向量,那么XY 以写成

XY=∑i=1lxiyi⊤

而找XY 最优CR近似则可以等价地写成

argminλ1,λ2,⋯,λl∈{0,1}⁡‖∑i=1lλixiyi⊤−∑i=1lxiyi⊤‖F2s.t.∑i=1lλi=r

我们知道,矩阵的F 数实际上就是将矩阵展平成向量来算模长,所以这个优化问题本质上就相当于给定l 向量v1,v2,⋯,vl∈Rd,求

argminλ1,λ2,⋯,λl∈{0,1}⁡‖∑i=1lλivi−∑i=1lvi‖2s.t.∑i=1lλi=r

其中vi=vec(xiyi⊤),d=nm。记γi=1−λi,那么可以进一步简化成

argminγ1,γ2,⋯,γl∈{0,1}⁡‖∑i=1lγivi‖2s.t.∑i=1lγi=l−r

如果笔者没有理解错,这个优化问题的精确求解是NP-Hard的,所以一般情况下只能寻求近似算法。一个可精确求解的简单例子是v1,v2,⋯,vl 两垂直,此时

‖∑i=1lγivi‖2=∑i=1lγi2‖vi‖2

所以它的最小值就是最小的l−r ‖vi‖2 和,即让模长最小的l−r vi γi 于1,剩下的γi 等于0。当两两正交的条件不严格成立时,我们依然可以将选择模长最小的l−r vi 为一个近似解。回到原始的CR近似问题上,我们有‖xiyi⊤‖F=‖xi‖‖yi‖,所以XY 最优CR近似的一个baseline,就是保留X 列向量与Y 应的行向量模长乘积最大的r 列/行向量。

采样视角

有一些场景允许我们将式(???) 宽为

argminλ1,λ2,⋯,λl∈R⁡‖∑i=1lλixiyi⊤−∑i=1lxiyi⊤‖F2s.t.∑i=1l#[λi≠0]=r

其中#[λi≠0] 示λi≠0 输出1,否则输出0。这个宽松版本其实就是将CR近似的形式从CR 展成CΛR,其中Λ∈Rr×r 对角阵,即允许我们调整对角阵Λ∈Rr×r 达到更高的精度。相应地,式(???) 为

argminλ1,λ2,⋯,λl∈R⁡‖∑i=1lλivi−∑i=1lvi‖2s.t.∑i=1l#[λi≠0]=r

这样放宽之后,我们可以从采样视角来看待这个问题。首先我们引入任意l 分布p=(p1,p2,⋯,pl),然后我们就可以写出

∑i=1lvi=∑i=1lpi×vipi=Ei∼p[vipi]

也就是说,vi/pi 数学期望正好是我们要逼近的目标,所以我们可以通过从p 布独立重复采样来构建近似:

∑i=1lvi=Ei∼p[vipi]≈1r∑j=1rvsjpsj,s1,s2,⋯,sr∼p

这意味着当i s1,s2,⋯,sr 一时有λi=(rpi)−1,否则λi=0。可能有读者疑问为什么要独立重复采样,而不是更符合逼近需求的不放回采样呢?无他,纯粹是因为独立重复采样使得后面的分析更简单。

到目前为止,我们的理论结果跟分布p 选择无关,也就是说对于任意p 是成立的,这给我们提供了选择最优p 可能性。那如何衡量p 优劣呢?很显然我们希望每次采样估计的误差越小越好,因此可以用采样估计的误差

Ei∼p[‖vipi−∑i=1lvi‖2]=(∑i=1l‖vi‖2pi)−‖∑i=1lvi‖2

来比较不同的p 间的优劣。接着利用均值不等式有

∑i=1l‖vi‖2pi=(∑i=1l‖vi‖2pi+piZ2)−Z2≥(∑i=1l2‖vi‖Z)−Z2

等号在‖vi‖2/pi=piZ2 取到,由此可得最优的p

pi∗=‖vi‖Z,Z=∑i=1l‖vi‖

对应的误差为

Ei∼p[‖vipi−∑i=1lvi‖2]=(∑i=1l‖vi‖)2−‖∑i=1lvi‖2

最优的pi 好正比于‖vi‖,所以概率最大的r vi 正是模长最大的r vi,这就跟上一节的近似联系起来了。该结果出自2006年的论文https://www.stat.berkeley.edu/~mmahoney/pubs/matrix1_SICOMP.pdf (opens new window),初衷是加速矩阵乘法,它表明只要按照pi∝‖xiyi⊤‖F=‖xi‖‖yi‖ 采样X,Y 应的列/行,并乘以(rpi)−1/2,就可以得到XY 一个CR近似,从而将乘法复杂度从O(lmn) 低到O(rmn)。

延伸讨论

不管是按模长排序还是按pi∝‖vi‖ 机采样,它们都允许我们在线性复杂度【即O(l)】内构建一个CR近似,这对于实时计算来说当然是很理想的,但由于排序或采样都只依赖于‖vi‖,所以精度只能说一般。如果我们可以接受更高的复杂度,那么如何提高CR近似的精度呢?

我们可以尝试将排序的单位改为k 组。简单起见,假设k≤l−r l−r 一个因数,l 向量v1,v2,⋯,vl k 的组合数为Clk,对于每个组合{s1,s2,⋯,sk} 们都可以算出向量和的模长‖vs1+vs2+⋯+vsk‖。有了这些数据,我们就可以贪婪地构建(???) 近似解:

初始化Ω={1,2,⋯,l},Θ={}

对于t=1,2,⋯,(l−r)/k,执行:

Θ=Θ∪argmin{s1,s2,⋯,sk}⊂Ω⁡‖vs1+vs2+⋯+vsk‖;

Ω=Ω∖Θ;

返回Θ。

说白了,就是每次都从剩下的向量中挑选和模长最小的k 向量,重复挑选(l−r)/k 即得到l−r 向量,它是按照单个向量模长来排序的自然推广,其复杂度为O(Clk),当k>1 l 较大时可能难以承受,这也侧面体现了原问题精确求解的复杂性。

另一个值得思考的问题是如果允许CR近似放宽为CΛR,那么Λ 最优解是什么呢?如果不限定Λ 结构,那么答案可以由伪逆给出

Λ∗=argminΛ⁡‖CΛR−XY‖F2=C†XYR†

如果Λ 须是对角阵呢?那可以先将问题重述为给定{u1,u2,⋯,ur}⊂{v1,v2,⋯,vl},求

argminλ1,λ2,⋯,λr⁡‖∑i=1rλiui−∑i=1lvi‖2

我们记U=(u1,u2,⋯,ur),V=(v1,v2,⋯,vl),λ=(λ1,λ2,⋯,λr)⊤,那么优化目标可以写成

argminλ⁡‖Uλ−V1l×1‖2

这同样可以通过伪逆写出最优解

λ∗=U†V1l×1=(U⊤U)−1U⊤V1l×1

最后一个等号假设了U⊤U 逆,这通常能满足,如果不满足的话(U⊤U)−1 (U⊤U)† 行。

现在的问题是直接套用上式的话对原始问题来说计算量太大,因为vi=vec(xiyi⊤),即vi mn 向量,所以V 小为mn×l、U 小为mn×r,这在m,n 大时比较难受。利用vi=vec(xiyi⊤) 帮我们进一步化简上式。不妨设ui=vec(ciri⊤),那么

(U⊤V)i,j=⟨ciri⊤,xjyj⊤⟩F=Tr(rici⊤xjyj⊤)=(ci⊤xj)(ri⊤yj)=[(C⊤X)⊗(RY⊤)]i,j

即U⊤V=(C⊤X)⊗(RY⊤),U⊤U=(C⊤C)⊗(RR⊤),这里的⊗ https://en.wikipedia.org/wiki/Hadamard_product_(matrices) (opens new window),这样恒等变换之后U⊤V U⊤U 计算量就降低了。

文章小结

本文介绍了矩阵乘法的CR近似,这是一种具有特定行列结构的低秩近似,相比由SVD给出的最优低秩近似,CR近似具有更直观的物理意义以及更好的可解释性。

#矩阵
上次更新: 2025/06/25, 11:25:50
低秩近似之路二SVD
低秩近似之路四ID

← 低秩近似之路二SVD 低秩近似之路四ID→

最近更新
01
帮助信息查看
06-08
02
常用命令
06-08
03
学习资源
06-07
更多文章>
Theme by Vdoing | Copyright © 2022-2025 Geeks_Z | MIT License
京公网安备 11010802040735号 | 京ICP备2022029989号-1
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式