0. Abstract
Neural machine translation은 번역 성능을 극대화하기 위해 공동으로 조정될 수 있는 단일 신경망 구축을 목표로 한다. Neural machine translation을 위해 최근 제안된 모델은 보통 encoder-decoders 제품군에 속하며 decoder가 번역을 생성하는 고정 길이 벡터로 source sentence를 인코딩한다. 본 논문에서는 고정 길이 벡터의 사용이 기본적인 encoder-decoders 모델의 성능을 향상시키는데 병목 현상이 발생한다고 추측하고, 이러한 부분을 명시적으로 하드 세그먼트로 구성할 필요없이 모델이 target 단어 예측과 관련된 소스 문장의 일부를 자동으로 검색할 수 있도록 하여 이를 확장할 것을 제안한다. 새로운 접근 방식을 통해 우리는 영어-프랑스어 번역 작업에 대해 기존의 최첨단 구문 기반 시스템에 필적하는 번역 성능을 달성한다. 더욱이, 정성적인 분석은 모델에서 발견된 (soft) 정렬이 우리의 직관과 잘 일치한다는 것을 보여준다.
1. Introdution
Neural machine translation은 최근에 제안된 기계 번역에 대해 새롭게 떠오르는 접근 방식이다. 개별적으로 조정되는 많은 작은 하위 구성 요소로 구성된 기존 구문 기반 번역 시스템과 달리 신경 기계 번역은 문장을 읽고 올바른 번역을 출력하는 단일 대규모 신경망을 구축하고 훈련하려고 시도한다.
제안된 Neural machine translation 모델의 대부분은 각 언어에 대한 인코더와 디코더가 있는 인코더-디코더 유형에 속하거나 출력이 비교되는 각 문장에 적용되는 언어별 인코더를 포함한다. 인코더 신경망은 문장을 읽고 고정 길이의 벡터로 인코딩한다. 그 다음 디코더는 인코딩된 벡터에서 번역을 출력한다. 언어 쌍에 대한 인코더와 디코더로 구성된 전체 인코더-디코더 시스템은 주어진 소스 문장에서 올바른 번역의 확률을 최대화하도록 함께 훈련된다.
이 인코더-디코더 접근 방식의 잠재적인 문제는 신경망이 소스 문장의 모든 필수 정보를 고정 길이 벡터로 압축할 수 있어야 한다는 것이다. 이로 인해 신경망이 긴 문장, 특히 훈련 코퍼스의 문장보다 긴 문장에 대처하기에는 어려울 수 있다.
이 문제를 해결하기 위해 공동으로 정렬하고 변환하는 것을 학습하는 인코더-디코더 모델의 확장 버전을 소개한다. 제안된 모델은 번역에서 단어를 생성할 때마다 원본 문장에서 가장 관련성이 높은 정보가 집중된 위치 집합을 검색한다. 다음으로 모델은 이 소스 위치 및 이전에 생성된 모든 대상 단어와 관련된 context 벡터를 기반으로 대상 단어를 예측한다.
기본 인코더-디코더와 이 접근 방식의 가장 중요한 차이점은 전체 입력 문장을 단일 고정 길이 벡터로 인코딩하려고 시도하지 않는다는 것이다. 대신, 입력 문장을 일련의 벡터로 인코딩하고 번역을 디코딩하는 동안 적응적으로 이러한 벡터의 하위 집합을 선택한다. 이를 통해 Neural machine translation 모델은 길이에 관계없이 소스 문장의 모든 정보를 고정 길이 벡터로 압축할 필요가 없다.
2. Background : Neural machine translation
확률론적 관점에서 번역은 소스 문장 x가 주어졌을 때 y의 조건부 확률을 최대화하는 목표 문장 y를 찾는 것은 동일하다. Neural machine translation은 병렬 훈련 코퍼스를 사용해 문자 쌍의 조건부 확률을 최대화하기 위해 매개변수화된 모델을 fit한다. 번역 모델에 의해 조건부 분포가 학습되면, 소스 문장이 주어지면 조건부 확률이 최대화되는 문장을 검색해 해당 번역이 생성될 수 있다.
2-1. RNN Encoder-Decoder
여기서는 RNN 인코더-디코더라는 기본 프레임워크에 대해 간략히 설명한다.
인코더-디코더 프레임워크에서 인코더는 입력 문장을 $ X = (x_{1}, \cdots , x_{T_{x}}) $의 시퀀스인 입력 문장을 벡터 c로 읽는다. 가장 일반적인 방법은 RNN을 사용하는 것이다.
$ h_{t} = f(x_{t}, h_{t-1}) $, $ c = q({h_{1}, \cdots, h_{T_{x}}}) $
$ h_{t} $는 시간 t의 hidden state 값이고, c는 hidden state의 시퀀스에서 생성된 벡터이다.
$ f $, $ q $는 일부 비선형 함수이다.
디코더는 context vector c와 이전에 예측된 모든 단어 $ {y_{1}, \cdots, y_{{t}'-1}} $가 주어지면 다음 단어 $ y_{{t}'-1} $를 예측하도록 훈련되는 경우가 많다. 즉, 디코더는 결합 확률을 순서가 지정된 조건문으로 분해해 번역 y에 대한 확률을 정의한다.
$ p(y) = \prod_{t=1}^{T}p(y_{t}|{y_{1}, \cdots, y_{t-1}}, c) $
RNN을 사용하면 각 조건부 확률은 다음과 같이 모델링된다.
$ p(y_{t}|y_{1}, \cdots, y_{t-1}, c) = g(y_{t-1}, s_{t}, c) $
g는 $ y_{t} $의 확률을 출력하는 비선형의 잠재적 multi-layerd이고, $ s_{t} $는 RNN의 hidden state이다.
3. Learning To Align and Translate
이 섹션에서는 neural machine translation을 위한 새로운 아키텍처를 제안한다. 새로운 아키텍처는 인코더인 bidirectional RNN과 번역을 디코딩하는 동안 소스 문장을 통한 검색을 emulate하는 디코더로 구성되어 있다.
3.1 Encoder : Bidirectional RNN For Annotating Sequences
보통 RNN은 입력 시퀀스 $ x $를 첫 번째 기호 $ x_{1} $부터 마지막 기호 $ x_{T_{x}} $까지 순서대로 읽는다. 그러나 제안된 방식에서는 각 단어의 annotation을 통해 앞의 단어 뿐만 아니라 뒤의 단어도 요약하기를 원한다. 따라서 최근 음성 인식에 성공적으로 사용된 BiRNN을 사용하는 것을 제안한다.
BiRNN은 순방향 및 역방향 RNN으로 구성된다. 순방향 RNN은 입력 시퀀스를 순서대로 읽고 순방향 hidden state의 sequence을 계산한다. 역방향 RNN은 입력 시퀀스를 역순으로 읽어 역방향 hidden state의 sequence를 생성한다. 우리는 forward hidden state와 backward state를 연결해 각 단어 $ x_{j} $의 annotation을 생성한다. 이러한 방식으로 annotation $ h_{j} $는 이전 단어와 다음 단어의 summary가 모두 포함되어 있다. 인접한 state의 정보를 더 많이 가지고 있는 RNN의 특성 상, $ h_{j} $는 입력 단어 $ x_{j} $의 가까운 위치에 있는 단어들의 정보를 더 많이 보유하게 된다.
3.2 Decoder : General Description
새로운 모델에서 우리는 기존의 식 $ p(y) = \prod_{t=1}^{T}p(y_{t}|{y_{1}, \cdots, y_{t-1}}, c) $에서 각 조건부 확률을 정의한다.
$ p(y_{i}|y_{1}, \cdots, y_{i-1}, \textbf{x}) = g(y_{i-1}, s_{i}, c_{i}) $
$ s_{i} $는 시간 i에서 RNN hidden state 값이다.
$ s_{i} = f(s_{i-1}, y_{i-1}, c_{i}) $
기존 인코더-디코더 접근 방식과는 달리 여기서 확률은 각 대상 단어 $ y_{i} $에 대해 고유한 context vector $ c_{i} $에 따라 조건이 지정된다.
context vector $ c_{i} $는 인코더가 입력 문장을 매핑하는 a sequence of annotations $(h_{1}, \cdots, h_{T_{x}})$에 따라 달라진다. 각 annotation $ h_{i} $에는 입력 시퀀스의 i번째 단어를 둘러싼 부분에 중점을 두고 전체 입력 시퀀스에 대한 정보가 포함된다.
그 다음 context vector $ c_{i} $는 다음 annotation $ h_{i} $의 가중합으로 사용된다.
$ c_{i} = \sum_{j=1}^{T_{x}}a_{ij}h_{j} $
각 annotation $ h_{j} $의 가중치 $ a_{ij} $는 아래와 같이 계산된다.
$ a_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^{T_{x}}exp(e_{ik})} $, $ e_{ij} = a(s_{i-1}, h{j}) $
$ e_{ij} $는 위치 j 주변의 입력과 위치 i의 출력이 얼마나 잘 일치하는지 점수를 매기는 정렬 모델이다. 점수는 RNN hidden state $ s_{i-1} $과 입력 문장의 j번째 annotation $ h_{j} $를 기반으로 한다.
우리는 정렬 모델 a를 제안된 시스템의 다른 모든 구성 요소와 공동으로 훈련되는 피드포워드 신경망으로 매개변수화한다. 기존 기계 번역과 달리 정렬은 잠재 변수로 간주되지 않는다. 대신 정렬 모델은 soft alignment을 직접 계산해 cost 함수의 기울기를 역전파할 수 있다. 이 기울기는 정렬 모델 뿐 아니라 전체 번역 모델을 공동으로 훈련하는 데 사용될 수 있다.
이때 annotation $ a $는 번역 단어를 생성해낼 때의 attention이 된다. 확률 $a_{ij}$ 또는 에너지 $e_{ij}$는 다음 state $s_{i}$를 결정하고 $y_{i}$를 생성할 때 이전의 hidden state $s_{i-1}$에 대한 annotation을 반영한다. 따라서 이는 decoder에서 attention 매커니즘이 되는 것이다. 디코더는 attention에 지불할 문장 부분을 찾는다. 이처럼 디코더에 attention 매커니즘을 갖게 함으로써 원본 문장의 모든 정보를 고정 길이 벡터로 인코딩해야 하는 부담을 없애준다. 이러한 접근 방식을 사용하면 정보다 annotion 시퀀스 전체에 분산될 수 있으며 이에 따라 디코더가 이를 선택적으로 검색할 수 있게 된다.
4. Experiment Settings
영어-프랑스어 번역 작업에 대해 제안된 접근 방식을 평가한다. 해당 논문에서 제안한 모델 외에 비교군으로써 RNN 인코더-디코더의 성능도 보고한다. 두 모델 모두 동일한 훈련 절차와 동일한 데이터 셋을 사용한다.
4-1. Dataset
WMT' 14에는 Europarl(61M), 뉴스 논평(5.5M), UN(421M)와 각 90M와 272,5M 단어로 구성된 2개의 크롤링된 말뭉치가 존재한다. 본 논문에서는 뉴스 테스트 셋을 사용한다. 일반적인 토큰화 과정 이후, 각 언어에서 가장 자주 사용되는 단어 30000개의 최종 후보 목록을 사용해 모델을 교육한다. 후보 목록에 포함되지 않은 모든 단어는 특수 토큰([UNK])에 매핑된다. 논문에서는 데이터에 소문자 변환이나 형태소 분석과 같은 다른 특별한 전처리는 적용하지 않았다.
4-2. Models
두 가지 유형의 모델을 훈련한다. 첫 번째는 RNN Encoder-decoder(RNNencdec)이고, 다른 하나는 RNNsearch라고 하는 제안된 모델이다. 각 모델을 두 번 훈련한다. 먼저 최대 30단어 길이의 문장으로 훈련한 다음 최대 50단어 길이의 문장으로 훈련한다.
RNNencdec의 인코더와 디코더에는 각 1000개의 hidden unit이 존재한다. RNNsearch의 인코더는 각 1000개의 hidden unit이 있는 순방향 및 역방향 RNN으로 구성된다. 디코더에는 1000개의 hidden unit이 존재한다. 두 경우 모두 단일 maxout hidden layer가 있는 다층 네트워크를 사용해 각 target 단어의 조건부 확률을 계산한다.
본 논문은 Adadelta와 함께 미니배치 SGD 알고리즘을 사용해 각 모델을 훈련한다. 각 SGD 업데이트 방향은 80개 문장의 미니 배치를 사용해 계산된다.
5. Results
5-1. Quantitative results
Table 1은 BLEU score로 측정된 번역 성능을 나열한다. 모든 경우에 제안된 RNNsearch가 기존 RNNencdec보다 성능이 우수한 것을 볼 수 있다. 또한 알려진 단어로 구성된 문장만 고려할 때 RNNsearch의 성능이 Moses(기존 구문 기반 번역 시스템)보다 높은 것을 활용할 수 있다. 이것은 Moses가 RNNsearch 및 RNNencdec를 훈련하는 데 사용한 병렬 말뭉치 외 별도의 단일 언어 말뭉치를 사용한다는 점을 고려하면 중요한 결과이다.
본 논문의 모델 제작의 이유 중 하나는 기존 인코더-디코더 접근 방식에서 고정 길이의 context vector를 사용하는 것이다. 우리는 이 제한으로 인해 기존 인코더-디코더 접근 방식이 긴 문장에서 성능이 저하될 수 있다고 추측했다. 해당 추측은 Figure2의 결과를 통해 확인할 수 있다. 반면 RNNsearch-30과 RNNsearch-50은 기존 모델 대비 더 강력한 성능을 보여준다.
5-2. Qualitative analysis
5-2-1. Alignment
제안된 접근 방식은 단어 사이의 (soth) alignment를 검사하는 직관적인 방법을 제공한다. 이는 Figure 3과 같이 $ a_{ij} = \frac{exp(e_{ij})}{\sum_{k=1}^{T_{x}}exp(e_{ik})} $, $ e_{ij} = a(s_{i-1}, h{j}) $를 시각화하여 수행했다. 각 plot의 행렬의 각 행은 annotation과 관련된 가중치를 나타낸다. 이것으로부터 원본 문장의 어떤 위치가 타겟 단어를 생성할 때 더 중요하게 고려된다.
그림 3의 alignment를 보면 영어와 프랑스어 사이의 단어 정렬이 대체로 단조로운데, 단조롭지 않은 정렬을 관찰해 볼 때를 관찰해보자. 형용사와 명사는 일반적으로 프랑스어와 영어의 순서가 다르며 (a)에 그 예가 있다.
제안하는 모델의 중요한 특징은 hard alignment가 아닌 decoder에서 단어를 생성할 때마다 기존의 hidden state와 문맥들을 모두 고려해 위치와 단어를 결정하는 soft alignment를 사용한다는 것이다. 이를 통해 각 언어에 맞는 문법에 맞게 알맞게 문장을 생성해낸다.