Paper notes(3):Tensor-Train Decomposition

Paper notes(3):Tensor-Train Decomposition

1.文章的主要内容

给出了一种简单的非递归的张量分解形式,避免了“维度诅咒”的影响,该分解形式得到的参数数量与正则分解(canonical decomposition)的参数数量相同,但更稳定,因为该种分解是基于辅助展开矩阵的低秩近似。

2.TTD模型

给定一个dd维张量BB,如果想用张量AA近似张量BB,则AA的每一个元素可以表示为:
A(i1,i2,...,id)=G1(i1)G2(i2)...Gd(id)(1.2) \tag{1.2} A(i_1,i_2,...,i_d)=G_1(i_1)G_2(i_2)...G_d(i_d)

其中Gk(ik)G_k(i_k)是一个rk1×rkr_{k-1}\times r_k矩阵,因为A(i1,i2,...,id)A(i_1,i_2,...,i_d)代表的是一个元素,所以r0=rd=1r_0=r_d=1。公式(1.2)可以改写为索引的形式:实际上Gk(ik)G_k(i_k)是一个大小为rk1×nk×rkr_{k-1}\times n_k\times r_k的三维数组,它的某个元素Gk(αk1,nk,αk)=Gk(ik)αk1αkG_k(\alpha_{k-1},n_k,\alpha_k)=G_k(i_k)_{\alpha_{k-1}\alpha_k}。因此TTD的索引形式可以表示为:
A(i1,i2,...,id)=α0...,αdG1(α0,i1,α1)G2(α1,i2,α2)...Gd(αd1,id,αd)(1.3) \tag{1.3} A(i_1,i_2,...,i_d)=\sum_{\alpha_0...,\alpha_d} G_1(\alpha_0,i_1,\alpha_1)G_2(\alpha_1,i_2,\alpha_2)...G_d(\alpha_{d-1},i_d,\alpha_d)

注:以上内容来自于原文的翻译,以下为个人的简单理解

Paper notes(3):Tensor-Train Decomposition
上图是TTD的一个图解,虽然图解给出的rk1,rk,nkr_{k-1},r_k,n_k的方向与上文中的不同,但解释的道理是相同的。图中的pkp_k即为上文中的nkn_k,代表着被分解张量第kk维的大小。结合上图和公式(1.2),我们可以看出Gk(ik)G_k(i_k)是三维张量GkG_k的一个lateral slicelateral \ slice,即一个大小为rk1×rkr_{k-1}\times r_k矩阵,总的来说矩阵AA的某个元素A(i1,i2,...,id)A(i_1,i_2,...,i_d)就是其每一个下标对应的GkG_k张量的第iki_ksliceslice的乘积的和。

3.TTD的算法

Paper notes(3):Tensor-Train Decomposition

参考文章:
1. Tensor-Train Decomposition
2. 张量分解(四):Tensor-train Decomposition