Lecture 15 - Natural Language Generation

Tobig's 1415 Textseminar·2021년 6월 2일
2
post-thumbnail

작성자 : 건국대학교 응용통계학과 정재윤

Recap : LMs and Decoding Algorithms

NLG?

Natural Language Understanding (NLU) : 자연어 형태의 문장을 기계가 이해할 수 있게 만드는 기술
Natural Language Generation (NLG) : 학습 결과로 기계가 자연어 문장을 생성하는 기술
Natural Language Processing (NLP) : 자연어의 의미를 분석해 컴퓨터가 처리할 수 있도록 하는 일. 즉, NLG + NLU

대표적인 Task에는 Machine Translation, Summarization, Dialogue, Creative Writing 등이 있다.

LM and Conditional LM


LM : 언어 모델링이란 지금까지 주어진 단어를 바탕으로 다음에 나올 단어를 예측하는 작업입니다. 그 대표적인 예시들이 우리가 앞서 배웠던 RNN-LM입니다.


Conditional LM : 주어진 단어들과 어떠한 입력으로부터 다음 단어를 예측하는 모델입니다. 어떻게 보면 지금까지 저희가 지금까지 배웠던 과정의 대부분은 이 과정이었습니다. 예시로 Machine Translation의 경우, source sentence를 x로, Target sentence를 y로 받는 것이죠.

이러한 Conditional LM을 학습시키는 방법 중에서 강의에서는 Teacher Forcing을 언급합니다. 그림을 보면 알 수 있듯, Teacher Forcing이란, Encoder의 input으로 Source sentence를 넣고, Decoder의 input으로는 Decoder를 빠져나온 output이 아닌 Target sentence를 그대로 넣어서 학습시키는 것입니다.

Decoding Algorithms

그렇다면 위의 LM이나 Conditional LM을 학습시키고 나선 어떻게 문장을 생성할 수 있을까요? 바로 Decoding Algorithm을 사용하는 것입니다. 우리가 앞서 배운 Decoding Algorithm에서는 Greedy와 Beam search가 있었습니다.

  1. Greedy Algorithm
    우선 Greedy Decoding입니다. Greedy Decoding은 각 출력을 예측하는데 매 스텝에서 가장 가능성이 높은 단어 한 개를 선택합니다. 매 스텝마다 최적값 하나만 찾기 때문에 속도는 월등하죠. 하지만 한 번 단어를 잘못 산출하게 되면 그 이후의 값들 역시 영향을 받기 때문에 결과가 좋지 않을 수 있습니다.

  2. Beam search
    두 번째로 Beam search 방식입니다. Beam Search는 k개의 가능한 가설들을 두고 가장 높은 확률을 갖는 문장을 찾아 나가는 방식입니다. 이때 k는 beam size를 의미하며, k = 1 이라면 greedy algorithm과 같은 방식이 됩니다.

    이 때 최적의 K를 찾는 것이 가장 중요합니다. beam size가 너무 작으면 주제에 맞는 대답은 하지만 말이 안되는 답변을 하게 되고, 반대로 beam size가 너무 크면 일반적이고, 짧은 답변을 산출하지만 BLEU score가 낮을 위험성이 있습니다.

  3. Sampling based decoding
    이러한 Beam search의 단점을 보완하기 위해 나온 방식입니다. 즉, 큰 k를 가지더라도 너무 일반적인 답안을 얻지 않게 하기 위해 나온 방식입니다.
    1) Pure sampling : Greedy Decoding과 비슷하지만 argmax 대신에 랜덤 샘플링을 사용합니다.
    2) Top-n sampling : Pure sampling과는 다르게 확률이 가장 큰 n개의 단어들 중에서 랜덤 샘플링을 진행하는 것입니다. n이 커질수록 다양하지만 적절하지 않은 문장이 생성되고, n이 작을수록 일반적이면서 평범한 문장이 나오게 됩니다.

NLG tasks and neural approaches to them - text summarization

text summarization?

