포지션 인코딩 기반 포인터 네트워크를 이용한 한국어 상호참조해결
박천음 이창기 강원대학교 컴퓨터과학과 {parkce, leeck} @ kangwon.ac.kr
Korean Coreference Resolution using Pointer Networks based on Position Encoding
Cheoneum Park, Changki Lee
Kangwon National University Dept. of Computer Science 요 약
포지션 인코딩은 문장 내 등장하는 단어의 위치에 따라 가중치를 적용하는 방법이다. 포인터 네트워크는 입력열에 대응되는 위치를 출력하는 딥 러닝 모델이며, 이런 특성을 이용하여 포인 터 네트워크는 상호참조해결에 적용될 수 있다. 그러나 포인터 네트워크는 입력열의 길이가 긴 경우에 성능이 저하되는 문제가 있다. 이와 같은 문제를 해결하기 위하여 본 논문에서는 포지 션 인코딩과 동적 포지션 인코딩을 포인터 네트워크에 적용할 것을 제안하고, 이를 이용한 상 호참조해결을 제안한다. 실험 결과, 본 논문에서 제안한 포지션 인코딩 기반 포인터 네트워크 모델이 기존의 포인터 네트워크 모델보다 3.44% 향상된 CoNLL F1 69.21%의 성능을 보였다.
1. 서 론
문서 내에서 임의의 개체(entity)를 표현하는 여러 단어들은 문맥 을 이해하는데 중요할 역할을 한다. 이러한 개체를 다시 언급할 때 같은 표현을 이용하기도 하지만 보통 대명사나 한정사구, 별명 등과 같이 다른 표현으로 나타낸다. 이처럼 다른 표현으로 등장한 단어들은 서로 상호참조(Coreference) 관계에 있으며, 이 관계에 있는 단어들을 찾아 연결하는 것을 상호참조해결(Coreference resolution)[1, 2]이라 한다. 올바른 상호참조해결이 수행되면, 서로 다른 표현으로 사용된 단어들의 개체 정보를 일관성 있게 유지할 수 있고, 필요한 개체 정보를 추출할 수 있다. 자연어처리의 담화 분석 중 하나인 상호참조해결은 질의 응답, 문서 요약, 기계 번역, 정보 추출, 대화 시스템 등에 응용될 수 있다.
어텐션 메커니즘[3]을 이용하여 입력열에 대응되는 위치를 출력하는 RNN encoder-decoder[4]의 확장된 모델인 포인터 네 트워크(Pointer Networks)[5]는 입력열(즉, 문서 또는 문장)에서 특정 위치를 가리켜 정보를 추출하는 문제에 사용하기 적합하 며, 최근 상호참조해결에 적용되었다[6].
포지션 인코딩(position encoding, PE)[7]은 문장 내 등장하는 단어의 위치에 따라 가중치를 적용하는 방법으로, 주어진 입 력열에서 확인해야 할 위치의 벡터에 가중치 값을 곱하여 학 습 및 예측을 수행한다. 포인터 네트워크는 타겟 클래스가 입 력열이기 때문에 입력열의 길이가 긴 경우에 성능이 저하되는 문제가 있는데, 본 논문에서는 이와 같은 문제를 해결하기 위하 여 포지션 인코딩의 특성을 이용한 포지션 인코딩 기반 포인터 네트워크를 제안하고, 이를 한국어 상호참조해결에 적용한다.
2. 포지션 인코딩 기반 포인터 네트워크
RNN encoder-decoder 모델은 입력열이 주어지면 인코더에서 RNN을 이용하여 인코딩을 수행하여 context vector를 만들고, 이를 이용하여 디코딩을 수행하는 RNN의 확장된 모델이다.
어텐션 메커니즘은 디코딩을 수행할 때 디코더의 hidden state 와 인코더의 hidden state를 이용하여 타겟 클래스 중 어느 부 분을 주의해서 봐야 할지 결정하는 방법이다. 포인터 네트워 크는 어텐션 메커니즘을 기반으로 입력열의 위치가 출력이 되 며, 입력열의 위치에 대한 확률분포를 학습하는 모델이다.
본 논문에서 제안한 포지션 인코딩 기반 포인터 네트워크는 다음과 같은 두 가지 방법으로 나뉜다. 1) 인코딩을 수행할 때 문장 내 등장하는 단어의 위치에 따른 가중치를 인코더 hidden state에 적용하는 방법과, 2) 디코딩을 수행할 때 동적으로 디코 더 입력의 문장과 이전 문장만 위치 가중치를 적용하는 동적 포지션 인코딩 방법(dynamic position encoding, DPE)이다.
포지션 인코딩 기반 포인터 네트워크 모델은 학습 및 예측 을 수행하기 위하여 bi-directional GRU (bi-GRU)[4]를 사용하 며, 수식은 아래와 같다.
𝑃𝑃𝑃𝑃(𝑥𝑥𝑠𝑠) = 𝑀𝑀𝑠𝑠 ∗ 𝑃𝑃(𝑥𝑥𝑠𝑠) 𝑀𝑀𝑠𝑠= (1 − 𝑠𝑠/𝑆𝑆) − (𝑘𝑘/𝑑𝑑)(1 − 2𝑠𝑠/𝑆𝑆)
ℎ�⃗𝑠𝑠= 𝐺𝐺𝐺𝐺𝐺𝐺�𝑃𝑃𝑃𝑃(𝑥𝑥𝑠𝑠), ℎ�⃗𝑠𝑠−1� ℎ⃖�𝑠𝑠= 𝐺𝐺𝐺𝐺𝐺𝐺�𝑃𝑃𝑃𝑃(𝑥𝑥𝑠𝑠), ℎ⃖�𝑠𝑠+1�
ℎ⃡𝑠𝑠= [ℎ�⃗𝑠𝑠, ℎ⃖�𝑠𝑠]
𝑥𝑥𝑠𝑠는 입력 단어이며, 𝑃𝑃(𝑥𝑥𝑠𝑠)는 입력 단어에 단어 벡터 표현을 적용한다. 𝑃𝑃𝑃𝑃(𝑥𝑥𝑠𝑠) 는 입력열에 포지션 인코딩 가중치를
76
element-wise 곱으로 적용한 것이다. 포지션 인코딩의 가중치 는 𝑀𝑀𝑠𝑠로 𝑠𝑠는 단어의 인덱스이고, 𝑆𝑆는 입력열의 전체 길이이며, 𝑘𝑘는 문장 위치, 𝑑𝑑는 단어표현의 차원 수 이다. ℎ�⃗𝑠𝑠은 forward network이고 ℎ⃖�𝑠𝑠는 backward network이며, 𝑃𝑃(𝑥𝑥𝑠𝑠)는 입력열의 s 번째 단어의 단어표현(word embedding)이다. ℎ⃡𝑠𝑠는 h�⃗s와 h⃖�s를 연결(concatenate)한 것이다.
ℎ𝑡𝑡= 𝐺𝐺𝐺𝐺𝐺𝐺�ℎ⃡𝑦𝑦𝑡𝑡−1, ℎ𝑡𝑡−1�
𝑎𝑎𝑡𝑡(𝑠𝑠) = exp �𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠�ℎ𝑡𝑡, ℎ⃡𝑠𝑠��
∑ exp �𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠�ℎ𝑠𝑠 𝑡𝑡, ℎ⃡𝑠𝑠��
𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠�ℎ𝑡𝑡, ℎ⃡𝑠𝑠� = � 𝑣𝑣𝑡𝑡𝑇𝑇tanh�𝑊𝑊𝑎𝑎�ℎ𝑡𝑡; ℎ⃡𝑠𝑠�� , 𝑠𝑠𝑠𝑠𝑐𝑐𝑠𝑠𝑎𝑎𝑐𝑐 𝑣𝑣𝑡𝑡𝑇𝑇tanh�𝑊𝑊𝑎𝑎�ℎ𝑡𝑡; 𝐷𝐷𝑃𝑃𝑃𝑃�ℎ⃡𝑠𝑠��� , 𝑠𝑠𝑠𝑠𝑐𝑐𝑠𝑠𝑎𝑎𝑐𝑐_𝐷𝐷𝑃𝑃𝑃𝑃
𝐷𝐷𝑃𝑃𝑃𝑃�ℎ⃡𝑠𝑠� = 𝐷𝐷𝑠𝑠∗ ℎ⃡𝑠𝑠
𝐷𝐷𝑠𝑠= �1 + (1 − 𝑠𝑠/𝑆𝑆) − ((𝑘𝑘 + 1) /𝑑𝑑)(1 − 2𝑠𝑠/𝑆𝑆), 𝑘𝑘𝑠𝑠− 𝑘𝑘 > 𝑐𝑐 𝜏𝜏, 𝑠𝑠𝑐𝑐ℎ𝑠𝑠𝑠𝑠𝑒𝑒𝑒𝑒𝑠𝑠𝑠𝑠 𝑦𝑦𝑡𝑡= argmax(𝑎𝑎𝑡𝑡(𝑠𝑠′))
포인터 네트워크의 디코더는 GRU를 이용한다. 현재 디코더 의 hidden state ℎ𝑡𝑡는 이전 디코더의 출력 결과 위치에 해당하 는 인코더의 hidden state ℎ⃡𝑦𝑦𝑡𝑡−1와 디코더의 이전 hidden state 를 입력으로 받는다. 입력 열에 대응되는 위치를 결정하는 함 수는 어텐션 가중치 𝑎𝑎𝑡𝑡(𝑠𝑠)이며, 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠�ℎ𝑡𝑡, ℎ⃡𝑠𝑠� 함수의 결과 벡터 인 얼라인먼트 스코어(alignment score)에 softmax를 적용한 값 이다. 얼라인먼트 스코어를 계산하는 함수는 𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠𝑠�ℎ𝑡𝑡, ℎ⃡𝑠𝑠�이며, ℎ𝑡𝑡와 ℎ⃡𝑠𝑠를 연결하여 점수를 계산한다. 이때 동적 포지션 인코 딩 기반 포인터 네트워크(concat_DPE)를 이용할 경우, 인코딩 에 포지션 인코딩 가중치를 계산하여 얼라인먼트 스코어를 구 한다. 𝐷𝐷𝑃𝑃𝑃𝑃�ℎ⃡𝑠𝑠� 는 입력 받은 인코딩에 동적 포지션 인코딩을 적용하는 함수이며, 𝐷𝐷𝑠𝑠는 동적 포지션 인코딩으로서 현재 위 치의 단어가 포함된 문장(𝑘𝑘𝑠𝑠)으로부터 이전 𝑐𝑐번째 문장(𝑘𝑘𝑠𝑠− 𝑘𝑘) 까지 포지션 인코딩 가중치를 적용하고, 범위를 벗어난 위치(𝑐𝑐 번째 앞의 문장들과 현재 디코더 입력 단어 위치의 이후에 나 타나는 단어)들에는 가중치 상수 𝜏𝜏 (𝜏𝜏 < 0.1)를 적용한다.
그림 1. 동적 포지션 인코딩 적용 예제
[그림 1]은 입력 인코딩에 동적 포지션 인코딩을 적용한 예 를 나타낸다. 가로축은 입력열에 대한 인덱스이고, 세로축은 포지션 인코딩의 가중치 값이다. 디코더의 현재 입력 위치부 터 이전 문장까지 포지션 인코딩은 적용하고, 범위를 벗어난 위치들은 𝜏𝜏를 적용한다.
포지션 인코딩과 동적 포지션 인코딩을 서로 다른 모델이
며, 포지션 인코딩을 사용할 때는 score 함수에서 concat을 이 용하고, 동적 포지션 인코딩을 사용할 때는 인코딩을 수행할 때 포지션 인코딩을 적용하지 않는다.
본 논문에서는 beam search를 이용하여 최적의 출력 열을 계산한다. 포지션 인코딩 기반 포인터 네트워크의 모델 구조 는 [그림 2]와 같고, 동적 포지션 인코딩을 사용한 경우는 [그 림 3]과 같다.
그림 2. 포지션 인코딩 기반 포인터 네트워크 모델 구조
그림 3. 동적 포지션 인코딩 기반 포인터 네트워크 모델 구조
[그림 2, 3]에서 인코더의 입력열은 X = {< s >, A, B, C, </s >
, < s >, D, E </s >}와 같다. 입력 원소는 각 형태소 분석 결과 (형태소/품사태그)이고, <s>, </s>은 문장 시작과 끝을 알리는 기호이다. 포지션 인코딩은 [그림 2]와 같이 projection layer 다음에 적용된다. 디코더의 입력은 입력문서에서 명사구들의 중심어 위치로 이루어진 Yinput= {1, 3, 6, 8}이 되고, 이에 따른 출력열은 상호참조해결 대상(디코더의 각 입력 명사구의 선행 사)의 위치로 이루어진 Youtput= {1, 3, 1, 3} 이 된다. 디코더는 출력결과로 입력 위치의 단어가 포함된 엔티티의 위치를 가리 킨다. 동적 포지션 인코딩은 [그림 3]과 같이 디코더에서 어텐 션 가중치를 계산할 때 인코딩에 적용되어, 디코더의 입력과 동적 포지션 인코딩이 적용된 인코딩을 이용하여 얼라인먼트 스코어를 계산한다.
3. 실험
본 논문에서 제안한 포지션 인코딩 기반 포인터 네트워크를
77
이용한 상호참조해결의 실험 데이터는 ETRI 퀴즈 도메인 상호 참조해결 데이터 셋이다. 이 데이터 셋은 퀴즈 도메인(장학퀴 즈와 wiseQA)의 질문 문서로 구성되어 있으며, 학습 데이터는 1,819 문서, 개발(development) 데이터는 184 문서, 평가 데이 터는 221 문서로 구성된다.
학습은 RMSprop을 이용하였으며, 학습율은 0.05을 시작으로 성능 개선이 없으면 5 에포크(epoch)마다 50%씩 감소시켰다. 단 어표현(word embedding)은 10만 단어에 대하여 2년치 뉴스기사 를 NNLM(Neural Network Language Model)[8]으로 학습한 것을 사용하였다. 인코더와 디코더의 활성함수는 tanh를 사용하였고, attention layer의 활성함수는 relu를 사용하였다. 개발셋 (development set)을 이용하여 최적의 하이퍼 파라미터를 찾았으 며, 평가셋(test)으로 최종 성능을 측정하였다.
상호참조해결에 대한 평가 지표는 CoNLL F1 값[9]을 이용하였 으며, 중심어 기반으로 성능을 측정하였다.
[표 1]은 기존 방법인 Bi-GRU 기반 포인터 네트워크 모델과 본 논문에서 제안한 방법인 동적 포지션 인코딩 기반의 포인터 네트워크 모델(PE, DPE)에 대하여 비교실험을 수행하였다. [표 1]
의 모든 모델은 drop-out 0.0, 히든 레이어 유닛 수 [100, 50] (즉, [ℎ⃡𝑠𝑠, ℎ𝑡𝑡])일 때의 성능을 나타낸다. 실험 결과, 본 논문에서 제안 한 포지션 인코딩 기반 포인터 네트워크 모델(DPE)이 bi-GRU 기반 모델보다 약 1.33% 더 좋은 CoNLL F1 성능을 보였다.
[표 2]는 DPE 기반 포인터 네트워크에 대하여 drop-out 0.5 를 기준으로 히든 레이어 차원 수 최적화를 수행한 결과이다.
실험 결과, 히든 레이어 차원 수가 [200, 100]일 때 CoNLL F1 이 76.71%로 가장 좋은 성능을 보였다.
[표 3]은 본 논문에서 제안한 상호참조해결 방법과 기존 상 호참조해결 방법의 성능을 비교한 결과이다. 본 논문에서 제 안한 모델은 [표 2]의 최적 하이퍼 파라미터를 사용한 결과이 다. 실험 결과, 본 논문에서 제안한 방법이 CoNLL F1 69.21%
로 기존 모델들보다 높은 성능을 보였다.
표 1. Bi-GRU 기반과 포지션 인코딩(PE, DPE) 기반 포인터 네 트워크의 상호참조해결 성능 비교
Encoder model Precision Recall CoNLL F1 (%, dev) Bi-GRU 기반 포인터 네트워크 85.53 63.39 72.57
PE 기반 포인터 네트워크 85.52 64.20 73.18 DPE 기반 포인터 네트워크 84.62 66.01 73.90
표 2. 𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄𝒄에 대한 히든 레이어 유닛 수 최적화 Attention
scoring method
Dimension of [𝒉𝒉⃖���⃗, 𝒉𝒉𝒔𝒔 𝒄𝒄]
Precision Recall CoNLL F1 (%, dev)
concat
[100, 50] 90.54 65.31 75.81 [200, 100] 89.57 67.31 76.71 [400, 200] 89.20 66.96 76.40 [800, 400] 89.82 66.67 76.47 [1600, 800] 90.03 64.09 74.82
표 3. 규칙기반과 포지션 인코딩(PE, DPE) 기반 포인터 네트 워크 성능 비교 (%, test)
Model Pre Rec CoNLL F1 규칙기반[10] 54.95 46.98 50.60 규칙기반+포인터 네트워크[6] 70.45 61.76 65.77 DPE 기반 포인터 네크워크 82.39 59.79 69.21
4. 결론
본 논문에서는 포지션 인코딩 기반 포인터 네트워크 모델을 제안 하고, 이를 모든 멘션 대상의 한국어 상호참조해결에 적용하였다.
실험 결과, 본 논문에서 제안한 방법인 동적 포지션 인코딩(DPE) 기반 포인터 네트워크 모델이 개발 셋에서 CoNLL F1 (dev) 76.71%를 보였고, 테스트 셋에서 CoNLL F1 (test) 69.21%로 기존 규칙기반 상호참조해결 보다 18.61%, 일반 포인터 네트워크 기반 대명사 상호참조해결을 이용한 방법 보다 3.44% 더 높은 성능을 보였다. 향후 연구로는 보다 긴 문서에 대한 포인터 네트워크 기 반 상호참조해결을 수행하기 위하여 계층적 포인터 네트워크 모 델에 포지션 인코딩을 적용할 예정이다.
감사의 글
본 연구는 미래창조과학부 및 정보통신기술진흥센터의 정보통신·
방송 연구개발 사업의 일환으로 하였음. [2013-0-00131, (엑소브레인 -1세부) 휴먼 지식증강 서비스를 위한 지능진화형 WiseQA 플랫 폼 기술 개발]
참고문헌
[1] H. Lee, et al. Deterministic coreference resolution based on entity- centric, precision-ranked rules. Computational Linguistics 39.4: pp. 885- 916, 2013.
[2] C. Park, et al. Korean Coreference Resolution with Guided Mention Pair Model using the Deep Learning. ETRI Journal 38.6, pp. 1207-1217, 2016.
[3] D. Bahdanau, et al. Neural machine translation by jointly learning to align and translate. Proceedings of ICLR’ 15, arXiv:1409.0473, 2015.
[4] K. Cho, et al. Learning phrase representation using RNN encoder- decoder for statistical machine translation. Proceedings of EMNLP’
14, 2014.
[5] O. Vinyals, et al. Pointer Networks. Advances in Neural Information Processing Systems, pp. 2674-2682, 2015.
[6] 박천음, 이창기. 포인터 네트워크를 이용한 대명사 상호참조해결, KCC 2016, pp. 699-701. 2016.
[7] Sukhbaatar, et al. End-to-end memory networks, Advances in neural information processing systems. pp. 2440-2448, 2015.
[8] 이창기, 김준석, 김정희. 딥 러닝을 이용한 한국어 의존 구문 분석.
제26회 한글 및 한국어 정보처리 학술대회, pp. 87-91, 2014.
[9] 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.
[10] 박천음, 최경호, 이창기. 딥 러닝을 이용한 가이드 멘션페어 한 국어 상호참조해결, 한국정보과학회 2015 한국컴퓨터종합학술대회, pp. 693-695, 2015.