4-1. Syntactic Structure : Consistency and Dependency
•
Consitituency parsing
◦
문장을 중첩된 성분으로 나누어 문장의 구조를 파악하는 방법
◦
주로 영어와 같이 어순이 고정적인 언어에서 사용하는 방법
e.g. the(Det) cat(N), cuddly(Adj), by(P), door(N)
→ (the cuddly cat) = NP(Det + Adj + N)
→ (by the door) = PP(P + N)
→ (the cuddly cat) (by the door) = NP(NP + PP)
•
Dependency parsing
(수식을 받는 단어에서 수식을 하는 단어로 화살표 표시)
◦
문장에 존재하는 단어가 어떤 다른 단어에 의존적인지 관계를 파악하는 방법
◦
한국어와 같이 자유 어순을 가지거나 문장 성분이 생략 가능한 언어에서 사용하는 방법
◦
Dynamic programming
◦
Graph algorithms
◦
Constraint satisfaction
◦
transition-based
•
언어를 정확하게 해석하기 위해서는 문장 구조에 대한 이해가 필요
•
인간은 복잡한 단어의 구성을 통해 의사소통을 하기 때문에 정확한 이해를 위해서는 연결 구조에 대해 파악 필요
Some Ambiguities
•
Prepositional phrase attachment ambiguity
◦
형용사구, 동사구, 전치사구 등이 어떤 단어를 수식하는지에 따라 의미가 달라지는 모호성
◦
e.g.1-1 ) (San Jose cops kill man) (with knife).
◦
e.g.1-2 ) (San Jose cops kill) (man with knife).
◦
e.g.2-1) (Scientists count whales) (from space).
◦
e.g.2-2) (Scientists count) (whales from space).
•
Coordination Scope Ambiguity
◦
특정 단어가 수식하는 대상의 범위가 달라짐에 따라 의미가 변하는 모호성
◦
e.g.1-1 ) (Shuttle veterar) and (longtime NASA executive Fred Gregory) appointed to board
◦
e.g.1-2 ) (Shuttle veterar and longtime NASA executive) Fred Gregory appointed to board
4-2. Dependency Grammar and Treebanks
문법의 관계는 통사의 구조에서 단어의 관계를 포함한다고 가정하고, 일반적으로 두 개의 비대칭한 화살표로 구성 (Tree 형태)
•
가짜 Root 노드를 문장에 맨 앞에 추가하여 모든 단어들이 의존 관계를 가지도록 한다.
•
본 이미지는 수식하는 곳에서 수식 받는 곳으로 화살표가 이동한다.
4-3. Transition-based dependency parsing
•
Dependency parsing 방법 중 하나인 Transition-based에 대해 구체적으로 다룬다.
•
문장에 존재하는 단어들을 순서대로 입력하면서 단어 사이에 존재하는 dependency를 결정해나가는 방법
•
Graph-based보다 속도는 빠르지만 성능은 낮음
◦
Graph-based는 순서대로가 아닌 의존 관계를 모두 고려하기 때문에
•
Arc-standard transition-based parser
◦
parsing에는 3가지 구조 존재(buffer, stack, set of arcs)
▪
stack : 현재 처리할 단어가 있는 곳
▪
buffer : 아직 처리되지 않은 단어들이 있는 곳
▪
set of arcs : parsing의 결과물이 담기는 곳
◦
parsing에는 3가지 decision이 존재(shift, Right-Arc, Left-Arc)
▪
shift : buffer의 토큰이 stack으로 이동
▪
Right-Arc : stack에 있는 두 단어 중 오른쪽 단어를 지움
▪
Left-Arc : stack에 있는 두 단어 중 왼쪽 단어를 지움
1.
stack에 root밖에 없으므로 shift decision 수행
2.
stack에 I가 들어왔지만, 분석할 구문이 없기 때문에 한번 더 shift decision
3.
stack안에 I와 ate의 관계를 비교할 수 있고, I가 ate에 의존하고 있으므로 Set of Arc에 (ate, nsubj, I)라는 형태로 담기게 된다. 또한 stack에서 의존하는 단어 I는 사라지게 된다.
4.
문장이 끝날 때까지 이 알고리즘을 반복하게 되면 buffer에 더 이상의 토큰이 존재하지 않고, stack에는 root와 마지막 단어만 남게 된다.
5.
마지막 단어는 root에 의존하기 때문에 stack에는 root만 남게 된다. stack에서 state를 기반으로 decision을 결정하기 위해서 머신러닝이 적용되고, 그 과정에서 state를 embedding하는 과정이 필요하다.
•
Maltparser(잘 모르겠다)
◦
State를 embedding하는 방법
◦
Pos tagging과 notation을 기반으로 indicator features를 설정함으로 state를 embedding할 수 있음.
•
Evaluation of Dependency parsing
◦
머신러닝을 이용한 parsing의 성능을 평가하는 방법은 사람이 직접 dependency parsing을 작성하고 평가하는 것
UAS : index를 기준으로한 accuracy
LAS : index와 품사를 잘 예측했는지에 대한 Accuracy
4-4. Neural dependency parsing
•
Neural Network가 적용된 Dependency parsing 방법론
•
Input feature는 3가지로 구분된다.(words, POS tag, arc labels)
◦
words feature로 들어가게 되는 데이터는 총 18개로 구성
▪
STACK과 BUFFER의 TOP 3 words (6개)
▪
STACK TOP 1, 2 words의 첫번째, 두번째 left & right child word (8개)
▪
STACK TOP 1,2 words의 left of left & right of right child word (4개)
◦
POS tags feature로 들어가게 되는 데이터는 words feature에서 들어가는 데이터의 tag를 의미하기 때문에 동일한 18개로 구성됨.
◦
Arc labels에서는 stack과 buffer의 TOP 3 words 6개를 제외한 12개의 label(dependent 관계 표시) 데이터로 구성되게 됨.
◦
위 features는 모두 one-hot representation으로 표현 가능
◦
모두 concat한 뒤 input layer에 집어넣는다.
◦
input layer → hidden layer(ReLU) → output layer(Softmax)
◦
최종 output은 decision의 모든 경우의 수를 확률로 나타낸다.
→ shift, Left-Arc, Right-Arc 중 확률값이 가장 높은 decision이 최종 output
기존의 Parser의 문제점
1.
Sparse
a.
기존 parser에서는 단어는 Bag Of Words처럼 나타내고, 여기 feature에 Top Of Stack Word, 그 단어의 POS, top of buffer word 등을 one-hot vector로 나타내어 이 vector들을 concat하여 feature로 이용한다.
b.
하지만 단어를 bag of words 방식으로 나타내면 희소 행렬 문제가 발생하고, 차원이 매우 커진다.
2.
Incomplete
a.
configuration에서 본 적이 없는 단어나 단어 조합이 있을 경우, feature table에 없기에 incomplete한 모델이 된다.
3.
Expensive to compute
a.
parsing time의 95%가 feature 연산에 사용되어 연산 시간이 매우 오래걸리는 단점이 있다. → Sparse 문제에서 파생되는 문제
Neural dependency parsing
•
Input Layer : vector를 입력 받는다.
•
Hidden Layer : ReLU 함수를 통해 Hidden vector를 생성한다.
◦
matrix에 Weight를 곱한뒤 bias를 더해준다.
◦
이때, 일반적인 Activation Function(ReLU, Sigmoid, Tanh)을 사용하지 않고, Cube Function을 사용한다. → word, POS tag, Arc-Label간 상호작용을 반영할 수 있음
•
Output Layer : Hidden vector를 Softmax 함수를 통해 Output을 만든다.
Graph-Based Dependency parsers
•
문장에서 가능한 모든 의존관계를 찾아내고, 그 의존관계들의 조합에서 가장 합리적인 트리를 입력 문장의 트리로 결정하는 것
•
각 트리를 구성하고 있는 각각의 의존관계들의 점수 합이 가장 큰 트리를 가장 합리적인 트리라고 본다.