text summarization이란 입력 텍스트 x를 바탕으로 중요한 정보만을 정제해서 요약문인 y를 생성하는 작업을 의미합니다. Summarization은 single-document와 multi-document로 나눌 수 있습니다. 하나의 문서에 대해서 요약을 하면 single, 여러 개의 문서에 대한 요약이라면 multi-document가 됩니다.

그리고 summarization은 다른 기준으로 Extractive summarization과 Abstractive summarization으로 나눌 수 있습니다. 강의에서는 형광펜과 만년필로 비유하면서 소개했습니다. Extracitve summarization은 문서의 원본 문장을 그대로 추출하는 방식으로 쉽지만 제한적이고, Abstractive summarization은 중요한 내용을 추출하고 아예 새로운 문장을 만드는 방식으로 더 어렵지만 더 다양한 결과를 얻을 수 있습니다.

Pre-neural summarization

Neural Nerwork 기반의 연구가 진행되기 전에는 Extractive summarization을 연구해왔습니다. 그리고 Extracitve summarization은 전형적인 pipeline을 가지는데요. 아래의 그림과 같습니다.

content selection : 포함할 중요한 문장을 선택
Information ordering : 선택한 문장들을 중요도에 따라 정렬
Sentence realization : 요약 문장을 구성하는 단계

ROUGE?

ROUGE란 Recall Oriented Understudy for Gisting Evaluation의 줄인 말로 텍스트 요약 모델의 성능 평가 지표입니다. 모델이 생성한 요약본을 사람이 미리 만들어 놓은 요약본과 대조하여 성능 점수를 계산하죠. 구체적인 예시를 통해 알아보겠습니다.

시스템 요약 :
the cat was found under the bed.

참조 요약 :
the cat was under the bed.

ROUGE는 recall과 precision을 모두 구할 수 있습니다. 먼저 Recall은 위의 수식처럼 참조요약본을 구성하는 단어 중 몇 개의 단어가 시스템 요약본과 겹치는지 보는 점수입니다. 예시를 보면 1이란 값이 나올 겁니다. 이 값은 정말 좋은 점수이지만 모델 성능을 모두 나타내지는 못합니다. 생성된 문장이 엄청 긴 문장이라면 높은 점수를 얻을 가능성이 존재하기 때문입니다.

이런 문제를 해결하기 위해서 Precision을 계산하는 것입니다. Precision은 Recall과는 반대로 모델이 생성한 시스템 요약본 중 참조 요약본과 겹치는 단어들이 얼마나 많이 존재하는지를 파악하는 지표입니다. 즉, Recall보다는 값이 떨어지게 됩니다. 시스템 요약문의 길이가 길어지면 길어질수록 값은 줄어들게 될 겁니다.

따라서 정확하게 성능 평가를 하기 위해서는 Precision과 Recall을 모두 계산해야하며 F-measure를 구한다면 더 바람직할 것입니다.

Neural summarization (2015 - present)

2015년, Rush et al 등은 single document abstractive summarization은 번역과 다를 바 없다는 가설을 바탕으로 seq2seq + attention을 적용했습니다. 하지만 seq2seq과 attention만을 적용한 모델은 디테일에 제대로 잡히지 않는 문제점을 가지고 있었습니다. 즉, OOV문제나 고유명사들을 출력하는 성능은 떨어지는 것이죠.

그래서 이러한 문제점을 보완하고자 summarization에 copy mechanism을 적용했습니다. copy mechanism이란 input으로 들어오는 문장에서 output 생성에 필요한 단어나 구문을 복사해오는 방법입니다. 즉, copy와 generation을 모두 쓰는 방식으로 extractive approach와 abstractive appoarch를 모두 고려하여 디테일을 잡아내고자 한 것입니다.


그러나 이 copy mechanism에도 너무 많이 copy를 진행해 결국 hybrid가 아닌 extractive 형태가 된다는 점과 전반적으로 좋은 content selection을 하지 못하는 문제가 발생했습니다. 이에 대한 해결책으로 bottom up summarization이 나왔습니다. 단어가 포함되었는지 아닌지를 0과 1로 태깅하여 모델은 단어가 포함되지 않은 부분에는 집중하지 않게 만든 것입니다.

