33
강원대 컴퓨터과학과 이창기

[F2]자연어처리를 위한 기계학습 소개

Embed Size (px)

Citation preview

Page 1: [F2]자연어처리를 위한 기계학습 소개

강원대 컴퓨터과학과 이창기

Page 2: [F2]자연어처리를 위한 기계학습 소개

  자연어처리 소개 ◦  한국어 자동 띄어쓰기, 한국어 개체명 인식

  자연어처리를 위한 기계학습 소개: ◦  ME, CRF, SVM, Structural SVM

  한국어 자동 띄어쓰기 실험 결과   한국어 개체명 인식 실험 결과

Page 3: [F2]자연어처리를 위한 기계학습 소개

  자동 띄어쓰기 (word segmentation) ◦  단어(한국어인 경우 어절)간의 경계를 결정하는 문제

  중국어와 일본어에서는 필수적인 과정으로 이들 언어권에서 많은 연구가 진행됨   주로 통계기반 - HMM, SVM, CRF

◦  한국어에서는 어절 단위 띄어쓰기를 하고 있음   메신저, SMS, 블로그, 트윗, 댓글 등에서 띄어쓰기 오류 문제   문자 인식기, 음성 인식기 등의 결과의 띄어쓰기 후처리 모듈

◦  일반적으로 띄어쓰기가 완전히 무시된 한국어 문장 입력 가정   띄어쓰기가 잘 되어있는 코퍼스를 학습데이터로 사용

◦  한국어 띄어쓰기 선행연구   주로 통계기반: HMM, CRF

  본 발표 ◦  Structural SVM (Pegasos 알고리즘)을 이용한 한국어 자동 띄어쓰기

Page 4: [F2]자연어처리를 위한 기계학습 소개

  x = <아, 버, 지, 가, 방, 에, 들, 어, 가, 셨, 다, ‘.’>   y = < B, I, I, I, B, I, B, I, I, I, I, I>

Page 5: [F2]자연어처리를 위한 기계학습 소개

  개체명 인식 ◦  인명, 지명, 기관명 등의 개체명을 문서에서 추출하고 종류를 결정 ◦  Message Understanding Conference (MUC)에서 본격적으로 연구

시작 ◦  CoNLL 2002, 2003에서 더욱 발전됨

  최고 성적을 낸 IBM의 시스템은 여러 기계학습 방법을 voting, 영어의 경우 약 F1=89

◦  최근에 주로 이용되는 방법은 통계기반의 기계학습 방법   HMM, MEMM, SVMs, CRFs

  본 발표 ◦  Structural SVMs 및 Pegasos 알고리즘을 이용한 개체명 인식 시스템을

소개하고, 기존의 CRFs 기반의 개체명 인식 시스템과 비교 실험 수행

Page 6: [F2]자연어처리를 위한 기계학습 소개

x

y

한나라당/nn 조해진/nn 대변인/nc 은/jc …

B-Org — B-Per — O — O … | | | |

한나라당/nn 조해진/nn 대변인/nc 은/jc … 한나라당→−

→−

→−

→−

→−

⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜

OrgBncOnnPerBjcOrgBncOrgBnnOrgB

