본문 바로가기
정보공유

[정보] Papago/N2MT 개발이야기

by 날고싶은커피향 2017. 10. 28.


Papago 개발과 관련된 재미난 내용이네요.. 조금 전문적인 내용이긴 하지만..
많은 참고 하시기 바랍니다.

Papago/N2MT 개발이야기 from NAVER D2

 

 
1. Papago / N2MT 개발 이야기 Papago / 김상경 2017-02-24
 2.  2 목차 1. 기계 번역 (Machine Translation) 2. 인공 신경망 (Artificial Neural Network) 3. Word2Vec 4. Papago / N2MT 개발 과정 5. NSMT와 N2MT 번역 성능 비교 6. 마무리하며… 7. Q & A
 3.  3 1. 기계 번역 (Machine Translation)
 4.  4 1-1. RBMT - 규칙 기반 기계 번역 • Rule Based Machine Translation (RBMT) • 두 언어의 문법 규칙(Rule)을 기반으로 개발. • 문법 규칙(Rule) 추출의 어려움 • 번역 언어 확장의 어려움
5.  5 1-2. SMT – 통계 기반 기계 번역 (1/3) • Statistical Machine Translation (SMT) • 두 언어의 Parallel Corpus에서 Co-occurance 기반의 통계 정보를 바탕으로 번역을 수행 • 여러 Component의 조합으로 시스템 구성 • Translation Model • Language Model • Reordering Model
 6.  6 1-2. SMT – 통계 기반 기계 번역 (2/3) • 구조
7.  7 1-2. SMT – 통계 기반 기계 번역 (3/3) • 작동 방식 • 입력 문장의 일부분(Word 혹은 Phrase)를 보고 번역 수행 • 번역 사전을 사용하여, 확률에 기반한 번역을 수행 • 어순이 같은 언어 (한국어/일본어, 영어/프랑스어) • 괜찮은 성능. • 어순이 다른 언어 (한국어/영어) • 성능 부족. 입력: 출력: I 나는 아침 일찍 아침 준비를 했다. prepared breakfast early in the morning.
 8.  8 1-3. NMT - 인공신경망 기계 번역 (1/5) • Neural Machine Translation (NMT) • Neural Network 기반의 Machine Translation • 두 언어의 Parallel Corpus를 사용하여 Neural Network 학습
9.  9 1-3. NMT - 인공신경망 기계 번역 (2/5) • 구조 • Encoder와 Decoder로 구성. • Encoder에서 입력 문장 Vector화. • Decoder에서 Vector화된 입력 문장 복호화. 다 <끝> DC D B C A BA 나가 <시작>
10.  10 1-3. NMT - 인공신경망 기계 번역 (3/5) • 여기서 말하는 Vector란... • “크기”와 “방향”을 동시에 나타내는 물리량. (아래의 수식은 Column Major로 표시) • 𝑎 = 3 1 , 𝑏 = 2 4 𝑎 + 𝑏 = 3 1 + 2 4 = 5 5 • 𝑎 · 𝑏 = 3 1 2 4 = 3 ∗ 2 + (1 ∗ 4) = 10 • 𝑐 · 𝑑 = 1 2 3 ⋮ 𝑚 2 4 6 ⋯ 𝑛 = 1 ∗ 2 + 2 ∗ 4 + 3 ∗ 6 + ⋯ + (𝑚 ∗ 𝑛) 𝑎 𝑏 𝑎+𝑏
11.  11 1-3. NMT - 인공신경망 기계 번역 (4/5) • 작동 방식 ? do fatheryour father does your What doesWhat 뭐하시 노 아버지 <시작>느그 <끝> ? ? do
 12.  12 1-3. NMT - 인공신경망 기계 번역 (5/5) • 특징 • 모든 단어를 고차원 Vector로 처리 • 단어의 입력/출력 순서를 학습 • 매끄러운 번역 문장 생성 • 문장 Vector 기반 • 문장의 의미 또한 고차원 Vector로 처리. • 문장 전체의 의미를 파악한 후에, 번역을 수행. • 동음 이의어라 하더라도, 전체 문장의 의미에 맞게 번역 가능 • 문장 Vector 생성 정확도 하락 -> 번역 정확도 하락 • 문장 Vector 해석 정확도 하락 -> 번역 정확도 하락
