O slideshow foi denunciado.
Utilizamos seu perfil e dados de atividades no LinkedIn para personalizar e exibir anúncios mais relevantes. Altere suas preferências de anúncios quando desejar.

Sequence to Sequence Learning with Neural Networks

1.368 visualizações

Publicada em

The history of Machine translation + Seq2Seq paper review

Publicada em: Tecnologia
  • Seja o primeiro a comentar

Sequence to Sequence Learning with Neural Networks

  1. 1. Sequence to Sequence Learning With Neural Networks huffon
  2. 2. Contents ▪ History of Machine Translation ▪ Rule-based Machine Translation ▪ Statistical Machine Translation ▪ Neural Machine Translation ▪ “Sequence to Sequence Learning with Neural Networks“ ▪ Abstract ▪ Introduction ▪ Model ▪ Conclusion
  3. 3. Machine Translation (1): Rule-based Machine Translation ▪ 가장 단순한 접근 방법? Source 언어의 모든 단어를 Target 언어의 단어로 치환하는 것 ▪ 이 접근 방법에 필요한 것은 각각의 단어 번역을 위한 단어 사전의 구축 ▪ But, 이처럼 1:1 치환의 번역을 시도하면 문법과 문맥을 무시한 번역이 이루어지기 때문에 결과는 그다지 좋지 않음
  4. 4. Machine Translation (1): Rule-based Machine Translation ▪ 보다 나은 규칙 기반 기계 번역을 위해서는 Target 언어의 규칙들을 수작업으로 추가해주어야 함 e.g.) 스페인어는 영어와 다르게 형용사가 명사 뒤에 오기 때문에 두 단어의 해석 순서를 달리 가져가야 함 ▪ 이상: 이같은 언어 규칙을 수작업을 통해 모두 적용한다면 모든 문장의 번역이 가능하게 될 것 ▪ 현실: 인간의 언어가 항상 고정된 규칙을 따르지는 않기 때문에 실생활 문서에서는 안정적으로 동작하지 않음
  5. 5. Machine Translation (2): Statistical Machine Translation ▪ 규칙 기반 번역 모델의 실패 이후, 확률 및 통계 기반의 모델을 사용하는 새로운 접근 방법이 대두됨 ▪ 통계 기반 번역 시스템을 위해서는 동일한 텍스트가 최소 2가지 언어로 번역되어 있는 많은 훈련 데이터가 필요 ▪ 이러한 이중 번역문을 병렬 말뭉치라고 부르며, 컴퓨터가 병렬 말뭉치를 사용해 텍스트를 Source 언어에서 Target 언어로 변환하는 방법을 통계적으로 알아낼 수 있음 유럽 의회의 의사 진행 절차가 21개 언어로 번역되어 있음
  6. 6. Machine Translation (2): Statistical Machine Translation ▪ 확률 기반 번역 시스템은 통계 기반 번역과 달리 하나의 정확한 번역을 생성하려고 하지 않음 ▪ 대신 수 천개의 가능한 번역을 생성하여 각각의 번역이 얼마나 정확한가에 대해 확률적으로 순위를 메김 ▪ 즉, 훈련 데이터와 번역본이 얼마나 유사한지에 따라 그 정확도를 평가하게 되는 것
  7. 7. Machine Translation (2): Statistical Machine Translation ▪ Step 1: 원본 문장들을 쉽게 번역될 수 있는 단순한 조각들로 분해 ▪ Step 2: 각각의 조각에 대해 가능한 모든 번역을 찾음 + 사전적 정의 뿐 아니라 실생활에서 사용되는 모든 맥락에서 !
  8. 8. Machine Translation (2): Statistical Machine Translation ▪ Step 3: 조합 가능한 모든 번역문을 만들고 가장 좋은 번역문 찾기 ▪ Step 4: 이렇게 생성된 모든 문장을 확인하고 “인간이 사용할 법한 최적의” 문장 하나를 찾아 채택 즉, 훈련 데이터 세트에 존재하는 문장과 비교해 가장 높은 확률 점수를 얻은 문장을 찾아서 채택
  9. 9. Machine Translation (2): Statistical Machine Translation ▪ 통계 기반 기계번역은 충분한 훈련 데이터를 제공받을 시, 규칙 기반 기계번역보다 훨씬 뛰어난 성능을 보임 ▪ 실제로 2000년대 초 Google Translate은 통계 기반 기계번역을 이용해, 기계번역 서비스를 제공 언어학자들이 설계한 규칙 기반 기계번역보다 확률과 통계에 기반한 기계 번역이 더 나은 성능을 보여준 것 “Every time I fire a linguist, my accuracy goes up.” Frederick Jelinek ▪ But, 통계 기반 기계번역은 번역하고자 하는 언어 한쌍마다 새로운 여러 단계의 번역 경로를 전문가가 수정하고 조정해야 하기 때문에 구축과 유지가 어려움 ▪ 이처럼 큰 비용의 감당이 어렵기 때문에 ‘중역’ 을 통한 기계번역이 이루어지게 됨 (e.g. French, Japanese)
  10. 10. Machine Translation (3): Neural Machine Translation 컴퓨터에게 훈련 데이터만 주면 알아서 번역하는 방법을 가르치자 ! How? With RNN & Encoder !
  11. 11. Machine Translation (3): Neural Machine Translation (RNN) ▪ RNN은 주로 순서가 있는 데이터를 입력해 문장 흐름에서 패턴을 찾아 분류하기 위해 사용 ▪ 이미 주어진 단어 표현 벡터를 활용해 모델을 학습하지 않고, 텍스트 정보만을 입력해 문장에 대한 특징 정보를 추출 ▪ RNN은 데이터에서 패턴을 학습하고자 할 때 유용: 인간 언어는 하나의 크고 복잡한 패턴이기 때문에 RNN 활용이 가능
  12. 12. Machine Translation (3): Neural Machine Translation (Encoder) ▪ 인코딩이란? Source를 표현할 수 있는 측정 값들을 뽑아내는 행위 ▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
  13. 13. Machine Translation (3): Neural Machine Translation (Encoder) ▪ 인코딩이란? Source 를 표현할 수 있는 측정 값들을 뽑아내는 행위 ▪ 이미지 뿐 아니라 문장에서도 뽑아낼 수 있음
  14. 14. Machine Translation (3): Neural Machine Translation ▪ 한 번에 한 단어를 RNN Encoder에 입력하며, Encoder를 거쳐 단어에 상응하는 벡터가 생성됨 ▪ Decoder는 인코딩 된 벡터를 병렬 코퍼스에 저장되어 있던 다른 언어의 데이터 셋을 이용해 디코딩
  15. 15. Sequence to sequence Learning: Abstract
  16. 16. Sequence to sequence Learning: Abstract ▪ DNN(Deep Neural Network)은 다양한 Learning task에서 강력한 성과를 보인 모델 ▪ 그러나 DNN은 sequence data를 mapping하지 못한다는 치명적인 단점 지님
  17. 17. Sequence to sequence Learning: Abstract ▪ 우리는 sequence learning이 가능한 end-to-end 접근 방법을 제안할 것 ▪ 모델에서는 Multi-layered LSTM(Encoder)이 Input sentence를 vector로 mapping 하는데 사용되며, 다른 deep LSTM(Decoder)이 Encoder로 부터 나온 encoded vector를 target sentence로 디코딩 ▪ 이러한 시도는 이전의 기계번역 패러다임이었던 SMT 보다 훨씬 더 좋은 성능을 보임 ▪ +) Input sentence들을 reverse하여 학습시킨 것이 LSTM 성능 개선에 큰 도움이 되었음
  18. 18. Sequence to sequence Learning: Introduction ▪ 실생활의 많은 중요한 문제들은 sequence data로 표현되어야 더 용이하게 해결이 가능 e.g.) speech recognition, machine translation, question answering → Domain 독립적인 sequence 학습 모델이 필요하다 !
  19. 19. Sequence to sequence Learning: Introduction ▪ Source와 그에 상응하는 target 간에 거리가 멀기 때문에 RNN이 아닌 LSTM을 사용 ▪ Encoder: input sentence를 timestep 마다 읽어 들여 고정된 사이즈의 vector 를 배출 ▪ Decoder: 해당 encoded vector를 이용해 target sentence 추출 → 즉, LSTM은 다양한 길이의 input을 고정된 길이의 vector로 변환하여 반환
  20. 20. Sequence to sequence Learning: Model ▪ 기계번역 task에서 Input과 Output은 서로 다른 언어이기 때문에 복잡한 관계 지님 그리고 이러한 복잡한 관계로 인해 서로 다른 길이를 지니는 Input과 output의 학습은 어려울 수 밖에 없음 ▪ 일반적인 Sequence learning 전략은 RNN을 이용한 Encoder-Decoder 방식 But, long-term dependency 문제로 우리는 LSTM 사용 ▪ Decoder는 Encoder로 부터 마지막 hidden state를 받고 이를 토대로, y1, y2, … 를 예측 각각의 y1, y2, … 는 단어사전에 저장된 모든 단어들에 대한 softmax로 표현되어 다음 Layer에 전달
  21. 21. Sequence to sequence Learning: Model MT에서 <EOS> 토큰의 사용은 필수적인데, 조합 가능한 모든 길이 중 Input의 길이를 정확히 정의하기 위함
  22. 22. Sequence to sequence Learning: Model ▪ 기존 모델과 우리 모델의 3가지 다른 특징 1) 2개의 서로 다른 LSTM 계층 사용 (LSTM Encoder-Decoder) 2) LSTM을 deep하게 쌓음 → 얕게 쌓는 것 보다 효과가 좋더라 ! 3) Input sentence를 reverse해서 집어 넣음
  23. 23. Sequence to sequence Learning: Reversed Input ▪ 예시) a, b, c, d 를 ㄱ, ㄴ, ㄷ, ㄹ 로 mapping 하고자 할 때 input을 a, b, c, d가 아닌 d, c, b, a로 집어 넣음 ▪ 즉, input과 target 사이에 short-term dependency를 강제로 부여해 학습을 용이하게 하는 것 ▪ 물론, Input을 뒤집더라도 하더라도 전체 단어들 간 평균 time distance 에는 변함이 없다 but, Input과 Target 간 관계를 찾기 위한 첫 번째 단어를 찾는 minimal time lag가 압도적으로 줄어듦 → 이에 따라 backpropagation도 훨씬 수월해지기 때문에 성능이 개선되는 것으로 추정 ▪ “실험 전에는 다른 사람들이 상상하는 그림과 같이 앞 부분의 번역은 잘되고, 뒷부분의 번역은 불안할 것으로 예상했지만 막상 실험을 돌려보니 그냥 다 잘되더라!”
  24. 24. Sequence to sequence Learning: Conclusion ▪ 1) 제한된 크기의 단어사전을 보유한 deep LSTM 모델이 훨씬 큰 단어사전을 지닌 SMT를 능가하는 퍼포먼스 보임 → 간단하고 직관적이며, 상대적으로 최적화가 덜 이루어진 신경망 모델이 SMT를 꺾은 것을 보아하니, NMT(Neural Machine Translation)가 앞으로 기계번역에 하나의 패러다임을 제시할 것 ! ▪ 2) Input을 reverse 하는 행위가 이 정도로 번역의 성능을 높일지는 우리도 몰랐음 LSTM의 제한된 메모리로 인해 긴 문장에는 모델의 점수가 좋지 않을 것이라 예측했으나, reversed input dataset으로 훈련된 우리 모델은 긴 문장들도 잘 기억하고 번역하더라 BAAAM ! ▪ 즉, 기계번역에서 가장 중요한 것은 short term dependency를 가지게 하는 인코딩 방법을 찾는 것이 아닐까?
  25. 25. References ▪ Machine Learning is Fun Part 5: Language Translation with Deep Learning and the Magic of Sequences ▪ Visualizing A Neural Machine Translation Model (Mechanics of Seq2seq Models With Attention) ▪ “Sequence to Sequence Learning with Neural Networks”, Ilya sutskever ▪ Andrew Ng’s Machine Learning Lecture on Coursera
  26. 26. <EOP>

×