티스토리 뷰
1. 문장의 구조를 나타내는 방법 2가지
2. Dependency grammar 와 Dependency structure
"Bills on ports and immigration were submitted by Senator Brownboack, Republican of Kansas." 에 대한 문장을 아래에서 Dependency 관계로 나타낸 것이다. 우선 dependency tree 는 head 와 그것의 dependent (= modifier, subordinate) 로 이루어진다. 우선 modifier 때문에 이 관계가 굉장히 헷갈렸다. 보통 modifier 는 명사를 수식하는 형용사나 전치사구로 알고있었기 때문이다. 근데 위치 피디아를 찾아보니 dependent 에 해당하는 것은 modifier 뿐만이 아니라 argument (예 - 동사의 목적어) 혹은 complement (예 - 동사의 보어) 도 포함한다.
그 외 몇 가지 dependency structure 를 나타내는 규칙을 몇 가지 더 보자.
1) pseudo element 인 ROOT 를 추가해서 문장의 모든 성분의 최종 head 는 결국 이 ROOT 가 되게 한다는 것이다. 그리고 ROOT 의 dependent 는 거의 항상 문장의 main verb 이다 (내가 이해한대로는 그렇다).
2) 그리고 모든 성분은 단 하나의 head 만을 가진다.
3) Universal Treebank 에서는 전치사를 case 로 본다. 이게 특이한 점인데 기존의 문법에서는 전치사는 전치사의 목적어를 가진다고 정의했다. 그런데 Universal treebank 에서는 이 전치사를 단지 어떤 case 를 나타내는 marker 로만 인식한다. 그래서 전치사와 함께 오는 명사의 dependent 로 포함시켜 버린다.
4) 화살표는 head 에서 dependent 로 그린다
: 사실 이건 그리는 사람에 따라 다르다고 한다. 하지만 이 수업에서는 head -> dependent 로 통일해 혼란을 줄이자.
Dependency parsing 을 할 때 사실 의존 관계를 나타내는 화살표 외에도, 그 관계를 정의하는 label 을 붙여서 많이 쓴다 (아래 그림 참조)
그럼 이제 이 dependency 를 나타낼 때, 어떤 기준을 가지고 나타내느냐가 좀 더 궁금해지는데, 아래의 슬라이드를 보자.
1) 우선 2단어 간의 의미 관계가 상당히 중요하다. dependency 는 상당히 lexicalized representation 이다.
2) dependency 관계는 주로 인접한 단어끼리 이루어진다.
3) dependency 관계는 동사나 구둣점을 뛰어 넘어서 이루어지지 않는다.
4) Head 와의 결합가 (valency) - 즉, head 가 무엇이냐에 따라서 그것이 갖는 dependents (종류와 방향 - 왼, 오) 에 대한 패턴이 어느 정도 존재한다는 것이다. 예를 들어, 관사 the 는 dependent 가 없는 반면, 동사는 많은 dependents 를 갖는다. noun 도 많은 dependents 를 갖는데, 형용사 dependent 는 (주로) 왼쪽에 위치하고, 전치사 dependent 는 오른쪽에 위치한다.
근데 수업 초반에 어떤 단어가 어떤 단어를 modify 하는지에 대한 문제는 완전한 free choice 가 아니라고 설명하면서, 문장 내에서 dependeny 를 나타내는 화살표 끼리는 서로 크로스 하지 않는다고 얘기 했다. 이를 nesting contraint 라고 했는데 우리는 그렇지 않은 예외 문장을 마주치곤 한다. 어떤 문장이냐면 다음과 같은 문장이다.
I'll give a talk tomorrow on bootstrapping.
사실 이 문장의 원래 I'll give a talk on bootstrapping tomorrow 인데, bootstrapping 이라는 단어가 길어서 rightward movement 가 일어났다고 본다. 그렇기 때문에 최종 문장이 위에서와 같이 I'll give a talk tomorrow on bootstrapping 이 된 것이고 이런 경우에는 arrows 끼리 cross 가 일어난다는 거다.
이 때, 어떤 학생이 "이런식으로 cross 가 나타내는데 이걸 dependency structure 로 나타낼 경우 그럼 dependency tree 로부터 기본 문장의 orders를 역으로 찾아낼 수 있냐"고 하자 교수님이 "없다" 고 시원하게 대답했다.
Automatic dependency parser 를 만드는 데는 여러 가지 방법이 있는데, 가장 많이 쓰이며 이 수업에서 집중할 method 는 Transition-based parsing 이다.
3. Greedy transition-based parsing
앞서 말한대로 사용한 feature 는 top of stack word, 그 단어의 POS, top of buffer word, 그 단어의 POS 등등.. 이다. 기존의 방식대로 단어는 back of words 처럼 나타내고 여기에 단어의 위치 (top of stack, top of buffer) 그리고 다른 features (예- 시제) 까지 one hot vector 로 나타낸 다음 이 vector 을 단순히 concatenate 에서 feature 로 이용한다. 근데 문제는 단어를 back of words 방식으로 나타내면 엄청나게 dimension 이 커져 버리고, 거기에다가 엄청나게 sparse 한 feature 가 된다. 그리고 그 위에 classification model 을 build 하게 되는 것이다...
이 문제를 해결하기 위해서 Neural network 를 사용하게 된다..!
4. Neural net 을 이용한 dependency parser
모델 구조는 상당히 단순.
1) Input layer
2) Hidden layer - activation with ReLU
3) Output layer
5. Non linearity & ReLU (Linear rectifier)
그러나 최근(?) 가장 인기 있는 활성화 함수는 ReLU (rectified linear unit) 이라고 한다. 특히나 1번째 layer 의 활성함수로 많이 쓰이는 데 이유가 뭘까? 아무래도 sigmoid 나 tanh 에서 흔히 발생하는 문제였던 vanishing gradient 를 줄여주기 때문이 아닐까. 왜냐면 sigmoid 랑 tanh 에서는 기본적으로 exp 를 쓰기 때문에 최종 값이 굉장히 작아지게 되고, 값이 작아진다는 것은 결국 이 값의 영향력을 줄이는 것이다. 이 값이 겹겹의 layer 를 통과할수록 이 값에서 비록되는 error signal 도 작아지게 되는 거고 그러면 결국 gradient 가 vanish 하는 문제가 생기게 되는건데 ReLU 는 아무래도 이런 점에 있어서는 sigmoid 나 tanh보다 나은 결과를 가져오는 게 아닐까.
'NLP > CS224n' 카테고리의 다른 글
[CS224n]Lecture 9. RNN for machine translation (0) | 2019.05.20 |
---|---|
[CS224n] Lecture8. RNN and language model (0) | 2019.05.11 |
[CS224n] Lecture 4. Word window classification and neural networks (0) | 2019.04.29 |
[CS224n] Lecture 3. More word vectors (0) | 2019.04.08 |
[CS224n] Lecture 2. Word2vec (1) | 2019.04.02 |
- Total
- Today
- Yesterday
- neural network
- GPTZero
- Bert
- Neural Language Model
- nlp
- 뉴럴넷
- LM
- word embedding
- Contextual Embedding
- weight vector
- Elmo
- cs224n
- neurone
- Statistical Language Model
- Attention Mechanism
- language model
- 언어모델
- 벡터
- 워터마킹
- Pre-trained LM
- 뉴런
- transformer
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |