Get To The Point: Summarization with Pointer-Generator Networks
3 minute read

Motivation

Neural sequence-to-sequence model 을 통해 abstractive text summarization 문제를 풀면 다음의 문제점이 흔하게 발견된다.

  1. 틀린 정보의 생성 (inaccuracy)
  2. out-of-vocabulary word 가 생성 시퀀스에 포함됨
  3. 같은 단어 / 어구 반복 생성 (repetition)

Differences

본 논문의 baseline 은 기본 sequence-to-sequence 에 attention mechanism 을 적용한 모델이다. 해당 논문에서는 여기에 두가지 구조를 추가한 모델을 제안하고 있다.

  1. Pointer-generator network
  2. Coverage mechanism

Method

Pointer-generator network

Pointer-generator network 는 베이스라인 seq2seq 에 pointer network (Vinyals et al., 2015) 를 추가한 모델이다. 기존 seq2seq 은 summary 를 생성할때 매 timestep 의 단어를 기존에 존재하는 vocabulary 에 대한 softmax 값으로 예측했다. 반면 pointer-generator network 는 기존의 예측방법을 generator 라고 정의하고, 여기에 input sequence 에 존재했던 요소들을 output 에 차용하는 pointer 를 새롭게 추가한 구조이다. Pointer 와 generator 를 동시에 고려해 확장된 vocabulary 의 확률분포를 다음과 같이 새롭게 구축할 수 있다.

pgen

위 식에서 $w$ 가 OOV 단어이면 $P_{\text{vocab}}(w)$ 가 $0$ 이 되고, 반대로 $w$ 가 input document 에서 나타난적이 없으면 $\sum_{i:w_i=w}{a^t_i}$ 가 $0$ 이 된다. Input 에서 사용되었던 단어를 그대로 복사해올지 (pointer), vocab 에 있는 새로운 단어를 사용할지 (generator) 사이에서 $p_{gen}$ 이 soft switch 역할을 하는 것이다.

pgen

Pointer network 를 이용했기 때문에 이 모델에서는 vocabulary 의 크기도 150k 에서 50k 로 줄일 수 있었고, 새로운 파라미터를 적게 추가하면서도 요약의 성능을 향상시킬 수 있었다. 요약의 성능은 크게 accuracy 와 abstractiveness (novelty) 로 나눠서 볼 수 있다. 정확도 측면에서는 당연히 를 input 내의 단어로 대체할 수 있었기 때문에 더 좋은 결과를 얻을 수 있었다. 하지만 input 의 일부를 복사해온다는 점에서 novelty 는 기본 seq2seq 모델에 비해 떨어졌다. 특히 $p_{gen}$ 값의 변동 추이를 관찰하면 abstractiveness 를 간접적으로 측정할 수 있다. 실험 결과 $p_{gen}$ 이 학습 초반부에는 0.3 에서 시작하여 후반부에는 0.53 부근에서 수렴하였지만 test time 에는 $p_{gen}$ 이 0.17 정도로 상당히 낮게 나왔다. (새로운 시퀀스를 생성하는데에 그 중에서 평균적으로 83% 를 input 에서 복사해온다는 것)

Coverage mechanism

Repetition 문제를 해결하기 위해 적용되었고, 이전 timestep 에서 시퀀스를 생성하는 데에 사용되었던 attention 값들을 이용해서 현재 timestep 에서의 반복을 줄이고자 한다. Coverage vector $c^t$ 는 다음과 같이 이전 timestep 의 attention 값들을 더해서 구한다.

$c^t$ 에서 값이 높은 원소들은 이미 시퀀스를 생성하는데에 충분히 사용되었던 부분이고 값이 낮은 부분은 앞으로의 시퀀스를 생성하는데에 참고되어야할 부분들이다. 이와 같이 정의된 $c^t$ 를 attention mechanism 에 아래와 같이 통합하여 사용한다.

coverage

이렇게 모델에 넣어주기만 하면 알아서 반복문제가 해결되기를 기대했지만 실험 결과 그렇게까지는 되지 않았다. 그에 따라 원 loss function 에 coverage 를 반영한 추가적인 항(coverage loss)을 명시적으로 넣어줘야 했다.

Coverage loss 를 이렇게 정의하면 기존 coverage vector 에서 원소값이 큰 부분에는 다음 $t$ 에서의 attention weight 이 커지지 않도록 조절이 되는 효과가 있다. 이것이 실제 생성과정에서는 repetition 을 방지하는 효과를 가져왔다.

Results

Seq2seq 모델을 pointer-generator network 로 확장하여 abstract text summarization 의 정확도를 향상시키면서도 OOV 문제를 해결하였고 coverage mechanism 을 통해 repetition 에 대응하였다. 그 결과 ROUGE 와 METEOR 척도에서 SOTA performance 를 낼 수 있었다.

results

Comments

좋은 요약은 원문의 의미적 요소를 보존하면서도 원문에 사용되었던 단어들을 paraphrase 할 수 있어야 한다. 따라서 accuracy 와 novelty 가 요약을 평가하는 두 기준이라고 할 수 있다. Accuracy 와 novelty 는 대체로 trade-off 관계를 가진다. Extractive approach 는 accuracy 는 높지만 원문에 있는 단어/어구를 그대로 복사해오기 때문에 novelty 가 떨어지고 abstractive approach 는 원문에 사용되지 않은 단어들을 사용하지만 그에 따라 정확도가 상대적으로 떨어졌다. 본 논문에서도 기존 seq2seq 모델의 낮은 accuracy 를 보완하기 위해 pointer-generator 구조를 추가했다. Pointer 가 input 의 일부를 복사해오면서 novelty 는 조금 떨어졌지만 accuracy 는 높일 수 있었던 것이다.

평가 척도로 사용된 ROUGE score 는 accuracy 와 novelty 중에서 accuracy 에 비중을 두고 있다는 점에서 abstractive approach 를 평가하는데에 부적합하다. 본 논문에서는 CNN/Daily Mail dataset 을 사용했는데 결과를 보면 기사의 첫 세문장을 그대로 가져와 사용하는 lead-3 baseline 이 ROUGE 점수가 가장 높았다. Abstractive approach 는 novelty 를 추구한다는 점에서 extractive approach 와 차별점을 가지는데, ROUGE 를 사용해 두 방법을 비교한다면 abstractive approach 의 장점인 novelty 를 정량적으로 평가하기가 어렵다. 따라서 novelty 와 accuracy 를 동시에 고려하거나 novelty 만을 따로 평가하는 새로운 척도가 필요하다는 생각이 들었다.

Recent Posts

Why are Sequence-to-Sequence Models So Dull?
Variational Autoregressive Decoder for Neural Response Generation
Content Preserving Text Generation with Attribute Controls
Matching Networks for One Shot Learning
Pointer Networks