Top Banner
Papago / N2MT 개개 개개개 Papago / 개개개 2017-02-24
54

Papago/N2MT 개발이야기

Mar 03, 2017

Download

Technology

NAVER D2
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Papago/N2MT 개발이야기

Papago / N2MT 개발 이야기

Papago / 김상경

2017-02-24

Page 2: Papago/N2MT 개발이야기

2

목차

1. 기계 번역 (Machine Translation)2. 인공 신경망 (Artificial Neural Network)3. Word2Vec4. Papago / N2MT 개발 과정5. NSMT 와 N2MT 번역 성능 비교6. 마무리하며…7. Q & A

Page 3: Papago/N2MT 개발이야기

3

1. 기계 번역 (Machine Translation)

Page 4: Papago/N2MT 개발이야기

4

1-1. RBMT - 규칙 기반 기계 번역

• Rule Based Machine Translation (RBMT)

• 두 언어의 문법 규칙 (Rule) 을 기반으로 개발 .

• 문법 규칙 (Rule) 추출의 어려움

• 번역 언어 확장의 어려움

Page 5: Papago/N2MT 개발이야기

5

1-2. SMT – 통계 기반 기계 번역 (1/3)

• Statistical Machine Translation (SMT)

• 두 언어의 Parallel Corpus 에서Co-occurance 기반의 통계 정보를 바탕으로 번역을 수행

• 여러 Component 의 조합으로 시스템 구성

• Translation Model• Language Model• Reordering Model

Page 6: Papago/N2MT 개발이야기

6

1-2. SMT – 통계 기반 기계 번역 (2/3)• 구조

Page 7: Papago/N2MT 개발이야기

7

1-2. SMT – 통계 기반 기계 번역 (3/3)• 작동 방식

• 입력 문장의 일부분 (Word 혹은 Phrase) 를 보고 번역 수행

• 번역 사전을 사용하여 , 확률에 기반한 번역을 수행

• 어순이 같은 언어 ( 한국어 / 일본어 , 영어 / 프랑스어 )• 괜찮은 성능 .

• 어순이 다른 언어 ( 한국어 / 영어 )• 성능 부족 .

입력 :

출력 : I

나는 아침 일찍 아침 준비를 했다 .

pre-pared

break-fast

early

in the morn-ing.

Page 8: Papago/N2MT 개발이야기

8

1-3. NMT - 인공신경망 기계 번역 (1/5)

• Neural Machine Translation (NMT)

• Neural Network 기반의 Machine Translation

• 두 언어의 Parallel Corpus 를 사용하여 Neural Network 학습

Page 9: Papago/N2MT 개발이야기

9

1-3. NMT - 인공신경망 기계 번역 (2/5)• 구조

• Encoder 와 Decoder 로 구성 .• Encoder 에서 입력 문장 Vector 화 .• Decoder 에서 Vector 화된 입력 문장 복호화 .

< 끝 >

DC

D

B

C

A

BA

나가 < 시작 >

Page 10: Papago/N2MT 개발이야기

10

1-3. NMT - 인공신경망 기계 번역 (3/5)

• 여기서 말하는 Vector 란 ...• “ 크기”와 “방향”을 동시에 나타내는 물리량 . ( 아래의 수식은 Column Major 로 표시 )

• = , = + = + =

• · = = = 10• · =

= �⃗�

�⃗�

+

Page 11: Papago/N2MT 개발이야기

11

1-3. NMT - 인공신경망 기계 번역 (4/5)• 작동 방식

?

do

fatheryour

father

does

your

What

does

What

뭐하시노아버지 < 시

작 >느그

< 끝 >

?

?

do

Page 12: Papago/N2MT 개발이야기

12

1-3. NMT - 인공신경망 기계 번역 (5/5)• 특징

• 모든 단어를 고차원 Vector 로 처리

• 단어의 입력 / 출력 순서를 학습• 매끄러운 번역 문장 생성

• 문장 Vector 기반• 문장의 의미 또한 고차원 Vector 로 처리 .• 문장 전체의 의미를 파악한 후에 , 번역을 수행 .• 동음 이의어라 하더라도 , 전체 문장의 의미에 맞게 번역 가능

