@PyCon Korea 2014
NLTK 덕에 파이썬으로 자연어처리를 하는 것이 편리해졌다. 단, 한국어만 분석하려하지 않는다면. 파이썬으로 한국어를 분석할 수는 없을까? 국문, 영문, 중문 등 다양한 문자가 섞여 있는 문서는 어떻게 분석을 할 수 있을까?
이 발표에서는 자연어처리의 기초적인 개념을 다룬 후, NLTK 등의 자연어처리 라이브러리와 한국어 분석을 위해 개발중인 KoNLPy를 소개한다. 또, 파이썬으로 한국어를 분석할 때 유용한 몇 가지 트릭을 공유한다.
http://konlpy.readthedocs.org
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
도입
AI Chatbot 소개
Chatbot Ecosystem
Closed vs Open Domain
Rule Based vs AI
Chat IF Flow and Story Slot
AI기반의 학습을 위한 Data 구성 방법
Data를 구하는 법 / Train을 위한 Word Representation
Data의 구성 / Data Augmentation(Intent, NER)
자연어처리 위한 AI 적용 방안
Intent (Char-CNN) / QnA (Seq2Seq)
Named Entity Recognition (Bi-LSTM CRF) / Ontology (Graph DB)
Chatbot Service를 위한 Architecture 구성
Chatbot Architecture
NLP Architecture
Web Service Architecture
Bot builder / Chatbot API
Test Codes for Chatbot
실무에서 발생하는 문제와 해결 Tips
Ensemble and voting / Trigger / Synonym(N-Gram)
Tone Generator / Parallel processing / Response Speed
마무리
[설명 코드]
Text Augmentation / Slot Bot / QA Bot / Graph DB / Response Generator
기계번역은 하나의 언어로 기술된 문서를 다른 언어로 자동으로 번역하기 위한 제반 기술을 의미한다. 통상적으로 규칙 기반 기계번역(RBMT: Rule based machine translation)과 통계 기반 기계번역(SBMT: Statistical based machine translation), 그리고 규칙과 통계 기반 기술을 병합한 하이브리드 기계 번역으로 크게 나눌 수 있습니다. 하지만 알고리즘 측면에서 본다면 직접 방식, 중간언어 방식, 통계기반 , 하이브리드 번역 등으로 좀 더 세부적으로 나누어질 수 있다
인간이 사용하는 자연어(natural language)를 컴퓨터를 이용하여 처리하고자 하는 연구는 규칙 기반의 접근법(rule based approach)과 통계 기반의 접근법(statistics based approach)으로 나눌 수 있다. 통계 기반 접근법은 사람이 실제로 사용하는 많은 데이타로부터 확률정보 및 통계 정보를 추출하여 이를 통해 여러 언어현상을 규명하고자 하는 코퍼스 기반 접근법(corpus based approach)라고도 한다.
@PyCon Korea 2014
NLTK 덕에 파이썬으로 자연어처리를 하는 것이 편리해졌다. 단, 한국어만 분석하려하지 않는다면. 파이썬으로 한국어를 분석할 수는 없을까? 국문, 영문, 중문 등 다양한 문자가 섞여 있는 문서는 어떻게 분석을 할 수 있을까?
이 발표에서는 자연어처리의 기초적인 개념을 다룬 후, NLTK 등의 자연어처리 라이브러리와 한국어 분석을 위해 개발중인 KoNLPy를 소개한다. 또, 파이썬으로 한국어를 분석할 때 유용한 몇 가지 트릭을 공유한다.
http://konlpy.readthedocs.org
Python과 Tensorflow를 활용한 AI Chatbot 개발 및 실무 적용Susang Kim
도입
AI Chatbot 소개
Chatbot Ecosystem
Closed vs Open Domain
Rule Based vs AI
Chat IF Flow and Story Slot
AI기반의 학습을 위한 Data 구성 방법
Data를 구하는 법 / Train을 위한 Word Representation
Data의 구성 / Data Augmentation(Intent, NER)
자연어처리 위한 AI 적용 방안
Intent (Char-CNN) / QnA (Seq2Seq)
Named Entity Recognition (Bi-LSTM CRF) / Ontology (Graph DB)
Chatbot Service를 위한 Architecture 구성
Chatbot Architecture
NLP Architecture
Web Service Architecture
Bot builder / Chatbot API
Test Codes for Chatbot
실무에서 발생하는 문제와 해결 Tips
Ensemble and voting / Trigger / Synonym(N-Gram)
Tone Generator / Parallel processing / Response Speed
마무리
[설명 코드]
Text Augmentation / Slot Bot / QA Bot / Graph DB / Response Generator
기계번역은 하나의 언어로 기술된 문서를 다른 언어로 자동으로 번역하기 위한 제반 기술을 의미한다. 통상적으로 규칙 기반 기계번역(RBMT: Rule based machine translation)과 통계 기반 기계번역(SBMT: Statistical based machine translation), 그리고 규칙과 통계 기반 기술을 병합한 하이브리드 기계 번역으로 크게 나눌 수 있습니다. 하지만 알고리즘 측면에서 본다면 직접 방식, 중간언어 방식, 통계기반 , 하이브리드 번역 등으로 좀 더 세부적으로 나누어질 수 있다
인간이 사용하는 자연어(natural language)를 컴퓨터를 이용하여 처리하고자 하는 연구는 규칙 기반의 접근법(rule based approach)과 통계 기반의 접근법(statistics based approach)으로 나눌 수 있다. 통계 기반 접근법은 사람이 실제로 사용하는 많은 데이타로부터 확률정보 및 통계 정보를 추출하여 이를 통해 여러 언어현상을 규명하고자 하는 코퍼스 기반 접근법(corpus based approach)라고도 한다.
Chat bot making process using Python 3 & TensorFlowJeongkyu Shin
Recently, chat bot has become the center of public attention as a new mobile user interface since 2015. Chat bots are widely used to reduce human-to-human interaction, from consultation to online shopping and negotiation, and still expanding the application coverage. Also, chat bot is the basic of conversational interface and non-physical input interface with combination of voice recognition.
Traditional chat bots were developed based on the natural language processing (NLP) and bayesian statistics for user intention recognition and template-based response. However, since 2012, accelerated advance in deep-learning technology and NLPs using deep-learning opened the possibilities to create chat bots with machine learning. Machine learning (ML)-based chat bot development has advantages, for instance, ML-based bots can generate (somewhat non-sense but acceptable) responses to random asks that has no connection with the context once the model is constructed with appropriate learning level.
In this talk, I will introduce the garage chat bot creation process step-by-step. I share the idea and implementations of multi-modal machine learning model with context engine and conversion engine. Also, how to implement Korean natural language processing, continuous conversion and tone manipulation is also discussed.
Chat bot (챗 봇)은 2015년부터 모바일을 중심으로 새로운 사용자 UI로 주목받고 있다. 챗 봇은 상담시 인간-인간 인터랙션을 줄이는 용도부터 온라인 쇼핑 구매에 이르기까지 다양한 분야에 활용되고 있으며 그 범위를 넓혀 나가고 있다. 챗 봇은 대화형 인터페이스의 기초이면서 동시에 (음성 인식과 결합을 통한) 무입력 방식 인터페이스의 기반 기술이기도 하다.
기존의 챗 봇들은 자연어 분석과 베이지안 통계에 기반한 사용자 의도 패턴 인식과 그에 따른 템플릿 응답을 기본 원리로 하여 개발되었다. 그러나 2012년 이후 급속도로 발전한 딥러닝 및 그에 기초한 자연어 인식 기술은 기계 학습을 이용해 챗 봇을 만들 수 있는 가능성을 열었다. 기계학습을 통해 챗 봇을 개발할 경우, 충분한 학습도의 모델을 구축한 후에는 학습 데이터에 따라 컨텍스트에서 벗어난 임의의 문장 입력에 대해서도 적당한 답을 생성할 수 있다는 장점이 있다.
이 발표에서는 Python 3 및 TensorFlow를 이용하여 딥러닝 기반의 챗 봇을 만들 경우에 경험하게 되는 문제점들 및 해결 방법을 다룬다. 봇의 컨텍스트 엔진과 대화 엔진간의 다형성 모델을 구현하고 연결하는 아이디어와 함께 자연어 처리 및 연속 대화 구현, 어법 처리 등을 어떻게 모델링할 수 있는 지에 대한 아이디어 및 구현과 팁을 공유하고자 한다.
AURALISATION OF DEEP CONVOLUTIONAL NEURAL NETWORKS: LISTENING TO LEARNED FEAT...NAVER LABS
ISMIR ( International Society for Music Information Retrieval Conference ) 2015 에서 발표된 CNN 딥러닝 방법을 이용하여 음악을 분석하는 내용의 논문입니다.
저자 : Queen Mary University of London 최근우, 네이버랩스 김정희, Queen Mary University of London George Fazekas, Queen Mary University of London Mark Sandler
(Papers Review)CNN for sentence classificationMYEONGGYU LEE
review date: 2017/10/10 (by Meyong-Gyu.LEE @Soongsil Univ.)
Korean review of 'Convolutional Neural Networks for Sentence Classification'(EMNLP2014) and 'A Syllable-based Technique for Word Embeddings of Korean Words'(HCLT 2017)
모두를 위한 기계번역 (박찬준)
○ 개요
2014년 본격적으로 NMT에 대한 연구가 진행되었으며 현재는 Transformer 기반의 다양한 NMT 시스템들이 연구되고 있습니다.
더 나아가 최근 NLP에서 가장 뜨거운 연구분야인 Language Representation 분야에서도 Transformer를 기반으로 한 BERT, GPT-2, XLNET 등의 모델이 개발되고 있습니다.
본 테크톡에서는 먼저 RBMT와 SMT에 대해서 간략하게 살펴보고 RNN기반 NMT 부터 Transformer를 기반으로 하는 NMT까지 자세히 살펴볼 예정입니다.
더 나아가 최근 WMT에서 매년 Shared Task로 열리고 있는 Automatic Post Editing System과 Parallel Corpus Filtering, Quality Estimation 분야에 대해서 설명하며 NMT를 이용한 다양한 응용 연구분야를 소개해드리겠습니다. (ex. 실시간 강연통역 시스템, 문법교정 시스템) , 기계번역에 대해서 아무것도 모르시는 분, 궁금하시분들도 이해할 수 있는 수준으로 쉽게 설명을 진행할 예정입니다.
○ 목차
1)기계번역이란
2)RBMT에 대한 간략한 소개
3)SMT에 대한 간략한 소개
4)RNN기반 딥러닝부터 Transformer까지
5)NMT를 이용한 다양한 응용 연구 소개
a. Automatic Post Editing
b. Quality Estimation
c. Parallel Corpus Filtering
d. Grammar Error Correction
e. 실시간 강연통역 시스템
6)OpenNMT 소개
AI/Machine Learning의 한 분야인 Natural Language Processing (NLP)에 대해서 발표를 할 예정입니다. NLP는 한국어로 “자연어 처리”로서 Computer Vision 및 Image Processing에서 “언어적 문맥” 이해와 “그 처리”는 상당히 중요한 역할을 차지합니다. Image/Video를 Language화하여 처리하는 다양한 알고리즘이 존재하며 CVPR/ICCV의 학회에서도 핫한 분야 중 하나입니다. 대표적인 분야는 Image/Video Captioning, Description 및 Visual Q&A 등이 있습니다.
그 중에서도 핵심 Background가 되는 Word2Vec에 대해서 소개하고자 합니다. Word2Vec은 언어처리 뿐만 아니라 Generative Model과도 연관성이 높다는 것이 특징이며. NLP의 모든 분야에서의 핵심 이론으로 보시면 되겠습니다.
[한국어] Neural Architecture Search with Reinforcement LearningKiho Suh
모두의연구소에서 발표했던 “Neural Architecture Search with Reinforcement Learning”이라는 논문발표 자료를 공유합니다. 머신러닝 개발 업무중 일부를 자동화하는 구글의 AutoML이 뭘하려는지 이 논문을 통해 잘 보여줍니다.
이 논문에서는 딥러닝 구조를 만드는 딥러닝 구조에 대해서 설명합니다. 800개의 GPU를 혹은 400개의 CPU를 썼고 State of Art 혹은 State of Art 바로 아래이지만 더 빠르고 더 작은 네트워크를 이것을 통해 만들었습니다. 이제 Feature Engineering에서 Neural Network Engineering으로 페러다임이 변했는데 이것의 첫 시도 한 논문입니다.
2019년 파이콘 한국에서 진행된 튜토리얼 자료입니다. Part 2 내용으로 LRP에 대한 튜토리얼 발표자료입니다. 아래 링크를 통해 행사 관련 정보를 확인하실 수 있습니다.
http://xai.unist.ac.kr/Tutorial/2018/
https://github.com/OpenXAIProject/PyConKorea2019-Tutorials
Part 1: https://www.slideshare.net/OpenXAI/2019-part-1
Part 2: https://www.slideshare.net/OpenXAI/2019-lrp-part-2
Part 3: https://www.slideshare.net/OpenXAI/2019-shap-part-3
2017 tensor flow dev summit (Sequence Models and the RNN API)
작성된 자료로 2017년 2월 22일 오후 8시 부터 Maru180에서
GDG Seoul 에서 주최한 2017 Tensorflow Dev Summit Extended Seou에서
발표를 진행
Sequence Models and the RNN API 정리 내역 공유
신동광, 박태준, 박용효, 임수연, 김인숙. (2014, 9월). 영어 말하기 자동채점 프로그램의 현재와 미래. 한국멀티미디어언어교육학회 2014년 가을 학술대회 발표논문, 서울.
[초록]
본 연구는 영어 말하기 자동채점 프로그램의 개발을 통해 학교현장에서의 현
실적인 말하기 평가의 부담을 덜어주기 위해 2년간의 연구 프로젝트로 진행되었
다. 이를 위해 1차년도 연구에서는 말하기 자동채점 프로그램의 프로토타입을 개
발하였다. 2차년 연구에서는 이를 바탕으로 영어 말하기 자동채점 프로그램 음성
인식기의 인식률을 개선하여 영어 말하기 자동채점 프로그램의 성능을 향상시키
고 채점 기준을 상세화하며 추가적인 자동채점의 채점 자질을 발굴하여 자동채점
의 채점 알고리듬을 개선하고자 하였으며, 끝으로 영어 말하기 자동채점 프로그
램의 개선된 성능을 검증하고자 하였다.
먼저, 음성인식 고도화를 위하여 음성인식 시스템을 구성하는
사전처리(Preprocessing) 작업, 음향 모델링(Acoustic Modeling), 발음
사전(Phoneme Dictionary), 언어 모델링(Language Modeling) 그리고 발화
검증(Utterance Verification)에 최적화된 여러 기능을 적용하였다. 또한
자동채점의 최적화에 사용될 기준점수의 신뢰성 확보를 위해서 2인 채점
평균값을 기준점수로 활용하기 보다는 5인 채점 최빈값 및 평균값을 기준점수로
적용하며 총체적 채점을 시범적으로 적용해 보았다. 채점 자질 추가 선정을
위하여 신호처리 자질, 음성인식 자질 그리고 언어 이해 자질별로 새로운 자질을
적용하였고, 채점 자질의 복잡한 속성을 기계 채점이 일부 반영하지 못하는
한계를 보완하고 인간 채점자의 채점 경향에 최대한 근접하기 위해 채점
전문가를 대상으로 채점 자질 가중치 부여를 실시하였다. 마지막으로, 말하기
기계 채점 고도화를 위하여 최대 엔트로피(Maximum Entropy, ME) 방식과 다중
회귀(Multiple Regression, MR) 방식과 더불어 최근 데이터 마이닝과 패턴 인식
분야에서 많이 쓰이는 서포트벡터머신(Support Vector Machine, SVM) 방식을
새롭게 적용하였다.
연구결과를 살펴보면, 먼저 기준점수를 최빈값으로 대체하였을 효과는
미미했다. 엄격성 면에서도 자동채점이 인간채점보다 엄격하게 채점하는 경향을
보였다. 또한 분석적 채점 결과와 비교해 보았을 때, 총체적 채점 결과가 전체적으로 신뢰도가 높았으며 전체 신뢰도 역시 양호한 결과를 미루어 볼 때,
앞으로의 영어 말하기 자동채점 프로그램의 방식은 총체적 채점 방식에 맞춰
개발할 때 보다 향상된 결과가 예상되며 일선 학교에
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps...hoondong kim
[Tensorflow-KR Offline 세미나 발표자료]
Auto Scalable 한 Deep Learning Production 을 위한 AI Serving Infra 구성 및 AI DevOps Cycle 구성 방법론. (Azure Docker PaaS 위에서 1만 TPS Tensorflow Inference Serving 방법론 공유)
Intro to JavaScript - Week 1: Value, Type, OperatorJeongbae Oh
Intro to Programming with JavaScript Seminar, Fall 2017 semester
Week 1: Value, Type, Operator
Led by Jeongbae Oh, in conjunction with YCC (Yonsei Computer Club) @ Yonsei University
This seminar intends to introduce newcomers to programming using JavaScript, one of the most versatile languages of the modern world.
Similar to [224] backend 개발자의 neural machine translation 개발기 김상경 (20)
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 학습
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
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
29. 4.5. 개발 3단계 (3/3)
• Sampled Softmax (2/2)
• NMT에서 계산량이 가장 많은 부분
• Vocab 개수 증가 -> 계산량 증가
• 해결책
• 학습시 Vocab의 일부만 Sampling하여 학습
• Sampling 방식
• 학습 문장에 포함된 Vocab은 무조건 추가
• 그 외의 Vocab은 Random으로 추가
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
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 해석 정확도 하락 -> 번역 정확도 하락