DL&ML/papers

Extractive Summarization as Text Matching

식피두 2020. 10. 22. 14:43

논문 링크 ; arxiv.org/pdf/2004.08795v1.pdf

 

현재 CNN/DM 데이터 셋에 대해서 SOTA를 찍고 있는 모델을 다룬 논문이다.

 

이전의 뉴럴넷 기반의 추출식 요약 모델은

각 문장 간의 관계를 모델링해서 문장을 추출하는 방식으로 구현이 되어 왔다.

(각 문장에 스코어를 매기고, 정렬하여 추출)

 

본 논문에선 추출식 요약 태스크를 "Semantic text matching" 문제로 해석하여 접근하였다. 

문서와, 문서에서 추출된 후보 요약문들을 semantic space 상에서 매칭 시키는 방식으로

기존 접근 방식에서의 paradigm shift라고 표현하고 있다.

 

"Matching-based Summarization Framework"

github.com/maszhongming/MatchSum

 

maszhongming/MatchSum

Code for ACL 2020 paper: "Extractive Summarization as Text Matching" - maszhongming/MatchSum

github.com

파이토치 기반의 코드로 공개가 되어있어, 참고해볼 만할 듯!

 

기존의 몇 가지 연구 정리

Cheng and Lapata (2016) ; Nallapati et al. (2017) 논문에서

추출식 요약문제를 시퀀스 라벨링 문제로서 정의하고 encoder-decoder 구조를 이용해 해결

각 문장에 대해 독립적으로 이진 분류를 수행하였고,

결과적으로는 문장 간의 높은 중복성을 띌 여지를 남김

 

중복을 해결하기 위해서

Chen and Bansal, 2018 ; Jadhav and Rajan, 2018 ; Zhou et al. 2018)에서 auto-regressive decoder를 제안하여

특정 문장에 대해 점수를 매기는 연산이 다른 문장에 영향을 미칠 수 있도록 하였음.

Paulus et al. 2017 ; Liu and Lapata, 2019 에서는 Trigram Blocking을 사용해서,

문장간에 겹치는 trigram이 있다면 문장을 스킵하는 식으로 중복성을 제거.

간단한 방법으로 remarkable한 성능 향상을 이끌어 냈음.

 

어쨌든, 이전의 연구들은 문장간의 관계를 모델링하여 sentence-level의 extractor를 구현한 것이며

전체 요약문의 semantic을 고려한 것이라고 보긴 어렵다.

이렇게 되면, 여러 문장들의 결합에 관한 부분은 무시되고,

highly generalized sentence만 뽑힌다.

 

MATCHSUM ? Sentence-level ? Summary-level?

본 논문에선 "MATCHSUM" 이란 이름의 sumary-level 프레임워크를 제안한다. 

 

Extractive Summarization as Text Matching, Ming Zhong, Pengfei Liu et al.

핵심 아이디어는 다음과 같다.

"좋은 요약은 좋지 않은 요약에 비해서 의미적으로 원본 문서 전체에 더 유사하다"

 

Semantic text matchingsource/target text fragmet 사이유사도를 측정하는 문제이다.

이 기술은 information retrieval, QA, Natural language inference 등에 쓰이고 있으며,

가장 전통적인 접근 방식은 각 text fragment의 벡터 표현을 학습하고,

유사도 메트릭을 이용해서 매칭 스코어를 계산하는 방식으로 이루어진다.

 

추출식 요약을 위해서 본 논문에선 Siamese-BERT 아키텍처를 제안,

원본 문서와 후보 요약간의 유사도를 계산하였다.

앞서 언급한 핵심 아이디어에 의한 가정에 따라, 좋은 요약은 후보 요약 중 가장 높은 유사도를 가진다.

 

* Siamese network structure(Bromley et al. 1994 ; Hoffer and Ailon, 2015 ; Reimers and Gurevych, 2019)

 

One shot learning, Siamese Network 이해

One shot learning, Siamese Network 이해 Problem Definition 이미지 인식 분야에서 각 label 의 이미지 수가 적을 때 이를 인식하고 분류하는 것은 challenging 합니다. 예를 들어 얼굴 인식 분야에서는 단 몇..

3months.tistory.com

 

One Shot Learning and Siamese Networks in Keras

[Epistemic status: I have no formal training in machine learning or statistics so some of this might be wrong/misleading, but I’ve tried my best.]

sorenbouma.github.io

 

다시 한 번 강조하면,

이전의 sentence-level 추출식 요약 방법은 효율적이긴하다.

단순히 문장 단위로 스코어를 매기고, k 개의 highest score를 뽑으면 된다.

하지만, k 개를 합쳐서 요약문을 완성한 이후에 봤을 때, optimal 하지 않을 수 있다.

 

논문에서 pearl-summary라는 개념을 정의하는데,

다른 후보 요약문에 비해 sentence-level 스코어는 낮지만,

summary-level 스코어는 높은 요약문을 말한다.

 

sentence-level extractor의 경우 구조적으로 pearl-summary를 잘 찾을 수 없다.

 