• 문장 Vector 생성 정확도 하락 -> 번역 정확도 하락• 문장 Vector 해석 정확도 하락 -> 번역 정확도 하락

Page 13: Papago/N2MT 개발이야기

13

2. 인공 신경망 (Artificial Neural Network)

Page 14: Papago/N2MT 개발이야기

14

2-1. Neural Network 구조 (1/5)• Single Neuron

+ )

p1p2p3⋮pR

Σ

b

w1

wR

𝒇na

Input Weight

Bias

ActivationFunction Output

Page 15: Papago/N2MT 개발이야기

15

2-1. Neural Network 구조 (2/5)• Activation functions

• Linear • ReLU

• Sigmoid • Tanh

𝑎=1

1+𝑒−𝑛 𝑎=𝑒𝑛−𝑒−𝑛

𝑒𝑛+𝑒−𝑛

𝑎=𝑛 𝑎=max (0 ,𝑛)

a

n

a

n0

1a

n0

1

-1

a

n0

Page 16: Papago/N2MT 개발이야기

16

2-1. Neural Network 구조 (3/5)

• 1 Layer = Multiple Neurons (1/2)• Neuron 이 S 개 일 때 ,

p1p2p3⋮pR

Σ

b1

w1,1 ,…,w1 , R 𝐟n1 a1

Σ

b2

𝐟 a2w2,1 ,…,w2, R

Σ

bS

𝐟 aSwS ,1 ,…,wS , R

n2

nS

Page 17: Papago/N2MT 개발이야기

17

2-1. Neural Network 구조 (4/5)

• 1 Layer = Multiple Neurons (2/2)

+ )

Page 18: Papago/N2MT 개발이야기

18

2-1. Neural Network 구조 (5/5)• Multi-Layer Neural Network

Page 19: Papago/N2MT 개발이야기

19

2-2. 학습 원리 (1/2)• 1 단계 – Propagation ( 전파 )

Layer 1

Layer 2

Layer 3입력 (p) 결과 (a)

오류 (Δ) = 정답 (c) – 결과 (a)

• 2 단계 – 오류 계산

Page 20: Papago/N2MT 개발이야기

20

2-2. 학습 원리 (2/2)• 3 단계 – Back Propagation ( 역전파 )

Layer 1

Layer 2

Layer 3입력 (p) 오류 (Δ)

• 모든 Weight 과 Bias 에 대한 오류 (Δ, Gradient) 계산 .• Back Propagation 은

Chain Rule 이라는 수학 정의에 의해 수학적으로 증명됨 .• TensorFlow 나 Theano 등 다수의 Deep Learning Platform 에서

자동으로 지원 .

• 4 단계 – Weight 과 Bias 갱신 (Update)

𝑾 𝑛𝑒𝑤=𝑾 𝑜𝑙𝑑+(α∗ Δ𝑾 )𝒃𝑛𝑒𝑤=𝒃𝑜𝑙𝑑+(α∗ Δ𝒃) : Learning Rate

Page 21: Papago/N2MT 개발이야기

21

2-3. 실용화된 계기

1. Computing Power 증가• GPU 를 통해 , 합리적인 (?) 가격에 Computing Power 확보 .• GPU

• Parallel Processing 에 특화된 Chip.• Matrix-Vector, Matrix-Matrix 연산에서 뛰어난 성능 .

2. Big Data• Overfitting 문제를 완화시킬 정도의 충분한 Data 가 확보되기 시작 .

3. Neural Network Model 발전• Dropout 을 비롯한 여러 가지 Technique 발명 .

Page 22: Papago/N2MT 개발이야기

22

3. Word2Vec

Page 23: Papago/N2MT 개발이야기

23

3. Word2Vec (1/4)• CBOW & Skip-Gram (1/2)

Page 24: Papago/N2MT 개발이야기

24

3. Word2Vec (2/4)

• CBOW & Skip-Gram (2/2) • 학습 목표

• Average log probability 의 극대화 (Maximization).• 즉 , 확률 극대화 .

