Neural Maschine Translation은 대부분 encoder-decoder 형식으로 이루어져 있다.
- Encoder: 입력 문장을 고정 길이 벡터로 변환
- Decoder: 해당 벡터를 이용해서 번역 결과 생성
<기존 Seq2seq 모델들의 한계점>

그림을 자세히 살펴보자.
- 단어가 입력될때마다 hidden state가 갱신되는 것을 알 수 있다. (이전 정보가 모두 들어있는 hidden 값을 받아서 입력될 때마다 갱신을 해주는 방식)
- 마지막 단어의 hidden state 값인 가 소스 문제 전체를 대표하는 하나의 context vector 가 된다.
- 각각의 단어들로 구성된 sequence가 들어왔을 때 중간에서 고정된 크기의 context vector로 바꾼 뒤에 context vector로부터 출력 문장을 만들어 내는 구조이다. (입력 문장이 때에 따라 길고 짧은 다양한 경우가 있다.)
⚠️ 다양한 크기의 문장을 고정된 크기인 context vector로 압축을 진행하는 과정에서 병목현상이 나타나는 문제 발생
✅ 해당 논문에서는 기존의 encoder-decoder 모델에서 새로운 구조를 추가해서 성능을 향상할 수 있는 방법 제안
신경망 기계번역(NMT)은 최근 제안된 새로운 기계 번역 방식이다.
-> 전통적인 통계적 기계 번역(Statistical Machine Translation, SMT)와 달리, 신경망 기계 번역은 번역 성능을 극대화할 수 있도록 단일 신경망을 구축하고 이를 공동으로 최적화 하는 것을 목표로 한다.
최근 제안된 신경망 기계 번역 모델들은 대부분 인코더-디코더(encoder-decoder) 구조를 기반으로 하며, 원문 문장을 고정된 길이의 벡터로 인코딩한 후 디코더가 이를 바탕으로 번역을 생성하는 방식이다.
⭐️ 이 논문에서는 context vector를 사용하는 것이 기본적인 인코더-디코더 구조의 성능 향상에 한계가 될 수 있다고 가정한다.
-> 이를 극복하기 위해 모델이 번역 과정에서 자동으로 원문 문장에서 필요한 부분을 찾아낼 수 있도록 확장하는 방법을 제안한다.
- 영어-프랑스어 번역 과제에서 기존 최첨단 구문 기반(phrase-based) 번역 시스템과 비슷한 수준의 성능 달성
- 모델이 학습한 정렬 결과를 분석한 결과, 우리가 직관적으로 예상하는 번역 과정과 잘 일치함을 확인
현재까지 제안된 대부분의 신경망 기계 번역 모델은 인코더-디코더계열에 속하며, 각각의 언어에 대해 인코더와 디코더를 갖추는 방식이 일반적이다.
또한, 일부 연구에서는 각 문장에 대해 언어별 인코더를 적용한 후, 그 출력을 비교하는 방식을 사용하기도 한다.
인코더 신경망은 원문 문장을 읽고 이를 고정된 길이의 벡터로 인코딩하며, 이후 디코더가 이 벡터를 기반으로 번역을 생성한다.
(주어진 원문 문장에 대해 올바른 번역이 나올 확률을 최대화하도록 공동 학습)
⚠️ 해당 방식의 문제
인코더-디코더 접근 방식에는 하나의 고정된 길이 벡터 안에 원문 문장의 모든 필수 정보를 압축해야 한다는 문제가 있다. -> 병목 현상 발생
이로 인해, 특히 학습 데이터에 포함된 문장보다 더 긴 문장을 처리할 때 신경망이 제대로 작동하기 어려울 수 있다.
실제로 기본적인 인코더-디코더 모델의 성능이 입력 문장의 길이가 증가할수록 급격히 저하된다는 것을 보여주는 연구 결과가 있었다.
이 문제를 해결하기 위해, 저자는 인코더-디코더 모델을 확장하여 정렬과 번역을 공동으로 학습하는 방식을 제안한다.
🔑 제안 방식
1️⃣ 번역 과정에서 매번 단어를 생성할 때, 원문 문장에서 가장 관련성이 높은 정보가 집중된 위치를 (소프트하게) 탐색
2️⃣ 이후, 해당 위치와 관련된 컨텍스트 벡터 및 이전에 생성된 번역 단어들을 바탕으로 다음 번역 단어를 예측하는 방식
확률론적 관점에서 번역은 원문 문장 가 주어졌을 때, 조건부 확률 를 최대화 하는 번역 문장 를 찾는 문제와 동등하다. => 를 찾는 과정
신경망 기계 번역에서는 병렬 학습 데이터(corpus)를 이용하여 조건부 확률을 최대화 하도록 매개변수가 포함된 모델을 학습한다. 이 번역 모델이 조건부 분포를 학습한 후에는, 원문 문장이 주어졌을 때 해당 조건부 확률을 최대화 하는 번역 문장을 탐색하여 생성할 수 있다.
최근 여러 연구에서 신경망을 이용해 이 조건부 분포를 직접 학습하는 방식이 제안되었다.
<신경망 기계 번역>
1.원문 문장 를 인코딩하는 역할
2. 이를 바탕으로 번역 문장 를 디코딩하는 역할
ex) 두 개의 순환 신경망(RNN)을 사용하여 가변 길이의 원문 문장을 고정 길이 벡터로 인코딩한 후, 이를 다시 가변 길이의 번역 문장으로 디코딩하는 방식 제안
해당 장에서는 cho et al.(2014a)와 Sutskever et al.(2014)가 제안한 RNN 인코더-디코더 프레임워크를 간략하게 설명한다.
저자는 이 프레임워크를 기반으로 정렬과 번역을 동시에 학습하는 새로운 아키텍처를 구축한다.
🔎 Encoder-Decoder Framework
✔ <인코더>
입력 문장을 벡터 시퀀스 로 읽고, 이를 context vector 로 변환한다.
✔ <디코더>
컨텍스트 벡터 와 이전에 예측된 단어들 을 바탕으로 다음 단어 를 예측하도록 학습
-> 즉, 번역 문장 y에 대한 확률을 다음과 같은 조건부 확률들의 곱으로 정의
, 여기서 번역 문장은 와 같이 구성
또한, RNN 외에도 RNN과 역합성곱 신경망의 하이브리드 모델을 사용할 수 있다.
이 섹션에서는 신경망 기계 번역을 위한 새로운 아키텍처를 제안한다.
새 아키텍처는 인코더로서 양방향 RNN을 포함하며, 디코더는 번역을 생성하는 동안 원문 문장을 검색하는 방식을 모방한다.
새로운 모델 아키텍처에서는 식의 각 조건부 확률을 다음과 같이 정의한다.
여기서 는 시간 에서의 RNN 은닉 상태로, 로 계산
⭐ 기존의 인코더-디코더 접근 방식과는 달리 여기서는 각 타겟 단어 에 대해 개별적인 컨텍스트 벡터 를 조건으로 한다.
컨텍스트 벡터 는 이러한 annotation 들의 가중합으로 계산된다.
(여기서 가중치 는 로 정의, )
- 는 정렬 모델로, 입력 문장에서 위치 근처의 정보가 출력 문장에서 번째 단어를 생성하는 데 얼마나 적절한지 평가하는 점수이다. 이 점수는 를 생성하기 직전의 RNN 은닉 상태 와 입력 문장의 번째 annotation 를 기반으로 한다.
- 정렬 모델 는 피드포워드 신경망으로 파라미터화되며, 제안된 시스템의 다른 모든 구성 요소와 동시에 학습된다.
기존의 기계 번역 방식과 달리, 정렬이 잠재 변수로 간주되지 않고 정렬 모델이 직접 소프트 정렬을 계산하며, 이를 비용함수의 그래디언트를 역전파 할 수 있다.
→ 정렬 모델뿐만 아니라 전체 번역 모델도 함께 학습된다.
Expected annotation: annotation의 가중합을 취하는 접근 방식
✅ 디코더에 어텐션 메커니즘을 추가하면, 인코더가 전체 입력 문장을 단일 고정 길이 벡터로 인코딩해야 하는 부담이 줄어든다.
✅ 새로운 접근 방식에서는 정보가 annotation 시퀀스 전체에 분산되며, 디코더가 필요에 따라 이를 선택적으로 검색한다.
일반적인 RNN은 입력 시퀀스 를 처음 심볼 부터 마지막 심볼 까지 순차적으로 읽는다. 그러나 제안하는 방법에서는 각 단어의 annotation이 이전 단어뿐만 아니라 이후 단어의 정보도 포함하도록 만들고자 한다.
(양방향 RNN(Bidirectional RNN, BiRNN)을 사용하며, 이는 최근 음성 인식 분야에서 성공적으로 활용되었다.)
양방향 RNN(BiRNN)은 순방향(forward)RNN과 역방향(backward)RNN으로 구성된다.
- 순방향 RNN는 는 입력 시퀀스를 원래 순서대로 읽으며 계산
- 역방향 RNN는 는 입력 시퀀스를 반대 순서로 읽으며 생성
각 단어 의 annotation 는 해당 단어에서의 순방향 은닉 상태와 역방향 은식상태를 연결하여 얻는다.
이 annotation 시퀀스는 이후 디코더와 정렬 모델에서 컨텍스트 벡터를 계산하는 데 사용된다.

