本文只是个人用于记录论文学习笔记,如有写错的地方还望各位大佬批评指正。
1.文章的主要内容
给出了一种简单的非递归的张量分解形式,避免了“维度诅咒”的影响,该分解形式得到的参数数量与正则分解(canonical decomposition)的参数数量相同,但更稳定,因为该种分解是基于辅助展开矩阵的低秩近似。
2.TTD模型
给定一个
d
d
d维张量
B
B
B,如果想用张量
A
A
A近似张量
B
B
B,则
A
A
A的每一个元素可以表示为:
A
(
i
1
,
i
2
,
.
.
.
,
i
d
)
=
G
1
(
i
1
)
G
2
(
i
2
)
.
.
.
G
d
(
i
d
)
(1.2)
\tag{1.2} A(i_1,i_2,...,i_d)=G_1(i_1)G_2(i_2)...G_d(i_d)
A(i1,i2,...,id)=G1(i1)G2(i2)...Gd(id)(1.2)
其中
G
k
(
i
k
)
G_k(i_k)
Gk(ik)是一个
r
k
−
1
×
r
k
r_{k-1}\times r_k
rk−1×rk矩阵,因为
A
(
i
1
,
i
2
,
.
.
.
,
i
d
)
A(i_1,i_2,...,i_d)
A(i1,i2,...,id)代表的是一个元素,所以
r
0
=
r
d
=
1
r_0=r_d=1
r0=rd=1。公式(1.2)可以改写为索引的形式:实际上
G
k
(
i
k
)
G_k(i_k)
Gk(ik)是一个大小为
r
k
−
1
×
n
k
×
r
k
r_{k-1}\times n_k\times r_k
rk−1×nk×rk的三维数组,它的某个元素
G
k
(
α
k
−
1
,
n
k
,
α
k
)
=
G
k
(
i
k
)
α
k
−
1
α
k
G_k(\alpha_{k-1},n_k,\alpha_k)=G_k(i_k)_{\alpha_{k-1}\alpha_k}
Gk(αk−1,nk,αk)=Gk(ik)αk−1αk。因此TTD的索引形式可以表示为:
A
(
i
1
,
i
2
,
.
.
.
,
i
d
)
=
∑
α
0
.
.
.
,
α
d
G
1
(
α
0
,
i
1
,
α
1
)
G
2
(
α
1
,
i
2
,
α
2
)
.
.
.
G
d
(
α
d
−
1
,
i
d
,
α
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)
A(i1,i2,...,id)=α0...,αd∑G1(α0,i1,α1)G2(α1,i2,α2)...Gd(αd−1,id,αd)(1.3)
注:以上内容来自于原文的翻译,以下为个人的简单理解

上图是TTD的一个图解,虽然图解给出的
r
k
−
1
,
r
k
,
n
k
r_{k-1},r_k,n_k
rk−1,rk,nk的方向与上文中的不同,但解释的道理是相同的。图中的
p
k
p_k
pk即为上文中的
n
k
n_k
nk,代表着被分解张量第
k
k
k维的大小。结合上图和公式(1.2),我们可以看出
G
k
(
i
k
)
G_k(i_k)
Gk(ik)是三维张量
G
k
G_k
Gk的一个
l
a
t
e
r
a
l
s
l
i
c
e
lateral \ slice
lateral slice,即一个大小为
r
k
−
1
×
r
k
r_{k-1}\times r_k
rk−1×rk矩阵,总的来说矩阵
A
A
A的某个元素
A
(
i
1
,
i
2
,
.
.
.
,
i
d
)
A(i_1,i_2,...,i_d)
A(i1,i2,...,id)就是其每一个下标对应的
G
k
G_k
Gk张量的第
i
k
i_k
ik个
l
a
t
e
r
a
l
s
l
i
c
e
lateral \ slice
lateral slice的乘积。
3.TTD的算法

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

本文笔记介绍了张量分解中的Tensor-Train Decomposition(TTD),它提供了一种非递归的低秩张量分解方法,有效避免了维度诅咒问题。TTD模型通过一系列辅助展开矩阵的低秩近似来表示张量,算法详细阐述了如何进行TTD分解。
1685

被折叠的 条评论
为什么被折叠?



