DL&ML/papers

Text Summarization with Pretrained Encoders

식피두 2020. 10. 21. 23:50

논문 링크 ; arxiv.org/pdf/1908.08345.pdf

 

BERT를 이용해서 문서 요약(extractive, abstractive 방식)이 가능한 프레임워크를 제안한 논문.

 

현재 회사에서 하고 있는 일이 뉴스를 extrative 방식으로 요약하는 것이므로 extractive 부분에 집중해서 정리해보자.

 

본 논문에선 문장에 대한 표현을 만들어주는 BERT를 기반으로 document-level encoder를 제안했다.

 

BERT의 인코더 위에 몇 개의 inter-sentence 트랜스포머 레이어를 추가하는 식으로 구현이 되었다.

(문장 추출을 위한 document-level의 피쳐를 뽑기 위함)

 

19년 발표 당시에 CNN/DailyMail dataset에 대해 SOTA를 찍은 논문.

 

약 30만개로 이루어진 CNN DM 데이터셋

www.tensorflow.org/datasets/catalog/cnn_dailymail

 

cnn_dailymail  |  TensorFlow Datasets

CNN / DailyMail 비 익명 요약 데이터 세트. 다음과 같은 두 가지 기능이 있습니다.-기사 : 요약 할 문서로 사용되는 뉴스 기사의 텍스트-하이라이트 : 대상 요약 인 각 하이라이트 와 그 주변에있는

www.tensorflow.org

 

Background

Pretrained Language Model

최근(? 이제는 꽤 됐음) NLP task의 핵심 기술로 쓰이고 있는 프리트레인 랭귀지 모델.

워드 임베딩의 아이디어를 확장하면서 출발하였고, 굉장히 큰 말뭉치(corpus)를 기반으로

단어의 contextual representation을 학습할 수 있는 방법이다.

 

예를 들어, BERT같은 경우엔

MLM(Masked Language Model), NSP(Next Sentence Prediction)등의 modeling objective로 학습이 된다.

 

출력으로는 토큰 개수 만큼의 벡터(ex. 768dim * tokens)를 뽑고,

각 벡터는 해당 위치의 토큰에 해당하는 contextual information을 의미하게 된다.

 

Extractive Summarization

문서 요약을 주요 문장을 추출하는 식으로 수행하는 방법이다.

뉴럴넷을 이용한 모델은 문장 분류 문제로 접근하고 있다.

기존에 SummaRunner, LATENT, SUMO, NeuSum 등의 여러 모델이 공개된 바 있다.

 

Fine-tuning BERT for Summarization

가장 궁금한 부분이다.

 

Summarization Encoder

 

BERT는 masked-language 모델로서 학습되기 때문에, 

출력 벡터를 보면, 문장 단위가 아닌 토큰 단위로 벡터가 나온다.

 

그리고 BERT의 경우에 segment embedding을 이용해서

sentence-pair엔 적용이 가능한 반면

 

요약을 위해선 두 문장 이상의 입력에 대응이 가능해야 한다.

 

따라서 이 논문에선 BERTSUM이란 아키텍쳐(인코더)를 제안한다.

Text Summarization with Pretrained Encoders, Yang Liu et al.

각 문장을 표현하기 위해서 문장 시작 토큰 마다 CLS 토큰을 부여했다.

CLS 토큰 위치의 출력 벡터는 해당 문장의 feature를 함축하게 된다.

 

그리고 홀수 번째, 짝수 번째 문장에 따라

두 가지의 interval segment embedding을 번갈아 가며 부여했다.

 

이런식으로 구성함으로써 구조적으로 문서의 표현을 학습할 수 있다고 주장한다.

초반의 트랜스포머 레이어에선 인접한 문장간의 관계를 배우고

후반의 레이어에선 좀 더 여러 문장 간의 관계를 배울 수 있다고 함.

 

음.. 근데 의문인건, 버트류가 보통 최대 512 토큰에 대해 학습이 되는 것으로 기억하는데