저자는 제안한 접근 방식을 English-to-French translation 과제에서 평가한다.
평가는 ACL WMT '14에서 제공하는 이중언어 병렬 코퍼스를 사용한다.
비교를 위해, 최근 cho et al.(2014a)이 제안한 RNN-Encoder-Decoder 모델의 성능도 함께 보고한다. 두 모델 모두 동일한 훈련 절차와 데이터셋을 사용하여 학습한다.
WMT '14 데이터셋에는 다음과 같은 영어-프랑스어 병렬 코퍼스가 포함
✔ 사용 데이터셋
- Europarl (6,100만 단어)
- 뉴스 논평(news commentary) (550만 단어)
- UN 코퍼스 (4억 2,100만 단어)
- 크롤링된 데이터 (각각 9,000만 단어 및 2억 7,250만 단어)
→ 총 8억 5,000만 단어
cho et al.(2014a)에서 설명한 방식에 따라 전체 코퍼스의 크기를 3억 4,800만 단어로 줄였다.
✔ 검증 및 평가
- 개발 셋(Validation set): 뉴스 평가 데이터 news-test-2012 + news-test-2013을 결합하여 생성
- 테스트 셋(Test set): WMT '14에서 제공하는 news-test-2014 (총 3,003개 문장)
✔ 데이터 전처리
- 일반적인 토큰화(tokenization) 적용
- 30,000개의 가장 빈도가 높은 단어를 선정하여 단어 목록(shortlist) 생성
- 목록에 포함되지 않은 단어는 특별 토큰 [UNK]로 대체
- 소문자 변환(lowercasing) 또는 어간 분석(stemming) 등의 추가적인 전처리는 적용하지 않음
🔎 두가지 모델 사용
- RNN Encoder-Decoder (RNNencdec) (Cho et al.,2014a)
- 인코더(encoder)와 디코더(decoder) 각각 1,000개의 은닉 유닛(hidden units) 사용
- 제안된 모델 (RNNsearch)
- 인코더는 순방향(forward) RNN과 역방향(backward) RNN으로 구성되며, 각 RNN은 1,000개의 은닉 유닛 사용
디코더는 1,000개의 은닉 유닛 사용
각 모델은 두 가지 버전으로 훈련
최대 문장 길이 30 단어: RNNencdec-30, RNNsearch-30
최대 문장 길이 50 단어: RNNencdec-50, RNNsearch-50
두 모델 모두, Maxout 활성화 함수(Goodfellow et al., 2013)를 사용하는 다층 신경망(multilayer neural network)을 이용하여 각 타겟 단어의 조건부 확률(conditional probability)을 계산한다.
✔ 훈련 방법
- 미니배치 확률적 경사 하강법(Stochastic Gradient Descent, SGD) + Adadelta(Zeiler, 2012) 사용
- 미니배치 크기: 80개 문장
- 훈련 시간: 약 5일
- 추론 단계(Translation Inference):
- 훈련이 완료된 모델을 이용하여, 빔 서치(beam search)를 통해 번역을 생성
→ 이는 조건부 확률을 최대로 하는 번역을 근사적으로 찾는 방식

