Fine-tune BERT for Extractive Summarization

택스트 요약에는 Abstractive 와 Extractive 두 가지 방법이 있습니다. Abstractive 방법은 본문에 없는 내용으로 재 구성하여 요약하는 방법이고, Extractive 방법은 본문에 있는 내용 중 중요한 내용을 기준으로 추출하여 내용을 요약하는 방식입니다. 이 논문에서는 Extractive 방법을 대상으로 하고 있으며, 그 중요도를 판단하는 단위도 단어가 아닌 문장단위로 판단하는 연구로 보입니다. 전체적으로 연구 방향은 BERT 에 요약을 위한 3가지 다른 형태의 Layer들을 추가하고 Pretrained 된 BERT 모델을 기반으로 Fine-tunning으로 모델을 훈련하여 기존보다 높은 성능을 낼 수 있는지 테스트 해 본 정도로 보입니다.

첫 번째는 데이터 Input Layer 에서 사용하는 Symbol 의 용도 변경 및 Interval Segment 를 추가하는 것 입니다. 원래 BERT 에서는 [CLS] 는 각 데이터에 첫 번째를 나타내는 Symbol 이지만 여기서는 모든 문자의 앞에 추가하여 문장을 구분하는 용도로 사용합니다. [SEP] 의 경우 Original BERT 에서는 Question/Answer 의 구분처럼 서로 다른 Task 의 Input 을 구분하는 용도로 사용하지만, 여기서는 각 문장의 끝에 들어가게 됩니다.결론적으로 문장의 앞뒤에 [CLS], [SEP] 을 넣어서 문장 단위로 데이터를 구분하기 위한 용도로 변형되어 사용됩니다.

Interval Segment 는 Original BERT 에서는 [SEP] 단위로 나누어진 데이터를 구분하기 위한 용도로 사용되는데, 여기서는 각 문장마다 번갈아 가면서 사용됩니다. 문장이 4개의 문장이 있다고 하면 E1, E2, E1, E2 이런식으로 문장 단위로 교차하여 적용됩니다. (뒤에서 나오지만, 이러한 방법의 적용이 성능 향상에 도움을 주었다고 이야기 합니다)

자 그리고 요약 Task 를 위한 별도의 Layer 를 3개를 테스트 하는데요. 모든 Layer 는 당연히 Fine Tunning 형태로 접근하고 있습니다. 첫 번째는 Simple Classifier 라고 되어 있는데, 간단히 말해서 각 문장별 BERT 의 Out-put 에 Fully Conneted Layer 하나 추가 했다고 생각하면 됩니다.

두 번째 Layer 는 BERT 의 구조만 가지고 와서 다시 훈련을 하는 것입니다. 위에 수식을 보시면 그냥 BERT Stack 을 설명하고 있다고 보시면 되고, 동일한 1~3 Stack 을 테스트 하여 보았는데, 2 Stack 의 결과를 사용하는 것이 가장 좋았다고 합니다.

마지막은 Layer Normalzied LSTM 인데요. LSTM 구조에 아래 수식에 LN 으로 보이는 부분에 Layer Norm 을 추가하여 Regularization을 강화 했다고 보시면 됩니다.

그리고 나오는게 Trigram Bloking 인데, 요약 결과중에 이미 나온 결과를 필터링 하는 조건으로 Tri-Gram 을 사용하겠다. 이게 끝입니다. 그런데 효과는 굉장히 좋았다고 하네요.

그리고 테스트 Set 은 두 가지를 사용했네요. NYT 와 CNN 각각 데이터의 특성이 조금 다릅니다.

CNN 데이터 셋 기준으로, Transformer 아키택쳐를 사용한 아키택쳐가 가장 성능이 좋았습니다. 그리고 Interval Segments와 Trigram Blocking 을 적용하는 것이 성능의 도움이 되었다 라는 이야기도 하고 있습니다.

NYT 데이터 셋에 대해서는 Classifier 를 추가한 결과만 넣어 놨네요.왜 3개 비교를 안한거지? 여튼 결론적으로는 Transformer 아키택쳐를 또 Fine-tunning 에 사용한 것이 가장 결과가 좋았다고 하네요..

Leave a Reply

Your email address will not be published. Required fields are marked *