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 합성곱으로 변환한다. 이러한 구조적 압축은 모델 파라미터 수와 추론 비용을 크게 줄이며, 정확도 손실을 최소화하면서 경량 모델을 구축하는 데 효과적이다. 터커 분해는 이론적 일반성과 실용적 유연성 덕분에 고차 데이터 분석과 딥러닝 모델 경량화에서 핵심적 위치를 차지한다.