Dialogue

Dialogue란 대화 시스템으로 task-oriented dialogue와 social dialogue로 구분지을 수 있습니다. Neural dialogue 이전에는 predefined template 기반으로 시스템을 구축하거나 responses 코퍼스에서 검색하는 방식을 사용했습니다. 그리고 2015년 이후, seq2seq 방식이 도입되면서 open-ended freeform 대화시스템을 만들게 됐습니다. 하지만 seq2seq based dialogue는 심각한 결함들을 가지고 있습니다.

Genericness
Irrelevant responses
Repetition
Lack of context
Lack of consistent persona

NLG evaluation

우선 NLP task에서는 BLEU, ROUGE, F1 등 굉장히 다양한 평가지표들이 있습니다. 그러나 그 어느 하나 명확히 이상적인 지표는 아닙니다.

모델을 평가하는 방법으로 perplexity도 존재합니다. 이 값이 낮으면 낮을수록 토픽 모델은 실제 문헌 결과를 잘 반영한다는 뜻이므로 학습이 잘 되었다고 평가를 할 수 있겠습니다. 하지만 이 값이 generation을 평가하지는 않습니다.

즉, Fluency, Diversity, Relevance 등 NLG의 각 측면을 평가하는 지표는 있으나 전반적인 NLG 성능을 평가하는 지표는 없는 것이죠.

가장 이상적인 기준에 가까운 지표는 바로 Human Judgement입니다. 사람이 직접 평가하는 것이죠. 그러나 사람이 하는 평가는 너무 오래걸리고 비용이 많이 나간다는 단점이 있습니다. 뿐만 아니라 집중력을 잃거나 일관적이지 않거나 하는 등의 문제들도 있다는 점을 유의하여야 합니다.

특히 chatbot의 경우, 다른 평가 지표들에 비해 사람이 평가하는 것이 굉장히 유의하지만 그렇기에 더 조심스럽게 사용해야한다고 강의에서는 언급하고 있습니다.

https://arxiv.org/pdf/1603.08023.pdf

NLG Using Unpaired Corpus

지금까지 저희가 배워왔던 자연어 생성 문제 해결 방법들은 입력 정보에 대응하는 출력문장을 준비시켜 학습시키는 Supervised Training에 기반했습니다. 즉, Paired Corpus로 학습을 진행하는 것입니다. 그러나 문제는 이런 데이터가 대량으로 필요하다는 점과 현실적으로 이런 데이터를 구축하는 것은 굉장히 어려운 점이라는 것입니다.

그리고 최근 이 문제점을 돌파하기 위해 Unsupervised training을 연구하고 있습니다. 한 사례를 찾아서 이야기를 해보겠습니다. 중요한 점은 아래와 같습니다.

  • 어떤 스타일의 문장이 들어오더라도 본질적인 Latent vector 형태로 인코딩한다.
  • 인코딩된 Latent vectors가 주어졌을 때, 각 스타일에 해당되는 디코더는 해당 스타일의 문장을 생성할 수 있어야 한다.
  • 위의 포인트들을 학습하기 위해 인공 신경망은 Autoencoder loss, Cycle loss를 최소화하는 방향으로 학습하게 됩니다.

여기서, Autoencoder loss: X 스타일의 문장 x를 latent vectors로 변환한 후, 이를 다시 X 디코더를 이용해 문장 x’가 생성되었을 때, x’과 원래의 문장 x와 얼마나 다른지, Cycle loss: X 스타일 문장 x를 변환 과정을 통해 Y 스타일의 문장 y로 변환하였을 때, 이 문장 y를 다시 X 스타일로 변환한 문장 x’’과 원래의 문장 x는 얼마나 다른지 입니다.

Reference

11개의 댓글

comment-user-thumbnail
2021년 6월 2일

투빅스 14기 정세영