표 1(Table 1)에는 번역 성능을 BLEU 점수로 측정한 결과를 나열
표에서 확인할 수 있듯이, 제안된 RNNsearch 모델이 기존 RNNencdec 모델보다 모든 경우에서 더 높은 성능을 보인다.
더 중요한 점은, RNNsearch의 성능이 기존의 구문 기반(phrase-based) 번역 시스템인 Moses와 동등한 수준이라는 것이다.
→ 이는 훈련에 사용된 단어만 포함된 문장만 고려했을 때의 성능 비교이며, 이는 매우 중요한 성과
왜냐하면, Moses RNNsearch 및 RNNencdec 모델을 훈련하는 데 사용한 병렬 코퍼스 외에도
418M(4억 1,800만) 단어로 구성된 별도의 단일 언어(monolingual) 코퍼스를 추가로 사용하기 때문이다.
이번 연구의 주요 동기 중 하나는, 기존 Encoder-Decoder 접근 방식에서 "고정 길이(fixed-length) 컨텍스트 벡터"를 사용하는 것이 문제일 수 있다는 점이었다.
저자는 이러한 제한이 긴 문장에서 Encoder-Decoder 접근 방식의 성능을 저하시킬 가능성이 있다고 가정하였다.

이를 검증하기 위해, Fig. 2(그림 2)를 보면, RNNencdec 모델의 성능이 문장의 길이가 길어질수록 급격하게 감소하는 것을 확인할 수 있다.
반면, RNNsearch-30과 RNNsearch-50 모델은 긴 문장에서도 더 높은 성능을 유지하며, 특히 RNNsearch-50 모델은 문장 길이가 50개 이상이어도 성능 저하가 거의 발생하지 않는다.
이는 제안된 RNNsearch 모델이 기존 Encoder-Decoder 모델보다 훨씬 우수하다는 것을 뒷받침하는 증거이며,
심지어 RNNsearch-30조차도 RNNencdec-50보다 더 높은 성능을 기록했다.
제안한 접근 방식은 생성된 번역문과 원문 문장 간의 (소프트) 정렬(soft-alignment)을 직관적으로 분석할 수 있도록 한다.
이는 위에서 정의한 annoatation가중치 를 시각화하는 방식으로 수행되며, 그 예시는 Fig. 3(그림 3)에 나타나 있다.
각 플롯(plot)의 행(row)은 annotations과 관련된 가중치를 나타낸다. 이 정보를 통해 타겟 단어를 생성할 때 원문 문장의 어떤 위치가 더 중요하게 고려되었는지를 알 수 있다.