뉴스 기사가 보통 512토큰을 넘지 않나...? > 실험 부분에 이 부분에 대한 언급이 나옴

 

Extractive Summarization

 

문서 d가 [sent1, sent2, sent3... ] 로 구성이 된다면

Extractive Summarization은 i-th sent에 대해 0 또는 1을 라벨링하는 문제로 이해될 수 있다.

 

그리고, BERTSUM 아키텍쳐에서는 i-th [CLS] 토큰 출력sent_i를 표현하는 벡터이다.

 

BERTSUM의 sentence vectors에

Positional Embedding을 더한 결과를 입력으로

inter-sentence Transformer layer를 몇 층 더 쌓으면 (2 layer가 best) 

 

요약을 위한 document-level 피쳐를 얻을 수 있고,

마지막 레이어는 sigmoid classifier를 둔다.

이 모델의 이름을 BertSumExt로 부름.

 

loss는 y와 y_pred 간의 binary classification entropy를 이용하였고,

BERTSUM과 함께 동시에 fine-tuning 되었다.

 

Adam optimizer with b1=0.9, b2=0.999

LR scheduler (Vaswani et al. 2017) + warmup=10000

lr=2e-3*min(step^-0.5, step*warmup^-1.5)

 

 

Experiment

실험에서 사용한 데이터셋에 대해 잠시 정리

 

CNN/DailyMail 은 뉴스 기사로 이루어진 데이터 셋. 입력 시 512 토큰으로 잘라서 썼다고 함.

 

@ 으로 하이라이팅 된 문장이 Gold Summary (Ground Truth)이고

extractive 방식을 학습하기 위해

본문 중에서 해당 문장과 rouge-2 스코어를 최대화하는 방식으로 정답 문장을 뽑았다고 함. (Nallapati et al, 2017)

 

paperswithcode.com/sota/document-summarization-on-cnn-daily-mail

 

Papers with Code - CNN / Daily Mail Benchmark (Document Summarization)

The current state-of-the-art on CNN / Daily Mail is MatchSum (RoBERTa-base). See a full comparison of 18 papers with code.

paperswithcode.com

그 외의 데이터 셋은 abstractive summarization용(NYT)이거나, 1줄 요약(Xsum) 등이 있다.

 

Implementation Details of Extractive Summarization

GTX 1080 Ti 3대를 활용해서 50,000 스텝 동안 학습이 되었고

2 스텝 마다 grad accum을 적용하였다. (정해진 배치의 2배 사이즈 효과를 내려고 한듯)

 

새로운 문서에 대해 예측할 때는,

각 문장에 대한 점수를 얻고, 점수 기반으로 정렬해서

상위 3문장을 선택했다.

 

흥미로운 것중 하나가,

중복 문장을 줄이기 위해서는 Trigram Blocking(Paulus et al. 2018) 방식을 썼는데,

요약문 내의 후보 문장끼리 겹치는 trigram이 존재하면 해당 후보를 스킵하는 방식인듯 하다.

 

CNN/DM 에 대한 결과는 아래와 같다.

요약을 다룬 논문을 직접 보기 전에는 rouge(정답과 겹치는 정도)가 40 정도 내외 밖에 안된다고?

일치 정도가 절반도 안되는 건가?

라고 생각을 했었는데, 

 

위에서 언급한 대로

gold summary가 있고, 이걸 기반으로 추출식 모델 학습을 위해

rouge-2를 기반으로 정답 문장을 선정 했기 때문에

선정된 문장과 gold summary간의 rouge 스코어는 차이가 날 수 밖에 없다.

(아래 실험 결과에 Oracle ; 52.59가 그 의미)

 

따라서 52.59를 'upper bound'로 생각을 해야 수치의 스케일을 이해하기 쉽다.

 

Text Summarization with Pretrained Encoders ; Table 2

 

참고로, 요약문의 질을 평가할 때 ROUGE 를 쓰는데, 

rouge-1(unigram), rouge-2(bi-gram)informativeness를 측정하는 용도이고

rouge-l(longest common subsequnce)fluency의 일치 정도를 측정하기 위함이다.