Higher-order Coreference Resolution with Coarse-to-fine Inference


이번 포스팅에서는 Higher-order Coreference Resolution with Coarse-to-fine Inference라는 논문을 리뷰하는 시간을 가지도록 할 것이다.

이전 포스팅인 End-to-End Neural Coreference Resolution 논문의 연장선인 연구로, 기존 연구에 Attention Mechanism 기법과 Coarse-to-fine Inference 기법을 추가하여 실험을 진행하였으며 약 F1 Score가 5.8% 가량 상승한 실험 결과를 보여주었다.

(1) Introduction

이전 포스팅에서 Coreference Resolution, 즉 상호참조해결에 관한 간략한 설명을 한 적이 있다. 상호참조해결이란 같은 개체를 나타내는 맨션 집합을 찾아내는 것을 의미한다. 논문에 나오는 아래의 예시를 참조하자.

위 그림에서 [I] 와 [you], 그리고 [all of you]가 모두 speaker 1을 가르키는 것을 확인할 수 있다. 즉, 자연언어 문장에서 [Speaker 1]이라는 개체를 가르키는 명사구, 대명사, 지시관형사구와 같은 멘션들을 찾는 작업들을 일컫는다.

문제는 Coreference Resolution 작업이 단순 Classification 문제가 아니라는 것이다. 예를 들어, Coreference Resolution의 작업 중 하나인 Character Identification 문제를 살펴보자.

Character Identification은 단순히 영화나 드라마 Script에서 등장하는 대명사들이 어떠한 등장인물과 맵핑시킬 수 있는지에 대한 문제이다. 물론 Gold Label 자체로 해당 대명사들이 어떠한 등장인물을 가르키는지 만들어 학습시킬 수 있지만, 학습된 모델은 다른 드라마나 영화 스크립트에 적용될 수 없다. 즉 Classification 문제가 아닌 Clustering 문제로 보고 해결해야 한다는 것이다. 이는 이전 포스팅 내용도 같다.

그래서 Clustering 작업을 위해 현재 등장한 명사구가 어떠한 선행사와 연관되어 있는지를 보고 이를 묶어 군집화할 필요성이 있다.

(2) Previous Works

기존 Previous Work인 coreference resolution task 정의를 살펴보자.
먼저 End-to-End Neural Coreference Resolution 논문에서 주어진 문서에 등장하는 span i에 대해 각 선행사들을 태깅한다: $y_i$
$y_i$에 대해 가능한 선행사 set들은 다음과 같다: $\mathcal{Y}(i) = \{ \epsilon, 1, ..., i-1 \} $. $\epsilon$은 선행사가 없을 경우를 뜻한다.
선행사가 없을 경우는 다음과 같은 두 개의 시나리오를 뜻한다:
(1) 해당 span i가 개체 멘션이 아니거나
(2) span i가 개체 멘션이지만 진짜로 이전 span에 대해 선행하는 span이 없는 경우

(3) Model

Baseline

Baseline에서 각 span i에 대해 선행사들에 대한 확률 분포 $P(y_i)$를 구한다:
$$P(y_i) = \frac{e^{s(i,y_i)}}{\sum_{y^\prime \in \mathcal{Y}(i)} e^{s(i,y^\prime)}} $$
이 때, $s(i,j)$는 span i와 span j 사이의 coreference link score를 의미한다.
이 score는 다음과 같이 구성된다:
$$s(i,j) = s_m(i) + s_m(j) + s_a(i,j) $$
이 때 $s_m(i)$와 $s_m(j)$는 각 span i와 span j가 mention인지에 대한 점수를 뜻하고 $s_a(i,j)$는 i의 선행사가 j인 점수를 뜻한다.

이러한 점수는 vector repregentation $g_i$를 통해 계산된다. 이는 bidirection LSTM을 이용하여 구하게 되는데 그 식은 다음과 같다:

$$s_m(i) = w^\intercal_m FFNN_m(g_i) $$
$$s_a(i,j) = w^\intercal_a FFNN_a([g_i, g_j, g_i \circ g_j, \phi(i,j)]) $$

$\circ$는 element-wise multiplication을 의미하고 FFNN은 feed-forward neural network를 의미한다. $\phi(i,j)$는 두 span사이의 거리나 메타데이터에서 사용되는 feature 정보를 압축한 feature vector이다.

Higher-order Coreference Resolution

그렇다면 기존 연구에서의 문제점은 무엇일까?

기존 연구에서는 위 Figure 1 그림에 대해 다음과 같은 span pairs가 생성되었다:
(I, you) and (you, all of you)
그러나 이러한 pair들은 locally하게 존재하는 것이지, globally하게 존재하지 않았다.
실제로는 (I, you, all of you)와 같이 묶여야 하는 것이다. 따라서 기존 논문에서는 coreference resolution 단계에서 first-order로 진행한 것을 확인할 수 있다. 일차적으로 연결된 선행사 정보만 확인하여 연결한 것이다.