Fig. 3에서 확인할 수 있는 정렬의 특징은 다음과 같다.
- 영어와 프랑스어 간의 단어 정렬은 대체로 단조(monotonic)한 경향 을 보인다.
- 대각선 방향으로 강한 가중치(strong weights)가 집중됨을 확인할 수 있다.
- 단순한 단조 정렬뿐만 아니라 비단조적(non-monotonic) 정렬도 존재한다. (ex. 영어와 프랑스어는 형용사와 명사의 어순이 다르게 배치되는 경우가 많다.
[European Economic Area] → [zone économique européenne]으로 올바르게 번역하고 있음을 확인)- 특히, RNNsearch는 [zone]을 [Area]와 올바르게 정렬하며, 두 단어 [European]과 [Economic]을 건너뛴 후, 역순으로 한 단어씩 처리하며 전체 구문 [zone économique européenne]을 완성했다.
- 소프트 정렬(Soft Alignment)의 장점
하드 정렬 방식이라면 ([the] → [l'][man] → [homme]) 이런 식으로 1:1 정렬
but 이는 프랑스어에서 [the]가 [le], [la], [les], [l'] 중 어떤 형태로 변형될지는 뒤따르는 단어에 따라 결정되기 때문에 하드 정렬 방식은 적절한 번역을 생성하는 데 도움이 되지 않는다.
소프트 정렬을 사용하면, 모델이 자연스럽게 [the]와 [man]을 모두 고려하여 적절한 형태인 [l']을 선택할 수 있다.
소프트 정렬의 또 다른 장점은, 원문과 타겟 문장의 길이가 다를 경우에도 자연스럽게 대응할 수 있다는 점이다.
제안된 RNNsearch 모델은 기존 RNNencdec 모델보다 긴 문장을 번역하는 데 훨씬 더 뛰어난 성능을 보인다.
이러한 차이는 RNNsearch 모델이 긴 문장을 고정 길이 벡터(fixed-length vector)로 완벽히 압축할 필요 없이
각 단어 주변의 중요한 부분만 정확하게 인코딩(encoding) 하면 되기 때문으로 보인다.
✅ 제시된 정량적 결과(quantitative results)와 정성적 분석(qualitative observations)은 RNNsearch 아키텍처가 기존 RNNencdec 모델보다 긴 문장을 훨씬 더 신뢰할 수 있게 번역할 수 있음을 확인해준다.
기존의 신경망 기계 번역(NMT) 방식은 인코더-디코더 접근법이라 불린다. 해당 방식은 입력 문장 전체를 하나의 공정 길이 벡터로 인코딩한 후, 이를 기반으로 번역을 생성한다.
그러나, 고정 길이 context vector의 사용이 긴 문장 번역에 문제를 초래할 가능성이 있다고 가정한다.
본 논문에서는 이러한 문제를 해결하기 위한 새로운 아키텍처를 제안한다.
⭐ 저자는 기존의 인코더-디코더 구조를 확장하여, 타겟 단어를 생성할 때 모델이 입력 문장에서 특정 단어를 소프트 검색 할 수 있도록 하였다.
✅ 모델이 전체 문장을 하나의 고정 길이 벡터로 인코딩해야 하는 부담 제거
✅ 현재 생성 중인 타겟 단어에 관련된 정보에만 집중할 수 있도록 해줌
이러한 개선은 긴 문장 번역에서 신경망 기계 번역 시스템의 성능을 크게 향상시키는 주요한 요소로 작용한다.
- 기존의 인코더-디코더 구조의 문제점을 지적하며 새로운 아키텍처를 제안하는 것이 대단하다는 생각이 들었다.
- Attention is All You Need를 처음 읽을 때, 고생을 많이 했는데 이 논문을 먼저 읽었다면 이해하는 데에 더 도움이 됐을 것 같다.