티스토리 뷰

Study

Luong Attention 논문 정리

Duke Yang 2019. 10. 18. 01:37

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

 

from Notes on Deep Learning for NLP 

 

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 비교 ]

 

Hyungcheol Noh's Blog : Luong Attention  개념 정리 에서 발췌 ( 왼쪽: Bahdanau Attention, 오른쪽 : Luong Attention ) 

 

 

3.2 Local Attention 

 

from Notes on Deep Learning for NLP 

 

글로벌 어텐션은 소스의 모든 단어들을 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. 딥러닝을 이용한 자연어 처리 입문   

    (https://wikidocs.net/22893)

 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
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함