3. Ⅰ. Introduction
• Seq2Seq 모델은 기계번역 영역에서 매우 성공적인 모델
• 2014년 NIPS에서 Sutskever가 이를 발표. 엄청난 인기를 모음.
= 사실은 조경헌 교수님이 먼저 발표한 모델.(https://arxiv.org/abs/1406.1078)
• 현재 Seq2Seq에서 일반적으로 사용하는 모델은 Bi-directional RNN 모델 그리고 soft
attention mechanism을 쓰는 경우도 있음.
• 반면 CNN으로 시도한 경우도 꽤 있었는데 , 고정된(fixed) Conv 크기를 가져야 한다는 단점이
있긴 하지만 RNN에 비해 CNN 역시 장점을 많이 가지고 있음.
→ RNN보다 더 많은 stack을 쌓을 수 있다.
=이를 통해 모델링 된 dependencies의 최대 길이를 세밀하게 컨트롤 할 수 있음.
→ 이전 step에 영향을 받는 구조가 아니므로 병렬화에 유리하다.
= 시퀀스 내에서 병렬 계산을 방해하는 과거의 숨겨진 상태를 유지하는 RNN과 대조
4. Ⅰ. Introduction
• Multi-layer CNN은 hierarchical representation 을 갖는다.
= 이런 구조는 RNN 방식보다 정보를 더 오랜 시간동안 유지할 수 있게 만들 수 있음.
Ex ) When we obtain feature representation capturing relationship,
CNN : O(n/k) , RNN : O(n)
*k is kernels of width
• 그 이전의 연구 결과들이 있었지만 굉장히 제한적이고 작은 dataset이였음.
Bradbury et al. (2016)
Kalchbrenner et al. (2016)
Meng et al. (2015)
Gehring et al.(2016)
= It shows strong performance on larger tasks but it’s decoder is still recurrent
• 위 논문에선 GLU와 Residual connection들을 차용하여 CNN만으로 Seq2Seq를 다룰 예정
9. Ⅲ. Convolutional Architecture
A. Position Embedding and Convolutional Block Structure
• Convolution
• Padding
Convolution을 구성할 때에는 문장의 양 끝에 k−1 개수 만큼 패딩을 추가한다.
=입력과 출력의 길이를 같게 하기 위해서.
10. Ⅲ. Convolutional Architecture
A. Position Embedding and Convolutional Block Structure
• GLU: v([A B])=A⊗σ(B)
CNN 을 이용한 Seq2Seq 모델에서 사용하는 gate 로 LSTM 내의 gate와 유사 but SIMPLE.
A와 B는 D차원을 가진다. (A,B ∈ 𝑹 𝒅
)
⊗ 는 point-wise multiplication를 의미
∴v([A B]) ∈ 𝑹 𝒅
A, B는 비선형성에 대한 입력. σ(B)는 현재 문맥의 A 입력이 적절한지를 제어합니다.
이전 연구에서 Oord 가 tanh 를 이용하여 이런 모델을 만들 긴 했었다.
Dauphin은 GLU paper에서 tanh보다 σ 가 언어 모델링 쪽에서는 더 성능이 좋다는 걸 보였다.
11. Ⅲ. Convolutional Architecture
A. Position Embedding and Convolutional Block Structure
• Residual connections :
Deep한 모델을 설계할 때 Residual Connection을 사용하면 성능이 더 좋아진다 그래서 여기서
는 모든 Convolution 레이어마다 Residual connection을 추가한다
= Convolution층이 하나가 아니라 여러 층이라는 뜻
마찬가지로 GLU도 층마다 추가한다.
아래는 Convolution의 일반식
12. Ⅲ. Convolutional Architecture
B. Multistep Attention
• Attention을 계산하기위해 현재 decoder의 상태인 𝒉𝒊
𝒍
와 target element 𝒈𝒊를 조합합니다.
• Decoder layer 𝒍 마다 state i 와 source j 의 attention 𝒂𝒊𝒋를 Decoder state summary 𝒅𝒊
𝒍
와
encoder의 마지막 출력 𝒛𝒋
𝒖
의 dot-product로 계산합니다.
• 현재 encoder에 대한 conditional input 𝒄𝒊
𝒍
는 encode의 output과 input element
embedding 𝒆𝒋의 합으로 weight 시킵니다.
14. Ⅲ. Convolutional Architecture
A. Position Embedding
• Residual connections :
Deep한 모델을 설계할 때 Residual Connection을 사용하면 성능이 더 좋아진다
따라서 여기서는 모든 Convolution 레이어마다 Residual connection을 추가한다.
15.
16. Ⅲ. Convolutional Architecture
C. Normalization Strategy
• Batch Normalization을 사용하지 않음.
이미지는 BN이 좋은 성능이지만 Text 관련 CNN에선 성능이 좋지 않았음을 확인.
→ 대신 Weight Normalization을 사용.
• Weight Normalization
말 그대로 weight를 정규화. BN에 비해 저비용 연산을 들이면서 근사할 수 있는 모델
• Weight Initialization
17. Ⅳ. Experiment
A. Dataset
• WMT dataset을 사용함.
2006년부터 시작된 workshop으로 매년 데이터 set을 제공 (ACL 행사 때 함께 진행되는 task)
WMT16은 영어를 불가리아어, 체코어, 독일어, 스페인어, 바스크어, 네덜란드어, 포르투칼어 등
으로 번역
위 논문에선 English-Romanian, English-German, English-French을 적용할 뿐만 아니라 text
summarization task에도 적용했음.
18. Ⅳ. Experiment
B. Model Parameters and Optimaization
Parameter
Encoder, decoder 에 사용된 hidden layer 크기는 512
Nesterov Gradient Method 사용 (momentum : 0.99, learning rate: 0.25)
Batch size: 64문장 (GPU 크기에 맞춰 사용)
Dropout 사용 (입력 convolution 영역)
구현
Language: Torch
M40 GPU 장비 (single)
영어-프랑스어(WMT14) 번역에는 Multi-GPU 사용 (single machine)
19. Ⅳ. Experiment
C. Evaluation
Word-base 방식과 BPE 방식을 사용
Word-base 방식은 Voca 를 구축하고 out of vocabulary가 발생하면 Copy를 한다
BPE (Byte Pair Encodeing)
56개는 복합어, 21개는 이름. 6개는 외래어다.
Ex) lower = low + er