SlideShare une entreprise Scribd logo
1  sur  54
Papago / N2MT 개발 이야기
Papago / 김상경
2017-02-24
2
목차
1. 기계 번역 (Machine Translation)
2. 인공 신경망 (Artificial Neural Network)
3. Word2Vec
4. Papago / N2MT 개발 과정
5. NSMT와 N2MT 번역 성능 비교
6. 마무리하며…
7. Q & A
3
1. 기계 번역 (Machine Translation)
4
1-1. RBMT - 규칙 기반 기계 번역
• Rule Based Machine Translation (RBMT)
• 두 언어의 문법 규칙(Rule)을 기반으로 개발.
• 문법 규칙(Rule) 추출의 어려움
• 번역 언어 확장의 어려움
5
1-2. SMT – 통계 기반 기계 번역 (1/3)
• Statistical Machine Translation (SMT)
• 두 언어의 Parallel Corpus에서
Co-occurance 기반의 통계 정보를 바탕으로 번역을 수행
• 여러 Component의 조합으로 시스템 구성
• Translation Model
• Language Model
• Reordering Model
6
1-2. SMT – 통계 기반 기계 번역 (2/3)
• 구조
7
1-2. SMT – 통계 기반 기계 번역 (3/3)
• 작동 방식
• 입력 문장의 일부분(Word 혹은 Phrase)를 보고 번역 수행
• 번역 사전을 사용하여, 확률에 기반한 번역을 수행
• 어순이 같은 언어 (한국어/일본어, 영어/프랑스어)
• 괜찮은 성능.
• 어순이 다른 언어 (한국어/영어)
• 성능 부족.
입력:
출력: I
나는 아침 일찍 아침 준비를 했다.
prepared breakfast early in the morning.
8
1-3. NMT - 인공신경망 기계 번역 (1/5)
• Neural Machine Translation (NMT)
• Neural Network 기반의 Machine Translation
• 두 언어의 Parallel Corpus를 사용하여 Neural Network 학습
9
1-3. NMT - 인공신경망 기계 번역 (2/5)
• 구조
• Encoder와 Decoder로 구성.
• Encoder에서 입력 문장 Vector화.
• Decoder에서 Vector화된 입력 문장 복호화.
다
<끝>
DC
D
B
C
A
BA
나가 <시작>
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
1-3. NMT - 인공신경망 기계 번역 (4/5)
• 작동 방식
?
do
fatheryour
father
does
your
What
doesWhat
뭐하시
노
아버지 <시작>느그
<끝>
?
?
do
12
1-3. NMT - 인공신경망 기계 번역 (5/5)
• 특징
• 모든 단어를 고차원 Vector로 처리
• 단어의 입력/출력 순서를 학습
• 매끄러운 번역 문장 생성
• 문장 Vector 기반
• 문장의 의미 또한 고차원 Vector로 처리.
• 문장 전체의 의미를 파악한 후에, 번역을 수행.
• 동음 이의어라 하더라도, 전체 문장의 의미에 맞게 번역 가능
• 문장 Vector 생성 정확도 하락 -> 번역 정확도 하락
• 문장 Vector 해석 정확도 하락 -> 번역 정확도 하락
13
2. 인공 신경망 (Artificial Neural Network)
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
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
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
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
2-1. Neural Network 구조 (5/5)
• Multi-Layer Neural Network
19
2-2. 학습 원리 (1/2)
• 1단계 – Propagation (전파)
Layer
1
Layer
2
Layer
3
입력 (p) 결과 (a)
오류 (Δ) = 정답(c) – 결과(a)
• 2단계 – 오류 계산
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
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
3. Word2Vec
23
3. Word2Vec (1/4)
• CBOW & Skip-Gram (1/2)
24
3. Word2Vec (2/4)
• CBOW & Skip-Gram (2/2)
• 학습 목표
• Average log probability의 극대화(Maximization).
• 즉, 확률 극대화.
• 극대화 과정에서 Word Vector들이 조정됨.
• 그로 인한 Side-Effect로
Semantic과 Syntactic 정보가 내재화 됨(Embedded).
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
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
4. 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가 나오기 전부터 개발)
29
4-2. Architecture
DecoderEncoder
Input Layer
LSTM Layer
LSTM Layer
LSTM Layer
Attention Layer
Softmax Layer
• Stacked LSTM Encoder/Decoder + Attention
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
4-3. LSTM (2/3)
• Vanishing Gradient 문제 (1/2)
• 전통적인 RNN
32
4-3. LSTM (3/3)
• Vanishing Gradient 문제 (2/2)
• LSTM
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
4-4. 개발 과정 1 – Reconstruction Model (2/2)
• 입력 문장 재생성(Reconstruction) 하기
D
<끝>
DC
D
B
C
A
BA
CB <시작>A
• Test Perplexity (Test PPL): 1.0029
35
4-5. 개발 과정 2 – Small NMT
• Small Parallel Corpus로 NMT 만들기 (한국어 -> 영어)
• 수 십만 개의 Parallel 문장
• 약 1,900만 단어 (한국어 + 영어)
• 개발 결과
• 번역 수행되는 것 확인
• 장문에 취약
• 대용량 Corpus를 Training하기에 너무 오래 걸림.
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
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
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
4-6. 개발 과정 3 – 대용량 Corpus 처리 (4/4)
• Sampled Softmax (2/2)
• NMT에서 계산량이 가장 많은 부분.
• Decoding 시, 매 단어를 학습할 때마다, 해야 하는 연산.
• Vocab 개수 증가 -> 계산량 증가.
• 해결책
• 학습시 Vocab의 일부만 Sampling하여 학습.
• Sampling 방식.
• 학습에 포함된 Vocab은 무조건 추가.
• 그 외의 Vocab은 Random으로 추가.
40
4-7. 개발 과정 4 – Attention (1/4)
• 구조
DecoderEncoder
Input Layer
LSTM Layer
LSTM Layer
LSTM Layer
Attention Layer
Softmax Layer
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
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
4-7. 개발 과정 4 – Attention (4/4)
• Attention Map
• 입력: 존과 메리는 아들과 딸이 있다.
• 결과: John and Mary have a son and a daughter.
44
5. NSMT와 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.
46
5. NSMT와 N2MT 번역 성능 비교 (2/4)
• 정량 평가
• 평가 방법: BLEU
• 평가 문장 개수: 1,000 문장
47
5. NSMT와 N2MT 번역 성능 비교 (3/4)
• 정성 평가
• 평가 방법: Blind Test
• 평가 문장 개수: 100 문장
• 100점 만점. (평가자 2명 평균)
48
5. NSMT와 N2MT 번역 성능 비교 (4/4)
• 번역 결과 주요 특징
• 완전한 형태의 문장을 생성
(비문이 생성되는 경우가 거의 없다.)
• 번역 결과가 SMT 대비 많이 우수.
(번역 결과가 틀릴 때는, 아예 딴 소리를 하는 경우도 많음.)
• Vocab 개수의 제약으로, Out Of Vocab 문제가 발생
49
6. 마무리하며…
50
6. 마무리하며…
• Deep Learning 분야에 많은 개발자들이 필요.
• Neural Network을 Modeling 할 사람도 필요.
• Neural Network을 서비스로 만들 사람은 더 많이 필요.
• 누구나 도전해 볼만한 분야.
• 꼼꼼한 성격.
• Bug가 눈에 잘 띄지 않는다.
• 학습이 제대로 안 될뿐…
• 많은 인내심 필요.
• 뭐 하나 고치면, 결과 보는데 몇 시간씩 걸린다.
• 개발 코드량은 얼마 되지 않는다.
• 많은 분들이 도전하셔서, 더 재미있고 좋은 세상을 만들었으면 좋겠습니다.
51
Q & A
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
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
Thank you