NLG를 좀 더 깊숙히 배울 수 있는 시간이었습니다.

  • samping based decoding은 greedy, beam search의 단점을 보완하여 너무 일반적인 답안이 나오지 않게 한 방식 (이를 이어 끝판왕이라고도 불리는 Top-p (nucleus) sampling도 있음)
  • ROUGE는 주로 summarization을 평가하는데에 이용되는 recall 기반의 지표로, 실제 요약본의 단어 중 몇 개를 포함하는지, 즉 실제 중요한 정보가 다 들어갔는지를 평가 (<-> precision은 예측한게 맞는지를 평가)
  • neural summarization으로 나온 copy mechanism은 인풋의 단어 일부를 그냥 복사하는 것 -> 너무 많이 복사해와 결국 extractive의 결로 따라감 -> 이를 보완해 나온 bottom up summarization은 단어 포함 여부를 태깅하여 mask를 씌워 크게 기여하지 않도록 만든 것
  • NLG에서는 각 측면을 평가하는 지표는 있으나 전반을 통틀어 평가하는 명확한 지표가 존재하지 않음. 가장 이상적인 지표는 human judgement라고 언급 (조심스럽게 챗봇 평가하자~)
  • paired corpus 구축의 어려움을 타파하고자 unpaired corpus로 생성모델 형태의 모델들이 등장하고 있음
답글 달기
comment-user-thumbnail
2021년 6월 3일

투빅스 14기 한유진

  • NLP는 NLG(문장 생성)과 NLU(의미 분석)이 합쳐진 것으로 이번 강의에서는 NLG를 중점으로 다뤘습니다. 학습 후 문장을 생성할 때 Decoding 알고리즘을 사용할 수 있습니다. 최적의 beam size를 찾는 과정에서 생기는 문제점 때문에 Sampling based decoding방식이 등장하였습니다. k이 크더라도 일반적인 답안을 얻지 않게 합니다.
  • NN연구 전의 text summarization은 문서의 원본문장을 그대로 추출하는 방식인 Extractive 요약을 사용했습니다. text summarization 모델의 성능평가 지표인 ROUGE는 모델과 사람의 요약본을 대조하여 성능점수를 계산하게되고 recall, precision을 모두 구하여 평가할 수 있습니다.
  • Neural summarization은 seq2seq, attention을 적용했지만 고유명사 출력에 문제가 있어 copy mechanism을 추가했습니다. input으로 들어오는 문장에서 ouput생성에 필요한 것들을 복사해오는 방법으로 copy와 generation을 모두 쓰는 방식입니다. 하지만, 너무 많은 copy에 문제가 발생하여 bottom up summarization이 등장했습니다.
  • unpair한 data에 대한 text summarization은 input을 latent vector화하여 디코더 통과후 생성된 문장과 생성된 문장을 다시 input문장화 하였을 때의 차이를 보는 과정을 통해 연구가 진행되고 있습니다.

text summarization에 대해서 자세히 배울 수 있었고, unpair한 data로 NLG를 수행하는 과정도 설명해주셔서 좋았습니다. 좋은 강의 감사합니다!

답글 달기
comment-user-thumbnail
2021년 6월 21일

투빅스 15기 김동현

