계층적 포인터 네트워크를 이용한 상호참조해결
박천음 이창기 강원대학교 컴퓨터과학과 {parkce, leeck} @ kangwon.ac.kr
Coreference Resolution using Hierarchical Pointer Networks
Cheoneum Park, Changki Lee
Kangwon National University Dept. of Computer Science 요 약
Sequence-to-sequence 모델과 이와 유사한 포인터 네트워크는 입력이 여러 문장으로 이루어지거나 입력 문 장의 길이가 길어지면 성능이 저하되는 문제가 있다. 이러한 문제를 해결하기 위해 본 논문에서는 여러 문장으로 이루어진 입력열을 단어 레벨과 문장 레벨로 인코딩을 수행하고, 디코딩에서 단어 레벨과 문장 레벨 정보를 모두 이용하는 계층적 포인터 네트워크 모델을 제안하고, 이를 이용하여 모든 멘션(mention) 에 대한 상호참조해결을 수행하는 계층적 포인터 네트워크 기반 상호참조해결을 제안한다. 실험 결과, 본 논문에서 제안한 모델이 규칙기반 모델 대비 21.83%의 성능 향상을 보였다.
1. 서 론
상호참조해결(Coreference resolution)은 임의의 개체(entity)에 대하여 다른 표현으로 사용되는 단어들을 찾아, 서로 같은 개 체로 연결해주는 자연어처리 문제이다. 하나의 개체를 다른 단어로 표현하는 경우는 별명, 약어, 대명사, 한정사구 등이 있으며, 이들 간의 참조 관계를 올바르게 찾아낼 수 있으면 담화나 문서 내에서 언급하는 대상에 대한 정보를 일관성 있 게 유지할 수 있고, 정확하게 전달할 수 있다. 따라서 상호참 조해결은 문서에서 등장하는 개체를 이해하는데 매우 중요한 역할을 하며, 질의 응답, 문서요약, 기계 번역, 정보 추출 등에 응용될 수 있다.
포인터 네트워크(Pointer Networks)[1]는 어텐션 메커니즘[2]을 이용하여 입력열에 대응되는 위치를 출력하는 RNN encoder- decoder[3]의 확장된 모델이며, 입력된 문서 또는 문장에서 특정 단어를 가리켜 정보를 추출하는 문제에 사용하기 적합하다. 그 러나 입력열이 여러 문장으로 이루어진 경우에는 입력열의 길 이가 길어지기 때문에 성능이 저하되는 문제가 있다. 이러한 문 제를 해결하기 위하여, 본 논문에서는 여러 문장으로 이루어진 입력열을 단어 레벨과 문장 레벨로 인코딩을 수행하고, 디코딩 에서 단어 레벨과 문장 레벨 정보를 모두 이용하는 계층적 포 인터 네트워크 모델(Hierarchical Pointer Networks)을 제안하며, 이 를 이용하여 모든 멘션(mention)에 대한 상호참조해결을 수행하 는 계층적 포인터 네트워크 기반 상호참조해결을 제안한다.
2. 관련 연구
기존 상호참조해결 연구는 규칙기반 방법과 통계기반 방법, 규 칙과 통계기반을 결합하는 방법으로 나뉜다. 규칙기반 방법인 스탠포드(Stanford)의 다단계시브 모델[4]에서는 대명사와 엔티 티의 속성, 개체명 정보 등을 이용하는 다단계 규칙을 적용하였 으며, [5]에서는 한국어에 적합한 다단계 시브를 정의하여 상호 참조해결을 수행하였다. 통계기반인 멘션 페어 모델(Mention
pair)[6]은 현재 등장한 멘션과 임의의 선행사를 하나의 쌍으로 만들고 기계학습을 이용하여 참조관계를 파악하는 방법이다. [7]
은 규칙기반과 통계기반을 결합한 모델로서 Feed-forward Neural Networks (FFNN)을 이용하여 상호참조해결을 수행하였 다. [8]에서는 포인터 네트워크를 이용하여 end-to-end 방식의 대명사 상호참조해결을 수행하였지만, 문장 길이가 긴 문서의 경 우에 성능이 저하되었으며, 일반 멘션을 제외한 대명사에 대해서 만 포인터 네트워크를 적용하였다.
본 논문에서는 [8]의 모델을 확장하여 문장 레벨과 단어 레벨 로 인코딩과 디코딩을 수행하는 계층적 포인터 네트워크를 제 안하고, 이를 이용하여 모든 멘션에 대한 상호참조해결을 수행 한다.
3. 계층적 포인터 네트워크
포인터 네트워크는 어텐션 메커니즘 기반 RNN encoder- decoder를 이용하여 입력열에 대응되는 위치를 결과로 출력하 는 모델이며, 가변길이 출력 클래스 문제를 해결할 수 있다.
본 논문에서 제안하는 계층적 포인터 네트워크는 일반적인 포인터 네트워크에 문장 인코딩 정보를 함께 사용하여 어텐션 가중치(attention weight)를 학습하는 모델로, 단어 레벨뿐만 아 니라 문장 레벨로 인코딩을 수행하고 디코딩에서 문장 레벨과 단어 레벨의 정보를 모두 이용한다. 본 논문에서는 인코더를 위해 bidirectional Gated Recurrent Unit(bi-GRU)[3]를 사용하며, 입력열(단어)에 대한 인코더의 hidden state는 ℎി௪, 문장 인코더 의 hidden state는 ℎി௦로 정의한다.
ℎ௧= ℎ௬௦_௪షభ, ℎ௬௦_௦షభ, ℎ௧ିଵ
௧ ′, ′ = exp ℎ௧, ℎ௪ᇱ, ℎ௦ᇱ
∑ exp ℎ௪ ௧, ℎ௪, ℎ௦
, ℎ
ℎ௧, ℎ௪, ℎ௦ = ௧்tanhℎ௧; ℎ௪; ℎ௦ , ௧
௧்tanhℎ௧; ℎ௬௦_௪ ; ℎ௪; ℎ௦ , 2௧
485
2016년 동계학술발표회 논문집
argmaxᇲ , ,
, ′ exp , exp ,
∑ exp , exp ,
, 2
, !tanh % &; ( , )
!tanh % &; _ ; ( , )2
argmaxᇲ , ′, 2
௧는 디코더의 hidden state이며, 단어열의 인코딩(௪과 문장 열의 인코딩(௦, 디코더의 이전 시간 hidden state (௧ିଵ)를 입력 으로 받는다. ௧는 score 함수의 결과 벡터에 를 적용하 여 정규화한 값(즉, attention weight)으로 입력 열의 각 위치를 가리킬 확률로, hrpt와 hrpt2로 나뉜다.
Hrpt는 ௧, ௪, ௦ 함수를 이용하며, score 함수 중에서 은 ௧, ௪, ௦를 합(concatenate)하여 얼라인먼트 스코어 (alignment score)를 계산하고, 2 는 이전 출력 결과 ௧,
_ , ௪, ௦를 합하여 얼라인먼트 스코어를 계산한다.
Hrpt2는 ௧, 함수를 이용하며, hrpt와 달리 단어 레 벨 얼라인먼트 스코어와 문장 레벨 얼라인먼트 스코어를 각각 구하고 서로 곱하여 어텐션 가중치(attention weight)를 계산한 다. Hrpt2에 대한 score 함수 중에서 concat은 ௧와 (௪ 혹은
௦)를 합하여 얼라인먼트 스코어를 계산하고, concat2는 ௧,
_ , h를 합하여 얼라인먼트 스코어를 계산한다.
4. 계층적 포인터 네트워크를 이용한 상호참조해결
상호참조해결을 위한 계층적 포인터 네트워크의 모델 구조는 [그림 1]과 같다.
그림 1. 계층적 포인터 네트워크 모델 구조
[그림 1]에서 인코더의 입력은 하나의 문서(즉, n개의 문장)가 되며, 입력열은 X s , A, B, C, /s , s , D, E /s ! 와 같 다. 입력 원소는 각 형태소 분석 결과(형태소/품사태그)이고, <s>
는 문장의 시작을, </s>는 문장의 끝을 알리는 기호이다. 디코더 의 입력은 입력문서의 모든 멘션들의 중심어 위치로 이루어진 Y୧୬୮୳୲ 1, 3, 6, 8!이 되고, 이에 따른 출력열은 디코더의 입력 멘 션들의 선행사 위치로 이루어진 Y୭୳୲୮୳୲ 1, 3, 1, 3! 이 된다. 각 디코더 입력은 출력결과로 자신이 포함된 엔티티의 위치를 가리 킨다(데이터 구조에 대한 자세한 설명은 4.1장을 참고한다).
단어 레벨 인코딩은 인코더에 입력된 문장을 Projection layer
와 Hidden layer를 통하여 생성한다. 단어 레벨 인코딩을 생성 하는 중에 등장하는 각 문장의 마지막 위치(즉, </s>)마다 hidden state를 복사하여 문장 레벨 인코딩을 생성한다. 디코더 는 각 입력마다 단어 레벨 인코딩과 문장 레벨 인코딩에 대한 어텐션 가중치를 계산하여 현재 출력 위치를 예측한다.
4.1. 포인터 네트워크 기반 상호참조해결 데이터 구조 포인터 네트워크 기반 상호참조해결은 문서 내 등장하는 멘션 들이 올바른 엔티티 번호를 가리키며, 이때 참조해결 되는 엔 티티의 번호는 각 엔티티의 첫 번째 멘션이 문장에서 등장한 위치로 정의한다.
그림 2. 포인터 네트워크 기반 상호참조해결의 데이터 구조
[그림 2]는 포인터 네트워크 기반 상호참조해결 데이터 구조 에 대한 예이며, 문장(Sentence)과 엔티티(Entity), 데이터 셋 (Data set)을 나타내고 있다. 입력된 문장 요소는 “형태소/품사 태그:단어사전id[인덱스]”와 같이 표현하였고, 엔티티 요소들은 단어와 인덱스로만 표현하였다. 엔티티는 현재 참조해결 된 멘 션들의 집합으로, 엔티티의 첫 번째 멘션 “명물[3]”을 기준 (pivot)으로 정의하고, 엔티티에 포함된 모든 멘션들이 해당 위 치(기준)로 포인팅 하도록 하여 데이터 셋을 구성한다. 이에 따 라, 데이터 셋에서는 명물/NNG[3]의 위치가 기준으로 엔티티 번호(entity id)가 되고, 다른 멘션들(자갈치시장/NNP[6], 이름 /NNG[8])이 이 기준을 가리키도록 하여 서로 같은 엔티티에 포함됨을 나타낸다.
5. 실험
본 논문에서는 계층적 포인터 네트워크를 이용한 상호참조해결 의 실험 데이터로 ETRI 퀴즈 도메인 상호참조해결 데이터 셋을 이용하였다. 이 데이터 셋은 퀴즈 도메인(장학퀴즈와 wiseQA) 의 질문문서로 구성되어 있으며, 학습 데이터를 1,819 문서, 개 발(development) 데이터를 184 문서, 평가 데이터를 221 문서로 구성하였다. 상호참조해결에 대한 평가 지표는 CoNLL F1 값[9]
을 이용하였으며, 중심어 기반으로 성능을 측정하였다.
단어표현(word embedding)은 10만 단어에 대하여 2년치 뉴스 기사를 NNLM(Neural Network Language Model)[10]으로 학습한 것을 사용하였다. 인코더와 디코더의 활성함수는 tanh를 사용하 였고, attention layer의 활성함수는 relu를 사용하였다. 학습율은 0.05을 시작으로 성능 개선이 없으면 5 에포크(epoch)마다 50%씩 감소시켰으며, RMSprop를 이용하여 학습하였다. Drop-out의 확률 과 히든 레이어 유닛 수는 개발셋(development set)을 이용하여
486
2016년 동계학술발표회 논문집
최적의 값을 찾았으며, 평가셋(test)으로 최종 성능을 측정하였다 ([표 2, 3] 참고).
[표 1]은 drop-out을 0으로, 히든 레이어 유닛 수를 [100, 50]
(즉, [ℎശሬሬԦ, ℎ௦ ௧] )으로 고정하고, 어텐션 스코어 방법(attention scoring method)에 따른 상호참조해결 성능을 개발셋에서 측정 한 결과이다. ܿ݊ܿܽݐ௧ଶ가 74.18%로 어텐션 스코어 방법들 중에서 가장 좋은 성능을 보였으며, 일반 포인터 네트워크 (concat)에 비하여 1.61%의 성능 향상을 보였다.
[표 2]는 [표 1]에서 가장 좋은 성능을 보인 ܿ݊ܿܽݐ௧ଶ에 대 한 drop-out 확률 값의 최적화를 수행한 것으로, drop-out이 0.5 일 때 CoNLL F1(dev)이 76.23%로 가장 좋은 성능을 보였다.
[표 3]은 ܿ݊ܿܽݐ௧ଶ를 사용하고 drop-out 확률 값을 0.5로 고정한 후, 히든 레이어 유닛 수 최적화를 수행한 것이다. 히 든 레이어 유닛 수가 [1600, 800]일 때 CoNLL F1(dev)이 76.43%로 가장 좋은 성능을 보였으며, 이때 CoNLL F1(test)는 72.43%를 보였다.
[표 4]는 본 논문에서 제안한 방법과 일반 규칙기반[5] 그리 고 [8]의 방법을 이용한 상호참조해결의 성능을 비교한 것이 다. 본 논문에서 제안한 방법이 규칙기반과 [8]의 방법에 비하 여 각각 21.83%, 15.17% 우수한 성능을 보였다.
표 1. 어텐션 스코어 모델에 따른 상호참조해결 성능 Attention scoring method CoNLL F1 (%, dev)
ܿ݊ܿܽݐ[8]: 단어 레벨 인코딩만 확인
72.57
ܿ݊ܿܽݐ௧
73.26
ܿ݊ܿܽݐ2௧
73.99
ܿ݊ܿܽݐ௧ଶ
74.18
ܿ݊ܿܽݐ2௧ଶ
73.24
표 2. ࢉࢉࢇ࢚ࢎ࢚࢘에 대한 Drop-out 최적화 Attention scoring method Drop-out CoNLL F1 (%, dev)
ܿ݊ܿܽݐ௧ଶ
0.1 74.97 0.3 75.06 0.5 76.23
0.7 74.73 0.9 68.84
표 3. ࢉࢉࢇ࢚ࢎ࢚࢘에 대한 히든 레이어 유닛 수 최적화 Attention
scoring method
Dimension of [ࢎശሬሬሬԦ, ࢎ࢙ ࢚]
CoNLL F1 (%, dev)
CoNLL F1 (%, test)
ܿ݊ܿܽݐ௧ଶ
[100, 50] 76.23 - [200, 100] 75.77 - [400, 200] 76.20 - [800, 400] 75.06 - [1600, 800] 76.43 72.43
표 4. 규칙기반과 계층적 포인터 네트워크 성능 비교 (test) Model Pre Rec CoNLL F1
규칙기반[5] 54.95 46.98 50.60 규칙기반+포인터 네트워크[8] 70.45 61.76 65.77
계층적 포인터 네트워크 88.66 61.28 72.43
6. 결론
본 논문에서는 계층적 포인터 네트워크 모델을 제안하고, 이를 모 든 멘션 대상의 한국어 상호참조해결에 적용하였다. 실험 결과, 본 논문에서 제안한 방법이 CoNLL F1 (test) 72.43%로 기존 규칙 기반 상호참조해결 보다 21.83%, 일반 포인터 네트워크 기반 대 명사 상호참조해결을 이용한 방법 보다 15.17% 더 높은 성능을 보였다. 향후 연구로는 상호참조해결을 위해 더 많은 데이터를 구 축하여 품질을 향상시킬 것이며, 현재 질문 문서에만 적용하고 있 는 계층적 포인터 네트워크를 더 긴 문장과 더 많은 엔티티를 가 진 일반 문서에도 적용할 예정이다. 또한 다양한 자연어처리 문제 (SRL 등)에도 적용할 예정이다.
감사의 글
이 논문은 2016년도 정부(미래창조과학부)의 재원으로 정보통신기술진흥센 터의 지원을 받아 수행된 연구임. (No.R0101-16-0062, (엑소브레인-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] K. Cho, et al. Learning phrase representation using RNN encoder- decoder for statistical machine translation. Proceedings of EMNLP’
14, 2014.
[4] H. Lee, et al. Deterministic coreference resolution based on entity- centric, precision-ranked rules. Computational Linguistics 39.4: pp. 885- 916, 2013.
[5] 박천음, 최경호, 이창기. 다단계시브를 이용한 한국어 상호참조해 결, 정보과학회논문지 제 41권 제 11호, pp. 992-1005, 2014.
[6] A. Rahman, and V. Ng. Supervised models for coreference resolution.
In: Proceedings of the 2009 Conference on Empirical Methods in Natural Language Processing: Volume 2-Volume 2. Association for Computational Linguistics, pp. 968-977. 2009.
[7] C. Park, et al. Korean Coreference Resolution with Guided Mention Pair Model using the Deep Learning. To be published in ETRI Journal, 2016
[8] 박천음, 이창기. 포인터 네트워크를 이용한 대명사 상호참조해결, KCC 2016, pp. 699-701. 2016.
[9] 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.
[10] 이창기, 김준석, 김정희. 딥 러닝을 이용한 한국어 의존 구문 분석.
제26회 한글 및 한국어 정보처리 학술대회, pp. 87-91, 2014.