낼름낼름 동동이

[ASAC 0705] 텍스트 요약 모델 공부 본문

데이터분석/머신&딥러닝

[ASAC 0705] 텍스트 요약 모델 공부

인죠인간 2024. 7. 18. 09:24

7월 05일의 기록

기업 연계 프로젝트를 위해 리뷰 요약을 위해 찾아보던 중, 리뷰 요약과 관련된 모델을 자세하게 설명해둔 Github가 있어서 공부하게 되었다.

Intro to Text Summarization

Definition

Berry, Dumais, & O’Brien (1995)은 텍스트 요약을 다음과 같이 정의한다.

Text summarization is the process of distilling the most important information from a text to produce an abridged version for a particular task and user

 

텍스트 요약이란 주어진 텍스트 중 중요한 정보만 정제해내는 과정이다. 다시 말해, 텍스트 요약이란 원문을 이해하기 쉽고 가치있는 정보로 변환하는 작업이다.

이러한 관점으로 보면 회의록, 신문기사 헤드라인, 논문 요약, 이력서등 텍스트를 생성해내는 Task 뿐만 아니라 텍스트를 그래프나 영상으로 변환하는 작업도 텍스트 요약이라고 말할 수 있다.

Task Categories

일반적으로 텍스트 요약 task는 크게 요약문을 생성하는 방식에 따라 extractive summarization(이하 ext)과 abstractive summarization(이하 abs)로 나뉜다. (Gudivada, 2018)

Extractive methods select a subset of existing words, phrases, or sentences in the original text to form a summary. In contrast, abstractive methods first build an internal semantic representation and then use natural language generation techniques to create a summary.

Ext는 문장 단위로 중요도를 Scoring 한 뒤, 이를 기반으로 선택 & 조합 하여 Summary를 만든다. (글을 읽다가 형광펜을 칠하는 작업과 유사)

abs는 원문을 기반으로 새로운 텍스트(novel text)를 생성해내는 NLG 방식이다.

Ext는 원문에 있던 텍스트를 활용하기에 표현이 제한적이나 말이 안되는 표현이 포함될 가능성이 낮다. 반면 abs는 모델에서 새로운 텍스트를 생성해야 하기에 생뚱 맞은 표현이나 말이 되지 않는 말이 만들어질 가능성이 존재하나 좀 더 flexible한 접근이 가능하다는 장점이 존재한다.

이 외에도 원문의 개수에 따라 single/multi document summarization, 생성해내는 텍스트 형태에 따라 keyword/sentence summarization, 요약 과정에서 원문 외 외부 정보를 얼마나 사용하는지에 따라 knowledge-poor/rich summarization 등 다양한 구분이 있다.

Main Topics

Multi documents summarization(MDS)

MDS는 복수개의 문서를 요약하는 작업이다. 일견 생각해도 하나의 주제를 일관된 흐름과 관점으로 서술하고 있는 하나의 문서를 요약하는 작업보다 다양한 저자들의 서로 다른 관점의 글들을 요약하는 일이 어려울 수 있다. 물론 MDS의 경우에도 보통은 유사한 주제를 다루고 있는 동일 cluster 문서임을 전제로 하고 있지만, 여러 문서 중 어떻게 하면 중요한 정보를 식별하고 중복 정보를 걸러낼 수 있는가는 쉽지 않은 문제이다.

특정 제품에 대한 리뷰를 요약하는 task는 가장 쉽게 생각할 수 있는 MDS의 예인데, 이는 우리가 하고자 하는 방향에 적절한 파트가 아닐까 생각이 든다. 보통 Opinion summarization라고 불리는 이 task는 텍스트 길이가 짧고 주관성이 높다는 특징을 가진다.

 

 

Knowledge-enhanced text generation

Text-to-text task에서는 원문만으로는 원하는 출력을 생성하는 것이 어려운 경우가 많다. 따라서, 원문뿐만 아니라 추가로 다양한 knowledge를 모델에 제공하여 성능을 높이려는 시도가 존재한다. 이러한 knowledge의 source나 제공 형태는 keywords, topics, linguistic features, knowledge bases, knowledge graphs, grounded text 등 다양하다.

Post-editing Correction

한 번에 좋은 요약문을 생성해내면 좋겠지만, 쉽지 않은 일이다. 그렇다면 우선 요약문을 생성한 후 이를 다양한 기준에서 검토하고 수정해보면 어떨까?

  • 일례로 Cao, Dong, Wu, &Cheung (2020)은 생성된 요약문에 pretrained neural corrector model을 적용하여 Factual Error를 감소시키는 방법을 제시
  • 이 외에도 최근 많은 관심을 받고 있는 Graph Neural Network(GNN)을 요약에 적용하는 시도

앞서 '좋은'이라는 두루뭉술한 표현을 사용했는데. 과연 '좋은 요약문'이란 무엇일까? Brazinskas, Lapata, & Titov (2020)에서는 좋은 요약문의 판단기준으로 다음 다섯가지를 사용한다.

  • Fluency(유창성): the summary should be grammatically correct, easy to read and understand;
  • Coherence(통일성): the summary should be well structured and well organized;
  • Nonredundancy(중복 X): there should be no unnecessary repetition in the summary;
  • Informativeness(유익성): how much useful information about the product does the summary provide?
  • Sentiment(감정): how well the sentiment of the summary agrees with the overall sentiment of the original reviews?

문제는 이 5가지를 어떻게 측정할 것인가? 애매하다.

 

텍스트 요약에서 가장 흔히 사용되는 성능 지표는 ROUGE score를 사용한다. ROUGE score에는 다양한 변종이 있지만, 기본적으로 'generated summary와 reference summary의 출현 단어와 그 순서가 얼마나 일치하는가'를 측정한다. 그렇기에 뜻은 유사하지만 형태는 다른 단어가 나오거나, 단어 순서가 달라지면 설혹 더 좋은 요약문일지라도 낮은 점수를 받을 수 있다. 특히 ROUGE score를 높이려다 오히려 요약문의 표현적 다양성을 해칠 수도 있다.

 

5가지 측정 방법과 그에 따른 다양한 모델에 대한 소개는 다음 시간에 지속