논문명: Neural Machine Translation by Jointly Learning to Align and Translate
저자: Dzmitry Bahdanau, Kyunghyun Cho, Yoshua Bengio
출간지: ICLR 2015
발간일: 2016.05
I. Introduction
본 논문에서는 정렬과 번역을 공동 학습하는 encoder-decoder 구조를 통해 이전 접근법보다 번역 성능을 크게 향상시키는 것을 보여준다.
- Background
과거의 Machine Translation은 다양한 sub component로 구성되어 있었고 각 component는 각각 학습되고 구성되었다. 이후로는 하나의 큰 neural network를 이용한 translation이 제안되었다. Neural Machine Translation(NMT)의 경우, encoder-decoder 계열에 속한다. 이는 인코더 신경망이 소스 문장을 읽어 고정 길이 벡터로 인코딩을 하고, 디코더는 인코딩된 벡터로부터 번역을 출력하는 방식이다. 이때, 전체 인코더-디코더 시스템은 소스 문장을 주어졌을 때 올바른 번역일 확률을 최대화하도록 공동 훈련한다. 예시로, RNN 혹은 LSTM을 이용한 인코더-디코더 구조를 들 수 있다.
그러나, 위와 같은 구조에서는 잠재적 문제가 존재한다. 바로, 신경망이 소스 문장의 모든 필요한 정보를 fixed-length vector에 압축해야 한다는 점이다. 이 문제를 해결하기 위해 인코더-디코더 모델을 확장하여 정렬과 번역을 공동으로 학습하는 방법을 도입한다.
- Task
≫ 기존 Encoder-Decoder의 한계 : fixed-length vector
고정된 크기의 벡터를 갖는 것은 Bottlenect을 일으킨다. 이는 source sentence를 고정된 크기의 벡터에 압축하기 때문에, 긴 문장에 대한 정보를 담기 어렵다. (= 성능 저하)
≫ 해결법 : align과 translate을 공동으로 학습하는 방법 제안
따라서, 본 논문의 저자는 위의 문제점을 해결하기 위하여 새로운 구조를 제안한다. 해당 모델이 번역에서 단어를 생성할 때마다, source sentence에서 가장 연관이 있는 부분들을 찾고나서 그 다음 모델이 이전에 생성된 모든 target word와 source position에 기반한 context vector를 이용하여 target word를 예측하는 것이다.
≫ 차별화 요소 : adaptively
기존에는 input sequence에 대하여 하나의 고정된 길이의 vector로 표현했지만,
본 모델은 이를 vector sequence로 표현하고 Decoding하는 동안 이 벡터의 subset을 adaptively하게 선택한다.
*adaptivley : 각 단계에서 전체 입력 시퀀스와 가장 관련성이 높은 정보를 포함하는 벡터의 부분 집합을 결정하는 것. 이는 번역하는 단어 혹은 구에 따라 달라지기 때문에 'adaptively(=적응적)'이라고 부름.
II. Model
본 논문에서는 신경망 기계 번역을 위한 새로운 아키텍처를 제안한다. 아키텍처의 구성은 아래와 같다.
양방향 RNN을 갖는 Encoder + 번역을 디코딩하는 동안 입력 문장을 검색하는 흉내를 내는 Decoder
#1. Decoder : General description
- 해당 모델의 Decoder에서는 Attention 매커니즘을 사용한다.
Attention 매커니즘
- new model architecture의 정의 : 현 시점(i)의 출력 y_i = 이전 출력값 y_(i-1), 현 시점 hidden state s_i, context vector c_i
- hidden state s_i
- context vector c_i
c_i는 Attention이 적용된 context vector로, 가중치 a_ij와 hidden state값 h_j의 가중합으로 만들어진다. c_i에는 입력 문장 중 집중해야 하는 부분에 집중하여 얻은 결과를 모두 더한 값이라고 볼 수 있다.
이때, 가중치 a_ij는 전체 입력 문장 중에서의 영향력을 나타내는 e_ij로 나타낼 수 있다. 해당 가중치는 현재 디코더 출력 시점(i)에 대하여 j번째 토큰의 영향력을 나타낸 것이다. 즉, 출력단어가 입력단어와 정렬되거나 이로부터 번역될 확률을 의미하는 것이다. e_ij는 input의 j번째와 output의 i번째가 얼마나 잘 매치되었는지에 대한 score를 의미한다.
* annotation(=h_i) : 입력(x_i)에 대한 hidden state
- 전체적인 구조
입력 토큰(hj)과 직전 출력 토큰(si-1)에 기반하여 출력 토큰(yi)에 대한 입력 토큰들의 영향력(aij)을 구하고, 그 영향력을 반영(ci)한 값으로, 출력 토큰(yi) 생성 시에 활용된다.
#2. Encoder : Bidirectional RNN for Annatating sequences
- 인코더는 bidirectional RNN(BiRNN)을 사용한다. biRNN은 forward RNN과 backward RNN, 2개의 RNN을 사용하는 것이다.
입력 문장 x가 들어간 이후, forward RNN은 처음부터 순차적으로 입력을 읽어서 hidden state를 생성한다. backward RNN은 입력의 제일 뒤에서부터 역방향으로 입력을 읽어서 hidden state를 생성한다. 이 둘을 concat하여 양방향으로서의 state 정보를 갖고 있는 hidden state h_j를 생성하는 것이다.
III. Experiment Detail
- Dataset
( 학습에 포함되지 않은 단어들을 만났을 때는 그 단어를 [UNK] = Unknown)로 대체하여 처리)
- Baseline
- RNN Encoder-Decoder(RNNencdec, Cho et al. 2014a)와 본 논문에서 제안한 모델인 RNNsearch, 2가지의 모델을 학습하여 비교함.
- 각 모델은 sentence의 길이를 30, 50으로 제한하여 2가지로 학습함.
IV. Results
Result1. Quantitative results
- Table1은 BLEU socre를 나타내는 표이다. 이를 통해 RNNsearch 모델이 기존 모델보다 더 높은 성능을 보임을 알 수 있다.
- Figure2는 길이에 따른 BLEU score를 나타내는 그래프이다. 이를 통해 RNNsearch 모델이 기존 모델보다 더 높은 성능을 갖는다는 것을 알 수 있다. 나아가, 길이 30으로 훈련된 RNNsearch 모델이 50으로 훈련된 기존 RNN 모델보다 더 높은 성능을 갖는다는 것을 확인할 수 있는데 이는 어텐션 메커니즘이 성능 향상에 효과적이라는 것을 확인할 수 있는 바이다. 또한, RNNsearch 50의 경우 Sentence length가 길어짐에도 성능이 크게 떨어지지 않음을 확인할 수 있었다.
Result2. Qualitative results
- Figure3은 annatation weights를 시각화한 것이다. column의 입력데이터가 row의 예측 결과 값이랑 잘 매핑이 되는 것을 확인할 수 있다. 추가적으로 soft-alignment를 통해서 입력데이터와 출력데이터ㅢ 크기를 다르게 할 수 있다.
V. Conclusion
https://arxiv.org/abs/1409.0473
Neural Machine Translation by Jointly Learning to Align and Translate
Neural machine translation is a recently proposed approach to machine translation. Unlike the traditional statistical machine translation, the neural machine translation aims at building a single neural network that can be jointly tuned to maximize the tra
arxiv.org