자연어처리를 위한 딥 러닝 Deep Learning for NLP Some Slides from NAACL2013 Deep Learning for NLP tutorial, Winter School Deep learning, Deview 2013 Deep Learning 차례 • 딥 러닝 소개 • 자연어처리를 위한 딥 러닝 기술 자연어처리 소개 • 자연어처리 문제 분류 문제 (Supervised Learning) • Sequence Labeling Problem – 한국어 띄어쓰기 – KCC2012 • x = <아, 버, 지, 가, 방, 에, 들, 어, 가, 셨, 다, ‘.’> • y = < B, I, I, I, B, I, B, I, I, I, I, I> – 한국어 품사 태깅 (음절 기반) – KCC2013 • X = <기, 쁨, 을, 감, 추, 지, 못, 했, 다> • Y = <B-NNG, I-NNG, B-JKO, B-VV, I-VV, B-EC, B-VX, I-VX, B-EF> – 한국어 개체명 인식 – 한글 및 한국어 정보처리 2010 • x = <한나라당/nn, 조해진/nn, 대변인/nc, …> • y = < B-ORG, B-Per, O, …> – 한국어 의미역 결정 – KCC2014 • x = <르노가1, 삼성자동차를2, 인수한다3> • y = <O, O, P1> : PIC • z3= <A0, A1, O> : 인수.1 HMM MEMM CRF s s1 , s2 ,...sn o o1 , o2 ,...on St-1 St St+1 ... |o | HMM: P( s , o ) P( st | st 1 ) P(ot | st ) 다양한 Feature 사용 X t 1 Ot-1 Ot Ot+1 ... |o | MEMM: P ( s | o ) P ( st | st 1 , ot ) 다양한 Feature 사용 t 1 |o | t 1 1 Z st 1 ,ot j f j ( st , st 1 ) j exp k g k ( st , xt ) k j f j ( st , st 1 ) j 1 CRF: P( s | o ) exp Z o t 1 k g k ( st , xt ) k 다양한 Feature 사용 St-1 Ot-1 St Ot St-1 St+1 ... Ot+1 St St+1 ... |o | Label bias 문제 해결 Ot-1 Ot ... Ot+1 ... SVM Structural SVM 구문 분석 예 x 개체명 인식 예 y | B Org nn 1 B Org nc 0 0 B Org jc (x, y ) 1 B Per nn 1 O nc … 1 B Org 한나라당 | 한나라당/nn 조해진/nn 대변인/nc 은/jc … B-Org — B-Per | — | O — O 한나라당/nn 조해진/nn 대변인/nc 은/jc … 기존 기계학습 방법론 • Feature Extraction에 많은 경험/노력/시간 필요 – 성능(품질) 차이: 알고리즘 < 자질 – 연구의 흐름: 새로운 기계학습 알고리즘 새로운 자 질 추출 • Supervised Learning에 필요한 학습 데이터 구축 비용/시간 – Semi-supervised learning – Unsupervised feature learning • Word clustering, … 한국어 개체명 인식기 – 자질 예 • • 실험에 사용된 모든 기계학습 알고리즘에 공통으로 사용됨 자질 – – – – – – – – – – 어휘 자질: (-2,-1,0,1,2) 위치에 해당하는 형태소 어휘 접미사(suffix) 자질: (-2,-1,0,1,2) 위치에 해당하는 형태소 어휘의 접미사(suffix) 형태소 태그 자질: (-2,-1,0,1,2) 위치에 해당하는 형태소의 POS tag 형태소 태그 + 길이 자질: 태그와 형태소의 길이 조합 형태소의 어절 내 위치: 형태소가 어절의 시작, 중간, 끝 위치에 있는 지에 대한 정보 개체명 사전 자질: 개체명 사전에 존재하는 지에 대한 정보 개체명 사전 자질 + 형태소 길이 자질 15개의 정규 표현식: [A-Z]*, [0-9]*, [0-9][0-9], [0-9][0-9][0-9][0-9], [A-Za-z0-9]*, … N-gram class 기반의 word cluster 자질 어휘망을 이용한 어휘 의미 자질 Deep Neural Networks • Deep Neural Network = Neural Network + multiple levels of nonlinear operations. 8 Neural Networks 9 Network Depth and Decision Region [Lipman87] Why Deep Neural Networks? • 사람의 인지 과정과 유사함 – 추상화: 저수준의 표현 고수준의 표현 11 Why Deep Neural Networks?: Integrated Learning • 기존 기계학습 방법론 – Handcrafting features time-consuming • Deep Neural Network: Feature Extractor + Classifier 12 Why Deep Neural Networks?: Unsupervised feature learning • 기계학습에 많은 학습 데이터 필요 – 소량의 학습 데이터 – 학습 데이터 구축 비용/시간 – 대량의 원시 코퍼스 (unlabeled data) • Deep Neural Network – Pre-training 방법을 통해 대량의 원시 코퍼스에서 자질 학습 – Restricted Boltzmann Machines (RBM) – Stacked Autoencoder, Stacked Denosing Autoencoder – Word Embedding (for NLP) 13 DNN Difficulties Now • 학습이 잘 안됨 Unsupervised Pre-training – Back-propagation 알고리즘 X • 많은 계산이 필요함 하드웨어/GPU 발전 – Many parameters • Over-fitting 문제 Pre-training, Drop-out, … 14 The Back-Propagation Algorithm Deep Belief Network [Hinton06] • Key idea – Pre-train layers with an unsupervised learning algorithm in phases – Then, fine-tune the whol e network by supervised learning • DBN are stacks of Restricted Boltzmann Machines (RBM) 16 Restricted Boltzmann Machine • A Restricted Boltzmann ma chine (RBM) is a generative stochastic neural network that can learn a probability distribution over its set of inputs • Major applications – Dimensionality reduction – Topic modeling, … 17 Energy Based Models Sampling from RBM MLE Training of Boltzmann Machine MLE Training of Boltzmann Machine MLE Training of Boltzmann Machine MLE Training of Boltzmann Machine Training of RBM [Hinton02] Contrastive Divergence Minimization Contrastive Divergence Minimization Training DBN: Pre-Training • 1. Layer-wise greedy unsupervised pre-training – Train layers in phase from the bottom layer 27 Training DBN: Fine-Tuning • 2. Supervised fine-tuning for the classification task 28 Other Pre-training Methods • • • • Autoencoder Stacked Autoencoder Stacked Denosing Autoencoder Word Embedding (for NLP) – Neural Network Language Model – Word2vec • … 29 Autoencoder • Autoencoder is an NN whose desired output is the same as the input – To learn a compressed representation (encoding) for a set of data. – Find weight vectors A and B that minimize: i(yi-xi)2 30 Stacked Autoencoders • After training, the hidden node extracts features from the input nodes • Stacking autoencoders constructs a deep network 31 Denoising Autoencoder [Vincent08] 32 Experiments – MNIST (Larochelle et al. 2009) 33 Why is unsupervised pre-training working so well? • Regularization hypothesis: – Representations good for P(x) are good for P(y|x) • Optimization hypothesis: – Unsupervised initializations start near better local minimu m of supervised training error – Minima otherwise not achievable by random initialization 34 Regularization / Weight Normalization Dropout [Hinton 2012] • In training, randomly dropout hidden units with probability p. 36 Dropout – cont’d Dropout – cont’d • Overfitting can be reduced by using dropout – Drop out 20% of input units and 50% of the hidden units 38 Rectified Linear Hidden Unit (ReLU) • Sparse Coding – Allow only a small number of computational units to have non-zero values 39 ReLU – cont’d 40 Maxout Networks [ICML13] • Learn the activation function • Maxout unit: – k is # linear models, m is # hidden units Convolutional Neural Network [LeCun 98] • Sparse Connectivity • Shared Weights • MaxPooling, Folding, … • Ex. LeNet Supervised Unsupervised SVM is a special case of NN Input X1 SVM X2 Support Vector Kernel Output Deep Learning Tip: Drop-Out or RBM • Drop-Out is better than RBM – Overfitting 을 줄일 pre-training 목적이라면 굳이 RBM을 쓸 필요 없음 (Naver Labs 음성 인식) – Drop-Out과 함께 ReLU – RMB의 효용성 • Unsupervised training • Feature extractor 45 Deep Learning Tip: Noisy Input Data • Noisy한 input data가 많다면 굳이 RBM도 Drop-Out도 쓰지 않아도 됨 (Naver Labs 음성인식) – Noisy data의 역할 • Local minimum에 빠지는 것을 방지 • Regularizer by Randomness의 역할 – Noisy data가 없다면 만들어서라도 넣어라 • Image 좌우 반전, 약간의 왜곡 • 음성 임의의 배경 잡음 삽입 46 Deep Learning: Parameters • DNN Structure – – – – Input layer의 node 개수 Output layer의 node 개수 Hidden layer의 개수 Hidden layer의 node 개수 • Training Parameters – – – – – Momentum Learning Rate Weight Initial value Drop Out Mini-batch size 47 Deep Learning: Parameters DNN Structure Training Parameters • Input layer의 node 개수 • Output layer의 node 개 수 • Hidden layer의 개수 • Hidden layer의 node 개 수 • • • • • Momentum Learning Rate Weight Initial value Drop Out Mini-batch size 48 차례 • 딥 러닝 소개 • 자연어처리를 위한 딥 러닝 기술 텍스트의 표현 방식 • One-hot representation (or symbolic) – Ex. [0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0] – Dimensionality • 20K (speech) – 50K (PTB) – 500K (big vocab) – 3M (Google 1T) • • Class-based (hard clustering) word representations – Brown clustering (Brown et al. 1992) Continuous representation – Latent Semantic Analysis, Random projection – Latent Dirichlet Allocation, HMM clustering – Distributed Representations (Neural word embedding) • Dense vector • By adding supervision from other tasks improve the representation Neural Network Language Model [01,05,11] • Idea – A word and its context is a positive training sample – A random word in that sam e context negative traini ng sample – Score(positive) > Score(neg.) • Training complexity is high – Hidden layer output – Softmax in the output layer • Hierarchical softmax • Negative sampling • Ranking(hinge loss) Shared weights = Word embedding Word Embedding (t-SNE) 52 Recurrent NN LM [NAACL13] • RNN – The hidden layer s(t) maintains a representati on of the sentence history Word embedding Word2Vec: CBOW, Skip-Gram • Remove the hidden layer Speedup 1000x • Continuous Bag-of-words (CBOW) – Predicts the current word given the context • Skip-gram – Predicts the surrounding words given the current word • CBOW + Dropout Skip-gram? Shared weights Korean Word Embedding: NNLM • Data – 세종코퍼스 원문 + Korean Wiki abstract • 2억 8000만 형태소 – Vocab. size: 60,000 • 모든 형태소 대상 (기호, 숫자, 한자, 조사 포함) • 숫자 정규화 + 형태소/POS: 정부/NNG, 00/SN • NNLM model – Dimension: 50 – Matlab 구현 – 학습시간: 16일 Korean Word Embedding: NNLM Korean Word Embedding: Ranking-based • Data (앞과 동일) – 2억 8000만 형태소 – Vocab. size: 60,000 • Ranking-based NNLM – – – – – 기존 연구: Hinge loss 본 논문 추가: Logit loss Dimension: 50 Matlab 구현 학습시간: 1.9일 Shared weights = Word embedding Korean Word Embedding: Ranking(logit) Korean Word Embedding: Word2Vec • Data – 2012-2013 News + Korean Wiki abstract: • 9GB raw text • 29억 형태소 – Vocab. size: 100,000 • 모든 형태소 대상 (기호, 숫자, 한자, 조사 포함) • 숫자 정규화 + 영어 소문자 + 형태소/POS • Modified Word2Vec – 기존: softmax (or Logit loss) – 본 논문 추가: Hinge loss NLP 적용시 결과가 안 좋음 • Score(correct) > Score(incorrect) + Margin – Minor upgrade (Iteration 추가) – 모델: CBOW > SKIP-Gram – 학습 시간: 0.08일 Shared weights Korean Word Embedding: Word2Vec Korean Word Embedding – 모델별 정리 • 모델별 단어 표현 학습 시간 및 학습 데이터 • 모델별 “서울/NNP”와 가장 유사한 단어 상위 5개 NLP (Almost) From Scratch (Collobert and Weston, 2011) 62 Collobert and Weston, 2011 63 English POS Tagging (강원대) • Structural SVM – 성능: 97.04% – 피쳐: (window size 2) lexical feature (unigram, bigram), prefix/suffix feature, is_capital/is_num feature • Deep Learning (ReLU + dropout) – Word embedding (NNLM - Senna) – Feature embedding: suffix, 대소문자 – 성능: 97.26% (+0.22) ReLU • No pre-training: 97.12% (+0.08) – Feature embedding: S-SVM 결과, 사전, 대소문자 성능: 97.47% (+0.43) 64 English NER (강원대 - BBN) • BBN 데이터 셋 이용 • 실험 환경 • Structural SVM • Deep Learning (ReLU + dropout) – WSJ 데이터 사용, QA를 위한 개체명 인식 – 태그 셋: 104개 29개 상위 셋 사용 – Training set (0~22): 45144 문장 45097 문장 사용 (108만 단어) – Test set (23): 2416 문장 2414 문장 사용 – Development set (24): 1346 문장 1345 문장 사용 – 기본 피쳐 + Wiki NE 사전 피쳐 + Word cluster + Word embedding – 성능: F1=91.74% (기본 피쳐: 90.66%) – Word embedding (NNLM - Senna) – Feature embedding: 사전, 대소문자 – 성능: F1=90.01% • • • ReLU + no pre-training: F1=88.31% Sigmoid + pre-traininig: F1=88.19% Sigmoid + no pre-traininig: F1=85.37% – CNN+ReLU+dropout: F1=91.40% ReLU 전이 기반의 한국어 의존구문분석(강원대): Forward • Transition-based(Arc-Eager): O(N) • 예: CJ그룹이1 대한통운2 인수계약을3 체결했다4 – – – – – – – – [root], [CJ그룹이1 대한통운2 …], {} • 1: Shift [root CJ그룹이1], [대한통운2 인수계약을3 …], {} • 2: Shift [root CJ그룹이1 대한통운2], [인수계약을3 체결했다4], {} • 3: Left-arc(NP_MOD) [root CJ그룹이1], [2인수계약을3 체결했다4], {(인수계약을3대한통운2)} • 4: Shift [root CJ그룹이1 2인수계약을3], [체결했다4], {(인수계약을3대한통운2)} • 5: Left-arc(NP_OBJ) [root CJ그룹이1], [3체결했다4], {(체결했다4인수계약을3), …} • 6: Left-arc(NP_SUB) [root], [(1,3)체결했다4], {(체결했다4CJ그룹이1), …} • 7: Right-arc(VP) [root4 (1,3)체결했다4], [], {(root체결했다4), …} 전이 기반의 한국어 의존구문분석(강원대): Backward • Transition-based(Arc-Eager) + Backward: O(N) • 예: CJ그룹이 대한통운 인수계약을 체결했다 – – – – – – – [root], [체결했다4 인수계약을3 대한통운2 CJ그룹이1], {} • 1: Right-arc(VP) [root4 체결했다4], [인수계약을3 …], {(root체결했다4)} • 2: Right-arc(NP_OBJ) [root4 체결했다43 인수계약을3], [대한통운2 …], {(체결했다4인수계약을3), …} • 3: Right-arc(NP_MOD) [root4 체결했다43 인수계약을32 대한통운2], [CJ그룹이1], {(인수계약을3대한통운2), …} • 4: Reduce [root4 체결했다43 인수계약을32], [CJ그룹이1], {(인수계약을3대한통운2), …} • 5: Reduce [root4 체결했다43], [CJ그룹이1], {(인수계약을3대한통운2), …} • 6: Right-arc(NP_SUB) [root4 체결했다4(1,3) CJ그룹이1], [], {(체결했다4CJ그룹이), …} 딥 러닝 기반 한국어 의존구문분석 (강원대) • Transition-based + Backward – O(N) – 세종코퍼스 의존 구문 변환 • 보조용언/의사보조용언 후처리 • Deep Learning 기반 – ReLU(> Sigmoid) + Dropout – Korean Word Embedding • NNLM, Ranking(hinge, logit) • Word2Vec – Feature Embedding • POS (stack + buffer) – 자동 분석(오류 포함) • • • • Dependency Label (stack) Distance information Valency information Mutual Information – 대용량 코퍼스 자동 구문 분석 실험 결과 • 기존연구: UAS 85~88% • Structural SVM 기반 성능: • UAS=89.99% • LAS=87.74% • • • • • Pre-training > no Pre. Dropout > no Dropout ReLU > Sigmoid MI feat. > no MI feat. Word Embedding 성능순 위 1. NNLM 2. Ranking(logit loss) 3. Word2vec 4. Ranking(hinge loss) Structural SVM 기반의 한국어 의존구문분석 방법론 UAS LAS 1. Arc-Eager(Labeled) 86.92 84.19 2. Arc-Eager(Labeled + Reverse order) 87.32 84.56 3. Arc-Eager(Labeled + Reverse order) + 자질 추가 (baseline) 88.22 (0) 85.29 (0) 4. (3) + Word Embedding (WE) 자질 88.30 (+0.08) 85.47 (+0.18) 5. (3) + WE + Word Cluster (WC) 자질 88.34 (+0.12) 85.51 (+0.22) 6. (3) + WE + WC + Mutual Information (MI) 자질 88.45 (+0.23) 85.63 (+0.34) 7. (6) + 어절의 첫 두 단어 lexical/POS 자질 88.54 (+0.32) 85.69 (+0.40) 8. (7) – WE : update WC 88.43 (+0.21) 85.53 (+0.24) 9. (7) – WE : update WC, update POS 89.15 (+0.93) 86.93 (+1.64) 10. (7) – WE : update WC, update POS, update MI 89.26 (+1.04) 86.99 (+1.70) 11. (10) : (의사)보조용언 처리 89.99 (+1.77) 87.74 (+2.45) 12. (11) : Beam search with Averaged Perceptron (beam=4) (6월) 90.02 (+1.80) 87.48 (+2.19) 의존구문분석 학습 후 WE: No Pre-training 의존구문분석 학습 후 WE: NNLM 의존구문분석 학습 후 WE: Ranking(logit) 의존구문분석 학습 후 WE: Word2Vec
© Copyright 2024