Contenu connexe

Tendances

[論文読み]Effective Approaches to Attention-based Neural Machine Translation
[論文読み]Effective Approaches to Attention-based Neural Machine Translation[論文読み]Effective Approaches to Attention-based Neural Machine Translation
[論文読み]Effective Approaches to Attention-based Neural Machine Translation
hirono kawashima
 

Tendances (20)

気象予報データ(数値予報GPV)を用いた データビジュアライゼーション
気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション気象予報データ(数値予報GPV)を用いたデータビジュアライゼーション
気象予報データ(数値予報GPV)を用いた データビジュアライゼーション
 
Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기Dependency Parser, 의존 구조 분석기
Dependency Parser, 의존 구조 분석기
 
Precise LSTM Algorithm
Precise LSTM AlgorithmPrecise LSTM Algorithm
Precise LSTM Algorithm
 
[論文読み]Effective Approaches to Attention-based Neural Machine Translation
[論文読み]Effective Approaches to Attention-based Neural Machine Translation[論文読み]Effective Approaches to Attention-based Neural Machine Translation
[論文読み]Effective Approaches to Attention-based Neural Machine Translation
 
[ppt]
[ppt][ppt]
[ppt]
 
【DL輪読会】AdaptDiffuser: Diffusion Models as Adaptive Self-evolving Planners
【DL輪読会】AdaptDiffuser: Diffusion Models as Adaptive Self-evolving Planners【DL輪読会】AdaptDiffuser: Diffusion Models as Adaptive Self-evolving Planners
【DL輪読会】AdaptDiffuser: Diffusion Models as Adaptive Self-evolving Planners
 