111001

),( yx

  x = <한나라당/nn, 조해진/nn, 대변인/nc, …>   y = < B-ORG, B-Per, O, …>

Page 7: [F2]자연어처리를 위한 기계학습 소개

  자연어처리 소개 ◦  한국어 자동 띄어쓰기, 한국어 개체명 인식

  자연어처리를 위한 기계학습 소개: ◦  ME, CRF, SVM, Structural SVM

  한국어 자동 띄어쓰기 실험 결과   한국어 개체명 인식 실험 결과

Page 8: [F2]자연어처리를 위한 기계학습 소개

nn oooossss ,...,,..., 2121 ==

HMM:

MEMM:

CRF:

St-1 St

Ot

St+1

Ot+1 Ot-1

...

...

St-1 St

Ot

St+1

Ot+1 Ot-1

...

...

St-1 St

Ot

St+1

Ot+1 Ot-1

...

...

∏=

−∝||

11 )|()|(),(

o

ttttt soPssPosP

∏∑

=

=−

⎟⎟⎟

⎜⎜⎜

+∝

||

1

1

,

||

11

),(

),(exp1

),|()|(

1

o

tk

ttkk

jttjj

os

o

tttt

xsg

ssf

Z

ossPosP

tt

µ

λ

∏∑

=

⎟⎟⎟

⎜⎜⎜

+∝

||

1

1

),(

),(exp1)|(

o

tk

ttkk

jttjj

o xsg

ssf

ZosP

µ

λ

Page 9: [F2]자연어처리를 위한 기계학습 소개

9

  It can be proved that ME solution p* must have the form:

  So our task is to estimate parameters λi in p* which maximize H(p) ◦  When the problem is complex, we need to find a way to aut

omatically derive λi, given a set of constraints

∑ ∑

⎥⎦

⎤⎢⎣

⎡=

⎥⎦

⎤⎢⎣

⎡=

=

=

y

k

iii

k

iii

yxfxZ

yxfxZ

xyp

1

1

),(exp)(

),(exp)(

1)|(

λ

λ

Page 10: [F2]자연어처리를 위한 기계학습 소개

10

Page 11: [F2]자연어처리를 위한 기계학습 소개

Lagrange multiplier

Solve:

Page 12: [F2]자연어처리를 위한 기계학습 소개

12

Page 13: [F2]자연어처리를 위한 기계학습 소개

  Probabilistic conditional models generalizing MEMMs.

  Whole sequence rather than per-state normalization.

  Convex likelihood function.   CRFs use the observation-dependent normalization Z

(x) for the conditional distributions:

(y | x) exp ( , y | , x) ( , y |1(x)

, x)θ λ µ∈ ∈

⎛ ⎞= +⎜ ⎟

⎝ ⎠∑ ∑k k e k k ve E,k v V ,k

p f e g vZ

Page 14: [F2]자연어처리를 위한 기계학습 소개

14

  Part-Of-Speech tagging experiments

Page 15: [F2]자연어처리를 위한 기계학습 소개

15

  Mallet ◦  http://mallet.cs.umass.edu/index.php/Main_Page ◦  Java, GIS, L-BFGS, Feature induction, …

  FlexCRFs ◦  http://www.jaist.ac.jp/~hieuxuan/flexcrfs/flexcrfs.html ◦  C++, L-BFGS, Constrained CRF

  CRF++: Yet Another CRF toolkit ◦  http://chasen.org/~taku/software/CRF++/ ◦  C++, L-BFGS, n-best output

  Our CRF toolkit ◦  ETRI 지식마이닝 연구팀 ◦  C++, L-BFGS, n-best output ◦  Structural SVM

  Bundle method, Pegasos, FSMO 등의 학습 알고리즘 지원   Domain Adaptation 기능 지원

Page 16: [F2]자연어처리를 위한 기계학습 소개

Lagrange multiplier (KKT condition)

Tool: SVM-light, SVM-Perf, LIBSVM (SMO algorithm)

Page 17: [F2]자연어처리를 위한 기계학습 소개

iiiiT

i

i

n

iiw

LYi

itsnC

ξδ

ξξξ

−≥Ψ∈∀∀

≥∀+ ∑

),(),(:\,

0, .. , 21min 2

,

yyyxwyy

w

iii

i

n

iiw

byiits

nC

ξ

ξ

ξξ

−≥+⋅∀

≥∀

+ ∑

1)(, 0, ..

21min 2

,

xw

w

∑∑∑

=

≥≤≤∀=

⋅−

n

iiii

ii

n

iii

n

i

n

ijiji

n

ii

y

nCiyts

xw

xx

α

ααα

αααα

0,0, , 0 ..

21max

),(),(),( yxyxyx iiiii Ψ−Ψ=Ψδ

정답열 오답열

∑ ∑

≠ ≠

Ψ=

>∀≤≤∀

Ψ⋅Ψ−

i

i

i j

i

iiii

ii

i jjjiiji

iii

inCits

L

yyy

yyy

y

yy yyyy

yyy

yxw

y

yxyx

yy

,

, ,

,

),(

0 , ,0 , ..

,),(),(21

),(max

δα

αα

δδαα

αα

Page 18: [F2]자연어처리를 위한 기계학습 소개

),( yxΨ

x

y

한나라당/nn 조해진/nn 대변인/nc 은/jc …

B-Org — B-Per — O — O … | | | |

한나라당/nn 조해진/nn 대변인/nc 은/jc … 한나라당→−

→−

→−

→−

→−

⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜

OrgBncOnnPerBjcOrgBncOrgBnnOrgB

111001

),( yx

구문 분석 예

개체명 인식 예

Page 19: [F2]자연어처리를 위한 기계학습 소개

ETRI journal

•  FSMO uses the fact that the formulation of structured SVM has no bias.

•  FSMO breaks down the QP problems of structural SVM into a series of smallest QP problems, each involving only one variable.

Page 20: [F2]자연어처리를 위한 기계학습 소개

iiiiT

i

i

n

iiw

LYi

itsnC

ξδ

ξξξ

−≥Ψ∈∀∀

≥∀+ ∑

),(),(:\,

0, .. , 21min 2

,

yyyxwyy

w

.)ˆ,(1)ˆ,(1:)ˆ,...,ˆ(

0, .. , 21min

111

2,

ξδ

ξξξ

−≥Ψ∈∀

≥∀+

∑∑==

n

iii

n

iiii

Tnn

w

Lnn

Υ

itsC

yyyxwyy

w

n-slack structural SVMs

1-slack structural SVMs

1-Slack Cutting Plane Algorithm 1: Input: (x1,y1), …, (xn,yn), C, e 2: S Ø 3: repeat

4:

5: for i=1,…,n do 6: 7: end for 8: 9: until 10: return (w, ξ)

ξδ

ξξ ξ

−≥Ψ

∈∀

+←

∑∑==

>

n

iii

n

iiii

T

n

T

Lnn

Sts

C

11

1

0,

)ˆ,(1)ˆ,(1

:)ˆ,,ˆ(.. 21minarg),(

yyyxw

yy

www w

)},(),({maxˆ yxwyyy y iT

iYi L Ψ+← ∈

)}ˆ,,ˆ{( 1 nSS yy ∪←

en

Ln

n

iiii

Tn

iii +≤Ψ− ∑∑

==

ξδ11

)ˆ,(1)ˆ,(1 yxwyy

Page 21: [F2]자연어처리를 위한 기계학습 소개
Page 22: [F2]자연어처리를 위한 기계학습 소개

  Stochastic Gradient Descent (SGD) ◦  Optimization algorithm for unconstrained optimizat

ion

  Pegasos ◦  Primal Estimated sub-GrAdient SOlver for SVM

,

Page 23: [F2]자연어처리를 위한 기계학습 소개

(ETRI journal, IPM)

Page 24: [F2]자연어처리를 위한 기계학습 소개

  자연어처리 소개 ◦  한국어 자동 띄어쓰기, 한국어 개체명 인식

  자연어처리를 위한 기계학습 소개: ◦  ME, CRF, SVM, Structural SVM

  한국어 자동 띄어쓰기 실험 결과   한국어 개체명 인식 실험 결과

Page 25: [F2]자연어처리를 위한 기계학습 소개

  x = <아, 버, 지, 가, 방, 에, 들, 어, 가, 셨, 다, ‘.’>   y = < B, I, I, I, B, I, B, I, I, I, I, I>

),( yxΨ

Page 26: [F2]자연어처리를 위한 기계학습 소개

N-gram character feature {xt, xt-1, xt+1, xt-2xt-1, xt-1xt, xtxt+1, xt+1xt+2, xt-3xt-2xt-1, xt-2xt-1xt, xt-1xtxt+1, xtxt+

1xt+2, xt+1xt+2xt+3} × yt List lookup feature (list of nouns) {lookup(xt-3xt-2…xt+3), lookup(xt-3xt-2…xt+2), lookup(xt-3xt-2…xt+1), lookup(xt-3xt-

2…xt), lookup(xt-3xt-2xt-1), lookup(xt-2xt-1…xt+3), lookup(xt-2xt-1…xt+2), lookup(xt-2xt-1…xt+1), lookup(xt-2xt-1xt), lookup(xt-2xt-1), lookup(xt-1xt…xt+3), lookup(xt-1xt…xt+2), lookup(xt-1xtxt+1), lookup(xt-1xt), lookup(xtxt+1…xt+3), lookup(xtxt+1xt+2), lookup(xtxt+1), lookup(xt+1xt+2xt+3), lookup(xt+1xt+2)} × yt

Character level regular expression feature {normalize(xt-3), normalize(xt-3xt-2), normalize(xt-3xt-2xt-1), normalize(xt-2), norm

alize(xt-2xt-1), normalize(xt-2xt-1xt), normalize(xt-1), normalize(xt-1xt), normalize(xt-1xtxt+1), normalize(xt), normalize(xtxt+1), normalize(xtxt+1xt+2), normalize(xt+1), normalize(xt+1xt+2), normalize(xt+1xt+2xt+3), normalize(xt+2), normalize(xt+2xt+3), normalize(xt+3)} × yt

Transition feature yt-1 × yt

Page 27: [F2]자연어처리를 위한 기계학습 소개

  실험 대상   학습: 세종 코퍼스 원문 (2,600만 어절)   평가: ETRI 품사 태그 말뭉치 원문 (29만 어절)

  50% 학습데이터 사용   CRF 및 Structural SVM의 메모리 부족 문제

Page 28: [F2]자연어처리를 위한 기계학습 소개

  * 평가셋이 다름

알고리즘 음절단위 정확도

어절단위 정확도

HMM [1] 98.44 93.46

CRF [2]* 98.84* 95.99*

CRF(50%학습) 98.47 93.97

S-SVM(50%학습) 98.51 94.11

Pegasos-struct(50%학습) 98.73 94.13

Pegasos-struct 99.01 95.47

Pegasos-struct +2nd-order 99.09 96.00

Page 29: [F2]자연어처리를 위한 기계학습 소개

  자연어처리 소개 ◦  한국어 자동 띄어쓰기, 한국어 개체명 인식

  자연어처리를 위한 기계학습 소개: ◦  ME, CRF, SVM, Structural SVM

  한국어 자동 띄어쓰기 실험 결과   한국어 개체명 인식 실험 결과

Page 30: [F2]자연어처리를 위한 기계학습 소개

x

y

한나라당/nn 조해진/nn 대변인/nc 은/jc …

B-Org — B-Per — O — O … | | | |

한나라당/nn 조해진/nn 대변인/nc 은/jc … 한나라당→−

→−

→−

→−

→−

⎟⎟⎟⎟⎟⎟⎟⎟⎟

⎜⎜⎜⎜⎜⎜⎜⎜⎜

OrgBncOnnPerBjcOrgBncOrgBnnOrgB

111001

),( yx

  x = <한나라당/nn, 조해진/nn, 대변인/nc, …>   y = < B-ORG, B-Per, O, …>

Page 31: [F2]자연어처리를 위한 기계학습 소개

  실험에 사용된 모든 기계학습 알고리즘에 공통으로 사용됨   자질 ◦  어휘 자질: (-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 자질 ◦  어휘망을 이용한 어휘 의미 자질 ◦  Prediction history 자질

Page 32: [F2]자연어처리를 위한 기계학습 소개

기계학습 알고리즘 학습시간 (초)

정확도 (accuracy) F1

CRFs (baseline) 16738 96.78 84.99

1-slack structural SVMs 11239 96.92 (+0.14) 85.14 (+0.15)

modified Pegasos 649 96.94 (+0.16) 85.43 (+0.44)

  TV 도메인(3,000문서): 2,900 학습, 100 테스트   학습시간: CRFs 학습 시간의 4% (modified Pegasos)   Paired t-test (유의수준 0.01, 신뢰도 99%)

  Modified Pegasos, structural SVMs > CRFs   Modified Pegasos ~= structural SVMs (p값 0.69)

Page 33: [F2]자연어처리를 위한 기계학습 소개

기계학습 알고리즘 학습시간 (초)

정확도 (accuracy) F1

CRFs (baseline) 14362 95.58 86.64

1-slack structural SVMs 5991 95.82 (+0.24) 86.86 (+0.22)

modified Pegasos 610 95.81 (+0.23) 86.79 (+0.15)

  스포츠 도메인 (3,500문서): 3,400 학습, 100 테스트   학습시간: CRFs 학습 시간의 4% (modified Pegasos)   Paired t-test (유의수준 0.001, 신뢰도 99.9%)

  Modified Pegasos, structural SVMs > CRFs   Modified Pegasos ~= structural SVMs (p값 0.72)