稀疏性是什么?绝大部分元素都是零
稀疏性(Sparsity)是指一个向量、矩阵或者模型中,绝大多数的元素都是零或者接近于零,只有少数的元素是非零的、真正起作用的。与之相对的是“稠密”,即大部分元素都不为零。稀疏性是数学、信号处理和机器学习中一个非常重要的概念。
稀疏的数据
现实中的很多数据天然就是稀疏的。文本数据:如果用一个向量来表示一篇文章,向量的每个位置对应词表中的一个词,记录这个词在文章中出现的次数。词表可能有几十万个词,而一篇文章只会用到其中的几百个,所以这个向量中绝大部分的位置都是零。用户评分数据:一个电商平台有上亿个商品,每个用户只购买或评价过其中的几十个,用户-商品矩阵中绝大多数的格子都是空的。社交网络:每个人只与极少一部分其他人有联系。处理稀疏数据时,通常只存储那些非零的元素及其位置,可以大大节省存储空间和计算时间,各种机器学习库都提供了专门的稀疏矩阵格式。
稀疏的模型
在机器学习中,人们常常希望学到的模型也是稀疏的:在众多的特征中,只有少数几个特征的系数不为零,其余特征的系数都恰好为零,也就是说,模型只用到了少数几个真正重要的特征。这样的模型有几个好处:更容易解释,能清楚地看出哪些因素起了作用;计算更快、占用的存储更少;在特征很多而样本较少时,能有效地防止过拟合,相当于自动地完成了特征选择。
实现模型稀疏的经典方法是 L1 正则化:在损失函数中加入所有参数绝对值之和作为惩罚项。在线性回归中,这就是 Robert Tibshirani 在 1996 年提出的 Lasso 回归。与惩罚参数平方和的 L2 正则化不同,L1 正则化会把很多参数直接压缩为零,而不只是让它们变小。从几何上看,L1 范数的约束区域是一个带有尖角的菱形,优化的解更容易落在坐标轴上的尖角处,使某些参数恰好为零;而 L2 范数的约束区域是一个圆,没有尖角,解通常不会恰好落在坐标轴上。
稀疏表示与压缩感知
很多信号在合适的表示方式下是稀疏的:比如自然图像经过小波变换之后,大部分系数都很小,只有少数几个系数较大。稀疏表示,也叫稀疏编码,就是寻找一组合适的“基本元素”,让数据能够用其中很少的几个元素的组合来表示。这一思想被用于图像压缩、去噪和修复。压缩感知理论更进一步指出:如果信号是稀疏的,就可以用远少于传统采样定理要求的测量次数把它准确地恢复出来,这被用于加快核磁共振成像等。
神经网络中的稀疏性
稀疏激活:使用 ReLU 激活函数的神经网络,在每次计算中通常只有一部分神经元被激活,其余的输出为零。研究发现,大脑中的神经元在同一时刻也只有一小部分处于活跃状态。剪枝:删除神经网络中不重要的权重,让权重矩阵变得稀疏,从而压缩模型、加快推理。混合专家模型:模型中有很多个“专家”网络,但每个输入只激活其中少数几个,这让模型可以拥有极大的总参数量,而每次计算的成本只与激活的那部分参数有关,DeepSeek-V3、Mixtral 等大模型就采用了这种稀疏的结构。稀疏注意力:只计算序列中部分位置之间的注意力,以降低处理长文本的成本。此外,在大模型的可解释性研究中,稀疏自编码器被用来把模型内部稠密的激活分解成大量稀疏的、更容易理解的特征。