G社のNMT論文を読んでみた
G社のNMT論文を読んでみたG社のNMT論文を読んでみた
G社のNMT論文を読んでみた
 
【DL輪読会】Incorporating group update for speech enhancement based on convolutio...
【DL輪読会】Incorporating group update for speech enhancement  based on convolutio...【DL輪読会】Incorporating group update for speech enhancement  based on convolutio...
【DL輪読会】Incorporating group update for speech enhancement based on convolutio...
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
 
最近の自然言語処理
最近の自然言語処理最近の自然言語処理
最近の自然言語処理
 
言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール言語と知識の深層学習@認知科学会サマースクール
言語と知識の深層学習@認知科学会サマースクール
 
SMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装するSMO徹底入門 - SVMをちゃんと実装する
SMO徹底入門 - SVMをちゃんと実装する
 
大阪PRML読書会#1資料
大阪PRML読書会#1資料大阪PRML読書会#1資料
大阪PRML読書会#1資料
 
トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?トピックモデルの評価指標 Perplexity とは何なのか?
トピックモデルの評価指標 Perplexity とは何なのか?
 
ブラックボックス最適化とその応用
ブラックボックス最適化とその応用ブラックボックス最適化とその応用
ブラックボックス最適化とその応用
 
音声認識と深層学習
音声認識と深層学習音声認識と深層学習
音声認識と深層学習
 
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
CMA-ESサンプラーによるハイパーパラメータ最適化 at Optuna Meetup #1
 
Google's Pathways Language Model and Chain-of-Thought
Google's Pathways Language Model and Chain-of-ThoughtGoogle's Pathways Language Model and Chain-of-Thought
Google's Pathways Language Model and Chain-of-Thought
 
正則化項について
正則化項について正則化項について
正則化項について
 
[DL輪読会]Pyramid Stereo Matching Network
[DL輪読会]Pyramid Stereo Matching Network[DL輪読会]Pyramid Stereo Matching Network
[DL輪読会]Pyramid Stereo Matching Network
 

En vedette

데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
NAVER D2
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
NAVER D2
 

En vedette (20)

텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님텀 프로젝트에서 제품 프로젝트로 - 성준영님
텀 프로젝트에서 제품 프로젝트로 - 성준영님
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 2. functions
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 3. generator
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 4. promise
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 4. promise[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 4. promise
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 4. promise
 
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
[D2 COMMUNITY] ECMAScript 2015 S67 seminar - 1. primitive
 
[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp[D2 오픈세미나]3.web view hybridapp
[D2 오픈세미나]3.web view hybridapp
 
[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅[D2 오픈세미나]2.모바일웹디버깅
[D2 오픈세미나]2.모바일웹디버깅
 
[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신[D2 오픈세미나]4.네이티브앱저장통신
[D2 오픈세미나]4.네이티브앱저장통신
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
 
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅[D2 오픈세미나]5.robolectric 안드로이드 테스팅
[D2 오픈세미나]5.robolectric 안드로이드 테스팅
 
[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선[D2 오픈세미나]1.무한스크롤성능개선
[D2 오픈세미나]1.무한스크롤성능개선
 
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes를 이용한 서비스 구축과 openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes를 이용한 서비스 구축과 openshift[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes를 이용한 서비스 구축과 openshift
[D2 COMMUNITY] Open Container Seoul Meetup - Kubernetes를 이용한 서비스 구축과 openshift
 
Docker d2 박승환
Docker d2 박승환Docker d2 박승환
Docker d2 박승환
 
Container & kubernetes
Container & kubernetesContainer & kubernetes
Container & kubernetes
 
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
[D2 COMMUNITY] Open Container Seoul Meetup - Running a container platform in ...
 
blue-green deployment with docker containers
blue-green deployment with docker containersblue-green deployment with docker containers
blue-green deployment with docker containers
 
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
[D2 COMMUNITY] Open Container Seoul Meetup - Docker security
 
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes[D2 COMMUNITY] Open Container Seoul Meetup -  마이크로 서비스 아키텍쳐와 Docker kubernetes
[D2 COMMUNITY] Open Container Seoul Meetup - 마이크로 서비스 아키텍쳐와 Docker kubernetes
 
[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제 풀이
[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제 풀이[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제 풀이
[고려대 ALPS&ALKOR] 프로그래밍 경진대회 문제 풀이
 

Similaire à Papago/N2MT 개발이야기

Similaire à Papago/N2MT 개발이야기 (20)

[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경[224] backend 개발자의 neural machine translation 개발기 김상경
[224] backend 개발자의 neural machine translation 개발기 김상경
 
GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역GNMT로 알아보는 신경망 기반 기계번역
GNMT로 알아보는 신경망 기반 기계번역
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
Mt
MtMt
Mt
 
Bert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP ChallengeBert3q KorQuAD Finetuning NLP Challenge
Bert3q KorQuAD Finetuning NLP Challenge
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향
 
Image Deep Learning 실무적용
Image Deep Learning 실무적용Image Deep Learning 실무적용
Image Deep Learning 실무적용
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
 
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTNLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역Neural Machine Translation 기반의 영어-일본어 자동번역
Neural Machine Translation 기반의 영어-일본어 자동번역
 
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...
 
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & SparkDeep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
 
문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석
 
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled AttentionDeBERTA : Decoding-Enhanced BERT with Disentangled Attention
DeBERTA : Decoding-Enhanced BERT with Disentangled Attention
 
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
Lab Seminar - Reading Wikipedia to Answer Open-Domain Questions (DrQA)
 
스마트폰 위의 딥러닝
스마트폰 위의 딥러닝스마트폰 위의 딥러닝
스마트폰 위의 딥러닝
 
Sequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural NetworksSequence to Sequence Learning with Neural Networks
Sequence to Sequence Learning with Neural Networks
 

Plus de NAVER D2

Plus de NAVER D2 (20)

[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다[211] 인공지능이 인공지능 챗봇을 만든다
[211] 인공지능이 인공지능 챗봇을 만든다
 
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
[233] 대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing: Maglev Hashing Scheduler i...
 
[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기[215] Druid로 쉽고 빠르게 데이터 분석하기
[215] Druid로 쉽고 빠르게 데이터 분석하기
 
[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발[245]Papago Internals: 모델분석과 응용기술 개발
[245]Papago Internals: 모델분석과 응용기술 개발
 
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
[236] 스트림 저장소 최적화 이야기: 아파치 드루이드로부터 얻은 교훈
 
[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A[235]Wikipedia-scale Q&A
[235]Wikipedia-scale Q&A
 
[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기[244]로봇이 현실 세계에 대해 학습하도록 만들기
[244]로봇이 현실 세계에 대해 학습하도록 만들기
 
[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning[243] Deep Learning to help student’s Deep Learning
[243] Deep Learning to help student’s Deep Learning
 
[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications[234]Fast & Accurate Data Annotation Pipeline for AI applications
[234]Fast & Accurate Data Annotation Pipeline for AI applications
 
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load BalancingOld version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
Old version: [233]대형 컨테이너 클러스터에서의 고가용성 Network Load Balancing
 
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
[226]NAVER 광고 deep click prediction: 모델링부터 서빙까지
 
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
[225]NSML: 머신러닝 플랫폼 서비스하기 & 모델 튜닝 자동화하기
 
[224]네이버 검색과 개인화
[224]네이버 검색과 개인화[224]네이버 검색과 개인화
[224]네이버 검색과 개인화
 
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
[216]Search Reliability Engineering (부제: 지진에도 흔들리지 않는 네이버 검색시스템)
 
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
[214] Ai Serving Platform: 하루 수 억 건의 인퍼런스를 처리하기 위한 고군분투기
 
[213] Fashion Visual Search
[213] Fashion Visual Search[213] Fashion Visual Search
[213] Fashion Visual Search
 
[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화[232] TensorRT를 활용한 딥러닝 Inference 최적화
[232] TensorRT를 활용한 딥러닝 Inference 최적화
 
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
[242]컴퓨터 비전을 이용한 실내 지도 자동 업데이트 방법: 딥러닝을 통한 POI 변화 탐지
 
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
[212]C3, 데이터 처리에서 서빙까지 가능한 하둡 클러스터
 
[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?[223]기계독해 QA: 검색인가, NLP인가?
[223]기계독해 QA: 검색인가, NLP인가?
 

Dernier

Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
Wonjun Hwang
 

Dernier (7)

Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
Continual Active Learning for Efficient Adaptation of Machine LearningModels ...
 
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
도심 하늘에서 시속 200km로 비행할 수 있는 미래 항공 모빌리티 'S-A2'
 
Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)Grid Layout (Kitworks Team Study 장현정 발표자료)
Grid Layout (Kitworks Team Study 장현정 발표자료)
 
A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)A future that integrates LLMs and LAMs (Symposium)
A future that integrates LLMs and LAMs (Symposium)
 
캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차캐드앤그래픽스 2024년 5월호 목차
캐드앤그래픽스 2024년 5월호 목차
 
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution DetectionMOODv2 : Masked Image Modeling for Out-of-Distribution Detection
MOODv2 : Masked Image Modeling for Out-of-Distribution Detection
 
[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption[Terra] Terra Money: Stability and Adoption
[Terra] Terra Money: Stability and Adoption
 

Papago/N2MT 개발이야기

  • 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 발명.
  • 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 문제가 발생
  • 50. 50 6. 마무리하며… • Deep Learning 분야에 많은 개발자들이 필요. • Neural Network을 Modeling 할 사람도 필요. • Neural Network을 서비스로 만들 사람은 더 많이 필요. • 누구나 도전해 볼만한 분야. • 꼼꼼한 성격. • Bug가 눈에 잘 띄지 않는다. • 학습이 제대로 안 될뿐… • 많은 인내심 필요. • 뭐 하나 고치면, 결과 보는데 몇 시간씩 걸린다. • 개발 코드량은 얼마 되지 않는다. • 많은 분들이 도전하셔서, 더 재미있고 좋은 세상을 만들었으면 좋겠습니다.
  • 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.