13.  13 2. 인공 신경망 (Artificial Neural Network)
 14.  14 2-1. Neural Network 구조 (1/5) • Single Neuron a = 𝑓 𝐰𝐩 + b = 𝑓( w1 w2 w3 ⋮ wR p1 p2 p3 ⋯ pR + b) p1 p2 p3 ⋮ pR Σ b w1 wR 𝒇 n a Input Weight Bias Activation Function Output
 15.  15 2-1. Neural Network 구조 (2/5) • Activation functions • Linear • ReLU • Sigmoid • Tanh 𝑎 = 1 1 + 𝑒−𝑛 𝑎 = 𝑒 𝑛 − 𝑒−𝑛 𝑒 𝑛 + 𝑒−𝑛 𝑎 = 𝑛 𝑎 = max(0, 𝑛) a n a n 0 1 a n 0 1 -1 a n 0
 16.  16 2-1. Neural Network 구조 (3/5) • 1 Layer = Multiple Neurons (1/2) • Neuron이 S개 일 때, p1 p2 p3 ⋮ pR Σ b1 w1,1, … , w1,R 𝐟 n1 a1 Σ b2 𝐟 a2 w2,1, … , w2,R Σ bS 𝐟 aS wS,1, … , wS,R ⋮ n2 nS
 17.  17 2-1. Neural Network 구조 (4/5) • 1 Layer = Multiple Neurons (2/2) a = 𝑓 𝐖𝒑 + 𝒃 = 𝑓( w1,1 w1,2 w1,3 ⋮ w1,R w2,1 w2,2 w2,3 ⋮ w2,R … ⋯ ⋯ … wS,1 wS,2 wS,3 ⋮ wS,R p1 p2 p3 ⋯ pR + b1 b2 ⋯ bS )
 18.  18 2-1. Neural Network 구조 (5/5) • Multi-Layer Neural Network
 19.  19 2-2. 학습 원리 (1/2) • 1단계 – Propagation (전파) Layer 1 Layer 2 Layer 3 입력 (p) 결과 (a) 오류 (Δ) = 정답(c) – 결과(a) • 2단계 – 오류 계산
20.  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
 21.  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 발명.
22.  22 3. Word2Vec
 23.  23 3. Word2Vec (1/4) • CBOW & Skip-Gram (1/2)
 24.  24 3. Word2Vec (2/4) • CBOW & Skip-Gram (2/2) • 학습 목표 • Average log probability의 극대화(Maximization). • 즉, 확률 극대화. • 극대화 과정에서 Word Vector들이 조정됨. • 그로 인한 Side-Effect로 Semantic과 Syntactic 정보가 내재화 됨(Embedded).
 25.  25 3. Word2Vec (3/4) • Word embeddings Same word relationship => same vector man uncle woman aunt queen king W(“woman”) – W(“man”) + W(“uncle”) = W(“aunt”) W(“woman”) – W(“man”) + W(“king”) = W(“queen”)
26.  26 3. Word2Vec (4/4) • Bilingual word embeddings man uncle woman 이모 여왕 king W(“woman”) – W(“man”) + W(“uncle”) = W(“이모”) W(“woman”) – W(“man”) + W(“king”) = W(“여왕”) • 만족할 만한 결과 안나옴… ㅠ • 하지만, Neural Network과 Word Vector에 대한 내공은 쌓임.
27.  27 4. Papago / N2MT 개발 과정
28.  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가 나오기 전부터 개발)
29.  29 4-2. Architecture DecoderEncoder Input Layer LSTM Layer LSTM Layer LSTM Layer Attention Layer Softmax Layer • Stacked LSTM Encoder/Decoder + Attention
 30.  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.
 31.  31 4-3. LSTM (2/3) • Vanishing Gradient 문제 (1/2) • 전통적인 RNN
 32.  32 4-3. LSTM (3/3) • Vanishing Gradient 문제 (2/2) • LSTM
 33.  33 4-4. 개발 과정 1 – Reconstruction Model (1/2) • Stacked LSTM Encoder/Decoder Only DecoderEncoder Input Layer LSTM Layer LSTM Layer LSTM Layer Softmax Layer
 34.  34 4-4. 개발 과정 1 – Reconstruction Model (2/2) • 입력 문장 재생성(Reconstruction) 하기 D <끝> DC D B C A BA CB <시작>A • Test Perplexity (Test PPL): 1.0029
 35.  35 4-5. 개발 과정 2 – Small NMT • Small Parallel Corpus로 NMT 만들기 (한국어 -> 영어) • 수 십만 개의 Parallel 문장 • 약 1,900만 단어 (한국어 + 영어) • 개발 결과 • 번역 수행되는 것 확인 • 장문에 취약 • 대용량 Corpus를 Training하기에 너무 오래 걸림.
