← all posts
AI 2026.05.03 · 11 min read Advanced

Attention은 어떻게 Seq2Seq의 병목을 뚫었는가

Sutskever 2014의 고정 벡터 압축 문제부터 Bahdanau·Luong 어텐션의 설계 결정, 커버리지 메커니즘과 Pointer Network까지, 시퀀스 변환 아키텍처의 진화를 추적한다.


Sutskever 2014는 번역·요약·대화 같은 가변 길이 입출력 문제를 하나의 프레임워크로 통일했다. Encoder LSTM이 입력 전체를 고정 벡터 하나로 압축하고, Decoder LSTM이 그 벡터에서 출력을 autoregressive하게 생성한다. 그런데 이 설계에는 처음부터 균열이 있었다. 문장이 길어질수록 BLEU가 단조 감소한다는 사실을 Cho 2014b가 정량화했고, Bahdanau 2015가 어텐션으로 그 균열을 메웠다. 왜 고정 벡터 하나가 충분하지 않은가?

고정 벡터의 압축 한계

Seq2Seq의 Encoder는 x1:Tx_{1:T} 전체를 v=hTencRHv = h_T^{\text{enc}} \in \mathbb{R}^H 한 벡터에 담는다. 이론적 capacity는 다음과 같다.

Tlog2VvsHlog2(precision)T \log_2 |V| \quad \text{vs} \quad H \cdot \log_2(\text{precision})

T=50T = 50, V=30,000|V| = 30{,}000, H=1024H = 1024라면 입력 정보량은 약 750 bits, 벡터의 이론적 한계는 32,768 bits. 숫자만 보면 여유롭다. 그러나 Cho 2014b가 WMT’14 En→Fr에서 확인한 것은 이론이 아닌 현실이었다. 30단어를 넘기는 순간 BLEU가 급감하기 시작한다.

Long Sentence Curse

Capacity 자체는 충분하다. 병목은 정보이론적 한계가 아니라 최적화 한계다. BPTT의 vanishing gradient가 초반 토큰의 정보를 마지막 hidden state에 보존하지 못한다.

Decoder의 모든 step이 같은 vv 하나만 참조한다는 점도 문제다. s1s_1이 필요한 정보와 s5s_5가 필요한 정보가 다르지만, 두 step은 동일한 벡터에서 정보를 꺼낸다. 위치별 선택적 접근이 불가능하다.

Bahdanau 어텐션 — 병목을 우회하는 구조

Bahdanau 2015의 해법은 간단하다. Encoder의 마지막 hidden만 쓰지 말고, 모든 h1,,hTh_1, \ldots, h_T를 보존한 채 Decoder가 매 step마다 필요한 위치를 직접 골라 읽게 한다.

eij=vtanh(W1hi+W2sj),αij=softmax(eij),cj=iαijhie_{ij} = v^\top \tanh(W_1 h_i + W_2 s_j), \quad \alpha_{ij} = \mathrm{softmax}(e_{ij}), \quad c_j = \sum_i \alpha_{ij} h_i

capacity가 HH에서 THT \cdot H로 바뀐다. 더 중요한 것은 alignment를 별도로 레이블링할 필요 없이 end-to-end로 학습된다는 점이다. αij\alpha_{ij}는 학습의 부산물로 만들어지는 소프트 alignment 행렬이다.

명제 1 · Soft Alignment의 미분 가능성

Softmax weighted sum cj=iαijhic_j = \sum_i \alpha_{ij} h_iαij\alpha_{ij}hih_i 모두에 대해 미분 가능하므로, alignment 레이블 없이 번역 손실만으로 W1,W2,vW_1, W_2, v를 학습할 수 있다.

▷ 증명

αij=exp(eij)/kexp(ekj)\alpha_{ij} = \exp(e_{ij}) / \sum_k \exp(e_{kj})이고 eije_{ij}W1,W2,vW_1, W_2, v의 연속 함수다. Weighted sum과 softmax는 모두 미분 가능하므로 chain rule이 cjc_j까지 연결된다. \square

실증적으로 WMT’14 En→Fr에서 vanilla Seq2Seq + reverse trick의 BLEU 28.5가 Bahdanau attention으로 36.2까지 올랐다. 특히 50단어 이상 문장에서 회복 폭이 크다.

Luong 어텐션 — 효율과 Transformer로의 가교