• 극대화 과정에서 Word Vector 들이 조정됨 .

• 그로 인한 Side-Effect 로Semantic 과 Syntactic 정보가 내재화 됨 (Embedded).

Page 25: Papago/N2MT 개발이야기

25

3. Word2Vec (3/4)• Word embeddings

Same word relationship=> same vector

manuncle

womanaunt

queen

king

W(“woman”) – W(“man”) + W(“uncle”) = W(“aunt”)W(“woman”) – W(“man”) + W(“king”) = W(“queen”)

Page 26: Papago/N2MT 개발이야기

26

3. Word2Vec (4/4)• Bilingual word embeddings

manuncle

woman이모

여왕

king

W(“woman”) – W(“man”) + W(“uncle”) = W(“ 이모” )W(“woman”) – W(“man”) + W(“king”) = W(“ 여왕” )

• 만족할 만한 결과 안나옴… ㅠ• 하지만 , Neural Network 과 Word Vector 에 대한 내공은

쌓임 .

Page 27: Papago/N2MT 개발이야기

27

4. Papago / N2MT 개발 과정

Page 28: Papago/N2MT 개발이야기

28

4-1. 소개

• NAVER Neural Machine Translation

• NSMT (NAVER Statistical Machine Translation) 의 뒤를 잇는 2 세대 Machine Translation

• Papago 팀에서 자체 기술로 개발• Papago 팀

= 기계번역 전문가 + Neural Network 전문가 + 시스템 전문가

• CUDA, cuBLAS, C++ 로 직접 개발 .

• Open Source 기반 아님 .(TensorFlow 가 나오기 전부터 개발 )

Page 29: Papago/N2MT 개발이야기

29

4-2. Architecture

DecoderEncoder

Input Layer

LSTM Layer

LSTM Layer

LSTM Layer

Attention Layer

Softmax Layer

• Stacked LSTM Encoder/Decoder + Attention

Page 30: Papago/N2MT 개발이야기

30

4-3. LSTM (1/3)

• LSTM 구성• Input Gate• Forget Gate• Output Gate• Cell• Hidden Output

• Long Short Term Memory• Short Term Memory 를 오래 지속 (Long) 하는 Memory Neuron.

Page 31: Papago/N2MT 개발이야기

31

4-3. LSTM (2/3)• Vanishing Gradient 문제 (1/2)

• 전통적인 RNN

Page 32: Papago/N2MT 개발이야기

32

4-3. LSTM (3/3)• Vanishing Gradient 문제 (2/2)

• LSTM

Page 33: Papago/N2MT 개발이야기

33

4-4. 개발 과정 1 – Reconstruction Model (1/2)• Stacked LSTM Encoder/Decoder Only

DecoderEncoder

Input Layer

LSTM Layer

LSTM Layer

LSTM Layer

Softmax Layer

Page 34: Papago/N2MT 개발이야기

34

4-4. 개발 과정 1 – Reconstruction Model (2/2)• 입력 문장 재생성 (Reconstruction) 하기

D

< 끝 >

DC

D

B

C

A

BA

CB < 시작 >A

• Test Perplexity (Test PPL): 1.0029

Page 35: Papago/N2MT 개발이야기

35

4-5. 개발 과정 2 – Small NMT• Small Parallel Corpus 로 NMT 만들기 ( 한국어 -> 영어 )

• 수 십만 개의 Parallel 문장

• 약 1,900 만 단어 ( 한국어 + 영어 )

• 개발 결과

• 번역 수행되는 것 확인

• 장문에 취약

• 대용량 Corpus 를 Training 하기에 너무 오래 걸림 .

Page 36: Papago/N2MT 개발이야기

36

4-6. 개발 과정 3 – 대용량 Corpus 처리 (1/4)• Multi-GPU / Propagation

GPU 1

GPU 4

GPU 3

GPU 0 다

< 끝 >

DC

D

B

C

A

BA

나가 < 시작 >

GPU 2

Page 37: Papago/N2MT 개발이야기

37

