AI/NLP
[Extractive Summarization] BERTSUM
noey_hus
2025. 6. 27. 19:49
개요
텍스트 요약에는 추출 요약(Extractive Summarization)과 추상 요약(Abstractive Summarization), 2가지 유형이 있다. 추출 요약은 주어진 텍스트에서 중요한 문장을 추출하여 요약문을 생성하는 것이고, 추상 요약은 주어진 텍스트의 의미를 파악하여 그 의미에 맞게 새로운 문장으로 표현하여 요약문을 생성하는 것이다.
"Text Summarization with Pretrained Encoders (Liu et al., 2019)"에서는 텍스트 요약에 BERT를 적용한 BERTSUM 프레임워크를 제안한다. BERTSUM은 추출 요약 및 추상 요약이 모두 가능하지만, 본 포스팅에서는 BERTSUM을 추출 요약에 활용하는 부분에 대해서만 다룬다.
BERTSUM
Summarization Encoder
BERT를 텍스트 요약에 적용할 경우, 다음과 같은 문제가 발생한다.
- BERT는 masked-language model이기 때문에, 출력값이 문장이 아닌 단어(token) 단위이다. 하지만 추출 요약에서는 문장(sentence) 단위의 표현을 다뤄야 한다.
- BERT에서는 segment embedding이 서로 다른 문장을 구분해주긴 하지만, 이는 문장 쌍(sentence-pair, 두 개의 문장으로 구성) 입력에만 적용된다. 하지만 텍스트 요약은 여러 문장(multi-sentence)으로 이루어진 입력을 다뤄야 한다.
- BERT에서 position embedding의 최대 길이는 512로, 512 토큰보다 긴 문서는 처리하기 어렵다.
따라서 본 논문에서는 텍스트 요약을 위해 BERT 아키텍처를 다음과 같이 수정한다.
- 각 문장의 시작 부분에 [CLS] 토큰을, 끝 부분에 [SEP] 토큰을 추가한다. 여기서 각 [CLS] 토큰은 바로 뒤에 오는 문장의 정보를 집약하는 역할을 한다.
- Interval Segment Embedding을 통해 문서 내에 있는 여러 문장을 구분한다. 홀수번째 문장은 $E_A$, 짝수번째 문장은 $E_B$를 이용함으로써 서로 다른 문장을 구분한다.
- 랜덤으로 초기화된 position embedding을 추가하고, 이 임베딩 벡터를 모델 파라미터들과 함께 학습함으로써 더 긴 입력값을 받을 수 있다.
이후, BERT의 마지막 layer의 $i$번째 [CLS] 토큰의 벡터를 $i$번째 문장의 표현으로 사용한다.
Extractive Summarization
추출 요약은 문서 내 각 문장에 대해, 각 문장이 요약문에 포함될지 여부를 결정하는 binary classification task이다. 추출 요약문 선택 과정은 다음과 같다.
- 위의 BERT 인코더를 통해 얻은 각 문장의 [CLS] 토큰 벡터를 $L$개의 Transformer Encoder에 통과시킨다.
- 이 과정은 추출 요약을 위해 문서 수준의 특징을 이해하는 역할을 하며, 이 때 sinusoid positional embedding을 통해 문서 내 문장의 위치를 나타낸다.
- 본 논문에 의하면 $L=2$일 때 성능이 가장 좋았다고 한다.
- Sigmoid Classifier를 이용하여 각 문장이 요약문에 포함될 확률(score)를 구한다.
- (본 논문에서는) 문서별로 score가 높은 상위 3개의 문장을 추출 요약문으로 판단한다. 이 때, Trigram Blocking을 사용하여 선택된 요약 문장 간의 중복성을 줄인다.
- Trigram Blocking: 지금까지 선택된 요약 문장과 후보(candidate) 문장이 주어졌을 때, 두 문장 사이에 겹치는 trigram이 존재하면 해당 후보 문장은 건너뛴다. 이를 통해, 고려 중인 문장과 이미 선택된 요약 문장 간의 유사성을 최소화한다.
- 본 논문의 학습 설정
- Loss function: Binary Cross Entropy
- Adam optimizer($\beta_1=0.9$, $\beta_2=0.999$)
- $lr = 2e^{-3} \cdot \min (\text{step}^{-0.5}, \text{step} \cdot \text{warmup}^{-1.5})$ & $ \text{warmup} =10,000$