Luong 2015는 scoring function을 체계적으로 비교했다.

dot:      e_{ij} = h_i^T s_j
general:  e_{ij} = h_i^T W s_j
concat:   e_{ij} = v^T tanh(W [h_i; s_j])   ← Bahdanau

WMT’15 En→De에서 general이 BLEU 25.9로 최우수였다. 그리고 이 general scoring은 Transformer로 이어지는 직접적 경로다.

eij=hiWsj  분해  (WKhi)(WQsj)=KiQj  스케일  KiQjdKe_{ij} = h_i^\top W s_j \;\xrightarrow{\text{분해}}\; (W_K h_i)^\top (W_Q s_j) = K_i^\top Q_j \;\xrightarrow{\text{스케일}}\; \frac{K_i^\top Q_j}{\sqrt{d_K}}

WWWKWQW_K^\top W_Q로 저랭크 분해하면 query와 key가 분리되고, dK\sqrt{d_K} 스케일링을 붙이면 Vaswani 2017의 scaled dot-product attention이 된다. Luong general은 Transformer attention의 수학적 전신이다.

Coverage와 Pointer — 어텐션의 두 확장

어텐션이 표준이 된 이후에도 두 가지 문제가 남았다.

반복 문제: Decoder가 같은 source 위치를 계속 attend하면 동일 구절이 출력에 반복된다. Tu 2016의 coverage mechanism은 누적 어텐션을 추적해 이미 많이 본 위치에 페널티를 준다.

cjcov=j=1jα:,j,Lcov=jimin(αij,ci,j1cov)c_j^{\text{cov}} = \sum_{j'=1}^{j} \alpha_{:,j'}, \quad \mathcal{L}_{\text{cov}} = \sum_j \sum_i \min(\alpha_{ij},\, c_{i,j-1}^{\text{cov}})

OOV 문제: 고유명사·희귀어는 vocabulary에 없어 생성이 불가능하다. Vinyals 2015의 Pointer Network는 어텐션 가중치 자체를 출력 분포로 쓴다. p(yt=i)=αtip(y_t = i) = \alpha_{ti}이므로 출력 vocabulary가 입력 길이에 따라 동적으로 결정된다. See 2017의 Pointer-Generator는 이를 생성과 복사의 혼합으로 확장한다.

p(yt=w)=pgenpvocab(w)+(1pgen)i:xi=wαitp(y_t = w) = p_{\text{gen}} \cdot p_{\text{vocab}}(w) + (1 - p_{\text{gen}}) \cdot \sum_{i:\, x_i = w} \alpha_{it}

pgenp_{\text{gen}}이 0에 가까우면 source에서 직접 복사하고, 1에 가까우면 vocabulary에서 생성한다. 이 아이디어는 현대 RAG(Retrieval-Augmented Generation)의 직계 조상이다. 외부 document store에서 passage를 retrieve해 LLM에 prepend하는 방식은 “단일 document에서의 copy”를 “수십억 토큰 규모의 retrieval”로 스케일업한 것이다.

트레이드오프

소프트 어텐션은 미분 가능하고 학습이 안정적이지만, hard alignment constraint를 직접 표현하기 어렵다. Coverage는 반복을 줄이지만 creative generation task에서는 오히려 다양성을 억제할 수 있다. Pointer Network는 가변 크기 출력을 자연스럽게 처리하지만, 수백 도시 이상의 조합 최적화에서는 RL 기반 보강이 필요하다.

정리

  • Seq2Seq의 고정 벡터 병목은 information-theoretic 한계가 아니라 BPTT vanishing gradient라는 최적화 한계다.
  • Bahdanau 어텐션은 capacity를 HH에서 THT \cdot H로 늘리고 동시에 vanishing을 우회한다. Alignment는 학습의 부산물이다.
  • Luong general scoring은 저랭크 분해를 거쳐 Transformer의 query/key 분리로 이어진다.
  • Coverage와 Pointer-Generator는 어텐션의 두 가지 실용적 확장이며, 후자의 copy mechanism은 현대 RAG까지 이어진다.

각 아키텍처 변경의 배경에는 명확하게 진단된 문제가 있었다. 진단의 정확함이 해법의 속도를 결정했다.

REF
Sutskever, Vinyals, Le · 2014 · Sequence to Sequence Learning with Neural Networks · NeurIPS