当数据缺失不再随机聊聊鲁棒低 tubal 秩张量补全与 cross-concentrated sampling在很多实际工程场景里我们拿到的数据往往是不完整的摄像头某段时间丢帧、传感器通道间歇性失效、医学影像局部被遮挡、推荐系统中的用户行为矩阵稀疏得可怜。过去几年低秩矩阵补全Low-Rank Matrix Completion已经给出了不少漂亮的理论结果和实用算法但当数据从二维表格升级为三维张量、甚至更高维结构时矩阵方法会丢失维度间的关联信息。于是低 tubal 秩张量补全Low-Tubal-Rank Tensor Completion逐渐成为研究热点而在此基础上再加入“采样模式更刁钻”的假设就引出了本文要展开的主题Robust Low-Tubal-Rank Tensor Completion under Cross-Concentrated Sampling。本文会从最基础的问题出发为什么矩阵补全不够用t-SVD 分解和 tubal 秩到底在刻画什么cross-concentrated sampling 为什么比均匀采样更棘手然后我会给出这类问题的建模思路、优化算法框架、实验设计与复现建议最后补充一些工程落地和论文阅读方面的经验。无论你是在做图像视频修复、医学影像处理还是准备入门张量补全方向的算法研究这篇文章都能提供一套可以上手的认知框架。1. 背景与核心概念1.1 为什么需要张量补全先谈一个最朴素的问题补全任务到底在做什么给定一个不完整的数据集合我们希望把缺失位置的值推断出来。传统矩阵补全的经典假设是数据矩阵是低秩的即矩阵的列与列之间、行与行之间存在较强的线性相关性。一个典型的例子是电影评分矩阵用户对所有电影的评分矩阵往往是低秩的因为用户的偏好可以被少数几个“隐因子”解释。通过最小化矩阵核范数同时保证观测位置与已知值一致就能恢复出整个矩阵。但真实数据常常不止两个维度。一段视频可以看作“长 × 宽 × 时间”的三阶张量一组多光谱图像可以看作“高 × 宽 × 波段”的三阶张量一个医学影像序列则可能是“高 × 宽 × 切片 × 时间”的高阶张量。如果直接把三维数据压扁成二维矩阵比如把视频的每一帧拉成向量再叠成矩阵虽然形式上满足了“矩阵”输入却破坏了空间邻域关系和时间连续关系。张量补全的核心动机就是保留数据原本的多维结构利用跨维度的相关性来恢复缺失值。1.2 从矩阵补全到张量补全两个典型路线张量补全并不是只有一个定义。大家接触最多的有两种框架需要先做区分CP 分解CANDECOMP/PARAFAC把张量分解成若干个秩一张量之和。CP 秩定义直观但求解 NP-hard实践中通常靠“给定秩然后拟合”的方式近似。Tucker 分解把张量分解成一个核心张量与多个因子矩阵的乘积。Tucker 秩用各模mode的矩阵秩来衡量灵活性高但核心张量的大小需要人为指定且分解结果通常不唯一。t-SVD 框架下的 tubal 秩基于 t-product 和循环卷积定义把三维张量当作“管数组”通过在第三维上做傅里叶变换后对每个切片做矩阵 SVD再逆变换得到张量 SVD。tubal 秩就是 t-SVD 中非零奇异管singular tube的个数。其中基于 t-SVD 的张量补全在近年来的理论分析中表现尤为活跃。它比 Tucker 分解更容易给出可证明的恢复保证又比 CP 分解在数值求解上更稳定。本文讨论的 low-tubal-rank tensor completion正是围绕 t-SVD 这一套代数体系展开的。1.3 “鲁棒”到底在解决什么问题标准的低秩张量补全假设观测数据等于一个低 tubal 秩张量加上微小的随机噪声。然而真实场景中噪声往往不是温和的。比如监控视频中突然出现的强光遮挡、传感器短时故障产生的异常脉冲、医学影像中金属伪影造成的极端像素值这些都可以看作“稀疏的、幅度较大的异常值”。如果模型只假设高斯噪声异常值会严重拉扯优化方向导致补全结果整体失真。鲁棒Robust张量补全的核心思想是把观测数据建模成三部分低秩主结构 稀疏异常 小噪声。这样一来低秩部分捕捉数据本质结构稀疏部分吸收异常干扰小噪声项处理剩余随机波动。这正是文章标题中“robust”的通常含义即使观测被异常值污染、采样模式并不理想算法仍然能稳定恢复出干净的数据。2. 核心数学基础t-SVD 与 tubal-rank2.1 t-product 与“管”的直觉要理解 tubal 秩首先得理解 t-product 这套乘法。这里用三阶张量来叙述高维可以类似推广。设 \(\mathcal{A} \in \mathbb{R}^{n_1 \times n_2 \times n_3}\)我们把它看成 \(n_1 \times n_2\) 个“管子”排列成的张量每个管子是长度 \(n_3\) 的向量方向沿着第三维。t-product 的定义是两个张量相乘结果张量的第 \((i,j)\) 个管子等于 \(\mathcal{A}\) 的第 \(i\) 行上的管子与 \(\mathcal{B}\) 的第 \(j\) 列上的管子做循环卷积后求和。这个定义初看不直观但它有一个非常漂亮的性质对第三维做离散傅里叶变换DFT后循环卷积会变成逐元素的乘法。于是 t-product 在傅里叶域中退化为“逐切片相乘”计算复杂度大幅下降也为后续的 t-SVD 分解提供了捷径。2.2 t-SVD 分解在傅里叶域中做矩阵 SVDt-SVD 的算法流程可以概括为四步对输入张量 \(\mathcal{A}\) 沿第三维做 FFT得到 \(\hat{\mathcal{A}}\)。对 \(\hat{\mathcal{A}}\) 的每一个正面切片 \(\hat{A}^{(k)}\)分别做矩阵 SVD\(\hat{A}^{(k)} \hat{U}^{(k)} \hat{S}^{(k)} (\hat{V}^{(k)})^T\)。把 \(\hat{U}^{(k)}、\hat{S}^{(k)}、\hat{V}^{(k)}\) 按原位置拼回张量。对所有切片做逆 FFT得到 \(\mathcal{A} \mathcal{U} * \mathcal{S} * \mathcal{V}^T\)。其中 \(\mathcal{U}\) 和 \(\mathcal{V}\) 是正交张量\(\mathcal{S}\) 是 f-对角张量即每个正面切片是对角矩阵但沿第三维是一组“管”。tubal 秩定义为 \(\mathcal{S}\) 中非零奇异管的个数。直观地看它衡量的是张量在 t-SVD 意义下的本质自由度。动手实验时你可以用 Python 的 NumPy 加上scipy.fft快速实现这个流程。需要提醒的是对第三维做 FFT 之后不同频率切片的奇异值大小可能差异很大低频部分往往集中了大部分能量。这也是 t-SVD 能有效压缩视频和图像序列的原因。2.3 张量核范数与凸松弛最小化 tubal 秩本身是非凸且 NP-hard 的。和矩阵补全中的核范数松弛类似张量场景下通常使用张量核范数Tensor Nuclear Norm, TNN作为替代。定义上TNN 等于 t-SVD 中所有奇异管在所有频率上奇异值之和也可以理解为在傅里叶域中对每个切片矩阵核范数求平均。用张量核范数做凸松弛有一个额外的好处它能够利用第三维的全局结构而不像逐切片矩阵核范数那样把维度之间的关系割裂开。很多论文的理论分析都建立在 TNN 的基础上通过约束张量的 tubal incoherence 条件来推导恢复误差界。简单理解incoherence 条件要求张量的奇异向量不能过于稀疏或集中于少数坐标否则观测采样几乎不可能覆盖有效信息。这一小节如果只记一句话tubal 秩是描述三维数据本质复杂度的有效工具TNN 是它的可计算替代品。3. cross-concentrated sampling采样模式带来的挑战3.1 采样集合不只是“缺失率”那么简单补全问题的输入通常是一个带 mask 的观测张量。mask 中 1 代表观测位置0 代表缺失位置。许多理论结果默认采样是均匀随机或独立同分布的这样每个位置被观测到的概率相同。均匀随机采样有一个很好的性质它在概率意义下能均匀覆盖张量的各个部分只要采样率够高低秩结构就能被充分“钉住”。但真实项目里采样往往并不均匀。打个比方如果拍摄一段视频镜头前有人走动那么人所在区域可能被大面积遮挡如果医学影像某个切片区域有伪影那么该区域的像素大概率不可用如果传感器阵列中某几个通道损坏那么一整条“管道”的数据都丢失了。这些场景的共同特点是缺失或观测异常在空间上高度集中而不是随机稀疏散布。3.2 均匀采样与 cross-concentrated sampling所谓 cross-concentrated sampling可以理解为“跨维度集中采样”。它比单纯“局部缺失”更麻烦因为缺失位置可能在多个维度上同时聚集。举个例子在视频张量 \(\mathbb{R}^{H \times W \times T}\) 中一个雨滴遮挡区域会同时覆盖连续的像素块和多帧时间形成的缺失集合是沿着“空间–时间”两个方向同时集中的。这种采样模式对传统张量补全算法的挑战是双重的信息覆盖不均衡某些 tubal 方向上的采样极少低秩结构的约束在这些方向上很难被激活。异常与缺失耦合集中采样区域往往是数据异常区域比如遮挡边界、传感器故障范围异常和缺失同时出现模型容易被误导。如果仍然用均匀采样假设下的算法恢复结果往往会在集中缺失区域出现片状伪影整体误差被局部大误差主导。3.3 为什么传统恢复理论会失效传统张量补全理论给出的恢复保证通常建立在高斯或次高斯采样算子的基础上证明中依赖“观测位置足够分散能够给每个奇异向量方向都提供足够约束”的 argument。当采样变成 cross-concentrated 后采样算子不再是良好的有界测量随机性的“均匀覆盖”假设被打破。这时可能出现两种局面理论失效已有的采样数下界不再保证成功恢复算法可能在理论上无法区分真实低秩张量与某些“看似低秩但仅适配集中观测”的伪解。数值恶化ADMM 或梯度类算法在集中缺失区域可能出现病态迭代更新容易被局部模式带偏收敛速度和精度同步下降。因此要处理 cross-concentrated sampling模型和优化方法都需要“鲁棒化”。文章标题里的 robust 有两层含义既要对抗异常值污染也要对抗采样模式带来的信息不均衡。4. 模型构建鲁棒低 tubal 秩张量补全4.1 目标函数设计结合前面的分析把观测数据 \(\mathcal{X}\) 建模为\[ \mathcal{X} \mathcal{L} \mathcal{E} \mathcal{N} \]其中\(\mathcal{L}\) 是低 tubal 秩主结构张量\(\mathcal{E}\) 是稀疏异常张量用来吸收集中出现的极端值\(\mathcal{N}\) 是随机小噪声张量。在采样集合 \(\Omega\) 上需要保证观测值被拟合。于是可以写出一个典型的优化问题\[ \min_{\mathcal{L}, \mathcal{E}} \; \|\mathcal{L}\|\ast \lambda \|\mathcal{P}\Omega(\mathcal{E})\|1 \;\;\; \text{s.t.} \;\; \mathcal{P}\Omega(\mathcal{X} - \mathcal{L} - \mathcal{E}) \approx 0 \]其中 \(\|\mathcal{L}\|\ast\) 代表张量核范数\(\|\mathcal{P}\Omega(\mathcal{E})\|_1\) 是对异常项的稀疏约束\(\lambda\) 平衡两部分。这个形式和鲁棒主成分分析Robust PCA的张量版本非常接近低秩 稀疏分解只不过这里低秩部分用 tubal 范数来度量并且约束只在观测集合 \(\Omega\) 上施加。4.2 关于采样模式的额外处理如果只是简单套用上述目标函数在 cross-concentrated sampling 下仍然会遇到问题。一个容易想到的改进思路是在损失函数中对不同采样区域赋予不同权重。具体来说可以把观测区域分为“密集采样区”和“稀疏采样区”。密集采样区对应集中采样的区域信息多但噪声和异常也可能集中稀疏采样区虽然观测点少但干净可靠。此时可以设计一个加权约束\[ \mathcal{P}_\Omega(\mathcal{X} - \mathcal{L} - \mathcal{E}) \approx 0 \]但误差项用权重矩阵 \(\mathcal{W}\) 加权权重可以反比于局部采样密度或局部异常概率估计值。这样做的好处是模型不会因为密集区域的异常值而牺牲稀疏区域的恢复精度同时也能在稀疏区域利用低秩先验进行合理插值。另一个实用技巧是“迭代重加权”第一轮先用均匀权重跑出一个初始结果然后根据残差分布估计各区域是倾向于“异常主导”还是“随机噪声”再调节下一轮的权重。这种思路类似于鲁棒统计中的 M-estimator在工程实现中往往能显著提升效果。4.3 优化算法框架ADMM上述优化问题通常使用 ADMM交替方向乘子法求解。把约束写成增广拉格朗日形式然后交替更新 \(\mathcal{L}\)、\(\mathcal{E}\) 和对偶变量。每轮的主要计算量集中在更新 \(\mathcal{L}\)求解一个张量核范数最小化子问题等价于对当前临时变量做 t-SVD 后软阈值收缩。更新 \(\mathcal{E}\)求解一个 \(\ell_1\) 范数最小化子问题等价于逐元素软阈值收缩。更新对偶变量直接做梯度上升即可。这个流程和矩阵 RPCA 的 ADMM 非常相似区别在于每一步的“SVD 阈值”换成了“t-SVD 管级阈值”。如果在傅里叶域中操作一次 t-SVD 需要执行 \(n_3\) 次矩阵 SVD因此整体计算成本大约是一个矩阵 SVD 的 \(n_3\) 倍。对于 \(n_3\) 较大的数据可以只对低频切片做完整 SVD高频部分用随机化 SVD 加速。5. 恢复保证与理论直觉5.1 采样界与 tubal incoherence 条件理论分析通常要回答一个问题在 cross-concentrated sampling 下需要多少观测点才能保证恢复成功经典张量补全理论给出的观测数下界大约是 \(O(r n_1 n_2 \log^2(n_1 n_2))\) 级别在适当的非相干条件下其中 \(r\) 是 tubal 秩。这个结果要求采样接近均匀随机。当采样集中时严格的均匀随机假设不再成立但可以换一个角度如果集中采样区域本身具有足够的“局部多样性”即在该区域内仍然覆盖了足够多的 tubal 方向那么恢复仍然可能成功。这里的关键条件是 tubal incoherence张量 \(\mathcal{L}\) 的左奇异张量和右奇异张量不能和采样集合的指示函数过度相关。换句话说任意一小块集中采样区域都不能恰好集中在某个奇异管的主要支持上。5.2 为什么“集中”未必是坏事一个反直觉的观察是在 cross-concentrated sampling 中某些维度上的信息采集其实非常充分。比如视频里一大块遮挡区域如果时间维度很长那么这块遮挡区域在之前和之后的帧里可能都有完整信息。只要低秩假设在时间方向能够“穿透遮挡”集中采样区域的信息反而可以帮助约束局部模型。这也是为什么模型要引入稀疏异常项异常项吸收了遮挡或故障导致的极端值低秩主结构则负责利用时间/通道上的相关性去补全被遮挡的细节。两者协作让“集中采样”从灾难变成可处理的问题。当然理论上的保证通常需要更强的条件比如异常支撑集 \(\mathcal{E}\) 的稀疏率不能超过某个阈值或者采样集合在局部以一定概率覆盖每个 tubal 方向。读者如果进入论文推导阶段建议重点关注这里的假设部分。6. 数值实验与复现思路6.1 合成数据生成要验证这类算法的效果一个标准的做法是生成合成张量。import numpy as np def generate_low_tubal_tensor(n1, n2, n3, rank): 生成一个低 tubal 秩的三阶张量 rng np.random.default_rng(42) # 在傅里叶域中生成低秩结构 U rng.normal(size(n1, rank, n3)).astype(np.float64) V rng.normal(size(n2, rank, n3)).astype(np.float64) S rng.normal(size(rank, rank, n3)).astype(np.float64) L_hat np.einsum(ikj,lkj-ilj, U, V) # 简化未用 S L np.fft.ifft(L_hat, axis2).real return L n1, n2, n3, rank 60, 60, 30, 5 L_true generate_low_tubal_tensor(n1, n2, n3, rank)这段代码只是示意真正的 t-SVD 低秩张量生成需要在每个频率切片上保证低秩同时逆变换后为实数。工程实现中更稳妥的做法是先生成一个随机低秩矩阵作为基础再沿第三维做平滑扰动或者直接使用 TensorLy 这类库的random.random_tucker等接口生成低秩张量后再模拟 t-SVD 结构。6.2 构造 cross-concentrated mask 与异常集中采样 mask 的构造可以这样设计随机选择若干个“集中块”每个块覆盖连续的正面切片和设备区域块内随机保留部分观测块外则保留较高观测率。def generate_cross_concentrated_mask(shape, block_ratio0.2, keep_inside0.2, keep_outside0.8): n1, n2, n3 shape mask np.zeros(shape, dtypebool) rng np.random.default_rng(7) # 随机选择集中块的起点 b1 rng.integers(0, int(n1 * 0.5)) b2 rng.integers(0, int(n2 * 0.5)) b3 rng.integers(0, int(n3 * 0.5)) h, w, t int(n1 * block_ratio), int(n2 * block_ratio), int(n3 * block_ratio) for i in range(n1): for j in range(n2): for k in range(n3): inside (b1 i b1h) and (b2 j b2w) and (b3 k b3t) if rng.random() (keep_inside if inside else keep_outside): mask[i, j, k] True return mask这段代码用三重循环效率较低仅用于说明思路。实际实验中请向量化实现否则张量稍大就跑不动。异常值可以在 mask 的观测位置上随机添加大幅值模拟遮挡或传感器故障。6.3 核心算法流程伪代码ADMM 风格的算法骨架可以看作输入观测张量 X, 采样集合 Omega, 参数 lambda, rho, 最大迭代次数 K 初始化L X, E 0, Y 0 for iter 1 to K: # 更新 L temp X - E Y / rho L tensor_svd_threshold(temp, 1/rho) # 更新 E temp X - L Y / rho E soft_threshold(temp, lambda/rho) # 更新对偶变量 Y Y rho * (X - L - E) return L, E每一行都对应一个凸子问题。核心是tensor_svd_threshold它在傅里叶域中对每个切片做软阈值 SVD。实践中建议先生成一个小规模如 40×40×20的合成数据跑通流程后再扩大规模。6.4 评估指标恢复效果可以用两个指标衡量相对误差Relative Error\[ \frac{\|\mathcal{P}{\Omega^c}(\hat{\mathcal{L}} - \mathcal{L}{true})\|F}{\|\mathcal{P}{\Omega^c}(\mathcal{L}_{true})\|_F} \]衡量缺失位置的重建精度。结构相似度SSIM如果处理的是图像或视频SSIM 比 MSE 更贴近人眼感知。异常检测准确率如果还关心异常定位可以对比 \(\hat{\mathcal{E}}\) 的支撑集与真实异常位置的 IoU。在对比实验中至少应该与以下几种方法对比均匀采样下的低 tubal 秩补全、矩阵化补全、不带鲁棒项的张量补全。这样才能看出“cross-concentrated sampling”和“鲁棒项”各自贡献了多少提升。7. 常见问题与排查思路7.1 算法不收敛或收敛极慢问题现象常见原因解决思路迭代次数很多但损失不下降惩罚参数 rho 过大或过小调整 rho通常从 0.01~0.1 开始按 1.5~2 倍递增损失震荡稀疏项权重 lambda 过大减小 lambda或先单独跑低秩项再逐步加入稀疏项傅里叶域操作后数值不稳定未对第三维做归一化输入数据先做归一化并在 FFT 前减去均值张量类算法的调参经验与矩阵版本类似优先固定一个参数网格搜索另一个。合成数据上先跑通小规模再扩大规模。7.2 补全结果出现片状伪影这种情况多发生在 cross-concentrated 采样块的边缘。原因通常是集中区域与外部区域的观测权重不一致导致模型在边界处“缝合”得不自然。排查思路检查 mask 边缘是否引入了错误的过渡带。检查异常项是否吸收了太多边界强度。尝试在异常项中加入支撑集约束比如只允许异常出现在观测位置或只出现在集中块内。使用重叠块策略把集中块拆成多个小块的组合并在块之间保留重叠观测可以显著降低边界伪影。7.3 tubal 秩和异常稀疏率怎么估很多新手一上来就问“tubal 秩设多少”。实际上使用核范数松弛时并不需要显式输入秩。但如果你用的是低秩分解类方法如 \(\mathcal{L} \mathcal{U} * \mathcal{S} * \mathcal{V}^T\) 固定秩就需要预设。一个可行的方法是先在均匀采样的小数据集上把损失曲线画出来选择误差平台期对应的秩。另一个办法是观察 t-SVD 奇异谱的衰减趋势如果奇异值迅速下降那么有效秩可以用“奇异值累计能量超过 90%”的位置来估计。异常稀疏率同理可以观察 \(\hat{\mathcal{E}}\) 中非零元素的比例把它作为先验输入下一轮迭代。8. 工程落地建议与扩展方向8.1 医学影像与视频监控中的落地场景鲁棒低 tubal 秩张量补全在医学影像中有很自然的应用。例如 MRI 数据采集时经常存在运动伪影、金属伪影这些伪影在空间上是集中出现的在时间或切片维度上也往往有持续性很适合用“低秩 稀疏异常”的建模来分离伪影、恢复组织信号。值得关注的是近期的医学图像分割研究中出现了“shape-intensity knowledge distillation”形状–强度知识蒸馏这样的思路用形状信息和强度信息相互补充提升分割模型对噪声和域偏移的鲁棒性。这种思想和张量补全中的“低秩结构 异常分离”异曲同工——都是让模型同时利用全局结构和局部特征增强在干扰下的稳定性。如果你正在做医学影像补全或分割预处理可以考虑把两者结合起来先用鲁棒张量补全清洗输入图像再用知识蒸馏框架训练下游分割模型。视频监控中的应用也很直接长时间视频中局部遮挡、反射、传感器闪烁都是典型的集中异常。把视频张量分解为低秩背景对应 \(\mathcal{L}\)和稀疏前景/遮挡对应 \(\mathcal{E}\)同时做缺失帧补全是监控视频预处理中非常实用的技术路线。8.2 工程化注意事项从论文原型走向工程部署有几个容易被忽略的坑内存和计算复杂度t-SVD 需要对第三维做 FFT 和逐切片 SVD。对于高分辨率视频建议缩小到 patch 级别处理或用随机化 SVD 加速避免一次性加载完整张量。参数自适应把 \(\lambda\) 写死到代码里是危险的。工程上建议提供一个自动估计 \(\lambda\) 的逻辑比如根据输入张量规模和采样率设置初始值并在验证集上做一次快速搜索。异常结果的解释性在业务系统中异常张量 \(\mathcal{E}\) 往往本身就是重要的输出。建议把它独立保存并生成可视化结果方便业务方判断异常区域是否合理。合法授权与数据安全如果处理的是患者影像或监控视频务必遵守数据使用授权和个人信息保护要求。任何预处理算法都应在授权数据集上验证并保留完整的数据处理日志。8.3 进一步学习路线如果想深入这个方向可以按以下顺序推进先吃透矩阵补全和矩阵 RPCA 的基础理论理解核范数与 incoherence 条件。然后读 t-SVD 相关的基础工作重点理解 t-product 的傅里叶域实现。再进入交叉采样与鲁棒版本的研究重点关注论文中采样模式的建模方式和异常项的约束形式。同步动手实验用合成数据复现算法用自己的业务数据验证效果。实践是最好的学习方式。建议先别急着读最新的长论文而是复现一个基础版本的鲁棒低 tubal 秩张量补全跑通之后再逐步加入加权采样、异常支撑集估计、自适应参数等改进。回到本文开头的问题当数据缺失不再是随机稀疏的点状缺失而是集中在某些区域甚至跨维度集中时张量补全依然可以做前提是模型要足够“鲁棒”。低 tubal 秩结构保证全局可解释性和恢复能力稀疏异常项吸收局部集中的异常干扰而采样自适应策略帮助模型在信息不均衡的情况下保持稳定。如果这篇文章对你有帮助可以收藏备用。也欢迎在评论区分享你在张量补全或视频修复中遇到的采样问题大家一起交流排坑经验。