本文是对论文Tensor Decompositions and Applications进行了翻译、整理、筛选和适当的补充,如何希望深入理解可以阅读原文。
相关文章:
【张量分解(一)】符号与基础知识
【张量分解(二)】CP分解
【张量分解(三)】Tucker分解
一、Tucker分解
1.1 定义
Tucker分解可以看作是主成分分析(PCA)的一种高阶版本,其将张量分解为一个核张量与每一维度上对应矩阵的乘积。具体来说,以三阶张量X∈RI×J×K为例,其Tucker分解写为
X≈G×1A×2B×3C=p=1∑Pq=1∑Qr=1∑R=gpqrap∘bq∘cr=⟮G;A,B,C⟯
其中,A∈RI×P,B∈RJ×Q,C∈RK×R是不同维度上的因子矩阵,这些矩阵通常被认为是不同维度上的主成分。G∈RP×Q×R称为核张量,其中的每个元素代表了不同成分之间的交互程度。
从元素的角度看,Tucker分解可以写为
xijk≈p=1∑Pq=1∑Qr=1∑Rgpqraipbjqckr,i=1,...,I,j=1,...,J,k=1,...,K
P,Q和R是因子矩阵A,B,C的成分数(例如因子矩阵的列数)。如果P,Q和R小于I,J,K,那么张量G可以被认为是张量X的压缩版本。在某些情况下,压缩版本的张量可以节省大量的存储空间。Tucker分解形象展示如下图:

1.2 张量矩阵化后的Tucker分解
Tucker分解的矩阵化版本为
X(1)≈AG(1)(C⊗B)T
X(2)≈BG(2)(C⊗A)T
X(3)≈CG(3)(B⊗A)T
1.3 Tucker分解的N维推广
上面仅介绍了三维张量的Tucker分解,其在N维张量上的分解为
X=G×1A(1)×2A(2)⋯×NA(N)=⟮G;A(1),A(2),…,A(N)⟯
元素角度的N维张量Tucker分解为:
xi1i2…iN=r1=1∑R1r2=1∑R2⋯rN=1∑RNgr1r2…rNai1r1(1)ai2r2(2)…aiNrN(N)
矩阵化版本为
X(n)=A(n)G(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⊗⋯⊗A(1))T
二、n秩(n-rank)与截断Tucker分解
2.1 n秩(n-rank)
若X是一个大小为I1×I2×⋯×IN的N阶张量,那么其n秩的含义是:X在模n矩阵化后的矩阵X(n)的列秩,其表示为rankn(X)。如果在Tucker分解中,令Rn=rankn(X),n=1,...,N
那么就称张量X是一个rank−(R1,R2,…,RN)的张量。(注:不要混淆张量n秩和张量秩的概念)
2.2 截断Tucker分解
X是一个n秩为rank−(R1,R2,…,RN)的数据张量。如果令Rn=rankn(X),则可以很容易找到X的精确Tucker分解。但是,如果存在至少一个维度满足Rn<rankn(X),那么Tucker分解必然不准确且计算困难,在这种情况下的Tucker分解称为截断Tucker分解,如原理如下图所示。

截断Tucker分解无法准确的再生张量X
三、计算Tucker分解
3.1 高阶SVD(HOSVD)
高阶SVD(HOSVD)的思想是找到那些能很好的捕获维度n上变化的矩阵,而且其不受到其他维度的影响。HOSVD是矩阵的SVD(奇异值分解)在高维张量上的推广。其算法如下所示:

当至少存在一个Rn<rankn(X),则称为截断HOSVD。
3.2 HOOI
截断HOSVD并不能直接得到最优值,但是其结果可以作为迭代交替最小二乘法(ALS)的一个很好的迭代起点。HOOI就是一种ALS算法,其算法如下图所示:

HOOI原理:
若X是一个大小为I1×I2×⋯×IN的N阶张量,那么计算Tucker分解要解决的优化问题为
min∥X−⟮G;A(1),A(2),…,A(N)⟯∥(1)
其中,G∈RR1×R2×⋯×RN,矩阵A(n)∈RIn×Rn且列正交。
如果在最优解处,那么核张量G必然满足
G=X×1A(1)T×2A(2)T⋯×NA(N)T
将上式代入到公式(1)中,那么优化目标可以重写为
max∥X×1A(1)T×2A(2)T⋯×NA(N)T∥(2)
其中,矩阵A(n)∈RIn×Rn且列正交。将公式(2)重写为矩阵形式
∥A(n)TW∥且W=X(n)(A(N)⊗⋯⊗A(n+1)⊗A(n−1)⊗⋯⊗A(1))
使用SVD可以求解上面的优化问题,仅需要令A(n)为矩阵W的左奇异向量。但是,这个方法不能保证收敛到全局最优值。
四、缺失唯一性
Tucker分解是不唯一的。对于三维张量的分解,如果令U∈RP×P,V∈RQ×Q,W∈RR×R为非奇异矩阵。那么对Tucker分解可以做下面的变换
⟮G;A,B,C⟯=⟮G×1U×2V×3W;AU−1,BV−1,CW−1⟯
换句话说,我们可以在不影响拟合结果的情况下修改核张量G,只要同时对因子矩阵进行反向修改即可。
这种特性提供了一个渠道,让我们可以简化核张量G,从而是G中的大多数元素为0,这样就可以消除各个维度上成分的相互作用。