Attention: Neural Machine Translation by Jointly Learning to Align and Translate

논문 원본: https://arxiv.org/abs/1512.00567
Rethinking the Inception Architecture for Computer Vision
Convolutional networks are at the core of most state-of-the-art computer vision solutions for a wide variety of tasks. Since 2014 very deep convolutional networks started to become mainstream, yielding substantial gains in various benchmarks. Although incr
arxiv.org
논문 간단 요약:
이 논문은 Seq2Seq 모델이 갖고 있던 단점인 고정 길이 컨텍스트 벡터 문제를 해결하기 위해 어텐션 메커니즘을 도입함.
즉, 입력 문장의 모든 단어를 동일한 중요도로 처리하는 것이 아니라, 디코딩 시점마다 가변적인 컨텍스트 벡터를 생성하여 필요한 정보에 집중할 수 있도록 설계함.
Abstract
신경망 기계 번역의 성능을 개선하기 위해 어텐션 메커니즘을 제안함. 기존 인코더-디코더(Encoder-Decoder) 모델은 입력 문장을 고정된 길이의 벡터로 변환하여 번역하는데, 이는 성능 저하의 주요 원인으로 작용함. 이를 해결하기 위해, 제안된 모델은 번역 과정에서 동적으로 입력 문장의 중요한 부분을 찾도록 학습하는 소프트 정렬 방식을 도입함.
실험 결과, 영어-프랑스어 번역 작업에서 기존의 문장 기반 번역 시스템과 유사한 성능을 달성했으며, 정렬 분석을 통해 모델이 번역 시 직관적으로 적절한 단어를 선택함을 확인함.
1. Introduction
신경 기계 번역(NMT)은 최근 Kalchbrenner & Blunsom(2013), Sutskever et al.(2014), Cho et al.(2014b)에 의해 제안된 새로운 기계 번역 방식으로, 기존의 구 기반 번역(phrase-based translation) 시스템이 여러 개의 작은 모듈을 개별적으로 조정하는 것과 달리, 단일 신경망 모델을 학습하여 번역을 수행하는 것을 목표로 함.
대부분의 NMT 모델은 인코더-디코더(encoder-decoder) 구조를 따르며, 인코더는 입력 문장을 고정된 길이의 벡터로 변환하고, 디코더는 이를 기반으로 번역을 생성함. 하지만 이 방식은 문장이 길어질수록 고정된 컨텍스트 벡터에 모든 정보를 압축해야 하는 한계로 인해 성능이 저하됨(Cho et al., 2014b).
이를 해결하기 위해 본 논문에서는 문장 정렬과 번역을 동시에 학습하는 어텐션 기반 모델을 제안함. 이 모델은 번역 과정에서 입력 문장의 특정 위치를 동적으로 선택하여 번역에 필요한 정보를 추출함으로써, 문장의 길이에 관계없이 중요한 정보를 효과적으로 반영할 수 있음.
실험 결과, 제안된 모델은 기존 기본 인코더-디코더 모델보다 번역 성능이 크게 향상되었으며, 특히 긴 문장에서 더욱 두드러진 성능 향상을 보였음. 영어-프랑스어 번역 작업에서도 기존 구 기반 번역 시스템과 유사한 성능을 달성하였으며, 모델이 찾아낸 (소프트) 정렬(soft-alignment) 이 언어적으로 타당한 단어 정렬을 형성함을 확인함.
▶ 인코더 디코더 구조 참조
인코더-디코더(Encoder-Decoder) 구조는 순차적인 입력 데이터를 다른 시퀀스로 변환하는 신경망 구조로, 기계 번역(NMT), 음성 인식, 챗봇 등 다양한 자연어 처리(NLP) 작업에서 사용됨.
1️⃣ 인코더 (Encoder)
- 입력 문장을 하나씩 받아 고정된 길이의 벡터(Context Vector)로 변환.
- 일반적으로 RNN, LSTM, GRU 등을 사용하여 문장의 의미를 압축.
- 예시: 영어 문장 "I love machine learning" → 벡터 C 생성.
2️⃣ 디코더 (Decoder)
- 인코더에서 생성된*컨텍스트 벡터(Context Vector)를 기반으로 번역을 생성.
- 하나의 단어를 예측하고, 이를 다시 입력으로 받아 다음 단어를 생성하는 순차적 생성 방식.
- 예시: 벡터 C → "나는" → "기계" → "학습을" 생성하여 최종 번역 완료.

