NLG (Natural Language Generation)
언어를 생성하는 NLP Task. 그렇다면, 언어를 '생성'한다는 것은 무슨 의미인가?
💡 주어진 정보(Text, Video, Image..)를 기반으로 정보 축약, 보강, 재구성
생성(Generation)의 세가지 방향성과 NLG Tasks
- 축약
- 많은 데이터 중에서 핵심만 뽑아내는 일
- ex) Summarization( Abstractive(생성 요약), Extractive(추출 요약)) → 뉴스 핵심 요약
- 보강
- 부족한 정보를 추가하는 일
- ex) Question generation (지문을 기반으로 지문에서 답을 찾을 수 있는 질문을 만드는 일)
- ex) Distractor generation (지문을 기반으로 오지선다형에서 오답을 생성해내는 일)
- ex) Text Expansion ( 짧은 제목이 주어지면 내용을 생성, 토픽을 제시하면, 텍스트를 생성)
- 재구성
- 기존 정보의 형태를 변형하거나, 기존 정보를 기반으로 추론해서 답하는 일
- ex) Style Transfer ( 긍정 문체 ⇔ 부정 문체 변경, 사투리 통역)
- ex) Dialogue Generation (페르소나의 사전 지식을 제시하고, 페르소나를 가진 참여자의 대화 생성)
NLG에 사용되는 주요 모델의 아키텍쳐
- Encoder - Decoder
- RNN Seq2seq
- Transformer
- Copy and pointing
- GAN(Generative Adversarial Network)
- Discriminator - Generator
- Memory Network
- GNN(Graph Neural Network)
- External Knowledge
Extractive Summarization Task
문서 요약 방법론(Text Summarization Task)에는 생성 요약(Abstractive Summarization)과 추출 요약(Extractive Summarization) 방법이 존재한다. 간단히 말하자면, 생성(Abstractive) 요약은 모델이 주어진 지문을 학습하고, 기존 지문에 없는 새로운 단어와 문장으로 학습한 지문의 요약을 생성(=paraphrasing, 패러프레이징)하는 방식이다. 이와 반대로 추출(Extractive) 요약은 학습한 지문에 있는 단어와 문장 중 핵심이 되는 것들을 사용하여 지문을 요약하는 방식이다. 이번 포스팅에서는 문서 추출 요약(Extractive Text Summarization)을 중점적으로 다뤄볼 것이다.
💡 Selection-based Extraction & Generation-based Abstraction
많이 사용되는 데이터셋
CNN / Daily Mail
CNN/Daily Mail 데이터셋은 CNN과 Daily Mail의 기자들이 작성한 대로 30만 개가 넘는 독특한 뉴스 기사를 포함하고 있는 영어 데이터셋이다. 원래 버전은 기계 읽기 및 이해와 추상적 질문 답변을 위해 만들어졌지만 현재 버전은 추출적(Extractive) 요약과 추상적(Abstractive) 요약을 모두 지원한다.
데이터는 요약을 위한 지문인 article(신문 기사 본문 텍스트), 해당 기사의 저자가 작성한 highlight(요약)으로 구성되어 있다. huggingface에서 제공하는 CNN / Daily Mail dataset viewer 에 들어가면 더 많은 예제 데이터를 확인할 수 있다.
CNN/Daily Mail 데이터셋의 데이터 예시
{
'id': '0054d6d30dbcad772e20b22771153a2a9cbeaf62',
'article': '(CNN) -- An American woman died aboard a cruise ship that docked at Rio de Janeiro on Tuesday, the same ship on which 86 passengers previously fell ill, according to the state-run Brazilian news agency, Agencia Brasil. The American tourist died aboard the MS Veendam, owned by cruise operator Holland America. Federal Police told Agencia Brasil that forensic doctors were investigating her death. The ship's doctors told police that the woman was elderly and suffered from diabetes and hypertension, according the agency. The other passengers came down with diarrhea prior to her death during an earlier part of the trip, the ship's doctors said. The Veendam left New York 36 days ago for a South America tour.'
'highlights': 'The elderly woman suffered from diabetes and hypertension, ship's doctors say .\nPreviously, 86 passengers had fallen ill on the ship, Agencia Brasil says .'
}
데이터셋 정보
Feature | 평균 Token Count |
Article | 781 |
Highlights | 56 |
Dataset Split | Number of Instances in Split |
Train | 287,113 |
Validation | 13,368 |
Test | 11,490 |
cf. CNN / Daily Mail 데이터셋 버전 2.0.0과 버전 3.0.0이 추출적(Extractive) 요약과 추상적(Abstractive) 요약을 지원하며, 버전 1.0.0은 기계 독해/이해 및 추상적 QA 테스크를 위해 개발되었다.
평가 지표(Metric)
ROUGE Score
모델의 성능은 output summary가 얼마나 높은 ROUGE 점수를 달성하는가에 따라 측정된다. CNN/Daily Mail 데이터셋에서 ROUGE 점수는 요약 언어 모델의 output summary와 주어진 기사 데이터에 대해 실제로 기사를 작성한 작가(기자)가 쓴 highlight(=라벨)를 비교함으로써 측정된다. 더 상세한 설명이 필요하다면, 하단의 References를 확인해보길 바란다.
SOTA 모델
1. MatchSum
- 논문 : Extractive Summarization as Text Matching (2020)
- 학습 데이터셋
- Pubmed : PubMed 데이터의 세 개 클래스 중 하나로 분류된 당뇨병과 관련된 PubMed DB의 19717개의 과학 출판물로 구성된 데이터셋
- CNN/Daily Mail : CNN과 Daily Mail에서 발행한 뉴스 기사
- Reddit : 2014년 9월에 작성된 Reddit 게시물의 그래프 데이터셋. 노드의 레이블은 게시물이 속한 커뮤니티 또는 subreddit이다.
- WikiHow : 다양한 저자가 작성한 230,000개 이상의 기사 및 요약 쌍 데이터셋. 광범위한 주제의 기사로 구성됨.
- Multi-News : 뉴스 기사와 newser.com 사이트 기사 요약으로 구성된 데이터셋. 각 요약은 편집자가 전문적으로 작성했으며, 인용된 원본 기사에 대한 링크를 포함한다.
- Reddit TIFU : Reddit에서 새로 수집된 데이터셋. 전문 텍스트 / long summary / short summary 로 이루어져 있다.
- XSum : 추상 단일 문서 요약 시스템의 평가를 위해 만들어진 데이터셋. 뉴스 기사 본문과 해당 기사에 대한 '한 줄' 요약문으로 이루어졌다.
기존의 Extractive Summarization 모델은 본문(Source Document)에서 독립적으로 몇개의 문장을 추출하고 이 문장들 사이의 관계를 모델링하는 식으로 문서를 요약했다. MatchSum 논문은 이와 같은 기존의 방법이 본문과 target summary 사이의 관계를 고려하지 못한 요약이라 이야기한다. 데이터셋의 특성 (ex. 도메인)에 상관 없이 기존의 방식으로 추출요약을 진행한다면, 어느 데이터셋에서는 추출 요약이 잘 된 것처럼 보이더라도, 다른 특성을 가진 데이터셋에서는 추출 요약 결과가 본문의 내용을 전혀 대표하지 못하는 경우가 생길 수 있기 때문이다.
MatchSum 모델은 Source document와 최종 요약문 추출 전의 Candidate summary가 semantic space에서 matching될 것이라고 가정한다. MatchSum은 본문에서 후보 요약 문장들(summary candidates)을 뽑아서 어떤 후보 문장이 본문의 의미를 가장 잘 대표할 수 있는지 semantic space에서 매칭하는 단계를 거쳐 추출 요약 테스크를 수행함으로써 source document와 target summary가 의미적으로 유사할 수 있도록 학습을 진행한다.
이 과정에서 candidate summary를 생성하여 target summary가 만들어지기 전 pruning을 거치게되며, pruning에는 Presumm model (BertExt, Presumm 에서 제안된 extractive summarization 모델이며 본 모델은 Bertsum 논문에서 발표된 모델과 동일)을 활용한다.
또한 siamese network를 가진 siamese bert를 제안하여 summarization을 진행하며 margin based triple loss를 통해 source document, candidate summary, target summary(Gold Summary)를 유사하게 학습한다.
2. HAHSum
- 논문 : Neural Extractive Text Summarization with Syntactic Compression (2020)
- 학습 데이터셋
- CNN/Daily Mail
- New York Times Annotated Corpus : 1987년 1월 1일 ~ 2007년 6월 19일 사이에 작성된 New York Times의 180만개 이상의 기사가 포함된 데이터셋.
- 개념
- Extractive and Compressive system (추출과 압축 시스템)
- 본문에서 문장을 추출하고, 추출한 문장에서 중요하지 않다고 판단되는 구를 삭제함으로써 더 짧고 압축된 요약문을 만들어 내는 방식
- 이 결합은 문서 요약에 대한 Extractive 접근법의 장점(쉽게 사용 가능, robust)과 Abstractive 접근법의 장점(많은 문서 요약 테스크에 유연하게 적용됨)을 결합한다.
- 저자는 높은 성능을 내는 neural extractive systems에 압축 방법을 더해 flexibility를 갖추고, 이산적인 압축 옵션을 제시함으로써 해석가능성을 갖춘 모델인 HAHSum을 제시한다.
- Extractive and Compressive system (추출과 압축 시스템)
- HAHSum의 대략적인 구조
- 문서 input → Extraction module이 summary 문장 추출 → Compression Module이 summary 문장 압축
- 참조 요약 문장을 통해 Extraction model과 Compression Model 모두 지도 학습
- 모델 구성
- Extractive System
[Extractive System]
1. Sentence & Document Encoder
- Bi-LSTM을 사용하여 Source document의 각 문장들에서 단어를 인코딩한 다음, 여러 Convolution Layers와 Max-Pooling Layer를 적용하여 모든 문장의 표현(벡터)을 추출한다. (위 그림의 보라색 부분, h)
- 그 후, 모든 문장 표현(벡터)를 집계하여 비슷한 Bi-LSTM과 CNN 레이어를 가지고 문서 표현(벡터)를 만든다. (주황색 부분, v)
2. Decoding
- 문서 표현(벡터) vdoc과 문장들의 표현(벡터)가 주어진 많은 문장들을 선택하는 단계
- 그림의 오른쪽 부분이다.
- sequential LSTM decoder를 사용한다.
- 한 번 선택된 문장은 다시 선택될 수 없다.
- Compressive System
[Compressive System]
Extractive System을 통해 문장을 선택한 후,
선택된 문장들의 단어들 또는 구문들을 남길지(KEEP), 삭제할지(DEL) Compressive System이 평가하게 된다.
문법적으로, 의미적으로 해당 문장에서 삭제되면 안되는 구문들 외에 압축 대상으로 선정된 구문들을 가지고
해당 구문이 삭제되었을 때 ROUGE 점수가 상승한 경우, 해당 구문을 DEL
해당 구문이 삭제되었을 때, ROUGE 점수에 변동이 없거나 하락한 경우, 해당 구문을 KEEP하는 결정을 내린다.
- Compression Rule (압축 규칙)
- 문장에서 필요하지 않은 구문들을 제거함으로써 문장을 압축한다.
- 이 과정에서 모델이 중요한 구문을 압축 대상으로 선정하여 삭제하지 않도록 학습시켜야 한다.
- 이를 위해 각 문장에는 문장의 본래 의미와 문법성을 보존하기 위한 압축 옵션이 존재한다.
# 제거 대상
동격명사
관계절 및 부사절
명사구의 형용사구 및 부사구
명사구의 일부인 동사형 동사구
'on Monday' 같은 전치사구
괄호 안의 내용
Reference
- CNN/Daily Mail 데이터셋과 평가지표 설명 (huggingface)
- CNN/Daily Mail 데이터셋의 예시 데이터를 확인해볼 수 있는 huggingface 페이지
- Paperwithcode - Extractive Text Summarization
- ROUGE : A Package for Automatic Evaluation of Summaries
- [자연어처리][Metric] ROUGE Score 한글 블로그
- MatchSum 모델
- HAHSum 모델
'원티드 프리온보딩 AI•ML (NLP)' 카테고리의 다른 글
Week2-1. Pytorch tutorial (1) - Tensor (0) | 2022.04.07 |
---|---|
Week1-4. NLP의 Transfer Learning의 학습 방식 (0) | 2022.02.25 |
Week1-2. NLU와 Semantic Textual Similarity (5) | 2022.02.22 |
NLP와 벤치마크 데이터셋 (0) | 2022.02.22 |
Week1-1. NLP Sub-Task 탐색 (3) | 2022.02.21 |