Unsupervised Machine Translation Using Monolingual Corpora Only 정리

  • 저자 : Guillaume Lample, Alexis Conneau, Ludovic Denoyer, Marc’Aurelio Ranzato
  • 학회 : ICLR 2018
  • 날짜 : 2017.10.31 (last revised 2018.04.13)
  • 인용 : 120회
  • 논문 : paper

서론

  • 현재까지 deep learning 분야의 많은 연구로 NMT(Neural Machine Translation)의 성능은 가면 갈수록 좋아지고 있다.
  • 특히, attention 기법이 나타나면서부터 성능은 껑-충 뛰었다. (attention 모델 : 참고)
  • 허나 그들은 학습을 위해 많은 양의 parallel corpora(두 언어로 번역되어 있는 평행한 문장 쌍의 두 말뭉치)를 필요로 한다.
  • parallel corpora를 만들려면 전문가의 지식이 있어야 하고, 잘 안쓰이는 언어는 종종 존재하지 않기도 한다.
  • monolingual corpora(하나의 언어로 되어있는 말뭉치)만으로도 학습할 수 있는 기계 번역 모델을 제시한다.
    • 자세히는, 학습할 수 있는 방법을 제안한다. (사실, loss function이 곧 모델이긴 하다.)

Notation

  • 도메인(언어) : source, target.
  • Ws, Wt : source, target 도메인으로 되어있는 단어들.
  • Zs, Zt : Ws, Wt의 word embedding 값.
  • Encoder, Decoder.

    image

  • 모델

    • Sequence-to-sequence 모델 with attention.
    • encoder : bi-directional LSTM, decoder : LSTM, 3 layers.
    • source encoder = target encoder, source decoder = target decoder.

제안 기법

  • 간단하게 요약하면, 두 개의 서로 다른 언어로 된 문장을 하나의 latent space에 매핑한 후, 이를 연결함으로써 번역이 되도록 함.
  • 3가지 단계 : Denoising Auto-encoding, Cross Domain Training, Adversarial Training

(1) Denoising Auto-encoding

  • 어떤 언어로 된 input 문장 x를 latent space에 mapping하는 작업.
  • input x에 noise model(C(x))를 추가한 x^를 encode하고, 이를 다시 decode했을 때 나오는 값과 x의 차이가 loss function.
  • noise를 섞는 이유
    • more powerful한 feature를 찾기 위함. robust한 representation을 나타내기 위함.
    • 저자들은 “Without noise, model does not learn any useful structure in data.” 라고 말함.

image

  • C(x) : noise model : Pwd (word drop rate), k (permutation) 라는 hyperparameter.

(2) Cross Domain Training

  • 두 언어 l1, l2에 대해, l1의 문장을 l2의 문장으로 번역하는(서로 matching 시키는) 작업.
  • l1으로 된 문장 x
    –> 현재의 MT모델 M을 이용하여 l2언어로 번역한 문장 y = M(x)
    –> noise model을 이용하여 noise를 추가한 C(y) sampled
    –> C(y)를 다시 l1으로 번역하였을 때 x가 나오도록 함.

image

(3) Adversarial Training

  • input 문장은 언어의 종류에 상관 없이 같은 latent space에 mapping 되어야 한다.
  • (1), (2) 만으로는 서로 다른 두 언어 사이 strict한 matching을 하기 어렵다.
  • Discriminator 이용
    • 주어진 latent vector가 l1에서 비롯된건지 l2에서 비롯된건지 구분해냄.

    • 학습 : image

  • Encoder는 이러한 Discriminator를 속이는 방향으로 학습됨.

    image

  • 왜? (개인적인 의견)
    • 더 확실한 mapping 및 latent space 상에서의 일치를 위해.
    • 두 언어 사이 경계를 허물기 위해 : 어떤 언어로든 번역 가능하다. starGAN같은 구조.