2. Background: Neural Machine Translation
기계 번역은 입력 문장 x가 주어졌을 때, 조건부 확률 P(y∣x)를 최대화하는 출력 문장 y를 찾는 문제로 정의됨.
즉, argmaxyP(y∣x)를 구하는 것이 번역의 목표이며, 신경 기계 번역(NMT)은 병렬 말뭉치(parallel corpus)를 학습하여 이 확률을 모델링하는 접근법임.
최근 연구들은 신경망을 사용하여 이 조건부 확률 분포를 직접 학습하는 방식을 제안함. 일반적으로 NMT는 두 가지 주요 구성 요소로 이루어짐:
- 인코더(Encoder) - 입력 문장 x를 인코딩
- 디코더(Decoder) - 인코딩된 정보를 바탕으로 번역 문장 y를 생성
Cho et al.(2014a)와 Sutskever et al.(2014)는 RNN을 사용하여 가변 길이 입력 문장을 고정 길이 벡터로 인코딩한 후, 이를 다시 가변 길이 출력 문장으로 디코딩하는 모델을 제안함.
비교적 새로운 접근 방식이지만, 신경 기계 번역(NMT)은 기존 구 기반 번역(phrase-based translation)과 유사한 성능을 보이며 빠르게 발전하고 있음.
예를 들어, Sutskever et al.(2014)은 LSTM 기반 RNN을 사용한 NMT 모델이 기존 구 기반 번역 시스템과 동등한 성능을 달성했다고 보고함.
또한, NMT를 기존 번역 시스템에 추가하여 구문 쌍 점수 계산(Cho et al., 2014a) 또는 후보 번역 재순위(Sutskever et al., 2014) 같은 방식으로 활용하면, 기존 최고 성능을 능가하는 결과를 얻을 수 있음.
2.1 RNN Encoder–Decoder
RNN Encoder-Decoder 프레임워크를 기반으로 정렬(Alignment)과 번역(Translation)을 동시에 학습하는 새로운 아키텍처를 제안함.
이 논문에서는 Cho et al.(2014a)와 Sutskever et al.(2014)이 제안한 RNN Encoder-Decoder 프레임워크를 기반으로 정렬(Alignment)과 번역(Translation)을 동시에 학습하는 새로운 아키텍처를 제안함.
1. 인코더 (Encoder)
- 입력 문장 x=(x1,x2,...,xTx)를 읽고 컨텍스트 벡터 ccc 로 변환하는 역할 수행.
- 일반적으로 RNN을 사용하여, 각 시점 t에서 은닉 상태 ht 를 업데이트함:

- 최종적으로 문장을 하나의 벡터 c 로 변환하는데, 기존 연구(Sutskever et al., 2014)에서는 c=hTx 로 설정함.
- LSTM을 활성화 함수 fff 로 사용하는 경우가 많음.
2. 디코더 (Decoder)
- 컨텍스트 벡터 ccc 와 이전에 예측된 단어들 {y1,...,yt−1} 을 사용하여 다음 단어를 예측하는 확률을 학습함.
- 번역 문장 y=(y1,...,yTy)에 대해, 전체 확률은 개별 단어의 조건부 확률 곱으로 정의됨:

- RNN 기반의 디코더에서는 각 단어 yty_tyt 의 확률을 다음과 같이 계산함:

