Search
💩

[11/17(목)] Lecture 4 : Syntactic Structure and Dependency Parsing

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

문장에서 가능한 모든 의존관계를 찾아내고, 그 의존관계들의 조합에서 가장 합리적인 트리를 입력 문장의 트리로 결정하는 것
각 트리를 구성하고 있는 각각의 의존관계들의 점수 합이 가장 큰 트리를 가장 합리적인 트리라고 본다.