28.28 터커 분해(Tucker Decomposition)의 핵심 텐서와 인자 행렬

28.28 터커 분해(Tucker Decomposition)의 핵심 텐서와 인자 행렬

터커 분해는 1966년 Ledyard Tucker가 심리 측정 자료 분석을 위해 제안한 텐서 분해 방법으로, 고차 텐서를 하나의 작은 핵심 텐서(core tensor)와 각 모드에 대한 인자 행렬(factor matrix)들의 다중선형 곱으로 표현한다. CP 분해가 각 모드에 대해 동일한 수의 성분을 사용하는 반면, 터커 분해는 각 모드마다 서로 다른 랭크를 허용하여 더 유연한 근사를 가능하게 한다. 또한 행렬의 특이값 분해를 고차 텐서로 일반화한 고차 특이값 분해(HOSVD)는 터커 분해의 특수한 초기화 형태에 해당한다.

1. 터커 분해의 정의

n차 텐서 \mathcal{T} \in \mathbb{R}^{d_1 \times d_2 \times \cdots \times d_n}에 대한 터커 분해는 다음과 같이 정의된다.

\mathcal{T} \approx \mathcal{G} \times_1 U^{(1)} \times_2 U^{(2)} \times_3 \cdots \times_n U^{(n)}

여기서 \mathcal{G} \in \mathbb{R}^{R_1 \times R_2 \times \cdots \times R_n}은 핵심 텐서이고, U^{(k)} \in \mathbb{R}^{d_k \times R_k}는 모드-k에 대한 인자 행렬이다. 연산자 \times_k는 모드-k 곱(mode-k product)으로, 텐서와 행렬의 곱을 해당 모드에 대해서만 수행하는 연산이다. 성분별 표현은 다음과 같다.

\mathcal{T}_{i_1 i_2 \cdots i_n} \approx \sum_{r_1 = 1}^{R_1} \sum_{r_2 = 1}^{R_2} \cdots \sum_{r_n = 1}^{R_n} \mathcal{G}_{r_1 r_2 \cdots r_n}\, U^{(1)}_{i_1 r_1}\, U^{(2)}_{i_2 r_2}\, \cdots\, U^{(n)}_{i_n r_n}

튜플 (R_1, R_2, \ldots, R_n)을 터커 분해의 다중선형 랭크(multilinear rank)라 한다.

2. 모드-k 곱의 정의

텐서 \mathcal{X} \in \mathbb{R}^{d_1 \times \cdots \times d_n}과 행렬 U \in \mathbb{R}^{d'_k \times d_k}의 모드-k\mathcal{Y} = \mathcal{X} \times_k U는 다음과 같이 정의된다.

\mathcal{Y}_{i_1 \cdots i_{k-1} j\, i_{k+1} \cdots i_n} = \sum_{i_k = 1}^{d_k} \mathcal{X}_{i_1 \cdots i_k \cdots i_n}\, U_{j i_k}

결과 텐서의 모드 k의 크기는 d_k에서 d'_k로 변경된다. 서로 다른 모드에 대한 곱 연산은 교환 가능하다.

\mathcal{X} \times_k U \times_\ell V = \mathcal{X} \times_\ell V \times_k U\quad (k \neq \ell)

3. 파라미터 수와 압축 효율

터커 분해의 총 파라미터 수는 핵심 텐서의 원소 수 \prod_{k=1}^{n} R_k와 인자 행렬들의 원소 수 합 \sum_{k=1}^{n} d_k R_k의 합이다.

\text{Param}(\text{Tucker}) = \prod_{k=1}^{n} R_k + \sum_{k=1}^{n} d_k R_k

d_k \approx d, R_k \approx R일 때 O(R^n + nRd)가 된다. 차수 n이 크면 핵심 텐서 항 R^n이 지배적이 되어, 매우 고차인 경우에는 CP나 텐서 트레인에 비해 효율이 떨어진다.

4. 터커, CP, HOSVD의 관계

방법핵심 텐서인자 행렬 제약파라미터 수
CP 분해대각 텐서없음O(nRd)
터커 분해임의의 R_1 \times \cdots \times R_n 텐서없음O(R^n + nRd)
HOSVD터커의 특수 초기화U^{(k)}가 직교터커와 동일

CP 분해는 핵심 텐서가 초대각 텐서(superdiagonal tensor), 즉 \mathcal{G}_{r_1 r_2 \cdots r_n} = \lambda_r \delta_{r_1 r_2 \cdots r_n}인 형태로 제한된 특수한 터커 분해로 볼 수 있다. 또한 고차 특이값 분해(HOSVD)는 각 모드에 대해 모드-k 전개 \mathbf{T}_{(k)}의 SVD를 수행하여 U^{(k)}를 좌 특이 벡터로 설정하는 방식으로 터커 분해를 초기화하는 방법이다. HOSVD는 닫힌 형태의 해를 제공하지만 반드시 최적 근사는 아니며, 이후 반복 개선(HOOI, Higher-Order Orthogonal Iteration)을 통해 더 나은 해로 정제할 수 있다.

5. 최적화: HOOI 알고리즘

터커 분해의 인자 행렬과 핵심 텐서는 다음과 같은 직교 제약 하의 최소 제곱 문제를 통해 최적화된다.

\min_{\mathcal{G}, U^{(1)}, \ldots, U^{(n)}}\ \left\lVert \mathcal{T} - \mathcal{G} \times_1 U^{(1)} \times_2 \cdots \times_n U^{(n)} \right\rVert_F^2 \quad \text{s.t.}\quad (U^{(k)})^\top U^{(k)} = I_{R_k}

HOOI 알고리즘은 한 번에 하나의 인자 행렬만 갱신하는 교대 최적화 방식이며, 각 단계에서 다음 부분 문제를 해결한다.

U^{(k)} \leftarrow \text{top-}R_k\ \text{left singular vectors of}\ \mathbf{Y}_{(k)}

여기서 \mathbf{Y}_{(k)}는 텐서 \mathcal{T} \times_1 (U^{(1)})^\top \times_2 \cdots \times_{k-1} (U^{(k-1)})^\top \times_{k+1} \cdots \times_n (U^{(n)})^\top의 모드-k 전개이다. 모든 인자 행렬이 갱신된 후 핵심 텐서는 \mathcal{G} = \mathcal{T} \times_1 (U^{(1)})^\top \times_2 \cdots \times_n (U^{(n)})^\top로 계산된다.

6. 딥러닝에서의 응용

터커 분해는 합성곱 신경망의 4차 커널 텐서 압축에 널리 사용된다. 예를 들어 합성곱 커널 \mathcal{K} \in \mathbb{R}^{C_{\text{out}} \times C_{\text{in}} \times K_h \times K_w}를 입출력 채널 차원에 대해서만 터커 분해하면 다음과 같은 형태를 얻는다.

\mathcal{K}_{o, c, h, w} \approx \sum_{r_1, r_2} \mathcal{G}_{r_1 r_2 h w}\, U^{(\text{out})}_{o r_1}\, U^{(\text{in})}_{c r_2}

이는 원래의 합성곱을 세 단계의 연쇄, 즉 입력 채널을 축소하는 1 \times 1 합성곱, 공간적 연산을 수행하는 더 작은 채널의 합성곱, 그리고 출력 채널을 확장하는 1 \times 1 합성곱으로 변환한다. 이러한 구조적 압축은 모델 파라미터 수와 추론 비용을 크게 줄이며, 정확도 손실을 최소화하면서 경량 모델을 구축하는 데 효과적이다. 터커 분해는 이론적 일반성과 실용적 유연성 덕분에 고차 데이터 분석과 딥러닝 모델 경량화에서 핵심적 위치를 차지한다.