張量與多重線性代數
Tucker 分解
Tucker 分解把一個張量分解為一個小的核張量,再沿每個模乘以一個因子矩陣。對三階,T = G x_1 U x_2 V x_3 W,其中 G 是核,而 U、V、W 分別作用於第一、第二、第三個模(記號 x_n 表示把核沿模 n 乘以那個矩陣)。它是 SVD 的 T = U*Sigma*V^T 的多重線性類比,只是用一個滿核取代了對角矩陣。
可把因子矩陣想成為每個模選取一組更好的、更低維的基,把核想成在這些新基下表達出來的那個張量。若 U、V、W 各有 r1、r2、r3 行,則核僅為 r1 列 r2 行 r3 路,遠小於原張量。列表 (r1, r2, r3) 是多重線性秩——三個矩陣展開的秩——而與 CP 秩不同,它易於計算。
標準做法是高階 SVD(HOSVD):對每個模的展開做一次普通 SVD,留下排在前面的奇異向量作為因子矩陣,再通過投影形成核。截斷這些奇異向量給出極佳的壓縮,它雖非可證明最優的 Tucker 逼近,卻帶有乾淨的擬最優界。
它與 CP 如何關聯?CP 強制核為對角(僅超對角元非零),使其簡約且本質唯一,但僵硬且困難。Tucker 允許一個滿的、稠密的核,使其靈活、穩定、易算,但不唯一(你可以旋轉因子矩陣並反向旋轉核)。用 CP 去尋找可解釋的因子;用 Tucker 去壓縮與去噪。
T = G x_1 U x_2 V x_3 W , core G is r1 x r2 x r3 with r1,r2,r3 small
一個小的稠密核,每個模各乘一個因子矩陣——用於壓縮的高階 SVD。
一個順手的特例:若你強制核為對角,Tucker 便塌縮為 CP。所以 CP 是核為對角的 Tucker,而 Tucker 是放鬆到滿核的 CP——二者是同一族的兩個端點,張量列等其他格式介於其間。
又稱
另見