SlideShare a Scribd company logo
Backend 개발자의
Neural Machine Translation
개발기
김상경
NAVER LABS
CONTENTS
1. 기계번역 (Machine Translation)
2. Neural Machine Translation (NMT)
3. NMT 개발에 앞서...
4. NMT 개발 과정
5. N2MT 소개
6. 마무리하며...
1.
기계번역 (Machine Translation)
1.1. RBMT
Rule based Machine Translation (RBMT)
• 두 언어의 문법 규칙(Rule)을 기반으로 개발.
• 문법 규칙(Rule) 추출의 어려움
• 번역 언어 확장의 어려움
1.2. SMT
Statistical Machine Translation (SMT)
• 두 언어의 Parallel Corpus에서
Co-occurrence 기반의 통계 정보를 바탕으로 번역을 수행
• 여러 Component의 조합으로 시스템 구성
• Translation Model
• Language Model
• Reordering Model
1.3. NMT
Neural Machine Translation (NMT)
• Neural Network 기반의 Machine Translation
• 두 언어의 Parallel Corpus를 사용하여 Neural Network 학습
2.
Neural Machine Translation (NMT)
2.1. NMT 구조
다
<EOS>
DC
D
B
C
A
BA
나가 <EOS>
• Encoder와 Decoder로 구성
• Encoder: Source 문장을 Vector화
• Decoder: Vector화된 문장을 Target 문장으로 Decoding
• Encoding & Decoding 과정을 통해 번역이 수행됨.
2.2. NMT 작동 원리
2.3. 주요 NMT
• Stacked LSTM
• Google Brain팀에서 최초로 발표.
• LSTM으로 Stack을 쌓았음.
• RNNEncDec / RNNSearch
• NYU 조경현 교수님 개발 (Montreal 대학교 Bengio 교수팀)
• LSTM을 경량화한 GRU(Gated Recurrent Unit) 사용
• RNNEncDec : Encoder & Decoder Model
• RNNSearch : RNNEncDec + Attention
3.
NMT 개발에 앞서...
3.1. Word2Vec (1/4)
• CBOW & Skip-gram (1/2)
3.1. Word2Vec (2/4)
• CBOW & Skip-gram (2/2)
• 학습 목표 : Average log probability의 극대화(Maximization)
• 극대화 과정에서 Word Vector들이 조정됨.
• 그로 인한 Side-Effect로
Semantic 과 Syntactic 정보가 내재화 됨(Embedded)
3.1. 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”)
3.1. 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에 대한 내공은 쌓임.
3.2. LSTM LM (1/6)
• Language Model
• 문장(단어 열)의 생성 확률 분포
• Real World의 문장 분포를 기반으로 확률 분포 계산.
• 문장의 확률
• P(sentence) = P(w1,w2,…,wn)
• P(엄마는, 아기를, 매우, 많이, 사랑한다) = 0.000004
• 단어 열의 확률
• P(w5 | w1, w2, w3, w4)
• P(사랑한다 | 엄마는, 아기를, 매우, 많이) = 0.667
• 이 세상의 모든 문장 조합을 구할 수는 없다.
3.2. LSTM LM (2/6)
• n-Gram Language Model
• N-1개의 이전 단어 열을 이용하여 다음 단어를 예측하는 방법.
• P(엄마는, 아기를, 매우, 많이, 사랑한다)
= P(매우 | 엄마는, 아기를) * P(많이 | 아기를, 매우) * P(사랑한다 | 매우, 많이)
3.2. LSTM LM (3/6)
• RNN Language Model (1/2)
Word embeddings
3.2. LSTM LM (4/6)
• RNN Language Model (2/2)
• “엄마는 아기를 매우 많이 사랑한다”가 학습되어 있으면,
“아빠는 아기를 매우 많이 사랑한다”의 확률을 비교적 높은 정확도로 구할 수 있다.
(엄마와 아빠의 Word embedding이 유사할 것이므로…)
• Data Sparseness 문제 완화
• 더 많은 단어를 보고, 다음 단어의 확률을 구할 수 있다.
3.2. LSTM LM (5/6)
• LSTM (Long Short Term Memory)
• 기존 RNN의 Vanishing Gradient 문제를 완화
(Exploding은 Clipping Gradient로 해결)
• 구성
• Input Gate
• Forget Gate
• Output Gate
• Cell
• Hidden Output
3.2. LSTM LM (6/6)
• LSTM Language Model
• 친숙해 지기 위해…
• Algorithm 추가 구현해 보기
• Bug Patch
• Performance Tuning
(학습 속도 개선)
Input Layer
LSTM Layer
LSTM Layer
Softmax Layer
4.
NMT 개발 과정
4.1. Stacked LSTM 기반 NMT
DecoderEncoder
Input Layer
LSTM Layer
LSTM Layer
LSTM Layer
Softmax Layer
4.2. NMT와 LSTM LM과의 차이
• Encoder와 Decoder로 구성
• 변형 LSTM
• Weight
• Encoder와 Decoder용 각각 존재
• Cell과 Hidden Output은 Encoder와 Decoder가 공유
• Encoder
• 입력 문장을 Encoding
• 입력 문장이 LSTM의 Cell과 Hidden Output 값으로 Vector화
• Decoder
• Vector화 된 입력 문장을 Decoding하면서 번역 수행
• Softmax 연산 수행
4.3. 개발 1단계
• 입력 문장 재생성(Reconstruction) 하기
• Test PPL: 1.0029
D
<EOS>
DC
D
B
C
A
BA
CB <EOS>A
4.4. 개발 2단계
• Small Parallel Corpus로 NMT 만들기 (한국어 -> 영어)
• 수 십만 개의 Parallel 문장
• 약 1,900만 단어 (한국어 + 영어)
• 개발 결과
• 번역 수행 되는것 확인
• 장문에 취약
• 대용량 Corpus를 Training 하기에 너무 오래 걸림
4.5. 개발 3단계 (1/3)
• Multi-GPU
GPU 1
GPU 4
GPU 3
GPU 0 다
<EOS>
DC
D
B
C
A
BA
나가 <EOS>
GPU 2
4.5. 개발 3단계 (2/3)
• Sampled Softmax (1/2)
LSTM Output
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]
4.5. 개발 3단계 (3/3)
• Sampled Softmax (2/2)
• NMT에서 계산량이 가장 많은 부분
• Vocab 개수 증가 -> 계산량 증가
• 해결책
• 학습시 Vocab의 일부만 Sampling하여 학습
• Sampling 방식
• 학습 문장에 포함된 Vocab은 무조건 추가
• 그 외의 Vocab은 Random으로 추가
4.6. 개발 4단계 (1/4)
DecoderEncoder
Input Layer
LSTM Layer
LSTM Layer
LSTM Layer
Attention Layer
Softmax Layer
• Attention
4.6. 개발 4단계 (2/4)
• Attention
• Target Word 생성시,
어떤 Source Word에 Focus를 맞춰서 생성해야 하는지 알려주는 모델
1. 매 time t마다,
ht와 모든 hs의 내적을 통해
각 src word에 대한 tar word의 Score를 구함
4.6. 개발 4단계 (3/4)
• Attention
2. Score에 Softmax 연산을 통해 확률 구함
(Alignment Score)
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를 적용하여 계산
4.6. 개발 4단계 (4/4)
• Attention Map (영어 -> 한국어)
• 입력: John loved Mary.
합계: 1.00
5.
N2MT 소개
5.1. 소개
• N2MT
• NAVER Neural Machine Translation
• NSMT (NAVER Statistical Machine Translation)의 뒤를 잇는
2세대 Machine Translation
• 자체 기술로 개발 (Open Source 기반 아님)
5.2. Demo
아래의 프로그램에서 N2MT를 사용 중 입니다.
• Papago 통역앱 (모바일 번역앱)
• Labspace NMT : http://labspace.naver.com/nmt/
5.3. 정량적 평가 (Automatic Evaluation)
• 평가 방법 : BLEU
• 평가 문장 개수 : 1,000 문장
17.19
21.26
0
5
10
15
20
25
NSMT N2MT
한국어 -> 영어
20.09
21.28
0
5
10
15
20
25
NSMT N2MT
영어 -> 한국어
+4.07 상승 +1.19 상승
5.4. 정성적 평가 (Human Evaluation)
• 평가 방법 : Blind Test
• 평가 문장 개수 : 100 문장
• 100점 만점. (평가자 2명 평군)
29.75
64.50
0
10
20
30
40
50
60
70
NSMT N2MT
한국어 -> 영어
36.9
63.5
0
10
20
30
40
50
60
70
NSMT N2MT
영어 -> 한국어
+34.75점 상승 +26.6점 상승
5.4. 정성적 평가 (Human Evaluation)
• 번역 결과 주요 특징
• 완전한 형태의 문장을 생성.
(비문이 생성되는 경우가 거의 없다.)
• 번역 결과가 SMT 대비 많이 우수.
(번역 결과가 틀릴 때는, 아예 딴 소리를 하는 경우도 많음.)
• Vocab 개수의 제약으로, Out Of Vocab 문제가 발생.
6.
마무리하며...
6. 마무리하며... (1/2)
• Deep Learning 분야에 많은 개발자들이 필요
• 기존 개발자도 노력하면, 진입할 수 있는 분야.
• 꼼꼼한 성격
• Bug가 눈에 잘 띄지 않는다.
• 학습이 제대로 안될뿐...
• 많은 인내심 필요
• 뭐 하나 고치면, 결과 보는데 몇 시간씩 걸린다.
• 개발 코드량은 얼마 되지 않는다.
6. 마무리하며... (2/2)
• 모든 팀원들이 같은 주특기를 갖고 있는 것 보단,
여러 가지 주특기를 갖고 있는 사람들이 Harmony를 이루면 더 강력한 팀이 됨.
• 네이버 Papago팀 =
기계번역 전문가 + Neural Network 전문가 + 시스템 전문가
• 많은 분들이 도전하셔서, 더 재미있고 좋은 세상을 만들었으면 좋겠습니다.
References (1/2)
• Word2Vec & Neural Network Language Model
• 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.
• LSTM
• A. Graves. Generating sequences with recurrent neural networks. In Arxiv preprint arXiv:1308.0850, 2013.
• 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
References (2/2)
• 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
Thank You
Q&A
부록. SMT (일반인용)
• SMT는 문장의 일부분(word 혹은 phrase)을 보고 번역 수행.
입력:
출력: I
나는 아침 일찍 아침 준비를 했다.
prepared breakfast early in the morning.
• 번역 사전을 사용하여 번역 수행.
부록. SMT (일반인용)
• 번역 사전
한국어 영어 비고
나는 I
아침 in the morning 동음이의어
아침 breakfast 동음이의어
일찍 early
준비를 했다. prepared
• 두 언어의 말뭉치(Parallel Corpus)에서 통계 정보를 사용하여 구축.
• 통계 정보에 기반하므로,
의미 정보 보다는 단어의 출현 빈도만을 기반으로 번역 사전을 구축하게 됨.
(정확도 부족)
부록. SMT (일반인용)
• 형태가 비슷한 언어 -> 높은 번역 정확도를 보임
• 한국어 / 일본어
• 영어 / 프랑스어
• 형태가 많이 다른 언어 -> 번역 정확도 미흡
• 한국어 / 영어
부록. NMT (일반인용)
pre
pared
I
morn
ing
break
fast
early in the나는 아침 일찍 아침
준비
를
했다 <끝>
pre
pared
I
morn
ing
break
fast early in the <끝>
• NMT의 특징
• 모든 단어를 고차원 Vector로 처리
• 단어의 입력/출력 순서를 학습
• 문장 전체의 의미를 파악한 후에, 번역을 수행
• 문장 의미 또한 고차원 Vector로 처리
부록. NMT (일반인용)
• 모든 단어와 문장을 Vector로 처리
• 단어의 입력/출력 순서를 학습
• 매끄러운 번역 문장 생성.
• 문장 Vector 기반
• 동음이의어라 하더라도, 전체 문장의 의미에 맞게 번역 가능
• 문장 Vector 정확도 하락 -> 번역 정확도 하락
• 문장 Vector 해석 정확도 하락 -> 번역 정확도 하락

