Pretraining-Based Natural Language Generation for Text Summarization
2 minute read

Motivation

기존 abstractive summarization 모델의 부족한 점

  1. 단어를 생성할 때 양측 context 를 이용하지 않는다. (Left-context-only decoder)
    seq-to-seq 구조를 이용해서 요약 문제에 접근하는 경우 주로 Negative-Log-Likelihood 를 minimize 하도록 학습이 진행된다. 이때 전체 sequence 의 분포가 $p(y_t \vert y_1, \cdots , y_{t-1})$ 꼴의 조건부 분포들의 곱으로 factorize 되고, 구조상 한 방향의 context 만 이용해서 다음 단어를 예측하게 된다. 결과적으로는 부자연스러운 sequence 가 생성된다.

  2. Decoder 쪽에서 pretrained contextualized language model 을 활용하지 않는다.
    BERT 를 seq-to-seq 구조에 그대로 적용하게 되면 pretraining 시에는 양측의 context 를 이용해서 예측하지만 decoder 는 left-context 만을 이용하는 inconsistency 가 발생한다.

Differences

  1. Encoder, decoder 모두에 BERT 를 적용하였다.
  2. 양측 context 를 참고해서 시퀀스가 생성되도록 decoder 를 two stage (draft decoder, refinement)로 구성하였다.

Method

model

Encoder

단순하게 BERT 를 사용해 원문을 단어별로 embedding 하고 decoder 로 넘긴다.

Decoder

1. Summary Draft Decoder

현재 timestep 이전까지의 token, 즉 이전까지 생성된 요약문을 BERT 를 이용해 임베딩한다.

이전 token 과 encoder 로부터 넘어온 $H$ 를 input 으로 $P(A \vert H)$ 를 최대로 하는 $A$ 를 학습한다. 모델은 $N$-layer Transformer 의 decoder 를 사용한다. 이 decoder 의 loss function 은 다음과 같다.

2. Summary Refine Process

이 decoder 는 draft decoder 에서 생성된 draft 를 input 으로 받아 개선된 요약문을 output 으로 뱉는다.

Draft 의 단어를 하나씩 mask 하고, 나머지 단어들과 source document embedding 을 이용해 그 단어를 예측한다. 모델은 draft decoder 과 동일하게 $N$-layer Transformer 가 사용되었다. 이 decoder 의 loss function 은 다음과 같다.

이러한 refine decoding 과정은 시퀀스의 토큰을 예측하는데에 양방향의 정보를 모두 참고한다는 점에서 BERT 의 pre-training 과정과 유사하다. 학습 시점에는 teacher-forcing 을 적용해 ground truth summary 로 토큰을 예측하게 했다.

Draft 와 refinement decoder 가 파라미터를 공유한다. (성능이 가장 좋았음)

Mixed Objective

요약의 성능 평가 지표로 사용되는 ROUGE 를 직접 겨냥할 수 있도록 policy gradient 를 적용했다.

최종 loss function 은 다음과 같다.

Results

Two-stage decoder 와 RL objective 를 적용했을때 가장 성능이 좋았다.

results

Notes

Recent Posts

Lazy learning vs Eager learning
BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding
Perplexity of Language Models
Matrix Calculus
Inverted Indexing