- 여기서 g 는 다층 신경망을 포함할 수 있는 비선형 함수
- st는 디코더 RNN의 은닉 상태
기존 Encoder-Decoder의 한계
- 대부분의 기존 연구(Kalchbrenner & Blunsom, 2013; Cho et al., 2014a)는 가변 길이 문장을 고정된 벡터 ccc로 압축했음.
- 하지만 문장이 길어질수록 정보 손실이 발생할 가능성이 높음.
- 본 논문에서는 어텐션 메커니즘을 도입하여, 고정된 벡터 대신 문장 내 특정 부분을 동적으로 참조하는 방식을 제안함.
3. Learning to Align and Translate
3.1 Decoder: General Description
- 기존의 인코더-디코더 모델과 달리, 제안된 모델은 번역의 각 시점에서 다른 컨텍스트 벡터 를 사용함.
- 단어 yi를 예측할 확률은 다음과 같이 정의됨:

- 여기서,
- : 디코더 RNN의 은닉 상태(hidden state)
- : 해당 시점에서의 컨텍스트 벡터
어텐션 메커니즘 (Attention Mechanism)
- 컨텍스트 벡터 는 입력 문장의 모든 단어를 가중합하여 계산됨.

- 가중치는 입력 단어 xj가 번역 단어 yi에 얼마나 중요한지를 나타내며, 소프트맥스(Softmax)로 계산됨.

여기서 eij는 정렬 모델(Alignment Model) 에 의해 계산되며, 입력 문장의 단어와 디코더의 현재 상태 간의 유사도를 측정함.

어텐션의 역할
- 기존 모델처럼 모든 정보를 하나의 벡터에 압축하지 않고, 입력 문장에서 중요한 부분을 동적으로 선택할 수 있음.
- 디코더가 특정 단어를 예측할 때, 입력 문장의 적절한 부분을 참조할 수 있어, 특히 긴 문장에서 성능이 향상됨.
- 모델이 찾은 정렬(Alignment)은 직관적이고 해석 가능하여, 번역 과정에서 어떤 단어가 어떤 단어에 대응하는지 확인할 수 있음.

- 입력 문장 (x1,x2,...,xTx_1, x_2, ..., x_T)
- 원본 문장의 단어들이 인코더를 거쳐 은닉 상태(hidden state) 로 변환됨.
- 그림에서 양방향 RNN(Bidirectional RNN) 이 사용됨.
- 위쪽 화살표 → 순방향 RNN, 아래쪽 화살표 ← 역방향 RNN을 의미함.
- 컨텍스트 벡터 (ctc_t)
- 디코더가 특정 시점 t에서 단어 를 생성할 때, 입력 문장의 모든 단어를 참고함.
- 각 단어의 중요도를 결정하는 어텐션 가중치( ) 가 부여됨.
- 이 가중치들을 활용하여, 각 단어의 은닉 상태를 가중합한 컨텍스트 벡터 를 생성함.
- 디코더 (Decoder)
- 디코더는 이전 시점의 은닉 상태 와 컨텍스트 벡터 를 이용하여 새로운 은닉 상태 를 계산하고, 새로운 단어 를 예측함.
- 이를 통해, 기존의 고정된 컨텍스트 벡터 문제를 해결하고 입력 문장의 중요한 부분을 동적으로 참고하는 방식으로 번역이 진행됨.
3.2 Encoder: Bidirectional RNN for Annotating Sequences
기존 일반적인 RNN은 입력 문장을 처음부터 끝까지 순차적으로 처리함. 그러나 제안된 모델은 단어의 정보를 더 효과적으로 요약하기 위해 양방향 RNN(Bidirectional RNN, BiRNN)을 사용함.
양방향 RNN (BiRNN) 개요

4. Experiment Settings
4.1 Dataset
- 실험에는 ACL WMT '14(Workshop on Machine Translation 2014)에서 제공하는 영어-프랑스어 병렬 말뭉치(Parallel Corpus) 를 사용함.
- 사용된 데이터 세트:
- Europarl (61M 단어)
- 뉴스 해설(news commentary, 5.5M 단어)
- UN 데이터셋 (421M 단어)
- 웹 크롤링된 데이터 (90M + 272.5M 단어)
- 총 850M 단어의 대규모 데이터에서 348M 단어만 선택하여 실험에 활용함 (Axelrod et al. (2011)의 데이터 선택 방법 사용).
- 학습 데이터 외에는 추가적인 단일 언어 데이터(monolingual data) 를 사용하지 않음.