More Related Content

What's hot

문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
NAVER LABS
 
딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향
LGCNSairesearch
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
Taekyung Han
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
태현 임
 
딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지
deepseaswjh
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
Eunjeong (Lucy) Park
 
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
Taekyung Han
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
gohyunwoong
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
NAVER D2
 
GPT-X
GPT-XGPT-X
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
Susang Kim
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
홍배 김
 
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTNLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
LGCNSairesearch
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Susang Kim
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
김용범 | 무영인터내쇼날
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리
Seonbae Kim
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
gohyunwoong
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
NAVER D2
 
Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)
Jaemin Cho
 
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
keunbong kwak
 

What's hot (20)

문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation문자 단위의 Neural Machine Translation
문자 단위의 Neural Machine Translation
 
딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향딥러닝 기반의 자연어처리 최근 연구 동향
딥러닝 기반의 자연어처리 최근 연구 동향
 
파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차파이썬을 활용한 챗봇 서비스 개발 3일차
파이썬을 활용한 챗봇 서비스 개발 3일차
 
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
임태현, Text-CNN을 이용한 Sentiment 분설모델 구현
 
딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지딥러닝 자연어처리 - RNN에서 BERT까지
딥러닝 자연어처리 - RNN에서 BERT까지
 
자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP자바, 미안하다! 파이썬 한국어 NLP
자바, 미안하다! 파이썬 한국어 NLP
 
Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차Python을 활용한 챗봇 서비스 개발 2일차
Python을 활용한 챗봇 서비스 개발 2일차
 
