.box_article .article_cont p code

상세 컨텐츠

본문 제목

4. BertSum: Text Summarization with Pretrained Encoders 논문 리뷰

심화 스터디/NLP 스터디2

by 오홍민 2021. 9. 28. 13:55

본문

Abstract


  • 본 논문에서는 BERT를 extractive, abstractive model 모두에게 사용할 framework를 제안한다.
    • Extractive
    • encoder의 맨 위에 inter-sentence Transformer layer를 쌓아서 생성
    • Abstractive
      • 새로운 Fine-tuning schedule
      • Two-staged fine-tuning

 

Introduction


모델 등장 배경

  • 대부분의 pretrained language model은 분류 task를 위한 문장 & 문단수준의 자연어 이해를 위한 인코더로 채택 됐다.
  • → 텍스트 요약을 위해서는 previous task와 다르게 요약에는 개별 단어와 문장의 의미를 이해하는 것을 넘는 광범위한 이해가 필요

 

 

  • 세 가지의 기여
    1. 요약 task를 위한 문서 인코딩의 중요성 강조
    2. Extractvie & Abstractive summarization 모두에서 사전 훈련된 언어 모델을 효과적으로 사용하는 방법 제시
    3. 추후 비슷한 연구들의 baseline이 될 수 있음.

 

Background


Pretrained Language Model

  • Pretrained language model
    • 다양한 자연어처리 task에서 좋은 성과를 얻기위한 핵심기술로 부상함.
    • 대규모 말뭉치로부터 contextual representation을 학습함으로써 단어 임베딩에 대해 extend 된 모델들.
    • BERT : masked language modeling과 3,300M 단어 말뭉치에 대해 "다음 문장 예측"을 중심으로 훈련된 language representation model이다.

 

Extractive Summarization

: 가장 중요한 문장을 식별하여 요약문 생성

Proposal

  • Neural models : extractive summarization을 일종의 요약문에 해당 문장 포함할지 말지 문장 분류문제

Abstractive Summarization

  • Neural Approaches to abstractive summarization : task를 sequence to sequence로
    • encoder :
      • mapping x=[x1,x2,...,xn] (a sequence of tokens) → z=[z1, ... , zn](continuous representations)
    • decoder :
      • 토큰별로 target summary 생성 y=[y1,..., ym]
      • In auto-regressive manner, 모델링 조건부 확률 : p(y1,...,ym |x1,...,xn)

 

Fine-tuning BERT for Summarization


Summarization Encoder

  • 기존의 BERT의 문제점
    • BERT는 MLM로 훈련되므로 문장이 아닌 단어에 대한 표현을 출력
    • NSP 때문에 모델 구조가 두 개의 문장만 입력받을 수 있도록 설계됨
    • BERT 기존의 positional embedding은 최대 길이가 512

BERTSum

[ BERTsum Input Sequence 변경 ]

  • increasing CLS 토큰 → 여러 문장의 특징 추출
  • interval segment embedding → 여러 문장 구분할 수 있도록 교차로 Ea, Eb 적용
  • 무작위로 초기화하고, 인코더에서 다른 매개변수로 finetuned 되는 더 많은 Positional Embedding을 추가하여 이 limitation을 극복

Document Representation

: 하위 Transformer layer가 인접한 문장을 표현하고, 상위 Transformer layer는 여러 문장의 결합 형태를 표현

 

 

Extractive Summarization (BERTSUM)

  • d=[sent1,sent2,...,sentm]
    • document에 i번째 sentence를 요약문에 포함시킬지 말지 {0,1}을 label
  • i번째 문장을 나타내는 [CLS]를 입력하면 t(i)라는 문장벡터 출력
    • 몇층을 쌓을지는 초모수로 결정!!
    • l = 2일때 가장 성능이 좋았음. (BERTSUMEXT)
    • → t(i)를 inter-sentence Transformer Layers에 입력하여 문장단위 특성을 포착

  • h^0=PosEmb(T) ; T 는 BERTSUM에 의한 sentence vector를 의미한다.
  • PosEmb : vector T에 positional embedding을 더해주는 함수

Abstractive Summarization

  • 기존의 encoder-decoder framework 사용 시 문제점
    • Encoder : 사전학습 되어 있음
    • Decoder : 랜덤 초기화
    → Encoder 와 Decoder 사이의 불균형 발생
  • → 이를 해결하기위해 새로운 fine-tuning 스케쥴 도입. 서로 다른 두 개의 Adam optimizer를 이용 : 다른 warmup-steps and learning rate !!
    • pretrained 된 Encoder를 더 작은 학습률로 천천히 미세조정

 

  • two-stage fine-tuning
    • 1차 fine tuning : Fine-tune 인코더 on extractive summarization task → abstractive summarization의 성능을 높임
    • architecture의 변화없이 두 task(추상, 추출) 간의 공유되는 정보를 활용할 수 있음.

 

