셀프 매칭 어텐션 기반 포인터 네트워크를 이용한 한국 어 상호참조해결
박천음
*O이창기
*김현기
**강원대학교 컴퓨터과학과
*, 한국전자통신연구원 {parkce, leeck} @ kangwon.ac.kr, [email protected]
Korean Coreference Resolution using Pointer Networks based on Self-Matching Attention
Cheoneum Park
*O, Changki Lee
*, Hyunki Kim
**Kangwon National University Dept. of Computer Science
*, ETRI
**요
약어텐션 메커니즘(Attention mechanism)은 두 시퀀스(sequence)에 대한 얼라인먼트 점수(alignment score)를 계 산하고, 입력 시퀀스와 가중치 합을 수행하여 출력 결과에 영향을 미치는 위치에 더욱 집중할 수 있도록 학습하는 방법이다. 어텐션 메커니즘을 적용하는 두 시퀀스가 서로 같은 동일한 시퀀스인 경우에는 자기 자신에 대한 얼라인먼트 점수를 계산하게 되며, 이를 셀프 매칭 어텐션(Self-Matching Attention) 메커니즘이 라 한다. 주어진 시퀀스에 대하여 셀프 매칭 어텐션을 적용하면 서로 유사한 단어 간의 얼라인먼트 점수 가 더 높게 계산되어 상호참조해결에 도움이 될 수 있다. 본 논문에서는 이와 같은 셀프 매칭 어텐션 매 커니즘을 기반으로 한 포인터 네트워크를 상호참조해결에 적용할 것을 제안한다. 실험 결과, 본 논문에서 제안한 모델이 CoNLL F1 72.08%로 일반 포인터 네트워크보다 2.55%의 성능 향상을 보였다.
1. 서 론
상호참조해결(Coreference resolution)은 임의의 개체(entity)에 대하 여 다른 표현으로 사용되는 단어들을 찾아, 서로 같은 개체로 연결 해주는 자연어처리 문제이다. 하나의 개체를 다른 단어로 표현하는 경우에는 별명, 약어, 대명사, 한정사구 등이 있으며, 이들 간의 참 조 관계를 올바르게 찾아낼 수 있으면 담화나 문서 내에서 언급하 는 대상에 대한 정보를 일관성 있게 유지할 수 있고, 해당 정보를 정확하게 전달할 수 있다. 따라서 상호참조해결은 문서에서 등장하 는 개체를 이해하는데 매우 중요한 역할을 하며, 질의 응답, 문서요 약, 기계 번역, 정보 추출 등에 응용될 수 있다.
포인터 네트워크(Pointer Networks)[1]는 어텐션 메커니즘 (Attenti-on mechanism)[2]을 입력열 위치를 출력하는 RNN (Recurrent Neural Network)의 확장된 모델이다. 어텐션 메커니즘은 주어진 입력 열 중에서 출력 결과에 영향을 미치는 위치를 더욱 집 중하여 계산하는 어텐션 가중치(attention weight)를 학습하고, 입력 열과 가중치 합(weighted sum)을 수행하여 문맥 벡터(context vector)를 만드는 방법이다. 셀프 매칭 어텐션 메커니즘(Self- matching attention mechanism)[3]은 자기 자신에 대하여 어텐션 가 중치를 계산하고 가중치 합을 통하여 문맥 벡터를 만드는 방법이 며, RNN sequence 중에서 유사한 단어들 간의 가중치가 높게 적용 되어 상호참조해결에 도움이 될 수 있다. 본 논문에서는 인코더에 서 셀프 매칭 어텐션을 먼저 적용하여 입력 단어들 간의 비슷한 단 어들끼리 높은 얼라인먼트 점수(alignment score)를 계산하여 인코 딩을 수행하고, 디코더에서 셀프 매칭이 수행된 인코딩 hidden state를 이용하여 디코딩을 수행하는 셀프 매칭 어텐션 (Self- Attention) 기반 포인터 네트워크 모델을 제안하며, 이를 이용하여 모든 멘션(mention)에 대한 상호참조해결을 수행하는 셀프 매칭 어
텐션 기반 포인터 네트워크를 이용한 상호참조해결을 제안한다.
2. 셀프 매칭 어텐션 기반 포인터 네트워크
셀프 매칭 어텐션 기반 포인터 네트워크는 일반적인 포인터 네트워크와 같이 입력 열에 대응되는 위치를 출력 결과로 학 습 및 예측하는 모델이다. 포인터 네트워크는 RNN encoder- decoder 모델[4]로서 어텐션 메커니즘을 기반으로 한다. 인코 더(encoder)는 RNN을 이용하여 입력 열에 대한 hidden state 를 만들고, 현재까지 생성된 디코더(decoder)의 hidden state와 인코더의 hidden state에 대한 얼라인먼트 점수(alignment score)를 어텐션 함수로 계산하고, 가장 높은 점수를 가지는 위치를 결과로 출력한다. 셀프 매칭 어텐션 메커니즘은 인코 더와 디코더 간의 얼라인먼트 점수를 계산하는 방법과 달리, 주어진 RNN sequence와 자기 자신에 대하여 얼라인먼트 점수 를 계산하고, 자기 자신과 다시 가중치 합을 수행하여 문맥 벡터를 만드는 방법이다. 인코더에서 인코딩을 수행할 때 셀 프 매칭 어텐션 메커니즘을 적용하면 비슷한 단어들간의 높은 얼라인먼트 점수를 가지고 가중치 합이 수행된다. 즉, 디코더 에서 디코딩이 수행되기 전에 유사한 단어들 간에 어텐션 가 중치를 먼저 계산하게 된다. 예를 들어, 문장 내에 “세종대왕”
과 “이도”가 등장한 경우, 이 둘은 셀프 매칭 어텐션에 의하여 높은 얼라인먼트 점수가 계산되어 인코딩이 수행된다.
본 논문에서 인코더의 히든 레이어는 bidirectional Gated Recurrent Unit (BiGRU)[2]를 사용하며, 셀프 매칭 어텐션 레이 어는 forward GRU (또는 FFNN)를 사용한다. 먼저 첫 번째 히 든 레이어의 bi-GRU 수식은 아래와 같다.
=
640
2017년 한국소프트웨어종합학술대회 논문집
= ,
= ,
= ;
여기서 는 입력열의 s 번째 단어이고, 는 에 대한 단 어표현(word embedding)이며, 와 는 Forward, Backward Network이다. 는 와 를 연결(concatenate)한 것이며, 모 델링 레이어와 셀프 매칭 어텐션 레이어의 입력으로 주어진 다. 모델링 레이어( )는 아래 수식과 같이 BiGRU를 이용하 여 인코딩을 수행하는데, 입력으로 와 셀프 매칭 어텐션으 로 구한 문백 벡터(context vector) 를 연결한 것이 주어진다.
= ; ,
본 논문에서는 아래와 같이 3가지 방법(디코더 방법까지 총 5가지)의 셀프 매칭 어텐션 레이어를 제안한다.
Self_att_ffnn
문맥 벡터 는 셀프 매칭 어텐션 레이어에서 각 입력에 대한 얼라인먼트 점수를 계산하고, 인코딩 를 곱하여 만든다.
Self_att_ffnn는 셀프 매칭 어텐션 레이어에서 FFNN을 이용하 여 를 만든다.
= ,
∑ ,
, = tanh ;
= ∑
는 셀프 매칭 어텐션에 대한 얼라인먼트 점수로, , 함수의 결과 벡터에 softmax를 이용하여 정규화한 값(attention weight)이다. , 함수는 concat 방법으로, 셀프 매칭 어텐션 레이어의 j번째 hidden state 와 인코딩 hidden state 을 서로 연결하여 얼라인먼트 점수를 계산한다.
Self_att_gru1 (w/o additional gate)
Self_att_gru1은 문맥 벡터 를 만들 때 forward GRU를 이용 하여 이전 hidden state 정보도 함께 계산한다. 식은 아래와 같 으며, 셀프 매칭 어텐션의 가중치를 구하는 , 함수 는 concat과 concat2 방법으로 나뉜다. Concat은 앞서 설명한 Self_att_ffnn의 어텐션 스코어 함수와 같고, concat2는 인코딩 hidden state에서 j번째 위치한 hidden state와 , 시퀀스의 입 력 hidden state , 인코딩 hidden state 을 서로 연결하여 얼라인먼트 점수를 계산한다.
= ,
=∑ ,,
, = tanh ; ,
tanh ; ; , 2
= ∑
Self_att_gru2 (w/ additional gate)
Self_att_gru2는 앞서 설명한 Self_att_gru1과 같은 방법으로 어텐션 가중치를 계산하고, 문맥 벡터 를 구한다. 그 이후, 인코딩 hidden state 와 연결한 ; 에 additional gate를 적용한 ; ∗를 만들고, 이것을 모델링 레이어의 입력으로 전달한다. 이때 additional gate는 모델링 레이어 입력으로
; 의 정보 전달 여부를 결정하며, 식은 아래와 같다.
g = ;
; ∗= g ⨀ ;
디코더에서는 입력열의 특정 위치( ∈ )를 입력 받아 디코딩을 수행하고, 입력과 대응되는 위치( ∈ )의 조건 부확률을 학습하며 다음과 같이 정의된다.
= ,
= ,
∑ ,
, = tanh ;
=
디코더의 hidden state는 디코딩 방법을 FFNN과 forward GRU 로 나누어 사용하며, 각 스텝에 대한 디코더 hidden state는 로 나타낸다. 는 인코더의 hidden state 와 디코더의 이전 hidden state를 입력으로 받아 계산한다. 는 스코어 함수 , 의 결과 벡터를 정규화하여 와 입력열에 대한 조건부 확률을 계산하는 식이다. 에서 가장 높은 점수를 갖는 위치가 에 대응되는 위치인 출력 결과 가 된다. Self_att_ffnn, Self_att_gru1, Self_att_gru2는 모두 forward GRU 디코더를 이용 하며, Self_att_gru1와 FFNN 디코더를 이용한 방법을 Self_att_gru3이라 하며, Self_att_gru2와 FFNN 디코더를 이용하 는 방법을 Self_att_gru4라 한다.
3. 셀프 매칭 어텐션 기반 포인터 네트워크를 이용한 상호참 조해결
상호참조해결을 위한 셀프 매칭 어테션 기반 포인터 네트워크의 모델 구조는 [그림 1]과 같으며, Self_att_gru2에 대한 구조이다.
그림 1. 셀프 매칭 어테션 기반 포인터 네트워크 모델 구조 [그림 1]은 인코더와 디코더로 구성되며, 인코더는 입력열(Input layer)과 임베딩 레이어(Projection layer), 히든 레이어(Hidden layer), 셀프 매칭 어텐션을 위한 셀프 매칭 레이어(Self-matching layer), 모델링 레이어(Modeling layer)로 구성된다. [그림 1]에서 인 코더의 입력은 하나의 문서(즉, n개의 문장)가 되며, 입력열은 X = { 세종대왕/nnp, 은/jx, 조선/nnp, 의/jkg, 4/sn, 대/nnb, 군주/nng,
…, 조선/nnp, …, </s>}와 같다. 입력 원소는 각 형태소 분석 결과 (형태소/품사태그)이고, </s>는 문장의 끝을 알리는 기호이다. 임베 딩 레이어에서 입력열에 단어 표현(word embedding)을 적용하고, 히든 레이어에서 RNN을 수행한다. 그 다음, 셀프 매칭 레이어에서 앞서 만들어진 인코딩 hidden state를 대상으로 각 입력마다의 어텐 션 스코어를 계산하고, 인코딩 hidden state와 함께 문맥 벡터를 만
641
2017년 한국소프트웨어종합학술대회 논문집
든다. 마지막으로, 인코딩 hidden state와 문맥 벡터를 합하여 모델 링 레이어의 입력으로 주고, 모델링 레이어에서 인코딩을 수행하여 입력열에 대한 최종 인코딩 hidden state를 만든다.
디코더의 입력은 입력문서의 모든 멘션들의 중심어 위치로 이 루어진 Y = {0, 2,5, 6, 31}이 되고, 이에 따른 출력열은 디코더 의 입력 멘션들의 선행사 위치로 이루어진 Y = {0, 2, 56,0, 2}
가 된다. 각 디코더 입력은 출력결과로 자신이 포함된 엔티티의 위치를 가리킨다.
4. 실험
본 논문에서는 상호참조해결의 실험 데이터로 추가 검증이 수행된 ETRI 퀴즈 도메인 상호참조해결 데이터 셋을 이용하였으며, 상호참 조해결 평가를 위하여 CoNLL F1[8]을 중심어 기반으로 성능을 측 정하였다. ETRI 데이터 셋은 퀴즈 도메인(장학퀴즈와 wiseQA)의 질 문문서로 구성되며, 학습 데이터는 1,819 문서, 개발(development) 데이터는 184 문서, 평가 데이터는 221 문서로 구성된다.
단어표현(word embedding)은 10만 단어에 대하여 2년치 뉴스 기사를 NNLM (Neural Network Language Model)[5]으로 학습한 것을 사용하였으며, 50차원으로 설정하였다. 실험은 교차검증 (cross validation)을 수행하였고, 개발셋(development set)을 이용 하여 하이퍼 파라미터 최적화를 수행하였으며 최적화된 하이퍼 파라미터는 다음과 같다. 활성함수는 인코더, 디코더에는 tanh 를 사용하였고, attention layer에는 relu를 사용하였다. 100차원의 히든 레이어를 이용하였고, 드랍아웃(dropout)은 0.3으로 설정하였다.
학습율은 0.05을 시작으로 성능 개선이 없으면 5 에포크(epoch)마 다 50%씩 감소시켰으며, RMSprop를 이용하여 학습하였다.
[표 1]은 새로 검증된 데이터 셋에 대하여 본 논문에서 제안 한 모델들과 기존 방법들에 대한 비교 실험을 수행하였다. 본 논문에서 제안한 방법인 Self_att_ffnn, Self_att_gru1, Self_att_gru2, Self_att_gru3, Self_att_gru4 모델들은 앞서 설명한 최적의 하이퍼 파라미터들을 사용하였다. 기존의 상호참조해결 방법들은 최적 화를 수행하여, 일반 포인터 네트워크는 히든 레이어 유닛 수가 [60, 30], 드랍아웃 0.3 (나머지는 위와 같음), 계층적 포인터 네트 워크는 [7]과 같은 하이퍼 파라미터를 사용하였다.
표 1. 모델에 따른 상호참조해결 성능 비교 Model F1 (dev) Pre Rec F1 규칙기반[8] (baseline)
- 60.52 56.77 58.57
포인터 네트워크
- 85.62 58.58 69.53
계층적 포인터 네트워크[7] -85.07 59.89 70.25
Self_att_ffnn 75.29 83.60 61.52 70.83 Self_att_gru174.53 86.66 60.71 71.33
Self_att_gru274.10 86.73 59.78 70.70
Self_att_gru375.25 87.21 61.27 71.94
Self_att_gru474.38 84.91 62.70 72.08
먼저 Dev set인 경우, 본 논문에서 제안한 방법들 중 Self_att _ffnn이 CoNLL F1 75.29%로 좋은 성능을 보였지만, test set에서 Self_att_gru1,3,4가 보다 좋은 성능을 보였다. 또한 Self_att_gru 1이 Self_att_gru2보다 전반적으로 좋은 성능을 보였지만, 디코
더에서 FFNN으로 수행하는 Self_att_gru3,4 중에서 Self_att_gru 4가 CoNLL F1 72.08%로 셀프 매칭 어텐션 기반 포인터 네트 워크들 중에서 가장 좋은 성능을 보였다.
Self_att_gru4는 기존 상호참조해결 방법들 중에서 계층적 포 인터 네트워크[7]에 비하여 1.83% 높은 성능을 보였고, 규칙기 반과 일반 포인터 네트워크 방법에 비하여 각각 13.15%, 2.55%
더 좋은 성능을 보였다.
5. 결론
본 논문에서는 셀프 매칭 어텐션을 포인터 네트워크 모델에 적 용하고, 5가지 방법(Self_att_ffnn, Self_att_gru1, Self_att_gru2, Self_att_gru3, Self_att_gru4)을 제안하였으며, 이를 모든 멘션 대 상의 한국어 상호참조해결을 수행하였다. 실험 결과, 본 논문에 서 제안한 방법 중 Self_att_gru3이 CoNLL F1 (test) 72.08%로, 계 층적 포인터 네트워크를 이용한 방법보다 1.83% 더 좋은 성능 을 보였고, 실험의 baseline인 규칙기반 상호참조해결 보다 13.15%, 일반 포인터 네트워크 기반 대명사 상호참조해결을 이 용한 방법 보다 2.55% 더 높은 성능을 보였다.
향후 연구로는 본 논문에서 제안한 모델을 확장하여 계층적 포 인터 네트워크에 셀프 매칭 어텐션을 적용하여 더욱 다양한 모델 을 만들어 볼 것이다. 또한 현재 질문 문서에만 적용하고 있는 포 인터 네트워크 기반 상호참조해결을 더 긴 문장과 더 많은 엔티 티를 가진 일반 문서에도 적용할 예정이며, 상호참조해결을 위해 더 많은 데이터를 구축하여 성능을 향상시킬 것이다.
감사의 글
본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신·방송 연구개발 사업의 일환으로 하였음. [2013-0-00131, (엑소브레인-1세부) 휴먼 지식증강 서비스를 위한 지능진화형 WiseQA 플랫폼 기술 개발]
참고문헌
[1] O. Vinyals, et al. Pointer Networks. Advances in Neural Information Processing Systems, pp. 2674-2682, 2015
[2] D. Bahdanau, et al. Neural machine translation by jointly learning to align and translate. Proceedings of ICLR’ 15, arXiv:1409.0473, 2015.
[3] W. Wang, N. Yang, F. Wei, B. Chang and M. Zhou. Gated Self-Matching Networks for Reading Comprehension and Question Answering, Proc. of the 55th ACL, pp. 189-198, 2017.
[4] K. Cho, et al. Learning phrase representation using RNN encoder-decoder for statistical machine translation. Proceedings of EMNLP’ 14, 2014.
[5] 이창기, 김준석, 김정희. 딥 러닝을 이용한 한국어 의존 구문 분석. 제26회 한글및한국어정보처리학술대회, pp. 87-91, 2014.
[6] M. Vilain, et al. “A model-theoretic coreference scoring scheme,”
In:Proceedings of the 6th conference on Message understanding. Association for Computational Linguistics, pp. 45-52, 1995.
[7] 박천음, 이창기. 계층적 포인터 네트워크를 이용한 상호참조해결. 정보과학 회동계학술발표논문집, pp. 485-487, 2016.
[8] C. Park, et al. Korean Coreference Resolution with Guided Mention Pair Model using the Deep Learning. ETRI J., vol. 38, no. 6, pp. 1207–1217, 2016.