*모든 내용이 들어있진 않습니다.

*인턴 과제 준비 중 제가 이해한 바에 대해서만 작성하였습니다.

 

BILSTM with deep biaffine attention to score each possible head for each dependent, applied to the sentence "Casey hugged Kim". We reverse the order of the biaffine transformation here for clarity

Intro.

이 논문의 내용을 간략하게 소개하자면..

depenency parsing에는 크게 두 종류가 있다. graph-based parsingtransition-based parsing.

이에 대한 내용은 추후 포스팅하도록 하고..(사실 연구실 1차 세미나 과제였음ㅋ)

이 논문에서는 graph-based parsing에서 구해지는 의존 관계 점수의 합이 가장 큰 트리를 구하는 데에 있어서,

arc의 점수를 구할 때 머신러닝 기법을 이용하여 진행하는 것이다.

여기에 Embedding, BILSTM, MLP, biaffine attention 기법 등이 이용된다. 

여러 가지 기법들이 등장하는데...

 

우선 석사 1학기 동안 배워야 할 내용들을 오픈 핵 갔다 와서 바로 공부하려니 정말 힘들었다.

(1차 세미나에서 공부했던

"Simple and Accurate Dependency Parsing Using Bidirectional LSTM Feature Representations"

에 대한 이해도 우선 부족했고,  기존에 CNN 모델에 대한 이해정도까지밖에 없었기에 배경지식 공부하는데 정말 많은 시간을 투자한 것 같다.)

 

 

Overall flow

우선 word -> Embedding -> output :xi -> BILSTM -> output:ri ->  MLP -> hi(arc-dep), hi(arc-head), hi(label-dep), hi(label-head)의 과정을 거친다.

 

 

Expression Description

논문의 식을 설명해 보도록 하겠다.(parameter에 대한 정보는 논문 주석에 나와있으니 생략)

우선 W가 왜 RU(1)가 되는지 U가 어디서 갑자기 나온 놈인지 정말 이해가 가지 않았다. 하지만 관점을 다르게 보니까 바로 해결.

우리는 지금 arc의 score를 머신러닝 과정을 거쳐서 학습시키고 업데이트하는 것이 목표다. 그렇기에 bi-LSTM과정을 거쳐서 나온 R(ri를 모아둔 거)에 대해서 U를 곱해주는데 이 U가 biaffine attension을 위한 학습 parameter인 것이다. 

그렇게 해서 위 si(arc)가 나오게 된 것이다.

아직 마지막 과정이 더 남았다. 

위에서 설명한 식의 R의 row를 각각 ri라고 한다.

그 ri를 MLP에 통과시켜 나온 것이 hi다.(4,5)

그 h들을 모아놓은 것이 H인 것이다.

 

그럼 이 과정을 왜 거치느냐? 

MLP를 통과시킴으로써 현재의 결정과 관련 없는 정보들을 stripping away 할 수 있기 때문이다...라고 되어있는데.

attention이라는 게 좀 더 연관된 정보에 집중하여 학습을 시키는 것이니까 이렇게 이해하면 될 것 같기도 하고.. 공부를 더 해봐야겠다.

 

지금 이해를 못한 부분이..

이 식이다.

 

----------------------------------------------------------------------------------------------------------------------------

19.7.24 update

해결했다. 아래 그림은 논문 내용 이해를 바탕으로 한 세미나 발표자료다.

 

세미나 ppt 중 일부 발췌
세미나 ppt 중 일부 발췌

세미나 발표 직전에 구현되어 있는 코드를 보면서 이해하게 되었는데

arc의 경우 arc-dep에만 1 column 한 줄을 추가하고

label의 경우 label-dep, label-head에 모두 1 column 한 줄을 추가한다는 의미를 저렇게 수식으로 표현한 것이다. (아래 논문 일부 참조)

 

 

마무리

NLP 진짜 어렵다ㅋㅋㅋ 구현에 대해서는 자세히 서술하지 않았는데 추후에 코드를 뜯어서 다시 자료를 업데이트해야 할 듯. 코드를 한 번 쭉 보고 이해하긴 했는데 디테일한 부분까지는 아직 제대로 캐치하지 못했다 ㅠㅠ

 

+ Recent posts