本文主要用来讨论奇异值分解(SVD)
的一些核心概念以及它的物理意义和实际意义,说到底就是:
这东西有什么用?是怎么起作用的?
我们按顺序一步步来拆解这些问题并且分析。
引言
之前也只是模棱两可地了解过SVD的功能,但一直没深入,这次恰好看到一篇论文用SVD作为主要创新点,机缘巧合之下就想完全弄明白,所以这就是这篇文章诞生的原因。
论文信息如下:
这篇paper所研究的问题
Transformer模型在自然语言处理和其他领域的应用已成为主流。然而,这些模型通常需要大量的计算资源进行训练和推理。本研究发现,通过选择性地移除Transformer模型中某些层的高阶权重成分,可以显著提升模型的性能。这一方法被称为LAyer-SElective Rank reduction (LASER),可以在模型训练完成后进行,无需额外的参数或数据。
这篇文章的作者如何得到这个idea的?
由实验驱动的,而不是从理论开始。
本文中提出的LASER方法主要是基于实验发现,即通过对大型语言模型(LLMs)的特定层进行低秩近似可以改善模型性能。文章中并没有详细描述理论推导来证明为何这种低秩近似会有效,而是通过广泛的实验来展示这种方法在多种情况下的有效性。
实验结果表明,在某些情况下,低秩近似可以提高模型在特定任务上的表现,尤其是在处理训练数据中不常见的信息时。文章中对这种现象进行了一些初步的分析和假设,比如提出高阶分量可能捕获了模型训练过程中的噪声,而去除这些噪声成分可以通过“去噪”来提高模型的准确性。
然而,对于为何特定层的低秩近似能够导致性能提升,以及为何这种现象在后层更为常见等问题,文章承认需要进一步的研究来深入理解背后的机制。因此,可以认为文章的发现主要是实验驱动的,而不是由理论推导所引导。
那么,什么是“低秩近似”?为何需要它?
Q: 为什么需要低秩近似
A:为了减少计算消耗,提高效率。
Q:什么是“低秩近似”?
A:低秩近似(low-rank approximation)是一种通过保留矩阵中最重要的特征分量,来减少矩阵维度和复杂度的方法。
为什么要保留矩阵中最重要的特征分量?
其实很简单,直观来说,我们舍弃了一些不重要的特征分量,那么就会减少模型中的一些数据(在这里,这些特征分量其实就是模型参数),所以保留最重要的那些,就会把模型的大部分能力保留下来,尽管舍弃了一些特征分量,对模型能力的影响也不会很大,因为最重要的数据(最重要的特征分量即最重要的参数)是被保留了的。
接下来,如何计算出特征分量?如何挑选最重要的特征分量?
这时候我们就要用到我们的主角:奇异值分解(SVD)
。
详细谈谈SVD
在奇异值分解(Singular Value Decomposition, SVD)中,我们将一个矩阵 W W W 分解为三个矩阵的乘积:
W = U Σ V T W = U \Sigma V^T W=UΣVT
其中, U U U 和 V V V 是正交矩阵, Σ \Sigma Σ 是对角矩阵,包含了 W W W 的奇异值,且这些奇异值按从大到小的顺序排列。具体来说, Σ \Sigma Σ 的对角线元素 σ i \sigma_i σi 满足:
σ 1 ≥ σ 2 ≥ ⋯ ≥ σ r ≥ 0 \sigma_1 \geq \sigma_2 \geq \cdots \geq \sigma_r \geq 0 σ1≥σ2≥⋯≥σr≥0
这里, r r r 是矩阵 W W W 的秩。
高阶和低阶分量的判定
“高阶”和“低阶”分量的判定是基于奇异值的大小。通常,较大的奇异值对应的奇异向量组合起来的分量被称为“低阶”分量,而较小的奇异值对应的分量则被称为“高阶”分量。这样的命名是基于以下原因:
-
信息贡献:较大的奇异值 σ i \sigma_i σi 对应的奇异向量组合(即 u i v i T u_i v_i^T uiviT)通常包含了更多的原始矩阵 W W W 的信息。这些成分在重构矩阵时起到了主要作用。
-
噪声贡献:较小的奇异值 σ i \sigma_i σi 对应的奇异向量组合包含的信息较少,往往更多地体现为噪声和细节,而不是主要信息。因此,在很多应用中,这些较小的奇异值和对应的分量可以被忽略,从而得到一个低秩的近似。
高阶和低阶分量的命名原因
频率域解释:
在傅里叶变换中,一个信号可以分解为不同频率的正弦波和余弦波的叠加。低频分量(低阶分量)通常包含信号的主要结构和重要信息,而高频分量(高阶分量)通常包含细节和噪声。
类比到奇异值分解,较大的奇异值对应的分量被认为是低频分量,包含了数据的主要信息和结构,而较小的奇异值对应的分量则包含了高频噪声和细节。
具体描述
假设 W W W 是一个 m × n m \times n m×n 的矩阵,通过 SVD 分解后,我们有:
W = ∑ i = 1 r σ i u i v i T W = \sum_{i=1}^{r} \sigma_i u_i v_i^T W=∑i=1rσiuiviT
其中, σ i \sigma_i σi 是奇异值, u i u_i ui 和 v i v_i vi 分别是 U U U 和 V V V 矩阵的列向量。对于一个秩为 k k k 的近似矩阵 W k W_k Wk,我们只保留前 k k k 个最大的奇异值及其对应的奇异向量:
W k = ∑ i = 1 k σ i u i v i T W_k = \sum_{i=1}^{k} \sigma_i u_i v_i^T Wk=∑i=1kσiuiviT
这里,保留的 σ i \sigma_i σi 较大,贡献了主要的信息量。这些成分被认为是“低阶”成分。
而被舍弃的部分:
W r − k = ∑ i = k + 1 r σ i u i v i T W_{r-k} = \sum_{i=k+1}^{r} \sigma_i u_i v_i^T Wr−k=∑i=k+1rσiuiviT
这些成分对应于较小的奇异值,往往包含了较多的噪声信息,被称为“高阶”成分。
例子
假设矩阵 ( W ) 的奇异值分解结果为:
W
=
U
(
σ
1
0
…
0
0
σ
2
…
0
⋮
⋮
⋱
⋮
0
0
…
σ
n
)
V
T
W = U \begin{pmatrix} \sigma_1 & 0 & \ldots & 0 \\ 0 & \sigma_2 & \ldots & 0 \\ \vdots & \vdots & \ddots & \vdots \\ 0 & 0 & \ldots & \sigma_n \end{pmatrix} V^T
W=U
σ10⋮00σ2⋮0……⋱…00⋮σn
VT
其中
σ
1
≥
σ
2
≥
…
≥
σ
n
\sigma_1 \geq \sigma_2 \geq \ldots \geq \sigma_n
σ1≥σ2≥…≥σn 为奇异值。
- σ 1 \sigma_1 σ1 对应的分量 u 1 v 1 T u_1 v_1^T u1v1T 是最主要的特征。
- σ n \sigma_n σn 对应的分量 u n v n T u_n v_n^T unvnT 是最不重要的特征。
通过移除
σ
n
\sigma_n
σn 对应的分量,保留
σ
1
\sigma_1
σ1 到
σ
k
\sigma_{k}
σk 对应的分量,可以实现低秩近似,即:
W
≈
U
k
Σ
k
V
k
T
W \approx U_k \Sigma_k V_k^T
W≈UkΣkVkT
其中
Σ
k
\Sigma_k
Σk仅包含前
k
k
k 个较大的奇异值。
回到文章:采用SVD来保证不严重影响模型能力的前提下而减少模型的参数量
在文章中,作者利用SVD来识别和去除Transformer模型中权重矩阵的高阶分量,这些高阶分量对应于较小的奇异值。通过这种方式,作者们实现了对模型的低秩近似,即LASER(Layer-Selective Rank Reduction)。具体来说,他们保留了权重矩阵中与较大奇异值对应的主要奇异向量,而忽略了那些与较小奇异值相关的高阶分量。这种选择性地去除权重矩阵中的成分,被认为可以减少模型中的噪声,从而提高模型在某些任务上的性能。
在奇异值分解(SVD)中,给定一个矩阵 W W W,可以将其分解为 W = U Σ V T W = U \Sigma V^T W=UΣVT,其中 U U U 和 V V V 是正交矩阵, Σ \Sigma Σ 是对角矩阵,其对角线元素为奇异值,且按降序排列。
在这种分解中:
- 奇异值的大小表示对应奇异向量在原矩阵中的重要性。
- 较大的奇异值对应的奇异向量对矩阵的主要特征贡献较大。
- 较小的奇异值对应的奇异向量对矩阵的特征贡献较小。
因此,“高阶”分量是指那些对应较小奇异值的奇异向量,因为这些分量对矩阵整体特征的贡献较小。相对地,“低阶”分量是指那些对应较大奇异值的奇异向量,因为这些分量对矩阵整体特征的贡献较大。
在这篇文章中,所指的高阶分量是指奇异值分解(SVD)中的奇异值按大小降序排列后,排在后面的那些分量。具体来说:
LASER操作:文章中的LASER操作正是通过这种选择性地忽略较小奇异值来实现的。例如,如果设置 ρ \rho ρ 为某个小于1的值,那么只有排名前 ρ \rho ρ 倍最大秩的奇异值会被保留,其余的则被视为高阶分量并被去除。
通过这种方式,LASER方法可以减少模型的复杂性,有时还能提高模型在特定任务上的性能,尤其是在处理训练数据中不常见的信息时。