2.3.1 张量分解理论
1.张量相关定义
张量是指由多个矢量空间乘积构造的多路阵列,如张量表示为N阶张量,可以将其看作标量、向量和矩阵向高维空间的推广。如图2-18所示分别表示了一阶、二阶、三阶张量,其中,三阶及以上的张量属于高阶张量。张量相关定义介绍如下[17][18]。
图2-18 一阶、二阶、三阶张量
1)张量纤维
张量纤维是指固定除某一下标以外的其他所有下标而形成的子张量。如图2-19所示,对于三阶张量,分别固定I1、I2、I3,依次得到用a︙,j,k、ai,︙,k、ai,j,︙表示的列纤维、行纤维、管纤维。类似地,通过固定除两个下标以外的其他所有下标,可得到张量切片,如图2-20所示。
图2-19 三阶张量的纤维
图2-20 三阶张量的切片
为避免在高维空间直接进行张量运算,一般采用张量向量化或张量矩阵化方法,即将张量首先转换为向量或矩阵,然后利用向量、矩阵相关运算获得张量空间运算结果。接下来,对缺失数据恢复方法中涉及的张量向量化、矩阵化,以及矩阵、张量相关运算的定义进行简单介绍。
2)张量向量化
张量向量化是指将张量转换为向量的变换。例如,三阶张量向量化后得到的向量a可表示为:
3)张量矩阵化
张量矩阵化又称为模式-n矩阵化,是将高维张量经过重新组织或排列展开为矩阵形式,从而实现降阶的一种变换。通过模式-n矩阵化,N阶张量内元素转化为模式-n矩阵X(n)中的,且存在如下关系:
三阶张量的3个模式矩阵化过程如图2-21所示。三阶张量内的元素数据与矩阵化后的矩阵元素存在如下关系:
4)张量的秩
对于张量,如果能够表达成R个秩为1的张量相加,张量的秩即为R的最小值。
5)矩阵的Kronecker积
矩阵A∈ℝm×n,B∈ℝp×q,二者的Kronecker积为mp×nq矩阵,表示如下:
6)矩阵的Khatri-Rao积
矩阵A∈ℝp×n,B∈ℝq×n,二者的Khatri-Rao积定义为A⊙B,表示为:
7)张量的Hadamard积
张量,二者的Hadamard积记作,表示为两个张量相同位置处元素的乘积,表达为:
图2-21 三阶张量的3个模式矩阵化过程
8)张量的内积
张量,二者的内积记作,表示两个张量相同位置对应元素乘积的和。张量内积表达为:
9)张量的Frobenius范数
张量的Frobenius范数记作,定义为:
10)张量n-模式积
张量,矩阵,张量与矩阵的n-模式积运算符号为xn,表示如下:
式中,j=1,2,…,jn。
11)秩为1的张量
对于张量,若能够表示为,且x1,x2,…,xN为向量,则称是秩为1的张量。
2.张量Tucker分解
张量不但能直观表达高维数据,还能最大限度地保持数据的内在联系。为揭示数据的内在联系,挖掘张量蕴含的信息,需要对张量进行分解。张量分解简化表达了张量结构,能够在保持多阶结构的同时,提取各阶主成分因子,从而挖掘张量蕴含的信息。张量分解主要包括Tucker分解和CANDECOMP/PARAFAC(CP)分解[19]。其中,Tucker分解为CP分解的一般形式,如高阶张量的Tucker分解表示为:
式中,;核心张量,且JN<IN,保留了原张量的本质信息;矩阵为因子矩阵,代表张量的各阶主分量,且Un之间彼此正交;×n表示张量的n-模式积,张量与矩阵V的n-模式积定义为:
式中,;j=1,2,…,Jn。例如,三阶张量的Tucker分解表示为:
式中,核心张量秩;A、B和C为因子矩阵,且。三阶张量的Tucker分解过程如图2-22所示。
图2-22 三阶张量的Tucker分解过程
式(2-39)对应的矩阵展开式表达为:
式中,三个结果值分别代表张量在三个不同模式下的主成分,且三者两两相互正交。当在三个维度上的维数相等且为对角张量时,可推证Tucker分解可转化为CP分解,即CP分解是Tucker分解的一种特殊情况。