이 논문은 2022년 9월 26일에 올라온, 2022 NeurIPS에 accept된 논문입니다!
논문 리뷰에 너무 많은 시간이 걸리는거 같아서, 이번엔 motivation, proposed methods, experiment, conclusion형식으로 리뷰해보려고 합니다!
Motivation
Proposed methods
Experiment
-
Experiment setup
- Model and Baselines
- GPT-2를 제안된 objective function(LsimCTG)를 사용해 fine-tuned
- baseline의 경우 12개의 head를 가진 12개의 transformer layer를 가진 모델을 사용
- 다양한 decoding methods를 사용해서 글을 생성
- MLE, SimCTG의 경우 학습시 Wikitext-103에 대해 40k training step만큼 학습시킴
- unlikelihood base line의 경우 학습시 Wikitext-103에 대해 token-level unlikelihood objective에 대해 38.5k, sequence-level unlikelihood objective에 대해 1.5k training step만큼 학습시킴
- decoding할 때, prefix의 길이를 32로, 생성하는 글의 max_len은 128로 제한
- beam search의 경우 beam size 10으로 설정
- Evaluation Benchmark
- Wikitext-103 dataset에 대해 실험을 진행
- Wikitext-103은 문서 단위의 데이터셋으로, large-scale language modeling의 평가에 널리 사용됨
-
Evaluation Metrics
-
Perplexity : Wikitest-103에 대한 model perplexity(ppl)
-
Prediction Accuracy : 이전 토큰이 주어졌을 때, 다음에 나올 토큰을 맞추는지
-
Prediction Repetition : 다음 토큰으로 이미 이전 step에 나온 말을 하는 정도를 측정
-
Generation Repetition : 생성된 문장에서 중복된 n-grams를 seqeuce-level repetition로 측정
-
Diversity : 다양한 n-gram level에서 generation repetition을 측정
-
MAUVE : 생성된 글과 사람이 쓴 글 사이의 token distribution closeness를 측정
-
Semantic Coherence : 자동으로 SimCSE를 문장 임베딩 방법으로 사용하여, prefix와 generated text사이의 semantic coherence를 측정
-
Perplexity of Generated Text : prefix가 주어졌을 때, 생성된 글의 perplexity를 측정. 높은 gen-ppl을 가진다면, prefix가 주어졌을 때 생성된 text가 매우 unlikely하다는 것이므로 낮은 품질의 글일 확률이 높음. 반대로 낮은 gen-ppl를 가진다면, 생성된 글이 low diversity를 가져 repetitive loops에 갇힐 확률이 높음.
-
human evaluation
- Coherence : 생성된 글이 의미적으로 prefix와 일관되는지
- Fluency : 생성된 글이 유창하고 이해하기 용이한지
- Informativeness : 생성된 글이 다양하고 흥미로운 내용을 가지고 있는지
-
Experiment result
-
Open-domain Dialogue Generation
- 본 논문에서 제안하는 방식이 다른 task와 언어에도 적용되는지를 살펴보기 위해, open-domain dialogue generation에 적용해 봄
- 중국어 벤치마크인 LCCC dataset과 영어 벤치마크인 DailyDialog dataset에 대해서도 적용
- SimCTG와 MLE로 fine-tuned한 GPT-2모델을 비교, 중국어 데이터에는 공개된 Chinese GPT-2를 사용
- batch size 128, input max_len으로 256사용, LCC에서는 40k step학습, DailDialog는 5k step만큼 학습(fine-tune)
- 두 데이터셋 모두에서, SimCTG+contrastive search방법이 다양한 메트릭에서 뛰어난 성능을 보임
==> 본 논문에서 제안하는 방법이 다양한 언어와 태스크에 일반화될 수 있음을 보임
- contrstive training없이, MLE model에 contrastive search를 사용했을 떄도 상다히 높은 성능을 보임
- 이는 중국어 언어 모델에서 MLE objective는 이미 높은 수준의 isotropy를 가지는 representation space를 산출할 수 있기 때문인 것으로 보임
-
Token Represenation Self-similarity
- 다른 토큰과의 similarity를 비교해봄
- SimCTG는 최적의 언어 모델 accuracy를 유지하면서도 distriminative하고 isotropic한 representation을 얻을 수 있는 것을 알 수 있음
- 근데 왜 마지막 레이어에서만 이렇게 격차가 벌어질까?
-
The Effect of Contrastive loss margin
- ρ에 따른 test set perplexity를 나타낸 표이다. 이를 보면 ρ가 너무 작거나 클 경우 모델의 학습된 representation space가 너무 작거나 너무 isotropic해서 sub-optimal perplexity를 이끄는 것을 볼 수 있음
-
Contrastive search versus nucleus sampling
- nucleus sampling에 대한 확률 p와 contrastive search를 위한 α를 바꿔가며 Wikitext-103 test set에서 prefixes를 사용해 생성한 텍스트에 대해 Generation Perplexity를 나타낸 표
- 이 결과를 보면 contrastive search가 generation diversity와 perplexity사이의 trade-off에서 더 나은 밸런스를 가지고 있음
- 보라색 별표가 사람인데, 사람 기준으로 봤을 때, contrastive search가 nuclesus와 유사한 perplexity를 보이면서 훨씬 나은 Diversity를 가짐!
-
decoding latency comparison
- Figure 5를 보면, inference 속도가 비슷하지만 b와 k가 커질수록 contrastive search가 더 빠른 것을 알 수 있음
-
case study
- 빨간색은 degeneration repetitions, 파란색은 원문과 일관성이 없는 말, 초록색은 합리적인 repetition을 나타냄
-
Conparison of Token Similarity Matrix
- 빨간색이 prefix, 노란색이 generated text
- MLE+beam search가 유난히 유사도가 높은걸 볼 수 있음
- SimCTG+beam seach의 경우 전반적으로 isotropy하고 sparse해 보이나, degeneration repetitions가 여전히 생성된 글에 존재하는 것을 알 수 있음
Conclusion
- 본 논문에서는 token representation이 anisotropic한 것에서 neural language model의 degeneration이 발생한다고 주장
- 이를 위한 해결책으로, SimCTG와 contrsastive search를 제안
- 다양한 실험 결과 제안한 방법론이 text generation approaches에서 뛰어난 성능을 보임을 입증 (현재 SOTA모델보다 뛰어남)
좋은 글이네요