자연어를 생성하는 모델들에 대해 자세히 알 수 있었습니다.

  • Extractive Summarization이란 문서 내에서 핵심이 되는 문장을 추출하는 것으로, 비교적 쉽지만 제한적인 요약 결과를 얻게 됩니다.
  • Abstractive Summarization이란 문서의 중요한 내용을 담은 새로운 문장을 생성하는 것으로, 보다 유연한 결과를 얻을 수 있지만 비교적 어렵습니다.
  • Copy Mechanisms을 seq2seq과 함께 사용해서 디테일을 잡아내고자 했습니다. Attention에서 copy를 더 잘할 수 있도록 처리한 것입니다.
  • Autoencoder loss
    X 스타일의 문장 x를 latent vectors로 변환한 후, 이를 다시 X 디코더를 이용해 문장 x’가 생성되었을 때, x’과 원래의 문장 x와 얼마나 다른지
  • Cycle loss
    X 스타일 문장 x를 변환 과정을 통해 Y 스타일의 문장 y로 변환하였을 때, 이 문장 y를 다시 X 스타일로 변환한 문장 x’’과 원래의 문장 x는 얼마나 다른지
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 15기 조준혁

  • NLP는 자연어 형태의 문장을 기계가 이해할 수 있게 만드는 기술인 NLU와 학습 결과로 가계가 자연어 문장을 생성하는 NLG 두가지 Task가 합쳐진 것 입니다.
  • Language Modeling이란 주어진 단어를 바탕으로 다음에 나올 단어를 예측하는 task 입니다. Conditional LM은 주어진 단어들과 어떤 입력으로부터 다음 단어를 예측하는 모델입니다. 이렇게 학습한 모델로 문장을 생성하는 알고리즘으로는 Greedy Algorithm, Beam Search, Sampling based decoding 방식이 있습니다.
  • Text Summarization이란 입력 텍스트 x를 바탕으로 중요한 정보만을 정제해서 요약문인 y를 생성하는 작업입니다. 이는 single-document와 multi-document로 나뉘어집니다.
  • NLP에는 BLEU, ROUGE, F1등 많은 평가지표가 있으나 이상적인 지표는 아닙니다. 가장 이상적인 지표는 인간이 직접 평가하는 방식이지만 이는 시간이 너무 오래걸리고 비용이 너무 많이 나간다는 단점이 있습니다.
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 15기 강재영
NLG에 대해 이해할 수 있는 강의였습니다.

  • 우리가 앞서 배웠던 Decoding Algorithms에는 Greedy와 Beam Search가 있었다. 하지만 Greedy는 한번 단어를 잘못 산출하면 그이후 값들도 영향을 미친다는 단점, Beam Search는 Beam size에 따라 답이 지나치게 일반화되거나 말이 되지 않는 것을 산출한다는 단점이 있었습니다.
  • 이러한 단점을 보완하기 위해 나온 방법인 Sampling based decoding은 Pure Sampling, Top-n Sampling을 통해 일반적이면서 적절한 문장이 나오도록 하였습니다.
  • Text summarization에서 성능이 떨어지는 문제점을 보완하고자 Copy mechanism을 적용했습니다.
  • copy mechanism이란 input으로 들어오는 문장에서 Output 생성에 필요한 단어나 구문을 복사해오는 방법입니다.
  • NLP Task에는 다양한 평가지표들이 있는데 어느하나 명확하게 이상적인 지표라고 볼수는 없습니다.
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 15기 이수민

  • NLG는 주어진 input에 대해 새로운 text를 만들어내는 작업이다. 대표적인 NLG task로는 machine translation, summarization, dialogue, creative writing 등이 있다.
  • LM 학습 후 문장을 생성해내기 위해서 decoding algorithm을 사용한다: greedy algorithm, beam search, sample-based decoding.
  • Summarization은 input text x에 대해 요약된 y를 만들어내는 task이다.
  • Pre-neural summarization에서는 포함할 중요 문장을 선택하고 문장들을 중요도에 따라 나열한 뒤 summary를 생성한다. Neural summarization에서는 seq2seq과 attention을 사용하였지만, 문장을 생성할 때 OOV 문제가 발생하여 고유 명사를 출력해내지 못함. 이를 보완하고자 copy mechanism을 적용했지만, 중요 문장을 선택하는 content selection 부분에 대한 성능이 떨어지는 문제점이 발생한다.
  • Bottom up summarization: 앞서 언급한 copy mechanism의 문제를 해결하기 위해 등장했다. 단어의 포함 여부를 0,1로 태깅하고 포함되지 않은 부분에는 집중하지 않게 하는 효과적인 방법이다.
  • Dialogue는 크게 task-oriented dialogue와 social dialogue로 나눌 수 있다. Seq2Seq based dialogue는 지나치게 일반적인 반응을 보이거나 문맥을 고려하지 못하여 흐름과 무관한 말을 하고 persona가 형성되어 있지 않다는 문제점이 있다.
  • NLG의 각 task에 대해 사용할 수 있는 성능 지표는 존재하지만 모든 task에 대해 범용적으로 사용될 수 있는 적절한 지표는 없다.
  • Paired corpus로 학습을 진행하는 것에 어려움이 따르게 되면서 최근 unpaired corpus를 활용한 비지도학습이 연구되고 있다.