4-6. 개발 과정 3 – 대용량 Corpus 처리 (2/4)• Multi-GPU / Back-Propagation

GPU 1

GPU 4

GPU 3

GPU 0 다

< 끝 >

DC

D

B

C

A

BA

나가 < 시작 >

GPU 2

Page 38: Papago/N2MT 개발이야기

38

4-6. 개발 과정 3 – 대용량 Corpus 처리 (3/4)• Sampled Softmax (1/2)

• Softmax Layer• Decoding 시 ,

Vocab 사전에서 적합한 Vocab(Word) 를 고르는 부분 .

• 계산량 문제

Input(Projection)

Hidden Size (1,000)

Softmax Weight

Hidd

en S

ize

(1,0

00)

Vocab Size(50,000)

x

• Matrix 계산량 크기• [50,000 * 1,000] [1,000 * 1] = [50,000 * 1]

Vo-cab I You We love love

s … < 끝>

<Un-known>

확률 5% 2% 4% 51% 25% … 5% 6%

Page 39: Papago/N2MT 개발이야기

39

4-6. 개발 과정 3 – 대용량 Corpus 처리 (4/4)• Sampled Softmax (2/2)

• NMT 에서 계산량이 가장 많은 부분 .• Decoding 시 , 매 단어를 학습할 때마다 , 해야 하는 연산 .• Vocab 개수 증가 -> 계산량 증가 .

• 해결책• 학습시 Vocab 의 일부만 Sampling 하여 학습 .• Sampling 방식 .

• 학습에 포함된 Vocab 은 무조건 추가 .• 그 외의 Vocab 은 Random 으로 추가 .

Page 40: Papago/N2MT 개발이야기

40

4-7. 개발 과정 4 – Attention (1/4)• 구조

DecoderEncoder

Input Layer

LSTM Layer

LSTM Layer

LSTM Layer

Attention Layer

Softmax Layer

Page 41: Papago/N2MT 개발이야기

41

4-7. 개발 과정 4 – Attention (2/4)• Attention Layer 의 역할

• Target Word 생성시 ,어떤 Source Word 에 Focus 를 맞춰서 생성해야 하는지알려주는 모델 .

• 장문에서 번역 성능이 급격히 떨어지는 문제 완화 .

1. 매 time t 마다 , ht 와 모든 hs 의 내적을 통해 각 src word 에 대한 tar word 의 Score 를 구함

Page 42: Papago/N2MT 개발이야기

42

4-7. 개발 과정 4 – Attention (3/4)

3. Context Vector(ct) 는 모든 hs 의 alignment score 를 곱해 구해 . ( 즉 , ct 는 모든 hs 의 weighted average sum 임 .)

4. Attention Output(t) 는 Context Vector(ct) 와 Attention Input(ht)의 Concat 에 Wc 와 Tanh 를 적용하여 계산

2. Score 에 Softmax 연산을 통해 확률 구함 (Alignment Score)

Page 43: Papago/N2MT 개발이야기

43

4-7. 개발 과정 4 – Attention (4/4)• Attention Map

• 입력 : 존과 메리는 아들과 딸이 있다 .• 결과 : John and Mary have a son and a daughter.

Page 44: Papago/N2MT 개발이야기

44

5. NSMT 와 N2MT 번역 성능 비교

Page 45: Papago/N2MT 개발이야기

45

5. NSMT 와 N2MT 번역 성능 비교 (1/4)

• 동음 이의어

입력문 나의 눈에 눈이 떨어졌다 .N2MT Snow fell upon my eyes.

NSMT Fell in the eyes of my eyes.

• 번역 정확도

입력문 곰 세마리가 한 집에 있어 , 아빠곰 , 엄마곰 , 애기곰 .N2MT Three bears are in one house, father bear, mother bear,

and baby bear.NSMT 3 bears. Father bear, mummy bear, and baby bear, in a house.

Page 46: Papago/N2MT 개발이야기

46

5. NSMT 와 N2MT 번역 성능 비교 (2/4)• 정량 평가

• 평가 방법 : BLEU• 평가 문장 개수 : 1,000 문장

Page 47: Papago/N2MT 개발이야기

