티스토리 뷰
Effective Approaches to Attention-based Neural Machine Translation
Author : Minh-Thang Luong (lmthang@stanford.edu)
1. Introduction
NMT task 가 어필이 되는 이유 :
1. 도메인 지식이 minimal 필요
2. 컨셉적으로 simple 함.
2015년 Luong의 모델은 모든 소스 워드들을 <eos>를 만날 때까지 인코딩하고, 한 번에 하나씩 타겟 단어들을
출력하는 모델임. (Figure 1 )
NMT 는 작은 메모리를 가지고 있기 때문에, 매우 큰 문장 테이블이나 랭귀지 모델은 저장할 수 없음.
최근 인기있는 'Attention'은 모델들이 다른 modality 들 사이에 alignments를 허용하고 있음.
논문은 Attention 을 사용하여 효율적인 모델을 소개하고 성능을 비교할 것임.
1. global approach : 모든 소스 워드가 attend 되는 approach
2. local approach : 소스 워드의 서브 세트만 attend 되는 approach
global approach 는 Bahdanau (2015) 와 비슷하고, local approach는 'hard and soft' attention을 섞은 것으로 볼 수 있다.
local approach 는 gloabal approach 또는 'soft attention' 보다 컴퓨팅 자원을 덜 사용하고, 또한 'hard attention'과 달리
거의 모든 곳에서 differential 할 수 있어서, 구현과 훈련이 쉬움.
우리 는 영어 <-> 독일 tanslation 으로 Local attention으로 non-attentional 시스템보다 5.0 BLUE 더 높임.
우리 앙상블 모델로 WMT'15 Eng<->German 25.9 BLEU를 달성함. 이는 기존 NMT와 n-gram reranker 보다 1.0 BLEU 높음
SOTA 우리가 찍었음.
2. Neural Machine Translation
NMT 는 p(y|x)를 직접적으로 구현하는 뉴럴 네트워크이다. ( x는 소스, y는 타겟 )
NMT의 기본 형태는 두 개의 component 들로 구성되어 있다.
1. encoder : 각 소스 문장을 대표하는 s 벡터를 계산
2. decoder : 타켓 단어를 한 번에 하나씩 만듦.
이것을 조건부 확률로 나타내면 다음과 같다.
y: target sentence
x: source sentence
s: source sentence 를 대표하는 s 벡터
이런 모델은 RNN 으로 구성할 수 있다.
Kalchnrenner and Blunsom (2013) : 소스 인코딩을 위하여 CNN + 디코더로 RNN 사용
Sutskever (2014) , Luong (2015) : encoder , decoder 용으로 stacked muliple layers LSTM 사용
Cho (2014), Bahdanau(2015), Jean (2015) : GRU를 사용하여 encoder, decoder 개발
각 단어 y 를 디코딩 확률
을 다음 과 같이 parameter 화 할 수 있다.
g 함수는 모든 vocabulary-size의 벡터이고, h는 RNN hidden unit
f는 RNN , GRU, LSTM 등이 될 수 있다.
Kalchbrenner and Blunsom, Sutskever, Cho, Luong 논문에서 , s vector ( source representation)는 디코드 hidden state 초기화에 한 번만 사용됨. 따라서, s는 사실상 소스 히든 스테이트의 세트를 포함하고 있음. 이는 전체 translation 과정 전체에서 사용된다.
이러한 approach 는 attention mechanism으로 참조되고 있음.
이 논문에서 Luong은 stacking LSTM architecture 를 사용함 (figure 1 ). training objective 공식은 다음과 같다.
3. Attention-based Models
우리의 어텐션베이스 모델은 global과 local로 분류되어 있는데, 차이점은 'attention'이 모든 소스 position 들에 두어지는지, 아니면, 몇몇 소스 position에 두어지는지에 있다.
그림 2 ,3으로 각각 그려 보았다.
두 모델 모두 t 싯점에서 stacking LSTM 디코더 결과로 나온 h(t)를 입력받아, context vector c(t)를 찾아내고, 현재 타겟 단어인 y(t)를 predict 하는데 사용한다.
두 모델에서 다른 점은 컨텍스터 벡터 c(t)를 도출하는 방법이 다르긴 하지만, 이후 두 모델은 같은 프로세스를 공유한다.
h(t)와 c(t) 가 결정되었을 때, attentional hidden state는 간단히 둘을 concate 시켜서 구한다.
이 h_hat(t) 는 softmax 쪽에 인입되어 타겟워드를 predict 한다.
3.1 Global Attention
global attentional model 은 c(t) 를 구할 때, 인코더의 전체 hidden state는 고려한다.
이 모델 타입에서는 변동크기의 alignment vector a(t)가 아래와 같이 구할 수 있다.
여기서 score 는 content-based function이고 3가지 종류가 있다.
그 외에도 이전에는 location-based function 을 사용했다. 이 것은 단지 hidden state h(t)만 가지고 계산했었다.
이렇게 구한 alignment vector a(t) 가 주어지고, Contect vector 들은 모든 소스 hidden states과 weighted average로 계산된다.
Bahdanau(2015)과 비교할 때, 우리의 글로벌 attention approach 가 바다나우와 비슷하지만, 몇 가지 다른 점이 있다.
(1) 우리는 단순히 encoder, decoder 의 LSTM의 맨 top의 hidden state를 사용했다.
반면 바다나우는 포워드 , bi-directional 인코더의 포워드와 백워드 소스 hidden state를 concate 하고
디코더의 non-stacking uni-directional decoder 의 타겟 hidden state를 사용하였다.
(2) 우리의 computation path 가 더 간단한다. 우리는 h(t) -> a(t) -> c(t) -> h_hat(t)로 진행되지만,
바다나우는 h(t-1) -> a(t) -> c(t) -> h(t)로 간다. 이 것은 Prediction 하기 전에 deep-output과 maxout layer로
들어가게 한다.
(3) 바다나우는 한 가지 alignment function ( concat product )만 했지만, 우리는 다른 것들도 테스트하였다.
[ Bahdanau Attention 과 Luong Attention의 Computation Path 비교 ]
3.2 Local Attention
글로벌 어텐션은 소스의 모든 단어들을 attend 하였는데, 이것은 expensive 하고 잠재적으로 긴 문장,
paragraphs나 문서 등에는 실용적이지 못하다.
이런 점을 보강하기 위해, local attentional mechanism 을 사용한다.
이것은 타겟워드 당 소스 position의 주변의 작은 subset 만 focus 하여 단어들을 선택한다.
이 모델은 Xu(2015)의 이미지 캡션 생성 타스크에서 사용된 'soft and hard' attentional model 들 사이의
트레이드오프로부터 영감을 얻었다.
이 모델은 처음에 t 시점에 각 타겟 워드에 대하여 aligned position p(t)를 생성한다.
실험하면서 결정된 D 값으로 윈도우 범위, [p(t) -D, p(t) + D]에서 소스 hidden states 상의 weighted average로 c(t)를 결정한다.
local alignment vector a(t)는 fixed dimensional 이다.. 고정길이 2D+1을 가진다.
alignment는 두 가지 변형된 모델을 고려한다.
(1) Monotonic alignmentt ( local-m ) : source , target sequence 가 대충 단순히 aligned 되어 있다고 간주함.
(2) Predictive alignment ( local-p ) :
우리 모델은 aligned position 을 아래와 같이 구한다.
W(p), v(p) 는 position을 predict을 위해 학습되는 parameter 들이다.
S는 소스 문장의 전체 길이이다.
결과적으로 P(t)는 [0, S] 값을 가지게 된다.
주변 단어들이 의미를 가진다는 생각하에,
P(t) 근처에 alignment point들을 가지기 위해, 가우시안 분포 ( 중심 P(t) )를 사용한다.
그래서 alignment 값은 다음과 같이 정해진다.
align() 함수는 Montonic 과 같다.
그리고, 표준편차는 D/2 로 한다. s는 pt를 중심으로 한 윈도우 안의 integer 값이다.
[ Luong 발표 유투브 캡처 ]
3.3 Input-feeding Approach
우리가 Propose한 global , local approach에서, attentional decisions들이 독립적으로 만들어진다.
반면, 일반적인 MT 에서 어떤 단어가 번역이 되었는지 추적하는 과정에서 coverage set 이 종종 관리된다.
비슷하게 attentional NMT에서도, 이전 alignment information 가 alignment decision에 사용되게 해야 한다.
Figure 4 와 같이 h_hat(t)가 다음 시점 input과 concate 되어 입력되는 input-feeding approach 를 제안한다.
이런 과정은 두 가지 효과가 있다.
(a) 모델로 하여금 완전히 전 alignment choice를 알게 할 수 있다.
(b) 가로로 세로로 확장하는 매우 딥(deep) 한 네트워크를 만든다.
4 Experiments
WMT translation tasks between Eng<->German , both directions
newstest2013 ( 3000 sentences) as development set ( hyperparameters 선택할 때 )
newstest2014 ( 2737 sentences )
newstest2015 ( 2169 sentences )
두가지 BLEU 사용하여 번역 품질 측정함.
(a) tokenized BLEU ( existing NMT와 비교하기 위해, tokenizer.perl, multi-bleu.perl )
(b) NIST BLEU ( WMT result 와 비교하기 위해, mteval-v13a script )
4.1 Training Details
trained : WMT'14 training data , 4.5M sentencces pairs( 116M English words, 110M German words )
limit vocabulary : 자주 쓰는 50K (Eng, German)
shorlised vocabulary 에 없으면 <unk> 처리함
50 개 단어 배제 : length exceed
1000개 cell, 1000 차원 임베딩 , 4 layers
(a) [-0.1, 0.1] 로 parameter 초기화
(b) 10 epochs with SGD
(c) learning rate 1로 시작하여, 매 epoch 마다 반으로 줄임.
(d) mini bach size : 128
(e) norm 이 5 를 넘을 때마다, normalized gradient를 재 조정
(f) drop out : 0.2
(g) drop out 사용할때, 12 epoch 돌렸는데, 8 에폭 이후 learning-rate를 반으로 줄임.
(h) 윈도우 사이즈 : D = 10 ( 실험적 )
MATLAB에서 구현.
Single Tesla K40
한번 훈련 끝나는데 7-10 일 소요.
4.2 Engligh-German Results
WMT'14, WMT'15 에서 SOTA 달성함.
5.5 Sample Translations
[ Luong 발표 유투브 캡처 ]
A. Alignment Visualization
글 작성시 참고 자료
0. 논문 Effective Approaches to Attention-based Neural Machine Translation
( https://arxiv.org/pdf/1508.04025.pdf )
1. EMNLP 2015 Luong 논문 발표 유튜브
( https://www.youtube.com/watch?v=XvOKXJxDn1U )
2. Notes on Deep Learning for NLP
( https://arxiv.org/pdf/1808.09772.pdf )
3. 딥러닝을 이용한 자연어 처리 입문
4. Hyungcheol Noh's Blog : Bahadanau Attention 개념 정리
( https://hcnoh.github.io/2018-12-11-bahdanau-attention )
5. Hyungcheol Noh's Blog : Luang Attention 개념 정리
( https://hcnoh.github.io/2019-01-01-luong-attention )
6. Luong attention and Bahdanau attention
( http://cnyah.com/2017/08/01/attention-variants/ )
7. CS11-747 Neural Networks for NLP Attehntion
( http://phontron.com/class/nn4nlp2017/assets/slides/nn4nlp-09-attention.pdf )
'Study' 카테고리의 다른 글
다양한 링크 모음 (0) | 2020.10.30 |
---|---|
Torch Gather 설명 (0) | 2019.12.13 |
L1 Regularization, L2 Regularization (0) | 2019.09.27 |
GCP 우분투에서 csh, tcsh 설치하기 (0) | 2019.04.11 |
Word Embeddngs 사용 사례 캡쳐 (0) | 2017.09.05 |