답글 달기

투빅스 15기 조효원

  • NLG 는 문장을 생성하는 NLP의 일종이다. 문장을 생성할 때, Decoding 알고리즘을 사용한다. 즉, 앞선 단어들이 주어졌을 때 다음 단어를 예측하는 전형적인 언어 모델의 태스크를 가진다.
  • greedy search, beam search 의 단점을 보안하여 너무 일반적인 답안이 나오지 않게 하즞 Sampling based decoding방식이 있다.
  • 텍스트 요약은 추출 요약과 추상요약으로 나누어지는데, 추출 요약은 주어진 텍스트에서 주요한 문장 혹은 구를 조합하여 요약을 완성하는 방식이고, 추상 요약은 신경망을 이용해 새로운 문장을 생성하는 것을 의미한다.
  • 텍스트 요약에는 seq2seq, attention을 적용했지만 고유명사 출력에 문제가 있어 copy mechanism을 고안했다. 이는 입력 문장에서 최종 출력 문장에 필요한 부분을 복사해와 문장을 생성하는 방식이다.
  • NLG 평가 방식에는 BLEU, ROUGE, F1등의 지표가 있으나 이상적인 지표는 아니다.
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 15기 김재희

  • NLP는 NLG와 NLU로 구성되어 있습니다.
  • NLG는 자연어 문장을 생성하는 분야로 기계번역, 요약, 대화 등의 태스크가 있습니다.
  • conditional LM이란 입력값이 주어진 상태에서 LM을 수행하는 모델입니다.
  • LM에서 문장 생성은 디코딩 알고리즘을 통해 이루어집니다.
  • Pre-Neural 요약에선 주어진 글에서 포함할 문장을 선택하는 방법을 택했습니다.
  • Nerual 요약에선 문장을 생성하고자 했으나 고유명사나 OOV를 해결하지 못했습니다. 이를 copy mechanism을 통해 보완했습니다.
  • 이외에도 Bottom up summarization 등의 보완이 등장했습니다.
  • ROUGE는 요약문과 모델 생성본 간의 recall이나 precision을 이용해 모델 성능을 측정하지만, 완벽한 지표는 아닙니다.
  • NLG 성능 평가는 ROUGE나 PPL, BLEU 등을 통해 평가하지만 모델의 전반적인 성능은 측정하기 매우 어렵습니다.
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 15기 이윤정

  • NLU : 자연어 형태의 문장을 기계가 이해도록 만드는 기술, NLG : 기계가 자연어 문장을 생성하는 기술로 NLP는 NLU와 NLG가 결합된 기술이다.
  • 문장 생성은 decoding 알고리즘을 사용하며, greedy 방식과 beam search 방식, sampling based 방식이 존재한다. greedy 방식은 한번 단어를 잘못 도출하면 이후 값들도 계속 영향을 받는다는 단점을 가지며, beam search는 size에 영향을 받는다는 단점을 지닌다.
  • neural network 기반의 연구가 진행되기 이전의 문서요약은 extractive summeraization을 연구하였으며, 모델의 요약본과 사람이 만든 요약본을 대조하는 방식의 성능 평가 지표인 ROUGE를 사용하였다.
  • neural network 기반의 연구는 seq2seq와 attention을 적용했으나, OOV 문제가 발생하므로 이러한 단점을 보완하기 위해 copy mechanism을 통해 copy와 generation을 모두 사용하여 디테일을 고려하였다. 그러나, 해당 방식도 copy가 많아질 수록 문제가 발생하여 bottom up 방식이 등장하였다.
  • NLP의 성능 평가 지표는 여러가지가 존재하지만 명확한 지표는 존재하지 않는다.
