This slide explain the Deep Learning Text NLP for Korean Language. We will also discuss expansion using Spark in Deep Learning Approach to BigData Scale data.
이 슬라이드에서는 한글의 deep learning Text NLP에 대하여 설명한다. 또한, BigData Scale 데이타에 대한 Deep Learning Approach 에 있어, Spark 를 이용한 확장에 대하여도 다룬다.
Deep learning text NLP and Spark Collaboration . 한글 딥러닝 Text NLP & Spark
1. Spark Day 2017
Deep Learning Text NLP
with Spark Collaboration
스사모(Spark Korea User Group)
SSG.COM BigData Team
김훈동
2. Who am I ?
• 김훈동
• 스사모(Korea Spark User Group)
• 신세계 그룹 온라인 포털 SSG.COM 빅데이타파트 리더
• Hadoop, Spark, Machine Learning, Azure ML 분야
Microsoft MVP(Most Valuable Professional)
• Major in BigData RealTime Analytics & NoSQL
• http://hoondongkim.blogspot.kr
3. I will say …
• Buzzword( AI, ML, DL … )
• 챗봇 & Text NLP …
• Deep Learning NLP
• 다양한 알고리즘.
• 성능
• 구현 Code 및 결과 Review
• Pain Point
• Spark Collaboration for Deep Learning
• 결론
7. Buzzword 챗봇에 대하여
Closed Domain Chatbot vs Open Domain Chatbot
Retrieval Based Model vs Generative Model
Easy Hard
한정된 도메인.
특정 분야.
Pre-defined Response
때로는 Rule Base
때로는 Text Classification
도메인 및 의도 한정 없음.
열린 분야.
질문에 따라 답변 생성
학습하지 못한 질문에 대하여도
적절한 답변 생성 및 창조
8. Machine Learning vs Deep Learning
• 보다 긴 역사를 가지고 있다.
• 많은 구현체, 검증된 방법론들이 있다.
• 보다 다양한 요건에 대한 방법론이 존
재한다.
• 작은 데이터로 빠른 성능에 도달하기
도 한다.
[장점]
[단점]
• 특정 분야에서는 Deep Learning 보다
정확도가 많이 떨어진다.
• Feature selection , 검증 등에 있어,
Deep Learning 의 end to end 방식에
비하여 손이 많이 가고, feature 가 매
우 많을 때에는 현실적이지 않을 수 있
다.
• 특정 분야에 있어서는 Dramatic한 성
능 향상을 꽤 할 수 있다.
• Feature Selection 등에 큰 공을 들이지
않더라도, 모델이 end to end 로 학습
하고 선별하는 경우가 많다.
• 상당히 많은 Label 데이터가 필요 할
때가 많다.
• 작은 양의 데이터로는 Under fit 되는
경우가 ML의 경우보다 더 많다.
• GPU 및 BigData Scale Computing 환
경 등, 고사양의 Compute 자원을 필요
로 한다.
9. 개발자 입장에서 Deep Learning 이란?
• 제프 딘 역할
• 우리가 더 잘하는 건….
• 대용량 데이터 처리
• 데이터 전처리 , 후처리
• 알고리즘 구현(코딩 레벨 구현)
• Deep Learning 은 Low Level 코딩 구현이 더 많음.
• Deep Learning 특히 CNN, RNN, RNN변형 , RL 등은 수학이 그리 복잡하
지 않음.
• 이전의 Machine Learning
• Markov-Chain Monte Carlo
• Gibbs Sampler
• Variation Inference
• Deep Belief Network
• 현재의 Deep Learning
• CNN
• RNN
• LSTM …
Mathematical formula
Engineering Art
10.
11. Machine Learning vs Deep Learning
Sentimental Analysis for 한글
1. Naïve Bayes
2. Word2Vec + CNN
한글문장 긍부정 Sentimental 분류
Naïve Bayes 83.2%
Word2Vec + CNN 85.4%
- 긍부정 정확도 Score 출처. (by 송치성(바벨피쉬))
작은 크기 데이터.
긍 부정 등 쉬운 분류 문제에서는 Machine Learning
도 매우 정확하고, 훨씬 Training 이 빠름!
12. Machine Learning vs Deep Learning
Sentimental Analysis for 한글
1. Multinomial Naïve Bayes
2. Count Vector + SVM
3. TF-IDF + SVM
4. Word2Vec + CNN
한글문장 138지 분류
(1:1고객응대 Data)
Multinomial Naïve Bayes 32.31%
Count Vector + SVM 17.28%
TF-IDF + SVM 51.21%
Word2Vec + CNN 59.00%
- 사용데이타 SSG.COM 1:1 고객응대 CS Data, 138지 분류 문제 (Top 1 맞추기)
- Training Data : 1,649,415건
데이터 충분히 많은 경우.
좀 어려운 다지 분류 문제로 가보자.
13. Deep Learning Text Classification Deep Dive for 한글
1. Word2Vec + CNN (Batch Normalize + Augmentation)
2. Word2Vec + LSTM
3. Word2Vec + CNN + LSTM
4. Word2Vec + Bidirectional GRU
5. Word2Vec + Bidirectional GRU + Attention Network
6. FastText
7. Glove + LSTM
- 사용데이타 SSG.COM 1:1 고객응대 CS Data – 고객 라벨링
14. Deep Learning Text Classification Deep Dive for 한글
1. Word2Vec + CNN (Batch Normalize + Augmentation)
2. Word2Vec + LSTM
3. Word2Vec + CNN + LSTM
4. Word2Vec + Bidirectional GRU
5. Word2Vec + Bidirectional GRU + Attention Network
6. FastText
7. Glove + LSTM (Tensorflow GPU vs BigDL on Spark Cluster)
- 사용데이타 : SSG.COM 1:1 고객응대 CS Data 총 31지 분류 (top 1 맞추기) – 고객 라벨링
- Training Data : 1,649,415건
72.30%
73.94%
72.97%
74.36%
73.15%
72.50%
...ing
17. Training 속도에 대하여
• Best Score is Word2Vec + Bidirectional GRU
• Tesla M40 GPU
• Training Data 165만 건
• Learning Rate 0.0005
• 5 Epoch 에 50000초 = 833분 = 약 14시간
20. Deep Learning Text NLP – Pain Point
1. 검증된 알고리즘 코딩시간
< 해당 알고리즘에 Data 를 태우기 까지의 전처리 (of course 재활용 가능)
< Hyper Parameter Optimization
2. Data 전처리, Pandas, Numpy ? One Single Core for 수백 기가 이상 데이터??
3. GPU 의 small memory, GPU 머신 수 부족.
4. GPU 를 이용한 병렬 Deep Learning 코딩 은 흡사 초기 Map/Reduce 코딩 유사
5. 수백 기가 이상 데이터에 대한 Deep Learning?
6. 반복, 반복, 반복, parameter 바꾸고 또 반복….
33. 기타.
• Deep Learning 툴 소개
• http://ankivil.com/choosing-a-deep-learning-software/
• 딥러닝 프레임워크 속도 비교
• https://tensorflow.blog/2017/02/13/chainer-mxnet-cntk-tf-
benchmarking/
• Keras
• 버전 2 준비 되고 있음.
• CNTK 도 Keras 백엔드가 될 듯.
• Keras 가 Tensorflow 코드 베이스로 흡수??
35. Conclusion
• Deep Learning 이 은총알은 아니지만…
• 특정 분야에 성능에 있어 퀀텀 점프 된 성능을 보이는 것은 사실..
• 다양한 도구와 툴이 생겨나면서 진입장벽도 낮아지고 있음.
• 개발자가 유리한 부분이 많음. (최소한의 이론 습득이 갖추어 져 있
다면.)
• 현재의 상황을 보면, 좀더 Deep Learning 이 보급되고 보편화 될것
으로 보임.
• Pain Point 를 통해 예측컨데, 다시 Spark 가 힘을 받을 수 있는 환
경이 갖추어 지고 있음.