카테고리 없음

[논문 리뷰] Neural Machine Translation by Jointly Learning to Align and Translate

yenynb 2026. 4. 29. 10:57

Neural Machine Translation by Jointly Learning to Align and Translate (Bahdanau et al., 2015) 

 

Attention 논문

https://arxiv.org/abs/1409.0473

 

1. Introduction

지금의 Transformer, BERT, GPT와 같은 모델에서 Attention은 핵심 연산이다.

하지만 이전에는 Encoder–Decoder 구조에 기반하고 있어 당시 표준적인 Seq2Seq 모델은 입력 문장을 하나의 고정 길이 벡터 압축한 뒤, Decoder가 이를 기반으로 번역 문장을 생성하는 구조였다. 이 방식은 구조적으로 단순했지만, 문장이 길어질수록 성능이 급격히 저하되는 문제가 있었다.

이 논문의 핵심은 기존 Encoder–Decoder는 문장 전체를 하나의 context vector로 압축해야 했기 때문에, 긴 문장에서 정보 손실이 무조건 발생했고, 이 문제가 번역 성능 저하의 핵심이기에 이를 해결할 수 있도록 하는 것이다.

⇒  따라서 Decoder가 출력 단어를 생성할 때마다 source sentence의 서로 다른 부분을 동적으로 참고할 수 있도록 만드는 새로운 구조를 제안한다.

 

Key Point

  • Decoder 구조를 폐기하지 않고 확장
  • 입력 전체를 하나의 벡터로 압축하는 대신, 입력 시퀀스를 집합으로 유지하고, Decoder가 각 시점마다 필요한 부분만 선택적으로 참조

 


2. Background: Neural Machine Translation

2.1 RNN Encoder–Decoder

기존 NMT의 기본 구조는 RNN Encoder–Decoder이다. 입력 문장 x=(x_1, x_2, ... x_{T_{x}})가 주어지면 Encoder는 이를 순차적으로 읽으며 hidden state를 업데이트한다.

여기서 (h_t)는 시점 (t)의 hidden state이며, (f)는 비선형 함수(RNN, GRU, LSTM 등)이다. Encoder는 전체 입력 문장을 읽은 뒤 최종적으로 context vector (c)를 생성한다.

기존 Seq2Seq에서는 보통 마지막 hidden state h_{T_x} 를 그대로 context vector로 사용한다.

이후 Decoder는 이 context vector (c)를 바탕으로 target sentence

(y=(y_1, y_2, ..., y_{T_y}))

를 생성한다. 번역 확률은 다음과 같아진다.

즉, Decoder는 이전까지 생성한 단어들과 고정된 context vector (c)를 기반으로 다음 단어를 생성한다.

여기서 (s_t)는 Decoder hidden state, (g)는 softmax 기반 출력 함수이다.

 

이 구조의 문제는 모든 정보를 오직 하나의 벡터 (c)에 담아야 한다는 점이다. 입력 문장이 길어질수록 중요한 정보는 손실되고, Decoder는 긴 문장의 후반부를 제대로 복원하지 못하는 문제가 있다.


3. Learning to Align and Translate

3.1 Decoder: General Description

Bahdanau Attention의 핵심은 Decoder가 target word를 생성할 때마다 문장 전체를 다시 참조할 수 있도록 만든 것이다. 기존 모델에서는 모든 시점에서 동일한 context vector (c)를 사용했지만, 제안 모델은 매 시점 (i)마다 다른 context vector

(c_i)

를 계산한다.

새로운 조건부 확률은 다음과 같다.

여기서 핵심은 (c_i)이다. 이제 Decoder는 출력 단어마다 서로 다른 문맥 벡터를 사용한다.

Decoder hidden state는 다음과 같이 갱신된다.

즉, 현재 Decoder state는 이전 state, 이전 출력 단어, 그리고 현재 시점의 context vector를 함께 고려하여 결정된다.


3.2 Attention Mechanism: Alignment Model

Attention의 핵심은 각 시점마다 context vector