Experiment Setup


Summarization Datasets

  • Datasets
    • the CNN/DailyMail news highlights dataset : Extractive & Abstractive
    • the New York Times Annotated Corpus (NYT): Extractive & Abstractive
    • XSum: Abstractive
  • the CNN/DailyMail
    • 뉴스 기사 & 관련 하이라이트 : 기사에 관한 간략한 개요를 제공함
    • 입력 document 512 tokens로 제한
  • the New York Times Annotated Corpus (NYT)
    • article + 그에 관한 abstractive summary
    • 입력 document 800 tokens로 제한
  • XSum
    • 뉴스기사 + "무엇에 관한 기사입니까?"의 질문에 대한 한 문장의 요약 ( 226,711개 )
    • 입력 document로 512 tokens로 제한

 

Implementation Detail

  • Pytorch, OpenNMT 사용 → source & target 토크나이징

Extractive Summarization

  • 50,000 steps with gradient accumulation every two steps.
  • 1,000 step 마다 → Model checkpoint 저장
    • 상위 3개 체크포인트 선택 → 평균내서 결과 저장
  • Abstractive model 훈련을 위해 greedy algorithm으로 oracle summary 생성
    • ROUGE-2 score를 gold summary(정답) 에 대해서 최대화하는 여러 문장을 뽑는 알고리즘
  • 새로운 document에 대한 요약을 예측할 떄, 모델을 사용하여 각 문장의 점수를 얻는다. 그 후 가장 높은 상위 3개의 문장을 요약으로 선택한다.
  • Trigram Blocking을 이용해서 중복된 문장의 선택을 막는다.
    • summary S에 대해서 후보 문장 c가 있을때, if there exists a trigram overlapping between c and S → 후보 문장을 요약문에서 제외

 

Abstractive Summarization

  • 모든 abstractive model : 모든 선형 레이어 앞에 드롭아웃(0.1)을 적용
  • Label Smoothing with smoothing factor 0.1
  • Transformer Decoder :
    • 768 hidden units
    • 2048개의 hidden size for feed-forward layers
  • 200,000 steps with gradient accumulation every five steps.
  • 2,500 step 마다 → Model checkpoint 저장
    • 상위 3개 체크포인트 선택 → 평균내서 결과 저장
  • 디코딩하는 동안 Beam Search (size 5) 사용 : 패널티 (0.6~1) on the validation set
  • End-of-sequence token이 나올떄까지 디코딩
  • Trigram Blocking → 다양한 요약 생성 ( 중복을 줄이기위해 )
  • Decoder가 Copy & Coverage Mechanism 사용 X → minimum-requirement model을 만들기 위해서

 

 

Results


Automatic Evaluation

  • ROUGE 평가지표 사용
    • Informationess and longest common subsequence 평가.
      • ROUGE-1 : unigram
      • ROUGE-2 : bigram overlap
    • ROUGE-L : fluent(유창함) 평가
    CNN/DailyMail dataset

[ CNN/DailyMail Dataset : Experiment Result ] 

  • ORACLE : upperbound
  • LEAD3 : base-line (앞의 3문장 이용 )
  • BERT-based model은 다른 abstractive model, extractive model보다 뛰어남
    • → interval segment embedding은 아주 조금 성능 향상
    • → BERTSUMEXT(large)가 가장 좋은 성능.

NYT Dataset

[ NYT Dataset : Experiment Result ] 

→ 거의 다 위와 같은 내용

ORACLE의 성능에 매우 가까움


XSum

[ XSum Dataset : Experiment Result ] 

    BERT-based model의 매우 우수한 성능

 

 

Human Evaluation

  • 요약 모델이 문서의 핵심 정보를 유지하는 정도를 정량화하기 위해 Q&A 패러다임에 따른 실험을 진행.
  • 정답 (label)을 기준으로 질문들을 만들어서 model이 생성한 요약만을 보고 대답하도록함.

더 많은 질문에 답할 수록, 더 좋은 summarizing 능력을 가진다고 본다.

 

[ Human Evaluation : Experiment Result ] 

→ 최신 system들과 GOLD (upperbound), LEAD( baseline ), BERTSUM 모델 비교

 

 

Conclusion


  • pretrained BERT는 텍스트 요약에 유용하게 활용될 수 있음을 보여줌.
  • Abstractive & Extractive summarization을 위한 프레임워크를 제안함
  • 새로운 문서 수준의 인코더를 도입함.
  • 세가지 데이터셋에 대한 실험결과는 BERTSUM 모델이 자동 및 인간 기반 평가 지표에도 최첨단 결과를 달성한다는 것을 보여준다.

관련글 더보기

댓글 영역