实际上,Tucker Decomposition 可以看作是对多维张量的 SVD 分解. 具体来说,假设要分解的张量是 mm 维的张量

XRD1×D2××DmX\in \mathbb{R}^{D_1\times D_2\times \dots \times D_m}

对于 Tucker Decomposition,我们令 Tucker Decomposition 在每一个维度上的 rankRiR_i,那么 Tucker Decomposition 就是说,我们可以用一个 RR1×R2×Rm\mathbb{R}^{R_1\times R_2\times \dots R_m} 的张量 GGmm 个二维矩阵 MiRDi×RiM_i\in\mathbb{R}^{D_i\times R_i} 来近似原张量的数据,这个形式简记为

XG×1M1×2M2×mMmX\approx G \times_1 M_1 \times_2 M_2 \cdots \times_m M_m

这里的 ×i\times_i 又被称为模态积。Tucker Decomposition 下,每一个元素可以这样计算:

X[i1,i2,,im]r1=1R1r2=1R2rm=1Rmg[r1,r2,,rm]j=1mMj[ij,rj]X_{[i_1, i_2, \dots, i_m]}\approx \sum_{r_1=1}^{R_1}\sum_{r_2=1}^{R_2}\dots\sum_{r_m=1}^{R_m} g_{[r_1,r_2,\dots,r_m]}\cdot \prod_{j=1}^m {M_j}_{[i_j, r_j]}