(c_i)

를 source annotation들의 weighted sum으로 계산하는 것이다.

 

  • h_j: source의 j번째 단어 annotation
  • αij: target 단어 y_i를 생성할 때 source 단어 x_i에 부여하는 attention weight

 

즉, context vector는 hidden state들의 단순 평균이 아니라, “현재 target word 생성에 얼마나 중요한가”를 반영한 가중합이다.

Attention weight는 softmax를 통해 계산된다.

여기서 는 alignment score이며, source의 j번째 단어와 target의 i번째 단어가 얼마나 잘 맞는지를 나타낸다.

즉, 이전 Decoder state

(s_{i-1})

와 source annotation

(h_j)

를 입력으로 받아 alignment score를 계산한다.

Bahdanau는 이 alignment model (a)를 feedforward neural network로 parameterize한다.

$$e_{ij}=v_a^\top \tanh(W_a s_{i-1} + U_a h_j)$$

이 식은 Bahdanau Attention의 핵심 수식

  • : 현재 Decoder가 원하는 정보
  • : source의 j번째 단어 정보
  • : 비선형 결합
  • : scalar alignment score 출력
(v_a^\top)
(\tanh)
(U_a h_j)
(W_a s_{i-1})

이 score를 softmax에 통과시키면 source 각 단어에 대한 attention distribution이 생성된다.

 

이 구조의 핵심은 정렬을 hard selection이 아닌 soft selection으로 수행해 모든 source 단어에 attention을 분배하고, 이를 통해 gradient를 end-to-end로 전달한다는 것이다.


3.3 Encoder: Bidirectional RNN

Attention이 제대로 작동하려면 source representation이 풍부해야 한다. 이를 위해 저자들은 Encoder를 Bidirectional RNN(BiRNN)으로 구성한다.

  • Forward RNN은 왼쪽에서 오른쪽으로 읽는다.
  • Backward RNN은 오른쪽에서 왼쪽으로 읽는다.
  • 최종 annotation은 두 hidden state를 concatenate하여 만든다.

즉, 각 단어

(x_j)

의 표현

(h_j)

는 앞 문맥과 뒤 문맥을 모두 포함한다. 이는 Attention이 단어를 선택할 때 더 풍부한 문맥 정보를 활용할 수 있게 만든다.


4. Experiment Settings

4.1 Dataset

실험은 WMT’14 English–French 번역 데이터셋에서 수행되었다.

전체 8.5억 단어 규모의 병렬 코퍼스를 사용했으며, data selection 이후 약 3.48억 단어를 학습에 사용했다. 

4.2 Models

비교 대상은 두 모델로 아래와 같다.

  • RNNencdec: 기존 Encoder–Decoder
  • RNNsearch: Attention 기반 모델

⇒  Attention이 특히 긴 문장에서 얼마나 강건한지 비교할 수 있다.


5. Results

Quantitative Results

RNNsearch는 모든 실험 설정에서 기존 RNNencdec보다 높은 BLEU score를 기록했으며, 특히 긴 문장에서 성능 우위가 더욱 크게 나타났다. 이는 Attention이 fixed-length bottleneck 문제를 효과적으로 완화했음을 보여준다.

 

Qualitative Analysis

Attention weight 시각화를 통해 모델이 target 단어를 생성할 때 source의 어떤 부분에 집중하는지 확인할 수 있었으며, 단조·비단조 정렬 모두 자연스럽게 학습함을 보였다. 또한 긴 문장에서도 RNNsearch는 의미를 안정적으로 유지해, 기존 Encoder–Decoder보다 훨씬 견고한 번역 성능을 보였다.

 


6. Conclusion

이 논문은 Attention을 단순한 성능 개선 기법이 아니라, Seq2Seq의 구조적 한계를 해결하기 위한 핵심 메커니즘으로 제안했다.

핵심은 입력 전체를 하나의 벡터로 압축하지 않고, Decoder가 필요한 순간마다 source sequence를 동적으로 참조하도록 만든 것이다.