자연어처리를 위한 딥 러닝 Deep Learning for NLP

자연어처리를 위한 딥 러닝
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], {(체결했다4CJ그룹이1), …}
• 7: Right-arc(VP)
[root4 (1,3)체결했다4], [], {(root체결했다4), …}
전이 기반의 한국어 의존구문분석(강원대):
Backward
•
Transition-based(Arc-Eager) + Backward: O(N)
•
예: CJ그룹이 대한통운 인수계약을 체결했다
–
–
–
–
–
–
–
[root], [체결했다4 인수계약을3 대한통운2 CJ그룹이1], {}
• 1: Right-arc(VP)
[root4 체결했다4], [인수계약을3 …], {(root체결했다4)}
• 2: Right-arc(NP_OBJ)
[root4 체결했다43 인수계약을3], [대한통운2 …], {(체결했다4인수계약을3), …}
• 3: Right-arc(NP_MOD)
[root4 체결했다43 인수계약을32 대한통운2], [CJ그룹이1], {(인수계약을3대한통운2),
…}
• 4: Reduce
[root4 체결했다43 인수계약을32], [CJ그룹이1], {(인수계약을3대한통운2), …}
• 5: Reduce
[root4 체결했다43], [CJ그룹이1], {(인수계약을3대한통운2), …}
• 6: Right-arc(NP_SUB)
[root4 체결했다4(1,3) CJ그룹이1], [], {(체결했다4CJ그룹이), …}
딥 러닝 기반 한국어 의존구문분석 (강원대)
•
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