47

5. NSMT 와 N2MT 번역 성능 비교 (3/4)• 정성 평가

• 평가 방법 : Blind Test• 평가 문장 개수 : 100 문장• 100 점 만점 . ( 평가자 2 명 평균 )

Page 48: Papago/N2MT 개발이야기

48

5. NSMT 와 N2MT 번역 성능 비교 (4/4)• 번역 결과 주요 특징

• 완전한 형태의 문장을 생성( 비문이 생성되는 경우가 거의 없다 .)

• 번역 결과가 SMT 대비 많이 우수 .( 번역 결과가 틀릴 때는 , 아예 딴 소리를 하는 경우도 많음 .)

• Vocab 개수의 제약으로 , Out Of Vocab 문제가 발생

Page 49: Papago/N2MT 개발이야기

49

6. 마무리하며…

Page 50: Papago/N2MT 개발이야기

50

6. 마무리하며…

• Deep Learning 분야에 많은 개발자들이 필요 .• Neural Network 을 Modeling 할 사람도 필요 .• Neural Network 을 서비스로 만들 사람은 더 많이 필요 .

• 누구나 도전해 볼만한 분야 .• 꼼꼼한 성격 .

• Bug 가 눈에 잘 띄지 않는다 .• 학습이 제대로 안 될뿐…

• 많은 인내심 필요 .• 뭐 하나 고치면 , 결과 보는데 몇 시간씩 걸린다 .

• 개발 코드량은 얼마 되지 않는다 .

• 많은 분들이 도전하셔서 , 더 재미있고 좋은 세상을 만들었으면 좋겠습니다 .

Page 51: Papago/N2MT 개발이야기

51

Q & A

Page 52: Papago/N2MT 개발이야기

52

References (1/2)• Artificial Neural Network

• Martin T. Hagan, Howard B. Demuth, Mark Beale. Nerual Network Design. PWS Publishing Com-pany.

• NMT - Encoder/Decoder Model• I. Sutskever, O. Vinyals, and Q. V. Le. Sequence to sequence learning with neural networks. In

NIPS, 2014• Kyunghyun Cho, Bart van Merrienboer, Caglar Gulcehre, Fethi Bougares, Holger Schwenk, and

Yoshua Bengio. Learning phrase representations using RNN encoder-decoder for statistical ma-chine translation. In EMNLP, 2014

• Kyunghyun Cho, van Merri¨enboer, B., Bahdanau, D., and Bengio, Y. On the properties of neural machine translation: Encoder–Decoder approaches. In Eighth Workshop on Syntax, Semantics and Structure in Statistical Translation. to appear. 2014

• N. Kalchbrenner and P. Blunsom. Recurrent continuous translation models. In EMNLP, 2013

• NMT - Attention• Luong, Minh-Thang, Pham, Hieu, and Manning, Christopher D. Effective approaches to attention-

based neural machine translation. Proceedings of EMNLP, 2015.• D. Bahdanau, K. Cho, and Y. Bengio. Neural machine translation by jointly learning to align and

translate. In ICLR, 2015

• NMT - Sampled Softmax• S´ebastien Jean, Kyunghyun Cho, Roland Memisevic, and Yoshua Bengio. On using very large

target vocabulary for neural machine translation. In ACL, 2015

Page 53: Papago/N2MT 개발이야기

53

References (2/2)• LSTM

• A. Graves. Generating sequences with recurrent neural networks. In Arxiv preprint arXiv:1308.0850, 2013.

• Word2Vec• Tomas Mikolov, Kai Chen, Greg Corrado, and Jeffrey Dean. Efficient Estimation of Word Represen-

tations in Vector Space. In Proceedings of Workshop at ICLR, 2013.• Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean. Distributed Represen-

tations of Words and Phrases and their Compositionality. In Proceedings of NIPS, 2013.• Tomas Mikolov, Wen-tau Yih, and Geoffrey Zweig. Linguistic Regularities in Continuous Space

Word Representations. In Proceedings of NAACL HLT, 2013.

Page 54: Papago/N2MT 개발이야기

54

Thank you