Neural Text Generation with Unlikelihood Training
ICLR 2020
분야 및 배경지식
Neural Text Generation
- 생성모델은 사람에 비해 빈도수가 높은 단어를 많이 생성하고, 드문 단어는 거의 생성하지 않는다는 한계를 보임 (mismatch between model and human word distribution)
- 이러한 현상은 단순히 학습 데이터를 늘린다고 해서 해결되지는 않음
Decoding Algorithms
-
Deterministic decoding
- greedy search: 각각의 타임스텝에 가장 높은 확률을 가진 토큰을 선택
- beam search: 부분적으로 디코딩된 시퀀스들의 집합(크기는 고정, hypothese라고도 부름)을 유지하고 그 중 선택
- 기저하는 모델의 확률에 크게 의존하는 경향을 보임
-
Stochastic decoding
- top-k sampling: k개의 가장 확률이 높은 토큰들을 샘플링
- nucleus smapling: 전체 크기(누적분포)가 일정 threshold를 넘는 가장 작은 집합을 샘플링
문제점
해결책
Unlikelihood training
위에서 언급한 decoding strategies와 함께 사용가능한 새로운 objective 제안
token-level unlikelihood objective (pretrain)

- unlikelihood loss: negative candidate라고 불리는 특정 토큰들의 확률을 감소시키는 방식
- negative candidates: 여기에선 이전의 context tokens를 의미하는데, 이유는 이 토큰들의 생성 확률을 감소시킴으로써 1) 반복되는 틀린 토큰들의 생성을 제한할 수 있고, 2) 빈도수가 높은 토큰의 생성을 제한할 수 있기 때문임
- token-level unlikelihood objective의 경우 일반적으로 사용되는 maximum log-likelihood objective를 대체하여 사전학습 시 사용될 수 있음
sequence-level unlikelihood objective (finetune)

- token-level unlikelihood objective로 토큰 단위의 페널티를 줄 수 있지만, 학습 시퀀스와 생성 시퀀스 사이의 distribution mismatch는 완전히 해결할 수 없음
- negative candidates: continuation에서 반복되는 n-gram에 속한 토큰들
- sequence-level unlikelihood objective의 경우 사전학습 모델에 fine-tuning objective로 적용될 수 있음
평가
- 모델: Transformer
- 데이터셋: Wikitext-103
- Metrics
- Repetition
- rep/l: 이전에 생성된 일정 길이(l) 내의 토큰들 중 다음에 예측된 토큰이 존재하는 경우를 측정 (token-level)
- wrep/l: rep/l 중에서도 ground-truth next-token과 같지 않을 경우 별도로 측정 (token-level)
- seq-rep-n: 생성된 시퀀스에서 반복된 n-gram의 경우를 측정 (1.0 - |unique n-grams|/|n-grams|) 모델의 반복이 많을수록 1.0과 가까워짐 (sequence-level)
- Token Distribution (related to frequency)
- uniq: 사용된 유일한 토큰의 수를 활용해 모델이 예측한 토큰의 분포 측정 (token-level)
- Quality
- perplexity (ppl)
- acc: 다음 토큰의 예측 정확성

의의
- 기존의 모델과 유사한 perplexity, accuracy를 보임과 동시에 token distribution, repetition 분야에서 성능 향상을 보임
- 제시된 Sequence-level unlikelihood objective의 경우 사전학습된 모델에 사용되어 성능향상을 기대할 수 있음
- Human evaluation의 경우 baseline보다 더 좋은 평가를 받음
한계
- 별도의 downstream task 성능에 대한 평가가 없어 아쉬움
- 과연 repetition, mismatch between human and model distribution이 생성 태스크에 얼마나 큰 영향을 미치는가
- human evaluation에서 baseline에 비해 더 좋은 평가를 받았다고 하였으나, 그것 이외에 ppl, acc 등 모델의 성능을 나타내는 지표에는 약점을 보임