Extractive Summarization as Text Matching

위 그래프는, sentence score가 높은 요약문이라고 반드시 best summary는 아님을 보여준다.

z=1 위치는 sentence score가 가장 높은 지점 (요약문 후보를 sentence score로 정렬)

z>1 은 pearl summary가 best summary인 지점들을 의미함.

 

여기서 우리는 sentence-level에서 더 나아가 summary-level 추출식 요약이 필요하다는 것을 알 수 있다.

 

MATCHSUMtwo-stage 요약을 수행한다.

최근의 연구(Alyguliyev, 2009, galanis and Androutsopoulos, 2010 ; Zhang et al. 2019a)에서는

two-stage 요약을 시도하고 있는데, 

첫 단계에서는 원본 문서로 부터 몇 개의 fragments를뽑아내고

두 번째 단계에서 최종 요약문을 선택한다.

 

MATCHSUM에서도 extract-then-match 방식을 취한다.

(extract 단계에서 불필요한 정보를 pruning)

 

Siamese-BERT

본 논문의 요약 모델 아키텍쳐는 Liu, 2019 ; Bae et al. 2019 와는 다르게 

modified BERT를 사용하지 않고 (여러 문장을 전달함에 따라 여러 CLS를 추가한다든지)

original BERT를 그대로 사용한다.

 

문서 혹은 요약문을 통째로 BERT에 전달해서

[CLS] 위치의 출력 벡터를 이용해 문서 혹은 요약의 표현(representation)을 얻을 수 있다.

 

두 문서의 유사도는 f(D, C) = cosine(R_D, R_C)로 측정이 된다.

* R_D는 문서의 표현, R_C는 후보 요약문의 표현

 

Siamese BERT 모델을 학습 시키기 위해서

margin-based triplet loss를 사용하였다.

 

D ; 원본 문서

C ; 후보 요약문

C* ; 정답 요약문

 

직관적으로 생각해보면, 정답 요약문 C*는 의미적으로 원본 문서와 가장 가까워야 한다.

f(D,C*) > f(D,C) + r1 의 관계를 만족해야 하기 때문에,

이를 위반하는 케이스에 loss를 주기 위해 다음과 같이 정의한다.

L1 = max(0, f(D, C) - f(D, C*) + r1)

추가적으로, 모든 후보에 대해서 pairwise margin loss도 정의한다.

먼저, 후보 요약문을 정답 요약문과의 rouge score로 내림 차순 정렬 한 뒤

후보간에 랭킹 차이가 크면 더 큰 마진을 준다.

L2 = max(0, f(D, C_j) - f(D, C_i) + (j-i)*r2), (i < j)

 

최종적으로, margin-based triplet loss L = L1 + L2 를 얻을 수 있다.

 

기본 아이디어는 정답 요약문을 가장 높은 매칭 스코어를 가질 수 있게하고,

이와 동시에 후보 중에서 더 나은 후보가 있다면 상대적으로 더 좋은 스코어를 가질 수 있게 하는 것이다.

 

예측 단계에서는

모든 후보에 대해서 D와의 유사도를 측정하여 가장 높은 것을 고른다.

selected C = arg max f(D, C)

selected C = arg max f(D, C)

 

Candidate Pruning

그러면, 후보는 어떻게 정할까?

이 논문에서는 content selection module을 둬서 각 문장에 대한 salience 점수를 측정했다.

점수를 보고 현재 문서와 관련 없어 보이는 문장을 제거한다.

 

이전 연구 BERTSUM(Liu and Lapata, 2019)을 그대로 이용해서

중복 문장을 제거하는 trigram blocking 부분을 떼어내고,

각 문장을 스코어링 했다.

 

pruned 된 문서에 대해서는 모든 경우의 수를 고려하여 k개의 문장으로 구성된 요약문을 생성하였다!

 

음... 많이 기대한 부분이었는데

2 Stage 요약에서 첫 단계인 후보 생성 단계를

단순히 2019 SOTA 모델을 그대로 가져다 쓴 부분이 조금 아쉽긴 하다...

 

Experiment

본 논문에선 6가지 데이터셋에 대해서 실험을 진행하였다. 간략히 옮겨보면,

 

CNN/DailyMail ; 뉴스 기사, 요약문 포함

PubMed ; 과학 논문으로 구성, 긴 글 (본 논문에선 intro 부분을 문서로, abstract 부분을 요약으로)

WikiHow ; 온라인 지식 베이스로부터 추출된 다양한 문서

XSum ; 한 문장 요약 데이터셋 (기사의 주제)

Multi-News ; 뉴스 요약 데이터셋, 긴 요약문

Reddit ; SNS 에서 모아진 데이터셋 (TIFU-long 버전을 사용해서 body는 문서로, TL;DR 부분은 요약으로)

 

구현 디테일(LR, Optimizer, ...) 등은 5.2 섹션을 참고.

 

내가 관심있는 CNN/DM 데이터 셋에 대한 실험 결과는 다음과 같다.

Extractive Summarization as Text Matching, Ming Zhong et al.