답글 달기
comment-user-thumbnail
2021년 6월 22일

투빅스 14기 박준영

-LM : 언어 모델링이란 주어진 단어를 바탕으로 다음에 나올 단어를 예측하는 작업

  • Conditional LM: 주어진 단어와 입력으로부터 다음 단어를 예측하는 모델.
  • Teacher Forcing이란, Encoder의 input으로 source sentence를 넣고, Decoder의 input으로 Decoder를 빠져나온 output이 아닌 target sentence를 넣어서 학습시키는 것이다.
  • 입력 텍스트 x를 바탕으로 중요한 정보를 정제하여 요약문 Y를 생성하는 text summarization이 있다. text summarization 모델을 평가하기 위해 ROUGE 평가 지표가 있다.
  • RouGE란 모델이 생성한 요약본을 사람이 미리 만들어 둔 요약본과 대조하여 성능 점수를 계산하는 방법이다.
  • NLG모델을 평가하는 방법은 Fluency, Diversity, Relevance 등의 방법은 있으나 NLG 성능을 평가하는 방법은 없다. 가장 이상적인 기준은 인간의 판단이지만 비용이 많이 나간다.

NLG의 개념과 NLG성능 평가의 한계에 대해 배울수 있는시간이었습니다. 좋은 강의감사합니다!

답글 달기
comment-user-thumbnail
2021년 6월 23일

투빅스 14기 이정은

  • 기존의 RNN은 병렬화가 불가능하고, Long-term dependency 처리에 약하며 계층 구조로 모델링이 불가하다는 단점을 가집니다. CNN은 RNN의 병렬화 문제를 해결하였지만, Long-term dependency 처리를 위해 많은 계층이 필요하여 연산량이 많아집니다.
  • NLG는 학습 결과로 기계가 문장을 생성하는 기술로 Machine Translation, Summerization 등의 대표적인 task가 있습니다.
  • 주어진 단어와 input으로부터 다음 단어를 예측하는 conditional LM 작업 이후, 문장 생성을 위해 Decoding Algorithm을 사용합니다.
  • Decoding Algorithm에는 크게 3가지 방식이 있습니다. Greedy Algorithm은 속도는 빠르지만 초반에 이상한 단어가 추출되면 이후 결과가 안 좋아지는 단점을 가집니다. Beam Search는 k개의 가능한 가설로 높은 확률을 갖는 문장을 찾는 방식으로, 이 때 최적의 k(=Beam Size)를 찾는 것이 매우 중요합니다. Sampling Based Encoding은 Beam Search의 큰 k를 가지면 일반적인 답안이 나오는 단점을 보완한 방식입니다.
  • NLG의 task 중 Text Summerization은 원본 문장을 그대로 추출하는 Extractive 방식과 중요한 내용을 담은 문장을 새로 생성하는 Abstractive 방식이 존재합니다.
  • NN을 사용한 Neural Summerization은 single document abstractive summarization은 번역과 다를 바 없다는 가설을 가지고 seq2seq과 attention을 합쳐 적용하였습니다. 그러나 해당 모델은 oov나 고유명사 등의 디테일을 제대로 잡지 못하는 단점을 가지고 있습니다.
  • 이를 보완하고자 필요한 단어나 구문을 그대로 복사하는 copy mechanism을 사용하였지만, 너무 많이 copy하여 결국 extractive 형태로 수렴한다는 문제가 발생하였습니다. 이는 모델은 단어가 포함되지 않은 부분에는 집중하지 않게 만든 bottom up summarization으로 해결했습니다.
  • NLG의 평가지표로는 ROUGE, Perplexity 등이 존재하지만 모델 전체 성능을 보여줄 수 있는 이상적인 지표는 없습니다. 또한, 사람이 평가한 것과 수치적 지표 간의 평가가 달라 결국 사람이 평가하는 것이 제일 유의미하다고 말하기도 합니다.

Text Summerization에 대해 자세히 설명해주신 점이 좋았습니다. 감사합니다! : )

답글 달기