-
[논문] End-to-end Neural Coreference Resolution연구실 2020. 7. 1. 16:00
0. 용어 소개
•coreference resolution(상호 참조 해결): 임의의 개체(entity)에 대해 다른 표현으로 사용되는 단어들을 찾아 서로 같은 개체로 연결해주는 자연어처리 문제
다음과 같은 문장에서 가능한 span •span: 한 개 이상의 단어로 이뤄진 명사구가 될 수 있는 단어들의 집합
•mention: 상호참조해결의 대상이 되는 모든 명사구(갓 볶은 원두로, 갓 볶은 원두로 만든 커피)
•head(중심어): mention에서 해당 구의 실질적인 의미를 나타내는 단어(갓 볶은 원두로 만든 커피)
•coreference(상호참조): 같은 개체를 가리키는 mention들(갓 볶은 원두로 만든 커피, 카페인, 그것)
1. Introduction
- 최초의 end-to-end neural coreference resolution 모델
- 그동안의 coreference 모델들은[1][2][3]는 syntactic parser를 이용한 파이프라인 모델
- mention detection(mention인지 아닌지 판별)
- systactic features for clustering(head 단어 판별)
- 그동안의 coreference 모델들은[1][2][3]는 syntactic parser를 이용한 파이프라인 모델
- 본 논문에서는 이런 파서들을 사용하지 않고도 performance를 향상시킴
- 어떤 span이 entity mention인지 아닌지, 그 mention을 어떻게 클러스터링 할 지를 학습
- 문장의 모든 span(최대 길이 이하)을 살펴보고, gold coreference cluster에서 선행 span의 marginal likelihood를 최적화
- 문서 내 텍스트들에 대한 span 벡터 임베딩을 만들어 낸다.
- 문맥에 의존적인 boundary representation을 head-finding attention 매커니즘과 결합
- Attention component은 기존의 파서 기반의 head-word matching feature(Durrett and Klein, 2013)과 비슷하지만, 연속적인 에러에 덜 영향을 받으며, attention의 가중치가 기존의 전통적인 headedness의 정의와도 상관관계가 있음을 밝혀냈다.
- 모든 span 쌍을 계산하지 않고, 각 span의 mention score과 pair-wise antecedent score를 이용해 span을 pruning
- 기존의 OntoNotes benchmark에서 F1을 1.5 줄였으며, 5개 모델에 대한 앙상블에 대해서는 3.1만큼 줄였다.
[1] Sam Wiseman, Alexander M Rush, and Stuart M Shieber. 2016. Learning global features for coreference resolution. arXiv preprint arXiv:1604.03035.
[2] Kevin Clark and Christopher D. Manning. 2016a. Deep reinforcement learning for mention-ranking coreference models. In Empirical Methods on Natural Language Processing (EMNLP).
[3] Kevin Clark and Christopher D. Manning. 2016b. Improving coreference resolution by learning entitylevel distributed representations. In Association for Computational Linguistics (ACL).
2. Related Work
- 상호참조해결에서 머신러닝 기법을 사용하게 된 것은 꽤 오래됨.
- 하지만 ‘상호참조해결’ task 자체가 복잡하기 때문에 hand-engineered 시스템을 사용한 기법이 최근까지도 사용
- 그동안은 highly engineered mention proposal 알고리즘을 이용한 head feature 파서를 이용
- 이런 파서를 이용한 파이프라인 구조는 문제점을 가짐.
- 잘못된 파싱이 연속된 에러를 야기
- 새로운 언어에 대해 일반화 하지 못함
- Daum´e III and Marcu (2005): mention detection과 상호참조해결을 함께 한꺼번에 모델링 한 non-piplined system이 처음 제안
- 문장의 왼쪽에서 오른쪽으로 탐색하며 coreference structure을 예측하는 검색 기반 시스템
- 상호참조 해결의 종류:
- Mention-pair classifiers(Ng and Cardie, 2002; Bengtson and Roth, 2008)
- 문서 내 등장하는 모든 mention을 두 개씩 묶어 pair를 만들어 상호참조해결 문제를 분류 문제로 처리하는 방법
- Entity-level models(Haghighi and Klein, 2010; Clark and Manning, 2015, 2016b; Wiseman et al., 2016)
- 선행사와 현재 등장한 명사 에 대해 상호참조가 가능하면 이 둘에 대하여 하나의 엔티티로 집합관계를 형성
- 뒤에 명사와 앞서 생성된 엔티티에 있는 후보 멘션(candidates)과의 관계에서 이 둘은 엔티티의 속성 정보를 공유하여 서로 상호참조가 가능한지 확인
- 상호참조가 가능하면 등장한 명사를 해당 엔티티로 포함시킨다.
- Latent tree models(Fernandes et al., 2012; Bj¨orkelund and Kuhn, 2014; Martschat and Strube, 2015)
- Mention-ranking models(Durrett and Klein, 2013; Wiseman et al., 2015; Clark and Manning, 2016a)
- 문서 내 등장하는 모든 mention을 가장 높은 점수를 가진 antecedent mention에 할당하는 방법
- Mention-pair classifiers(Ng and Cardie, 2002; Bengtson and Roth, 2008)
3. Task
- D: document, speaker와 genre에 대한 정보를 메타데이터로 가짐
- T: 문서 내 단어 갯수
- N: T(T+1)/2, 문서 내 가능한 span 갯수
- START(i), END(i): i번째 span의 처음 단어와 끝 단어 (1≤i ≤N)
- span i를 antecedent y_i에 할당하므로써 상호참조 링크를 표현
- y_i 에 대해 Y(i)={ϵ, 1, …, i -1}
- ϵ: dummy antecedent
- 해당 span이 entity mention이 아닌 경우
- 해당 span이 entity mention이지만 앞의 span과 상호참조 관계가 없는 경우(맨 처음 등장한 경우)
4. Model
- 요약
maximum width 까지의 모든 가능한 span 을 고려하지만 , 그림에서는 일부만 표현 - span embedding representation 계산
- mention score 계산해 낮은 mention 점수를 받은 span들은 pruning
- 수용 가능한 span들이 갯수만이 coreference decision 단계에서 사용
- antecedent score 계산
- 각 span의 mention 점수들과 pairwise antecedent score을 종합해 최종 상호 참조 점수 계산
- Step1
- bidirectional LSTM을 사용해 span representation 생성
- span 내외의 어휘 정보를 인코딩
- attention 매커니즘을 이용해 span 내 head 단어 찾기
- 낮은 점수를 받은 span들은 pruning
- bidirectional LSTM을 사용해 span representation 생성
- 1단계: Bi-LSTM을 이용해 모든 단어를 인코딩
- δ∈{-1, 1}: LSTM 방향
- x_t*: bi-LSTM의 양방향 결과를 합친 것
- 모든 문장은 독립적인 LSTM을 사용
- 문장 간 정보가 본 실험에는 크게 중요하지 않기 때문
- 2단계: Attention이용해 head 단어 찾기
- (x_i ) ̂: span i에 포함된 워드 벡터의 weighted sum
- 구문론적 파서를 이용하지 않고 attention 매커니즘을 이용해 head word를 찾는다.
- 3단계: span i에 대한 representation g_i 생성
- x_(START(i))*, x_(END(i))*: i번째 span의 맨 첫번째/마지막 단어의 representation을 의미
- 개체 멘션이 되는 경우는 맨 첫 단어가 명사이거나 맨 끝 단어가 명사이어야 하기 때문
- head 단어 벡터 (x_i ) ̂ 는 representation이 head 단어와 비슷한 표현을 가지도록 만들어 줌.
- ∅(i): span i의 크기를 의미하는 feature vector
- 2단계
'연구실' 카테고리의 다른 글
[논문] Item2Vec: Neural Item Embedding for Collaborative Filtering(2016) (0) 2020.03.11 Python argsort() 함수 (0) 2020.01.11 #26. "Deep Learning Cookbook" - 9. 이미 훈련된 이미지 인식 신경망 재사용하기 (0) 2019.11.08 #25. YOLO v3 with PyTorch (0) 2019.11.07 #24. Neural Machine Translation (0) 2019.10.28 - 최초의 end-to-end neural coreference resolution 모델