*모든 내용이 들어있진 않습니다.
*인턴 과제 준비 중 제가 이해한 바에 대해서만 작성하였습니다.
Intro.
이 논문의 내용을 간략하게 소개하자면..
depenency parsing에는 크게 두 종류가 있다. graph-based parsing과 transition-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
해결했다. 아래 그림은 논문 내용 이해를 바탕으로 한 세미나 발표자료다.
세미나 발표 직전에 구현되어 있는 코드를 보면서 이해하게 되었는데
arc의 경우 arc-dep에만 1 column 한 줄을 추가하고
label의 경우 label-dep, label-head에 모두 1 column 한 줄을 추가한다는 의미를 저렇게 수식으로 표현한 것이다. (아래 논문 일부 참조)
마무리
NLP 진짜 어렵다ㅋㅋㅋ 구현에 대해서는 자세히 서술하지 않았는데 추후에 코드를 뜯어서 다시 자료를 업데이트해야 할 듯. 코드를 한 번 쭉 보고 이해하긴 했는데 디테일한 부분까지는 아직 제대로 캐치하지 못했다 ㅠㅠ