28.7 텐서곱(Tensor Product)의 형식적 정의와 구성 원리

1. 벡터의 외적으로부터의 동기

텐서곱(tensor product)의 개념을 이해하기 위해 벡터의 외적(outer product)에서 출발하자. 두 벡터 \mathbf{u} \in \mathbb{R}^m\mathbf{v} \in \mathbb{R}^n의 외적은 m \times n 행렬 \mathbf{u} \otimes \mathbf{v} = \mathbf{u}\mathbf{v}^\top으로 정의된다. 성분으로 표현하면,

(\mathbf{u} \otimes \mathbf{v})_{ij} = u_i v_j

이 외적은 쌍선형(bilinear)이다. (\alpha\mathbf{u}_1 + \beta\mathbf{u}_2) \otimes \mathbf{v} = \alpha(\mathbf{u}_1 \otimes \mathbf{v}) + \beta(\mathbf{u}_2 \otimes \mathbf{v})이고, \mathbf{u} \otimes (\alpha\mathbf{v}_1 + \beta\mathbf{v}_2) = \alpha(\mathbf{u} \otimes \mathbf{v}_1) + \beta(\mathbf{u} \otimes \mathbf{v}_2)이다.

외적의 결과 \mathbf{u}\mathbf{v}^\top은 순위-1 행렬이며, 모든 행렬은 순위-1 행렬의 합으로 표현된다. 이 아이디어를 일반화한 것이 텐서곱이다.

2. 텐서곱 공간의 형식적 정의

두 벡터 공간 VW (\dim V = m, \dim W = n)의 텐서곱 V \otimes W는 다음과 같이 정의되는 벡터 공간이다.

보편 성질(Universal Property)에 의한 정의: V \otimes W는 쌍선형 사상 \otimes: V \times W \to V \otimes W와 함께, 다음 보편 성질을 만족하는 벡터 공간이다. 임의의 벡터 공간 Z와 쌍선형 사상 f: V \times W \to Z에 대하여, f = \tilde{f} \circ \otimes를 만족하는 유일한 선형 사상 \tilde{f}: V \otimes W \to Z가 존재한다.

\begin{array}{ccc} V \times W & \xrightarrow{f} & Z \\ \downarrow{\otimes} & \nearrow{\tilde{f}} & \\ V \otimes W & & \end{array}

직관적으로, 텐서곱 공간은 쌍선형 사상을 선형 사상으로 “선형화“하는 공간이다. 쌍선형 관계를 선형 관계로 변환하여, 선형대수학의 도구를 적용할 수 있게 한다.

3. 기저와 차원

V의 기저를 \{\mathbf{e}_1, \ldots, \mathbf{e}_m\}, W의 기저를 \{\mathbf{f}_1, \ldots, \mathbf{f}_n\}이라 하면, V \otimes W의 기저는 \{\mathbf{e}_i \otimes \mathbf{f}_j \mid 1 \leq i \leq m, 1 \leq j \leq n\}이다. 따라서

\dim(V \otimes W) = \dim(V) \cdot \dim(W) = mn

V \otimes W의 임의의 원소는 기저의 선형 결합으로 표현된다.

T = \sum_{i=1}^{m}\sum_{j=1}^{n} T_{ij}\; \mathbf{e}_i \otimes \mathbf{f}_j

성분 T_{ij}m \times n 배열을 형성하며, 이것이 바로 행렬이다. 따라서 V \otimes W \cong \mathbb{R}^{m \times n}이다.

중요한 점은, V \otimes W의 모든 원소가 \mathbf{v} \otimes \mathbf{w} 형태(분해 가능, decomposable)인 것은 아니라는 것이다. 일반적인 텐서곱 공간의 원소는 분해 가능 원소들의 합이며, 이는 행렬 중 순위-1 행렬만이 \mathbf{u}\mathbf{v}^\top 형태인 것과 동일한 현상이다.

4. 다중 텐서곱

텐서곱을 반복 적용하면 고차 텐서를 구성할 수 있다.

V_1 \otimes V_2 \otimes \cdots \otimes V_d

이 공간의 차원은 \prod_{k=1}^{d} \dim(V_k)이다. 기저는 \{\mathbf{e}_{i_1}^{(1)} \otimes \mathbf{e}_{i_2}^{(2)} \otimes \cdots \otimes \mathbf{e}_{i_d}^{(d)}\}이며, 일반 원소는 다음과 같다.

\mathcal{T} = \sum_{i_1, \ldots, i_d} \mathcal{T}_{i_1 \cdots i_d}\; \mathbf{e}_{i_1}^{(1)} \otimes \cdots \otimes \mathbf{e}_{i_d}^{(d)}

텐서곱은 결합법칙을 만족한다. (U \otimes V) \otimes W \cong U \otimes (V \otimes W) \cong U \otimes V \otimes W이다. 이 성질에 의하여 텐서곱의 순서를 괄호 없이 쓸 수 있다.

교환법칙도 동형(isomorphism) 수준에서 성립한다. V \otimes W \cong W \otimes V이나, 이 동형은 \mathbf{v} \otimes \mathbf{w} \mapsto \mathbf{w} \otimes \mathbf{v}로 주어지며, 성분이 전치(transpose)되는 것에 해당한다.

5. 텐서곱의 성분 계산

구체적으로 \mathbb{R}^m\mathbb{R}^n의 텐서곱에서, \mathbf{u} = (u_1, \ldots, u_m)^\top\mathbf{v} = (v_1, \ldots, v_n)^\top의 텐서곱 \mathbf{u} \otimes \mathbf{v}mn개의 성분을 가지며, (i,j) 성분은 u_iv_j이다.

세 벡터의 텐서곱 \mathbf{u} \otimes \mathbf{v} \otimes \mathbf{w} (\mathbf{u} \in \mathbb{R}^l, \mathbf{v} \in \mathbb{R}^m, \mathbf{w} \in \mathbb{R}^n)는 l \times m \times n 크기의 3차 텐서이며, (i,j,k) 성분은 u_iv_jw_k이다. 이것이 순위-1 3차 텐서이다.

6. 크로네커 곱과의 관계

행렬 수준에서 텐서곱에 대응하는 연산이 크로네커 곱(Kronecker product)이다. \mathbf{A} \in \mathbb{R}^{m \times n}\mathbf{B} \in \mathbb{R}^{p \times q}의 크로네커 곱 \mathbf{A} \otimes \mathbf{B} \in \mathbb{R}^{mp \times nq}는 다음과 같다.

\mathbf{A} \otimes \mathbf{B} = \begin{pmatrix} a_{11}\mathbf{B} & a_{12}\mathbf{B} & \cdots & a_{1n}\mathbf{B} \\ a_{21}\mathbf{B} & a_{22}\mathbf{B} & \cdots & a_{2n}\mathbf{B} \\ \vdots & \vdots & \ddots & \vdots \\ a_{m1}\mathbf{B} & a_{m2}\mathbf{B} & \cdots & a_{mn}\mathbf{B} \end{pmatrix}

크로네커 곱의 주요 성질은 다음과 같다.

  • (\mathbf{A} \otimes \mathbf{B})(\mathbf{C} \otimes \mathbf{D}) = (\mathbf{AC}) \otimes (\mathbf{BD}) (혼합곱 성질)
  • \det(\mathbf{A} \otimes \mathbf{B}) = (\det\mathbf{A})^q (\det\mathbf{B})^m (\mathbf{A} \in \mathbb{R}^{m \times m}, \mathbf{B} \in \mathbb{R}^{q \times q})
  • (\mathbf{A} \otimes \mathbf{B})^{-1} = \mathbf{A}^{-1} \otimes \mathbf{B}^{-1}
  • \text{tr}(\mathbf{A} \otimes \mathbf{B}) = \text{tr}(\mathbf{A}) \cdot \text{tr}(\mathbf{B})

크로네커 곱은 텐서곱의 좌표 표현에서, 텐서곱 공간의 기저를 사전식 순서로 나열하여 행렬로 표현한 것에 해당한다.

7. 딥러닝에서의 텐서곱

딥러닝에서 텐서곱은 명시적으로 또는 암묵적으로 여러 곳에서 사용된다.

순위-1 근사와 CP 분해: 텐서를 순위-1 텐서(분해 가능 텐서)의 합으로 근사하는 CP 분해는 텐서곱의 직접적 응용이다. \mathcal{T} \approx \sum_{r=1}^{R} \mathbf{a}_r \otimes \mathbf{b}_r \otimes \mathbf{c}_r에서 각 항은 세 벡터의 텐서곱이다.

특징 상호작용: 추천 시스템에서 사용자 벡터 \mathbf{u}와 아이템 벡터 \mathbf{v}의 상호작용을 모델링할 때, 단순 내적 \mathbf{u}^\top\mathbf{v} 대신 텐서곱 기반의 쌍선형 상호작용 \mathbf{u}^\top\mathbf{W}\mathbf{v}를 사용하면 더 풍부한 관계를 포착할 수 있다. 여기서 \mathbf{W}는 학습 가능한 상호작용 텐서이다.

텐서곱 표현: 자연어 처리에서 구문의 의미를 합성하는 방법으로, 단어 벡터의 텐서곱을 사용하는 연구가 있다. 두 단어 벡터 \mathbf{u}, \mathbf{v} \in \mathbb{R}^d의 텐서곱 \mathbf{u} \otimes \mathbf{v} \in \mathbb{R}^{d \times d}는 두 단어 사이의 모든 쌍별 상호작용을 인코딩하나, 차원이 d^2으로 증가하는 것이 실용적 한계이다. 이를 해결하기 위해 저순위 텐서곱 근사가 사용된다.

그래프 신경망의 메시지 전달: 일부 그래프 신경망 아키텍처에서 노드 특징과 엣지 특징의 결합에 텐서곱이 사용된다. 이는 노드 간 관계를 다중선형적으로 모델링하는 것에 해당한다.