Paper notes(4):Tensor Ring Decompoition


本文只是个人用于记录论文学习笔记,如有写错的地方还望各位大佬批评指正

1.文章提出的问题

TensorTrain DecompositionTensor-Train\ Decomposition 高度依赖于张量维度的排列,由于其在latent coreslatent\ cores 上的多线性积遵循严格的顺序,所以很难找到最优的TTTT表示。

2.文章的主要创新点

本文针对TTDTTD的局限性,从三个方面进行了改进,提出了一种新的基础张量分解模型——TensorTrain DecompositionTensor-Train\ Decomposition,该模型将高维张量表示为一系列低维核张量(三维张量)上的环形多线性积。其图形化表示如下图所示:
Paper notes(4):Tensor Ring Decompoition

3.Tensor Ring Model

T\mathcal{T}是一个dd维张量,大小为n1×n2××ndn_1\times n_2\times \dotsm \times n_d,表示为TRn1×n2××nd\mathcal{T} \in \mathbb{R}^{n_1\times n_2\times \dotsm \times n_d}TRDTRD将会把T\mathcal{T}分解为一系列张量ZkRrk×nk×rk+1\mathcal{Z}_k \in \mathbb{R}^{r_k\times n_k\times r_{k+1}}(注意TRD分解所得的张量的大小和TTD分解所得张量大小的区别),特别的ZdRrd×nd×r1\mathcal{Z}_d \in \mathbb{R}^{r_d\times n_d\times r_1}T\mathcal{T}的某一个元素可以表示为:
T(i1,i2,,id)=Trace{Z1(i1)Z2(i2)Zd(id)}=Trace{k=1dZk(ik)}(1) \begin{aligned} \tag{1} \mathcal{T}(i_1,i_2,\dotsc,i_d) &=\text{Trace}\{Z_1(i_1)Z_2(i_2)\dotsc Z_d(i_d)\} \\ &=\text{Trace}\{\prod_{k=1}^d Z_k(i_k)\} \end{aligned}

其中Zk(ik)Z_k(i_k)表示张量ZkZ_k的第iki_klateral slicelateral\ slice,其大小为rk×rk+1r_k\times r_{k+1}Zk\mathcal{Z}_k被称为kth-corekth \text{-} core;核张量的大小rkr_k的集合表示为一个向量r=[r1,r2,rd]Tr=\left[r_1, r_2, \dotsm,r_d\right]^T,被称为TR-ranksTR \text{-} ranks。类似于TTDTTD公式(1)也可以表示为索引形式:
T(i1,i2,,id)=α1,,αd=1r1,,rdk=1dZk(αk,ik,αk+1)(2) \tag{2} \mathcal{T}(i_1,i_2,\dotsc,i_d) = \sum_{\alpha_1,\dotsm,\alpha_d=1}^{r_1,\dotsm,r_d} \prod_{k=1}^d Z_k(\alpha_k,i_k,\alpha_{k+1})

其中αd+1=α1,k{1,,d},1αkrk,1iknk\alpha_{d+1} = \alpha_1, k \in \{1,\dotsm,d\},1 \leqslant \alpha_k \leqslant r_k, 1 \leqslant i_k \leqslant n_kTRDTRD的张量表示形式如下:
T=α1,,αd=1r1,,rdz1(α1,α2)zd(αd,α1)(3) \tag{3} \mathcal{T} = \sum_{\alpha_1,\dotsm,\alpha_d=1}^{r_1,\dotsm,r_d} z_1(\alpha_1,\alpha_2) \circ \dotsm \circ z_d(\alpha_d,\alpha_1)

这里‘\circ’表示向量的外积运算,zk(αk,αk+1)Rnkz_k(\alpha_k,\alpha_{k+1}) \in \mathbb{R}^{n_k}表示Zk\mathcal{Z}_k的第(αk,αk+1)(\alpha_k, \alpha_{k+1})mode-2 fibermode \text{-} 2 \ fiber(关于这一点可以参照三维张量的mode-2 fibermode \text{-} 2 \ fiber示意图,理解起来很容易)。

4.TRD算法

张量T\mathcal{T}TRDTRD分解表示为T=R(Z1,Z2,,Zd)\mathcal{T}=\mathfrak{R}(\mathcal{Z_1},\mathcal{Z_2},\dotsc,\mathcal{Z_d}),目标函数为:
minZ1,,Zd=TR(Z1,Z2,,Zd)FϵpTF(5) \tag{5} \min_{\mathcal{Z_1},\dotsc,\mathcal{Z_d}} = {\lVert \mathcal{T} - \mathfrak{R}(\mathcal{Z_1},\mathcal{Z_2},\dotsc,\mathcal{Z_d}) \rVert}_F \leqslant \epsilon_p {\lVert \mathcal{T} \rVert}_F

一些定义:
Paper notes(4):Tensor Ring Decompoition
这篇文章给出了四种TRDTRD的算法,具体的算法伪代码请参看论文。

参考文献
1. Tensor Ring Dexomposition