Machine translation survey vol2
Machine translation survey   vol2Machine translation survey   vol2
Machine translation survey vol2
 
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
[221] 딥러닝을 이용한 지역 컨텍스트 검색 김진호
 
GPT-X
GPT-XGPT-X
GPT-X
 
제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)제11회공개sw개발자대회 금상 TensorMSA(소개)
제11회공개sw개발자대회 금상 TensorMSA(소개)
 
딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향딥러닝을 이용한 자연어처리의 연구동향
딥러닝을 이용한 자연어처리의 연구동향
 
NLU Tech Talk with KorBERT
NLU Tech Talk with KorBERTNLU Tech Talk with KorBERT
NLU Tech Talk with KorBERT
 
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용Python과 Tensorflow를 활용한  AI Chatbot 개발 및 실무 적용
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용
 
메이크챗봇 자연어기초
메이크챗봇 자연어기초메이크챗봇 자연어기초
메이크챗봇 자연어기초
 
기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리기계번역과 통계기반 자연어 처리
기계번역과 통계기반 자연어 처리
 
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...Bag of Tricks for Image Classification  with Convolutional Neural Networks (C...
Bag of Tricks for Image Classification with Convolutional Neural Networks (C...
 
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
[222]딥러닝을 활용한 이미지 검색 포토요약과 타임라인 최종 20161024
 
Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)Deep Learning for Chatbot (1/4)
Deep Learning for Chatbot (1/4)
 
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
딥러닝 논문 리뷰 Learning phrase representations using rnn encoder decoder for stati...
 

Viewers also liked

[134]papago 김준석
[134]papago 김준석[134]papago 김준석
[134]papago 김준석
NAVER D2
 
챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api
NAVER D2
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
성일 한
 
[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸
NAVER D2
 
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlowChat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
Jeongkyu Shin
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
NAVER D2
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
NAVER D2
 
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
Taejoon Yoo
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기
성일 한
 
20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기
Kim Sungdong
 
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
NAVER LABS
 
IRECIPE BOT
IRECIPE BOTIRECIPE BOT
IRECIPE BOT
Kim Sungdong
 
[D2 CAMPUS] 분야별 모임 '보안' 발표자료
[D2 CAMPUS] 분야별 모임 '보안' 발표자료[D2 CAMPUS] 분야별 모임 '보안' 발표자료
[D2 CAMPUS] 분야별 모임 '보안' 발표자료
NAVER D2
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
NAVER D2
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개NAVER D2
 
Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법
NAVER D2
 
[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
NAVER D2
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
홍배 김
 
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
Taejoon Yoo
 
마인즈랩 회사소개서 V2.3_한국어버전
마인즈랩 회사소개서 V2.3_한국어버전마인즈랩 회사소개서 V2.3_한국어버전
마인즈랩 회사소개서 V2.3_한국어버전
Taejoon Yoo
 

Viewers also liked (20)

[134]papago 김준석
[134]papago 김준석[134]papago 김준석
[134]papago 김준석
 
챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api챗봇 개발을 위한 네이버 랩스 api
챗봇 개발을 위한 네이버 랩스 api
 
챗봇 시작해보기
챗봇 시작해보기챗봇 시작해보기
챗봇 시작해보기
 
[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸[216]딥러닝예제로보는개발자를위한통계 최재걸
[216]딥러닝예제로보는개발자를위한통계 최재걸
 
Chat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlowChat bot making process using Python 3 & TensorFlow
Chat bot making process using Python 3 & TensorFlow
 
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
JavaScript 비동기 프로그래밍 집중 탐구 - 조유성님
 
데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님데이터분석과통계2 - 최재걸님
데이터분석과통계2 - 최재걸님
 
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
20160203_마인즈랩_딥러닝세미나_05 딥러닝 자연어처리와 분류엔진 황이규박사
 
Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기Python 으로 Slackbot 개발하기
Python 으로 Slackbot 개발하기
 
20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기20170227 파이썬으로 챗봇_만들기
20170227 파이썬으로 챗봇_만들기
 
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...
 
IRECIPE BOT
IRECIPE BOTIRECIPE BOT
IRECIPE BOT
 
[D2 CAMPUS] 분야별 모임 '보안' 발표자료
[D2 CAMPUS] 분야별 모임 '보안' 발표자료[D2 CAMPUS] 분야별 모임 '보안' 발표자료
[D2 CAMPUS] 분야별 모임 '보안' 발표자료
 
swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑swig를 이용한 C++ 랩핑
swig를 이용한 C++ 랩핑
 
[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개[F2]자연어처리를 위한 기계학습 소개
[F2]자연어처리를 위한 기계학습 소개
 
Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법Django에서 websocket을 사용하는 방법
Django에서 websocket을 사용하는 방법
 
[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
 
머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)머신러닝의 자연어 처리기술(I)
머신러닝의 자연어 처리기술(I)
 
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
20160203_마인즈랩_딥러닝세미나_03 the game changer 딥러닝 유태준대표
 
마인즈랩 회사소개서 V2.3_한국어버전
마인즈랩 회사소개서 V2.3_한국어버전마인즈랩 회사소개서 V2.3_한국어버전
마인즈랩 회사소개서 V2.3_한국어버전
 

Similar to [224] backend 개발자의 neural machine translation 개발기 김상경

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
Hoon Heo
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification
MYEONGGYU LEE
 
Mt
MtMt
Word 2 Vec Algorithm
Word 2 Vec AlgorithmWord 2 Vec Algorithm
Word 2 Vec Algorithm
Hyeongmin Lee
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)
Jaemin Cho
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
Taehoon Kim
 
파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석
김용범 | 무영인터내쇼날
 
Character-Aware Neural Language Models
Character-Aware Neural Language ModelsCharacter-Aware Neural Language Models
Character-Aware Neural Language Models
Hoon Heo
 
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
NUGU developers
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
Kiho Suh
 
댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)
Jeffrey Kim
 
Attention is all you need
Attention is all you needAttention is all you need
Attention is all you need
Hoon Heo
 
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
Hye-rim Jang
 
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
XAIC
 
Brief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2VecBrief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2Vec
SilverQ
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
Adonis Han
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
Tae Young Lee
 
영어 말하기 자동채점 프로그램의 현재와 미래
영어 말하기 자동채점 프로그램의 현재와 미래	영어 말하기 자동채점 프로그램의 현재와 미래
영어 말하기 자동채점 프로그램의 현재와 미래
engedukamall
 
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...
hoondong kim
 
Intro to JavaScript - Week 1: Value, Type, Operator
Intro to JavaScript - Week 1: Value, Type, OperatorIntro to JavaScript - Week 1: Value, Type, Operator
Intro to JavaScript - Week 1: Value, Type, Operator
Jeongbae Oh
 

Similar to [224] backend 개발자의 neural machine translation 개발기 김상경 (20)

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
 
(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification(Papers Review)CNN for sentence classification
(Papers Review)CNN for sentence classification
 
Mt
MtMt
Mt
 
Word 2 Vec Algorithm
Word 2 Vec AlgorithmWord 2 Vec Algorithm
Word 2 Vec Algorithm
 
Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)Deep Learning for Chatbot (2/4)
Deep Learning for Chatbot (2/4)
 
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
텐서플로우 설치도 했고 튜토리얼도 봤고 기초 예제도 짜봤다면 TensorFlow KR Meetup 2016
 
파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석파이썬을 활용한 자연어 분석
파이썬을 활용한 자연어 분석
 
Character-Aware Neural Language Models
Character-Aware Neural Language ModelsCharacter-Aware Neural Language Models
Character-Aware Neural Language Models
 
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
[NUGU Conference 2018] 세션 B-1 : 음성인식 기술 및 응용 사례
 
[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning[한국어] Neural Architecture Search with Reinforcement Learning
[한국어] Neural Architecture Search with Reinforcement Learning
 
댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)댓글 감성 분석 상용화 개발기(Ver. 2)
댓글 감성 분석 상용화 개발기(Ver. 2)
 
Attention is all you need
Attention is all you needAttention is all you need
Attention is all you need
 
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
20150331 msr outreach media_roundtable_deck_연세대강홍구교수_음성합성
 
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)파이콘 한국 2019 튜토리얼 - LRP (Part 2)
파이콘 한국 2019 튜토리얼 - LRP (Part 2)
 
Brief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2VecBrief hystory of NLP and Word2Vec
Brief hystory of NLP and Word2Vec
 
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
(Kor ver.)NLP embedding(word2vec) tutorial & implementation(Tensorflow)
 
2017 tensor flow dev summit
2017 tensor flow dev summit2017 tensor flow dev summit
2017 tensor flow dev summit
 
영어 말하기 자동채점 프로그램의 현재와 미래
영어 말하기 자동채점 프로그램의 현재와 미래	영어 말하기 자동채점 프로그램의 현재와 미래
영어 말하기 자동채점 프로그램의 현재와 미래
 
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...
 
Intro to JavaScript - Week 1: Value, Type, Operator
Intro to JavaScript - Week 1: Value, Type, OperatorIntro to JavaScript - Week 1: Value, Type, Operator
Intro to JavaScript - Week 1: Value, Type, Operator
 

More from NAVER D2

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

More from 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인가?
 

[224] backend 개발자의 neural machine translation 개발기 김상경

  • 1. Backend 개발자의 Neural Machine Translation 개발기 김상경 NAVER LABS
  • 2. CONTENTS 1. 기계번역 (Machine Translation) 2. Neural Machine Translation (NMT) 3. NMT 개발에 앞서... 4. NMT 개발 과정 5. N2MT 소개 6. 마무리하며...
  • 4. 1.1. RBMT Rule based Machine Translation (RBMT) • 두 언어의 문법 규칙(Rule)을 기반으로 개발. • 문법 규칙(Rule) 추출의 어려움 • 번역 언어 확장의 어려움
  • 5. 1.2. SMT Statistical Machine Translation (SMT) • 두 언어의 Parallel Corpus에서 Co-occurrence 기반의 통계 정보를 바탕으로 번역을 수행 • 여러 Component의 조합으로 시스템 구성 • Translation Model • Language Model • Reordering Model
  • 6. 1.3. NMT Neural Machine Translation (NMT) • Neural Network 기반의 Machine Translation • 두 언어의 Parallel Corpus를 사용하여 Neural Network 학습
  • 9. • Encoder와 Decoder로 구성 • Encoder: Source 문장을 Vector화 • Decoder: Vector화된 문장을 Target 문장으로 Decoding • Encoding & Decoding 과정을 통해 번역이 수행됨. 2.2. NMT 작동 원리
  • 10. 2.3. 주요 NMT • Stacked LSTM • Google Brain팀에서 최초로 발표. • LSTM으로 Stack을 쌓았음. • RNNEncDec / RNNSearch • NYU 조경현 교수님 개발 (Montreal 대학교 Bengio 교수팀) • LSTM을 경량화한 GRU(Gated Recurrent Unit) 사용 • RNNEncDec : Encoder & Decoder Model • RNNSearch : RNNEncDec + Attention
  • 12. 3.1. Word2Vec (1/4) • CBOW & Skip-gram (1/2)
  • 13. 3.1. Word2Vec (2/4) • CBOW & Skip-gram (2/2) • 학습 목표 : Average log probability의 극대화(Maximization) • 극대화 과정에서 Word Vector들이 조정됨. • 그로 인한 Side-Effect로 Semantic 과 Syntactic 정보가 내재화 됨(Embedded)
  • 14. 3.1. 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”)
  • 15. 3.1. 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에 대한 내공은 쌓임.
  • 16. 3.2. LSTM LM (1/6) • Language Model • 문장(단어 열)의 생성 확률 분포 • Real World의 문장 분포를 기반으로 확률 분포 계산. • 문장의 확률 • P(sentence) = P(w1,w2,…,wn) • P(엄마는, 아기를, 매우, 많이, 사랑한다) = 0.000004 • 단어 열의 확률 • P(w5 | w1, w2, w3, w4) • P(사랑한다 | 엄마는, 아기를, 매우, 많이) = 0.667 • 이 세상의 모든 문장 조합을 구할 수는 없다.
  • 17. 3.2. LSTM LM (2/6) • n-Gram Language Model • N-1개의 이전 단어 열을 이용하여 다음 단어를 예측하는 방법. • P(엄마는, 아기를, 매우, 많이, 사랑한다) = P(매우 | 엄마는, 아기를) * P(많이 | 아기를, 매우) * P(사랑한다 | 매우, 많이)
  • 18. 3.2. LSTM LM (3/6) • RNN Language Model (1/2) Word embeddings
  • 19. 3.2. LSTM LM (4/6) • RNN Language Model (2/2) • “엄마는 아기를 매우 많이 사랑한다”가 학습되어 있으면, “아빠는 아기를 매우 많이 사랑한다”의 확률을 비교적 높은 정확도로 구할 수 있다. (엄마와 아빠의 Word embedding이 유사할 것이므로…) • Data Sparseness 문제 완화 • 더 많은 단어를 보고, 다음 단어의 확률을 구할 수 있다.
  • 20. 3.2. LSTM LM (5/6) • LSTM (Long Short Term Memory) • 기존 RNN의 Vanishing Gradient 문제를 완화 (Exploding은 Clipping Gradient로 해결) • 구성 • Input Gate • Forget Gate • Output Gate • Cell • Hidden Output
  • 21. 3.2. LSTM LM (6/6) • LSTM Language Model • 친숙해 지기 위해… • Algorithm 추가 구현해 보기 • Bug Patch • Performance Tuning (학습 속도 개선) Input Layer LSTM Layer LSTM Layer Softmax Layer
  • 23. 4.1. Stacked LSTM 기반 NMT DecoderEncoder Input Layer LSTM Layer LSTM Layer LSTM Layer Softmax Layer
  • 24. 4.2. NMT와 LSTM LM과의 차이 • Encoder와 Decoder로 구성 • 변형 LSTM • Weight • Encoder와 Decoder용 각각 존재 • Cell과 Hidden Output은 Encoder와 Decoder가 공유 • Encoder • 입력 문장을 Encoding • 입력 문장이 LSTM의 Cell과 Hidden Output 값으로 Vector화 • Decoder • Vector화 된 입력 문장을 Decoding하면서 번역 수행 • Softmax 연산 수행
  • 25. 4.3. 개발 1단계 • 입력 문장 재생성(Reconstruction) 하기 • Test PPL: 1.0029 D <EOS> DC D B C A BA CB <EOS>A
  • 26. 4.4. 개발 2단계 • Small Parallel Corpus로 NMT 만들기 (한국어 -> 영어) • 수 십만 개의 Parallel 문장 • 약 1,900만 단어 (한국어 + 영어) • 개발 결과 • 번역 수행 되는것 확인 • 장문에 취약 • 대용량 Corpus를 Training 하기에 너무 오래 걸림
  • 27. 4.5. 개발 3단계 (1/3) • Multi-GPU GPU 1 GPU 4 GPU 3 GPU 0 다 <EOS> DC D B C A BA 나가 <EOS> GPU 2
  • 28. 4.5. 개발 3단계 (2/3) • Sampled Softmax (1/2) LSTM Output 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]
  • 29. 4.5. 개발 3단계 (3/3) • Sampled Softmax (2/2) • NMT에서 계산량이 가장 많은 부분 • Vocab 개수 증가 -> 계산량 증가 • 해결책 • 학습시 Vocab의 일부만 Sampling하여 학습 • Sampling 방식 • 학습 문장에 포함된 Vocab은 무조건 추가 • 그 외의 Vocab은 Random으로 추가
  • 30. 4.6. 개발 4단계 (1/4) DecoderEncoder Input Layer LSTM Layer LSTM Layer LSTM Layer Attention Layer Softmax Layer • Attention
  • 31. 4.6. 개발 4단계 (2/4) • Attention • Target Word 생성시, 어떤 Source Word에 Focus를 맞춰서 생성해야 하는지 알려주는 모델 1. 매 time t마다, ht와 모든 hs의 내적을 통해 각 src word에 대한 tar word의 Score를 구함
  • 32. 4.6. 개발 4단계 (3/4) • Attention 2. Score에 Softmax 연산을 통해 확률 구함 (Alignment Score) 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를 적용하여 계산
  • 33. 4.6. 개발 4단계 (4/4) • Attention Map (영어 -> 한국어) • 입력: John loved Mary. 합계: 1.00
  • 35. 5.1. 소개 • N2MT • NAVER Neural Machine Translation • NSMT (NAVER Statistical Machine Translation)의 뒤를 잇는 2세대 Machine Translation • 자체 기술로 개발 (Open Source 기반 아님)
  • 36. 5.2. Demo 아래의 프로그램에서 N2MT를 사용 중 입니다. • Papago 통역앱 (모바일 번역앱) • Labspace NMT : http://labspace.naver.com/nmt/
  • 37. 5.3. 정량적 평가 (Automatic Evaluation) • 평가 방법 : BLEU • 평가 문장 개수 : 1,000 문장 17.19 21.26 0 5 10 15 20 25 NSMT N2MT 한국어 -> 영어 20.09 21.28 0 5 10 15 20 25 NSMT N2MT 영어 -> 한국어 +4.07 상승 +1.19 상승
  • 38. 5.4. 정성적 평가 (Human Evaluation) • 평가 방법 : Blind Test • 평가 문장 개수 : 100 문장 • 100점 만점. (평가자 2명 평군) 29.75 64.50 0 10 20 30 40 50 60 70 NSMT N2MT 한국어 -> 영어 36.9 63.5 0 10 20 30 40 50 60 70 NSMT N2MT 영어 -> 한국어 +34.75점 상승 +26.6점 상승
  • 39. 5.4. 정성적 평가 (Human Evaluation) • 번역 결과 주요 특징 • 완전한 형태의 문장을 생성. (비문이 생성되는 경우가 거의 없다.) • 번역 결과가 SMT 대비 많이 우수. (번역 결과가 틀릴 때는, 아예 딴 소리를 하는 경우도 많음.) • Vocab 개수의 제약으로, Out Of Vocab 문제가 발생.
  • 41. 6. 마무리하며... (1/2) • Deep Learning 분야에 많은 개발자들이 필요 • 기존 개발자도 노력하면, 진입할 수 있는 분야. • 꼼꼼한 성격 • Bug가 눈에 잘 띄지 않는다. • 학습이 제대로 안될뿐... • 많은 인내심 필요 • 뭐 하나 고치면, 결과 보는데 몇 시간씩 걸린다. • 개발 코드량은 얼마 되지 않는다.
  • 42. 6. 마무리하며... (2/2) • 모든 팀원들이 같은 주특기를 갖고 있는 것 보단, 여러 가지 주특기를 갖고 있는 사람들이 Harmony를 이루면 더 강력한 팀이 됨. • 네이버 Papago팀 = 기계번역 전문가 + Neural Network 전문가 + 시스템 전문가 • 많은 분들이 도전하셔서, 더 재미있고 좋은 세상을 만들었으면 좋겠습니다.
  • 43. References (1/2) • Word2Vec & Neural Network Language Model • 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. • LSTM • A. Graves. Generating sequences with recurrent neural networks. In Arxiv preprint arXiv:1308.0850, 2013. • 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
  • 44. References (2/2) • 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
  • 46. Q&A
  • 47. 부록. SMT (일반인용) • SMT는 문장의 일부분(word 혹은 phrase)을 보고 번역 수행. 입력: 출력: I 나는 아침 일찍 아침 준비를 했다. prepared breakfast early in the morning. • 번역 사전을 사용하여 번역 수행.
  • 48. 부록. SMT (일반인용) • 번역 사전 한국어 영어 비고 나는 I 아침 in the morning 동음이의어 아침 breakfast 동음이의어 일찍 early 준비를 했다. prepared • 두 언어의 말뭉치(Parallel Corpus)에서 통계 정보를 사용하여 구축. • 통계 정보에 기반하므로, 의미 정보 보다는 단어의 출현 빈도만을 기반으로 번역 사전을 구축하게 됨. (정확도 부족)
  • 49. 부록. SMT (일반인용) • 형태가 비슷한 언어 -> 높은 번역 정확도를 보임 • 한국어 / 일본어 • 영어 / 프랑스어 • 형태가 많이 다른 언어 -> 번역 정확도 미흡 • 한국어 / 영어
  • 50. 부록. NMT (일반인용) pre pared I morn ing break fast early in the나는 아침 일찍 아침 준비 를 했다 <끝> pre pared I morn ing break fast early in the <끝> • NMT의 특징 • 모든 단어를 고차원 Vector로 처리 • 단어의 입력/출력 순서를 학습 • 문장 전체의 의미를 파악한 후에, 번역을 수행 • 문장 의미 또한 고차원 Vector로 처리
  • 51. 부록. NMT (일반인용) • 모든 단어와 문장을 Vector로 처리 • 단어의 입력/출력 순서를 학습 • 매끄러운 번역 문장 생성. • 문장 Vector 기반 • 동음이의어라 하더라도, 전체 문장의 의미에 맞게 번역 가능 • 문장 Vector 정확도 하락 -> 번역 정확도 하락 • 문장 Vector 해석 정확도 하락 -> 번역 정확도 하락