이러한 문제들을 해결하고자 본 논문에서는 Attention mechanism을 도입한 Higher-order Coreference Resolution을 진행하였다.

$$ P_n(y_i) = \frac{e_s(g_i^n, g^n_{y_i})}{\sum_{y \in \mathcal{Y}(i)} e^s(g_i^n, g^n_y)} $$

baseline 모델에서는 오직 span representation이 $g_i^1$인 모델을 사용하였다. 본 논문에서는 모든 iteration마다 scoring function이 같은 parameter를 사용하지만 다른 span representation을 사용하도록 수정하였다. 이 때 attention mechanism을 도입한다:

$$ a_i^n = \sum_{y_i \in \mathcal{Y}(i)} P_n(y_i) \cdot g^n_{y_i} $$

이는 attention mechanism에서 사용될 ratio가 확률 분포에 기반하여 생성된다는 것을 확인할 수 있다.

이러한 span representation은 다음과 같이 업데이트 된다.

$$ f^n_i = \sigma(W_f[g^n_i, a^n_i]) $$
$$ g^{n+1}_i = f^n_i \circ g^n_i + (1 - f^n_i) \circ a^n_i) $$

이 때 학습된 gate vector $f^n_i$는 현재 span information을 얼마나 유지하고, 얼마나 새로운 정보를 융합할지를 의미한다.

즉, 살펴보면 span i에 대해 가질 수 있는 선행사들에 대해 ratio를 배운다. 이 때 ratio는 선행사가 높은 확률 점수를 가질 경우 ratio가 높게 계산되어 해당 span representation이 더해지게 된다. 이후, 점차 선행사들의 정보와 현재 span의 정보들이 융합되어 새로운 span representation을 건설하도록 만드는 것이다.

(4) Coarse-to-fine Inference

이전 논문에서 발생됐던 문제점 중 하나는 바로 학습시간이었다. 너무 긴 문서 같은 경우에 pruning을 사용하지 않으면 남는 span이 매우 커졌기에 bottlenect 현상이 발생하였다. 즉 tensorsize $M \times M \times (3|g| + |\phi|)$에 대해 계산을 하였기에 선행사들을 pruning하는 방법이 필요하였다.

따라서 기존 논문에서는 가장 가까운 K개의 선행사만 고려하여 계산량을 다음과 같이 줄였다: $M \times K \times (3|g| + |\phi|)$

하지만 이는 매우 긴 문서에 대해 성능 저하를 일으켰고, 이 부분을 줄이는 방법을 고안하였다.

먼저, span i와 span j에 대해 간단한 score function을 만들었다:
$$s_c(i,j) = g^\intercal_i W_c g_j$$

$W_c$는 학습된 weight matrix로, 이는 span i와 span j에 대해 단순 비교하는 방식의 함수를 만들었다. 예를 들어 유사한 구조를 가지고 있는 Bill Gates나 B. Gates와 같은 예시가 될 수도 있다. 물론 $s_a(i,j)$와 비교해서는 상호참조점수가 F1 Score 3%정도 하락한다. 하지만 계산에 있어 이점이 있기 때문에 $s_c(i,j)$를 구하는 것을 통해 matrix의 size를 줄였다 : $M \times |g|$ 와 $M \times M$

그러므로 이러한 $s_c(i,j)$는 roughly하게 그럴듯한 선행사들을 계산하는 점수로 사용된다:

$$s(i,j) = s_m(i) + s_m(j) + s_c(i,j) + s_a(i,j)$$

이러한 점수 함수를 가지고 다음과 같은 three-stage beam search를 통해 pruning을 진행하였다.

1) $s_m(i)$에 기반하여 top M개의 span을 추출한다.
2) $s_m(i) + s_m(j) + s_c(i,j)$에 기반하여 span i에 대해 top K개의 선행사들을 추출한다. 주의할 점은 $s_a(i,j)$가 아니라 간단한 상호참조점수 함수를 통해 추출한다는 것이다.
3) 이 후 남아있는 span pairs에 대해 $s(i,j)$를 계산한다. 이 마지막 stage에서 soft higher-order inference가 계산되게 된다.

(5) Experimental Setup

이 논문에서는 이전 논문과는 다르게 ELMO embedding을 추가하여 사용하였다. ELMO embedding에 관련된 내용은 다음 포스팅에 하도록 하겠다. parameter와 같은 정보들은 원 논문을 참조하도록하자.

(6) Results

ELMO embedding의 효과가 매우 크기도 했지만 본 논문에서 제안된 방법이 이전 논문에 비해 성능이 매우 향상된 것을 확인할 수 있었다. 이는 state-of-the-art performance이며 이전 논문보다 계산량을 줄였음에도 효과적인 모델을 건설했음을 확인할 수 있었다.

아쉬운 점은 ELMo Embedding을 제거했을 때의 효과를 보고 싶었는데 그 부분은 없어 아쉬웠다.







댓글

가장 많이 본 글