36.  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
 37.  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
 38.  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 HiddenSize (1,000) Vocab Size (50,000) x • Matrix 계산량 크기 • [50,000 * 1,000] [1,000 * 1] = [50,000 * 1] Voca b I You We love loves … <끝> <Unknown> 확률 5% 2% 4% 51% 25% … 5% 6%
 39.  39 4-6. 개발 과정 3 – 대용량 Corpus 처리 (4/4) • Sampled Softmax (2/2) • NMT에서 계산량이 가장 많은 부분. • Decoding 시, 매 단어를 학습할 때마다, 해야 하는 연산. • Vocab 개수 증가 -> 계산량 증가. • 해결책 • 학습시 Vocab의 일부만 Sampling하여 학습. • Sampling 방식. • 학습에 포함된 Vocab은 무조건 추가. • 그 외의 Vocab은 Random으로 추가.
40.  40 4-7. 개발 과정 4 – Attention (1/4) • 구조 DecoderEncoder Input Layer LSTM Layer LSTM Layer LSTM Layer Attention Layer Softmax Layer
 41.  41 4-7. 개발 과정 4 – Attention (2/4) • Attention Layer의 역할 • Target Word 생성시, 어떤 Source Word에 Focus를 맞춰서 생성해야 하는지 알려주는 모델. • 장문에서 번역 성능이 급격히 떨어지는 문제 완화. 1. 매 time t마다, ht와 모든 hs의 내적을 통해 각 src word에 대한 tar word의 Score를 구함
42.  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)
 43.  43 4-7. 개발 과정 4 – Attention (4/4) • Attention Map • 입력: 존과 메리는 아들과 딸이 있다. • 결과: John and Mary have a son and a daughter.
 44.  44 5. NSMT와 N2MT 번역 성능 비교
45.  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.
 46.  46 5. NSMT와 N2MT 번역 성능 비교 (2/4) • 정량 평가 • 평가 방법: BLEU • 평가 문장 개수: 1,000 문장
47.  47 5. NSMT와 N2MT 번역 성능 비교 (3/4) • 정성 평가 • 평가 방법: Blind Test • 평가 문장 개수: 100 문장 • 100점 만점. (평가자 2명 평균)
48.  48 5. NSMT와 N2MT 번역 성능 비교 (4/4) • 번역 결과 주요 특징 • 완전한 형태의 문장을 생성 (비문이 생성되는 경우가 거의 없다.) • 번역 결과가 SMT 대비 많이 우수. (번역 결과가 틀릴 때는, 아예 딴 소리를 하는 경우도 많음.) • Vocab 개수의 제약으로, Out Of Vocab 문제가 발생
49.  49 6. 마무리하며…
50.  50 6. 마무리하며… • Deep Learning 분야에 많은 개발자들이 필요. • Neural Network을 Modeling 할 사람도 필요. • Neural Network을 서비스로 만들 사람은 더 많이 필요. • 누구나 도전해 볼만한 분야. • 꼼꼼한 성격. • Bug가 눈에 잘 띄지 않는다. • 학습이 제대로 안 될뿐… • 많은 인내심 필요. • 뭐 하나 고치면, 결과 보는데 몇 시간씩 걸린다. • 개발 코드량은 얼마 되지 않는다. • 많은 분들이 도전하셔서, 더 재미있고 좋은 세상을 만들었으면 좋겠습니다.
51.  51 Q & A
 52.  52 References (1/2) • Artificial Neural Network • Martin T. Hagan, Howard B. Demuth, Mark Beale. Nerual Network Design. PWS Publishing Company. • 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 machine 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 attentionbased 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
 53.  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 Representations in Vector Space. In Proceedings of Workshop at ICLR, 2013. • Tomas Mikolov, Ilya Sutskever, Kai Chen, Greg Corrado, and Jeffrey Dean. Distributed Representations 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.
 54.  54 Thank you

반응형