张量分解
张量分解
张量分解(Tensor Decomposition)是将高阶多维数组(张量)表达为一系列低阶因子矩阵或核心张量与因子矩阵乘积的技术,是高维数据分析和机器学习中降维与隐变量发现的核心工具。张量可视为矩阵向更高阶的推广:标量为零阶张量,向量为一阶张量,矩阵为二阶张量,三阶及以上统称高阶张量。与矩阵分解(如奇异值分解)不同,张量分解利用多维结构捕获变量间的高阶交互关系,在缺失值填补、特征提取和可解释建模方面具有独特优势,已广泛应用于推荐系统、信号处理、计算机视觉、化学计量学、神经科学和量子化学等领域。
CP分解(CANDECOMP/PARAFAC)
CP分解由Carroll、Chang和Harshman在1970年分别独立提出,将张量表达为一组秩一张量的加权和:
其中 为向量外积, 分别为各模态(mode)的因子向量, 为标量权重, 为正整数称为CP秩。三阶张量 的每个元素可写为:
CP分解最突出的性质是分解的唯一性。在温和条件下(满足Kruskal唯一性条件:各因子矩阵的k秩之和至少为 ),CP分解在置换和缩放等价意义下是唯一的。这是张量分解区别于矩阵分解的根本特征——矩阵SVD需施加正交性约束才能保证唯一性,而CP的唯一性直接从代数结构产生。唯一性使因子向量在理想条件下恰好对应于数据生成过程中的真实物理成分,在盲源分离、荧光光谱分析和脑电图源定位中具有直接的可解释价值。
计算方面,CP分解通常通过交替最小二乘法(ALS)迭代求解:固定因子矩阵 时对 构成线性最小二乘问题,依次交替更新各模态因子矩阵直至收敛。CP秩的确定是一个NP难问题——不同于矩阵秩可通过SVD直接判定,张量秩可能超过任一维度的尺寸,且低秩近似存在退化(degeneracy)现象。
Tucker分解
Tucker分解由Ledyard Tucker于1966年提出,是另一类基础张量分解,亦称高阶SVD(HOSVD)。它将张量表达为核心张量与各模态因子矩阵沿各模态的模式积:
等价元素形式为:
其中 为核心张量,编码各模态因子之间所有的交互关系; 为各模态的因子矩阵,通常约束为列正交。当 时,Tucker分解实现多模态同时压缩。HOSVD的经典算法是先对每个模态展开矩阵做SVD截断,再投影核心张量,计算简洁且数值稳定。
Tucker分解与CP分解的关系:CP可视作Tucker当核心张量 为超对角张量(仅 ,其余为零)的特殊情形。因此Tucker更灵活——允许不同模态因子之间任意交互——但代价是核心张量参数量 随阶数指数增长,在高阶情形下遭遇维度灾难。
CP与Tucker的对比与选择
CP分解将张量压缩为 个秩一成分的和,参数总量为 ,模型极度精简,且唯一性赋予因子以清晰的可解释含义;但其秩的确定困难,ALS收敛可能缓慢,且低秩近似不保证存在最优解。Tucker分解对各模态维度分别压缩,参数更丰富(因子矩阵加上核心张量),拟合能力更强,数值计算更稳健,但核心张量的指数增长限制了阶数扩展性。
选择范式:若目标是隐变量提取和物理可解释性(如脑电溯源、化学计量中的成分分离),CP分解更为适用;若目标是数据压缩、去噪和重构保真(如图像压缩、高光谱影像处理),Tucker分解因灵活性更高而更为常用。实践中也常将两者结合使用:先以Tucker压缩张量,再对浓缩后的核心张量施以CP分解,兼顾效率与可解释性。
主流扩展与现代发展
非负张量分解(NTF):在因子矩阵上施加非负性约束,使得分解结果具有"部件式"(parts-based)表示能力——每一成分仅涉及非负贡献、互不抵消,天然适配图像像素、文本词频和音频频谱等非负数据。NTF在文本挖掘中的主题发现和人脸识别中的局部特征提取方面表现优异。
张量列分解(Tensor Train, TT)和张量环分解(Tensor Ring, TR):针对高阶张量遭遇的维度灾难,TT分解将高阶张量表达为一系列三阶核心张量的缩并网络,参数规模从指数级降至多项式级。TT在量子多体物理、高维偏微分方程数值解和大规模深度学习参数压缩中发挥着关键作用。
贝叶斯张量分解:为因子矩阵和核心张量赋予先验分布(如高斯、Gamma或稀疏先验),通过变分推断或马尔可夫链蒙特卡洛方法进行后验推断,实现自动秩选择、不确定性量化和缺失值鲁棒填补,成为概率建模框架中的前沿方向。
此外,张量分解正与深度学习深度融合——张量化神经网络通过将全连接层的权重矩阵重塑为高阶张量并施加TT或Tucker压缩,可在几乎不损失精度的情况下将模型参数量压缩数十倍甚至百倍,对边缘端部署大模型具有重要工程价值。
记忆口诀:CP分解——秩一之和,唯一可释,溯源寻因;Tucker分解——核心加因子,灵活稳定,压缩去噪。矩阵分解止于二维,张量分解擎起多维。