浅谈张量分解(四):外积、Kronecker积和张量积

在维基百科上,外积(Outer product - Wikipedia)被解释为:

In linear algebra, an outer product is the tensor product of two coordinate vectors, a special case of the Kronecker product of matrices.

虽然这个解释很简明,但当我们看完这段话后,可能会产生以下两点疑问:

  • 为什么外积能被认为是Kronecker积的特例呢?
  • 外积与张量积(tensor product)有什么关系?

围绕这两点疑问,我们来讨论一下容易混淆的外积、Kronecker积和张量积。

1 Kronecker积

在之前的浅谈张量分解(二):张量分解的数学基础一文中,我们已经知道了Kronecker积的运算规则,给定一个大小为的矩阵和一个大小为的矩阵,则矩阵和矩阵的Kronecker积为

很明显,矩阵的大小为,即行数为,列数为,符号“”表示Kronecker积。当给定两个向量,如,时,我们可以很轻松地计算出Kronecker积为。

import numpy as np
a = np.array([[1], [2]])
b = np.array([[3], [4]])
np.kron(a, b)
np.outer(a, b)
np.kron(a, b.T)

然而,向量的外积却为,是一个大小为的矩阵。我们发现Kronecker积与外积并不相同。Kronecker product and outer product confusion认为这种不一致是由符号的“滥用”造成的。

不妨将Kronecker积的符号记作,外积的符号记作(注:一般用符号  表示),则有

.

虽然严格意义上的Kronecker积的计算结果和外积的不同,但这种不同仅仅体现在每个元素的摆放位置不同,而且等价于,确实可以用来计算外积。若给定向量  ,  和  ,则它们外积为

\Leftrightarrow \left[ \begin{array}{c} x_{111} \\ x_{211} \\ x_{121} \\ x_{221} \\ x_{131} \\ x_{231} \\ x_{112} \\ x_{212} \\ x_{122} \\ x_{222} \\ x_{132} \\ x_{232} \\ \end{array} \right] = \left[ \begin{array}{c} u_1v_1w_1 \\ u_2v_1w_1 \\ u_1v_2w_1 \\ u_2v_2w_1 \\ u_1v_3w_1 \\ u_2v_3w_1 \\ u_1v_1w_2 \\ u_2v_1w_2 \\ u_1v_2w_2 \\ u_2v_2w_2 \\ u_1v_3w_2 \\ u_2v_3w_2 \\ \end{array} \right] =\vec w \otimes \vec v \otimes \vec u .

因此,我们依然可以认为外积是Kronecker积的特例。

2 张量积

简单来说,张量积的定义为:给定两个有限维的向量空间(finite dimensional vector space)和,其中,为向量空间的基(basis),为向量空间的基,则我们可以将定义为个的线性组合,即

.

同时,双线性映射(bilinear map,如果仅仅关注张量积的计算,则不必深究这个概念)被定义为

其中,,对于任意取自向量空间和下的向量,我们都可以用相应的基进行线性组合来表示出来,若为向量线性组合的系数,为向量线性组合的系数,则满足。另外,表示两个向量空间的Cartesian积(维基链接:Cartesian product)。

为了便于理解,这里举一个简单的例子(来源:Calculate the tensor product of two vectors)。

已知下的一组标准基为,,下的一组标准基为,,。给定向量,向量,则向量的张量积为

其中,是的基,张量积与外积的计算结果完全相同。

import numpy as np
x = np.array([[1], [1]])
y = np.array([[1], [-2], [1]])
np.kron(x, y.T)
np.outer(x, y)

对于任意向量,,它们的张量积有时被称为外积,如果是的基,且,  是标准基,则外积可以写成如下形式:

其中,是矩阵第行、第列的元素。

对于向量而言,张量积和外积是等价的。

3 推荐阅读:秩一(rank one)矩阵和外积的联系

在矩阵分解和张量分解中,我们总不免见到rank one这个词,另外,我们也知道“秩一”与向量的外积密切相关,因此,对秩一矩阵和外积的联系感兴趣的读者可阅读Rank of a Decomposable Tensor和Is there meaning for uv^T?上的回答。

附录——张量积的性质:

(1) , ;

(2) .

你可能感兴趣的:(浅谈张量分解(四):外积、Kronecker积和张量积)