張量與多重線性代數
CP 分解
CP(典範多元)分解把一個張量寫成若干簡單的、秩 1 張量之和:對三階張量,T = sum over r of a_r (x) b_r (x) c_r。每一項都是每個模各取一個向量的外積,而項數就是你瞄準的秩。它是奇異值分解最直接的推廣——後者把矩陣寫成若干秩 1 碎片之和 u_r*sigma_r*v_r^T。
它最引人注目的性質是本質唯一性。對矩陣,秩 1 分解極不唯一:你可以在相等奇異值之間旋轉奇異向量,或只要保持乘積不變就隨意混合各因子。對三階或更高階的張量,項數足夠少的 CP 分解在不可避免的自由度——縮放每個向量與重排各項——下唯一,Kruskal 定理給出一個精確的條件。
正是這種唯一性使 CP 成為資料分析的主力:當一個張量確實源自若干秩 1 模式之和(少數跨模作用的隱藏「因子」)時,CP 能恢復這些因子,而不受困擾矩陣因子分析的旋轉含糊性。這是盲源分離、化學計量學(螢光光譜)與潛變數模型背後的原理。
誠實的告誡。最小 CP 秩恰是那個(困難的、NP 困難的)張量秩,所以你通常是擬合一個假定的秩,而非找出真正的秩。最佳秩 r 逼近甚至可能根本不存在,因為秩 r 張量的集合不閉合(邊界秩現象),於是擬合演算法可能發散——因子範數爆炸、而其相消卻使擬合改善。用它,但要提防這些不穩定性。
T = sum_{r=1}^{R} a_r (x) b_r (x) c_r , compare M = sum_r sigma_r u_r (x) v_r
CP 把跨所有模的秩 1 外積相加——SVD 在三階上的回聲。
與 SVD 對照:SVD 總是存在、本質唯一(退化情形下至多差符號 / 旋轉),並給出最佳低秩擬合。CP 在 SVD 不唯一處往往唯一,但可能不存在最佳擬合。這是用唯一性換存在性保證的交易。
又稱
另見