BLEU 점수는 번역 품질을 측정하는 대표적인 지표이며, 출력된 문장이 얼마나 원문과 유사한지를 평가함.
BLEU 점수 분석
- x축: 문장 길이 (Sentence Length)
- y축: BLEU 점수
- 실험 모델:
- RNNsearch-50 / RNNsearch-30 (제안된 모델)
- RNNenc-50 / RNNenc-30 (기존 모델)
- 결과:
- 제안된 RNNsearch 모델이 기존 RNNenc 모델보다 BLEU 점수가 더 높음, 특히 긴 문장에서 성능 차이가 더 두드러짐.
- 이는 어텐션 메커니즘이 문장이 길어질수록 성능 향상에 큰 기여를 함을 의미함.
4.2 Models
본 연구에서는 두 가지 모델을 비교하여 실험을 진행함.
- 기본 RNN Encoder-Decoder (RNNencdec) - Cho et al. (2014a)
- 제안된 RNNsearch 모델 (어텐션 메커니즘 포함)
각 모델은 두 가지 버전으로 학습됨.
- 길이 30 이하 문장을 사용한 모델 (RNNencdec-30, RNNsearch-30)
- 길이 50 이하 문장을 사용한 모델 (RNNencdec-50, RNNsearch-50)
모델 구조
- RNNencdec: 인코더 및 디코더는 각각 1000개의 은닉 유닛(hidden units)을 가짐.
- RNNsearch: 양방향 RNN(BiRNN) 인코더 사용. 각 방향에 대해 1000개의 은닉 유닛 보유.
- 디코더는 1000개의 은닉 유닛을 가지며, 멀티레이어 뉴럴 네트워크(Multilayer Network)와 Maxout 활성화 함수를 사용하여 각 타겟 단어의 확률을 계산함 *(Goodfellow et al., 2013).
- 확률 최적화 과정에서는 확률적 경사 하강법(SGD) + Adadelta (Zeiler, 2012) 를 사용함.
- 각 모델은 약 5일간 학습되었으며, 80개 문장을 포함한 미니배치(mini-batch) 기반으로 학습 진행됨.
- 학습 후, 번역 문장을 생성하기 위해 Beam Search 알고리즘 사용 (Graves, 2012; Boulanger-Lewandowski et al., 2013).
5. Results
5.1 Quantitative Results


