DevelopHyun

Data Science & Algorith with Computer Science

byteNet[1] Neural Machine Translation in Linear Time(2017) - Review

05 Mar 2018 » deeplearning, bytenet, paperreview

1. Abstract

  • 1-D CNN
    • 병렬처리가 가능해짐
  • Encoder위에 Decoder가 올려져있는 형태
    • Encoder의 각 time step의 hidden layer가 바로 Decoder에 반영됨
    • 따라서, Encoder에서 fixed sized representation으로 만들지 않아도 됨
    • 즉, input sequence의 길이에 따라서 representation의 길이가 달라지므로 resolution을 보존할 수 있음
    • input/target 사이의 거리가 짧아지므로 정보의 손실도 적으며, propagation에 유리
  • Dynamic Unfolding을 사용하여 input과 target의 길이에 따라 representation size을 조절
  • Dilation을 사용하여 receptive field를 넓힘
  • linear time내에 처리되며, memorization이 필요 없음

2. Introduction

  • 이전 NLP모델들은 input sequence가 길어지면 시간이 super linear하게 증가한다는 단점이 있다.
  • Mechanism
    • Encoder위에 Decoder를 쌓는 방식
    • Dynamic Unfolding
    • 1-D convolution
    • Dilation
    • masked CNN
  • 연산들이 병렬적으로 처리됨
  • 모든 input token 과 output token의 distance가 fixed depth이므로 token들이 거리가 짧으며 독립적

3. Neural Translation Model

  • distribution = 을 예측
  • distribution은 가 주어졌을 때, 로 번역할 확률을 의미
  • 는 long-term dependency를 포함

3.1 Desiderata(필요조건)

  • 연산시간이 input/target sequence에 대하여 linear해야함
    • 병렬처리로 시간을 단축할 수 있다.
  • source representation의 size가 source sequence에 linear해야함
    • 즉, source sequence가 길어지면, source representation도 길어져 정보를 보존할 수 있어야함
    • resolution preserving
  • input과 target의 distance가 짧아야함
    • forward/backward signal이 전달되는 경로가 짧아야함
    • propagation signal이 더 전달이 잘되므로 학습에 유리
    • 정보손실이 적어지므로 long-term dependency 학습에 유리

4. ByteNet

4.1 Encoder-Decoder Stacking

model

  • Encoder 위에 바로 Decoder가 있는 형태
  • source sequence가 fixed size representation으로 표현되지 않음
    • 각 input sequence를 구성하는 각 element의 encoding결과가 바로 Decoder로 반영되어 target을 출력
    • 이전의 Encoder-Decoder에서는 input sequence를 모두 입력받은 후, fixed size vector로 표현되어 Decoder에 반영
  • Encoder
    • 1-D convolutional layer, dilation
    • ex) 위의 그림에서는 filter 적용, 1-st layer이후부터는 dilation 적용
    • ex) 1st-layer의 경우, = 의 형식
    • ex) 2nd-layer의 경우, = 의 형식
    • ex) 3rd-layer의 경우, = 의 형식
    • ex) = l-layer에서의 i번째 token, = l-layer에서의 j번째 weight
  • Decoder
    • masked 1-D convolution layer, dilation
    • Encoder와는 다르게 convolution을 할때에는 뒤의 토큰을 반영하지 않음
    • 즉, -th token을 convolution할 때는 -th token 이전의 element들로만 convolution

4.2 Dynamic Unfolding

dynamic

  • Desiderata
    • 대부분의 경우 target sequence size 보다 길어야함
    • computation이 너무 증가해서는 안됨
    • resolution preserving
  • Dynamic Unfolding
    • =
    • source length 에 linear하게 representation의 길이 를 설정
    • input sequence의 길이가 달라짐에 따라, source representation의 길이도 조절
    • 즉, 정보량에 비례하여 representation 길이를 설정하게 해주기 때문에, 다양한 길이에 대처가 가능
    • Decoder에서는 EOS가 나올 때 까지 generating
    • 만약 보다 길이가 길 경우, 그 부분과 상응하는 representation은 zero vector로 생성되고, 이전 target의 정보만 사용하여 generating
    • 논문에서는 English보다 German이 평균적으로 1.2배 길기 때문에 =1.2, =0 사용

4.3 Input Embedding Tensor

  • Autoregressive하므로 이전 학습의 token을 다음 학습의 input으로 넣어줌
  • target sequence = 개 중에서 을 look-up table을 통해서 embedding
  • 이 prediction의 target
  • Encoder의 결과와 이전 학습의 target token의 embedding 결과를 concatenate하여 tensor로 만든다.

4.4 Masked One-dimensional Convolutions

  • decoding과정에서 미래의 정보는 가리고 convolution을 하는 것
    • 이미 generating된 것이 무엇인지 파악하고 다음 token을 만들어야하므로 Masked-CNN 사용

4.5 Dilation

dilation

  • 바로 인접한 input에 filter를 적용하는 것이 아니라, 일정한 간격으로 건너뛰며 filter를 적용하는 것
  • receptive field가 증가, 즉, 데이터를 넓게 반영할 수 있음

4.6 Residual Blocks

residual

  • 1x1 convolution 사용
  • batch normalization 사용
  • 용도에 따라 구성을 변형
    • Machine Translation에는 ReLU 사용
    • Language Modeling에는 Multiplicative Unit 사용

5. Model Comparison

5.1 Recurrent ByteNets

recurrent

  • CNN 대신 RNN을 사용하여 Encoder-Decoder를 구성가능
    • Decoder만 RNN으로 바꾸거나, Encoder와 Decoder모두 RNN구조로 바꿀 수 있음

5.2 Comparison of Properties

result1

  • = Encoder, Decoder
  • = resolution preserving
  • = Encoder, Decoder에서 input token과 output token의 최단거리

6. Character Prediction

result2


7. Character-Level Machine Translation

result3

7.1 Sample

result5


8. Conclusion

byteNet은 linear한 시간내에 연산을 할 수 있으며, memorization이 필요없게 만들었으며, sequence내 token들의 signal propagation path를 짧게 만들었다.


9. Reference