- 모든 문장(All): 전체 문장에 대해 평가한 BLEU 점수.
- 알 수 없는 단어([UNK])가 없는 문장(No UNK): 번역에 [UNK] 토큰이 포함되지 않은 문장만을 평가한 BLEU 점수.
- RNNsearch 모델이 기존 RNNencdec 모델보다 높은 BLEU 점수를 기록함.
- RNNsearch-50은 문장이 길어져도 성능 저하가 거의 없음.
- Moses(기존 Phrase-Based 시스템) 대비 성능 차이 감소, 특히 RNNsearch-50 모델은 발전 가능성이 큼.
5.2 Qualitative Analysis
5.2.1 Alignment
제안된 모델은 (소프트) 정렬(Alignment) 을 시각적으로 확인할 수 있도록 함.
이는 어노테이션 가중치( α ) 를 시각화하여 각 타겟 단어가 소스 문장의 어느 부분을 참조하는지 분석하는 방식으로 진행됨
- Fig. 3을 보면, 영어와 프랑스어 단어 정렬이 대체로 대각선 방향으로 일어남.
- 하지만, 형용사와 명사는 영어와 프랑스어에서 순서가 다르므로, 비단순(non-monotonic) 정렬도 관찰됨.
- 예를 들어, Fig. 3(a)에서 "European Economic Area"가 "zone économique européenne"로 번역될 때,
- 먼저 "zone"이 "Area"를 정렬하고,
- 이후 "European"과 "Economic"을 처리한 후,
- 마지막으로 다시 앞의 단어로 돌아가 전체 구문을 완성함.
- 이는 기존의 고정된 정렬 방식보다 유연하게 동작하는 소프트 정렬의 강점을 보여줌
하드 정렬 vs 소프트 정렬
- Fig. 3(d)에서 "the man" → "l’homme"으로 번역된 예시를 보면,
- 하드 정렬 방식에서는 "the"가 "l’"에, "man"이 "homme"에 강제로 매칭됨.
- 하지만, 이 경우 "l’" 다음에 어떤 형태로 변형되는지를 고려해야 하므로 적절한 정렬이 어려움.
- 소프트 정렬 방식은 문맥을 고려하여 "the man" 전체를 "l’homme"으로 자연스럽게 매핑할 수 있도록 함.
- 또한, 소프트 정렬은 NULL 토큰이나 서로 길이가 다른 구문도 유연하게 매핑할 수 있음 (Koehn, 2010 참고).
5.2.2 Long Sentences
긴 문장에서 RNNsearch 모델의 성능을 평가함.
첫 번째 예제 문장
소스 문장 (Test Set)
An admitting privilege is the right of a doctor to admit a patient to a hospital or a medical centre to carry out a diagnosis or a procedure, based on his status as a health care worker at a hospital.
RNNencdec-50 번역 결과
Un privilège d’admission est le droit d’un médecin de reconnaître un patient à l’hôpital ou un centre médical d’un diagnostic ou de prendre un diagnostic en fonction de son état de santé.
- 해석 오류 발생
- "based on his status as a health care worker at a hospital" → "en fonction de son état de santé" (의미 왜곡됨)
RNNsearch-50 번역 결과
Un privilège d’admission est le droit d’un médecin d’admettre un patient à un hôpital ou un centre médical pour effectuer un diagnostic ou une procédure, selon son statut de travailleur des soins de santé à l’hôpital.
- 원문 의미를 완전히 보존하면서 자연스럽게 번역됨.
두 번째 예제 문장
소스 문장 (Test Set)
This kind of experience is part of Disney’s efforts to "extend the lifetime of its series and build new relationships with audiences via digital platforms that are becoming ever more important," he added.
RNNencdec-50 번역 결과
Ce type d’expérience fait partie des initiatives du Disney pour "prolonger la durée de vie de ses nouvelles et de développer des liens avec les lecteurs numériques qui deviennent plus complexes.
- 30개 이상의 단어를 생성한 후, 원문과의 의미가 어긋나기 시작함.
- 큰 문제: 따옴표를 닫지 않는 실수 발생!
RNNsearch-50 번역 결과
Ce genre d’expérience fait partie des efforts de Disney pour "prolonger la durée de vie de ses séries et créer de nouvelles relations avec des publics via des plateformes numériques de plus en plus importantes", a-t-il ajouté.
- 따옴표 포함하여 원문 의미를 완벽하게 반영한 번역을 생성함.
6. Related Work
6.1 Learning to Align
- Graves (2013)는 필기 합성(handwriting synthesis)에서 출력 심볼과 입력 심볼을 정렬하는 방법을 제안함.
- 그는 가우시안 커널(Gaussian kernels)의 가중치를 계산하여 정렬을 수행했으며, 각 커널의 위치와 계수를 정렬 모델이 예측함.
- 하지만 그의 방법은 위치(location)가 단조 증가(monotonically increasing)하는 방식으로만 정렬하도록 제한됨.
- 기계 번역에서는 장거리 단어 재배열(reordering)이 필요하기 때문에, Graves(2013)의 방식은 한계를 가짐.
- 본 논문에서는 각 번역 단어마다 소스 문장의 모든 단어에 대한 정렬 가중치를 계산하는 방식을 사용함.
- 단점: 문장이 긴 경우 연산량이 증가할 수 있음.
- 하지만 일반적인 번역 문장은 15~40 단어 길이이므로 실용적으로는 문제가 크지 않음.
6.2 Neural Networks for Machine Translation
- Bengio et al. (2003)는 뉴럴 확률 언어 모델(neural probabilistic language model)을 도입하여, 단어의 조건부 확률을 신경망으로 학습하는 방법을 제안함.
- 이후 뉴럴 네트워크는 기존 통계 기반 기계 번역 시스템(SMT)에 보조적인 피처(feature)로 추가되며 활용됨.
- 예를 들어,
- Schwenk (2012): 피드포워드 뉴럴 네트워크를 사용하여 소스-타겟 구문 쌍의 점수(score)를 계산하여 기존 통계 기반 번역 시스템에 추가함.
- Kalchbrenner & Blunsom (2013), Devlin et al. (2014): 기존 번역 시스템의 서브 컴포넌트로 뉴럴 네트워크를 사용하여 성능을 개선함.
- 전통적으로, 뉴럴 네트워크는 타겟 언어의 언어 모델(target-side language model)로 활용되어 번역 후보를 재순위(rescoring)하는 용도로 사용됨 (Schwenk et al., 2006).
- 하지만, 본 논문에서는 뉴럴 네트워크를 기존 시스템의 일부로 활용하는 것이 아니라, 완전히 새로운 신경망 기반 번역 모델을 설계하는 데 초점을 맞춤.
- 기존 시스템을 보조하는 것이 아니라, 완전한 뉴럴 기계 번역 시스템(NMT)을 독립적으로 구축하는 접근법을 제안함.
7. Conclusion
- 기존 신경 기계 번역(NMT)은 고정된 길이의 컨텍스트 벡터(fixed-length context vector)로 전체 문장을 인코딩한 후 번역을 수행했음.
- 최근 연구(Cho et al., 2014b; Pouget-Abadie et al., 2014)에 따르면, 이 방식은 긴 문장 번역에서 한계를 보임.
본 연구의 기여
- 기존 인코더-디코더(Encoder-Decoder) 구조를 확장하여, 어텐션 메커니즘(soft-search)을 추가한 새로운 NMT 모델을 제안함.
- 어텐션 메커니즘을 통해 모델이 특정 번역 단어를 생성할 때 관련된 소스 단어를 동적으로 검색(search)할 수 있도록 함.
- 이를 통해 모델이 전체 문장을 하나의 벡터에 강제로 압축할 필요 없이, 각 번역 단어에 필요한 정보를 직접 참조할 수 있도록 개선함.
- 결과적으로 긴 문장에서의 번역 성능이 향상되었으며, 번역 확률(log-probability of correct translations)도 증가함.
- 기존의 번역 시스템과 달리, 번역 과정의 모든 요소(어텐션 포함)가 함께 학습되는 엔드투엔드 모델을 구축함.
실험 결과 요약
- 제안된 RNNsearch 모델은 영어-프랑스어 번역 실험에서 기존 RNNencdec 모델보다 훨씬 높은 성능을 보임.
- 문장 길이에 관계없이 우수한 성능을 유지하며, 특히 긴 문장에서 RNNencdec보다 훨씬 뛰어난 성능을 발휘함.
- 정렬(Alignment) 시각화 분석을 통해, 모델이 원문과 정확하게 대응하는 단어를 학습했음을 확인함.
향후 연구 방향
- 본 연구에서 제안된 모델은 기존 구 기반 번역 시스템(phrase-based SMT)과 비슷한 성능을 달성함.
- 이는 뉴럴 기계 번역(NMT)의 가능성을 보여주는 중요한 연구 결과임.
- 향후 해결해야 할 과제:
- 희귀 단어(rare words) 또는 미등록 단어(OOV, Out-of-Vocabulary)에 대한 대응이 필요함.
- 모델이 더 널리 사용되기 위해서는 기존 최고 성능의 번역 시스템과 경쟁할 수 있도록 추가적인 연구가 필요함.
