learningAI
article thumbnail

본 논문은 자연어 이해(natural language understanding)과 생성(generation) task를 모두 fine-tuning할 수 있는 UniLM(Unified pre-trained Language Model) 를 제시한다. UniLM 네트워크는 unidirectional LM, bidirectional LM, 그리고 sequence to sequence LM 세 가지 pre-training을 진행하며, 하나의 Transformer 네트워크로 학습된다. 다양한 LM을 한 모델로 학습하기 위해서 masking 기법을 활용하며, UniLM은 5개의 데이터에서 SOTA를 달성한다. CNN/DailyMail abstractive summarization ROUGE-L 40.51, Gigaword abstractive summarization ROUGE-L 35.75, CoQA 82.5, SQuAD 22.12, DSTC7 2.67를 달성한다.

 

Introduction

모델 pre-training은 NLP의 큰 발전을 일으켰으며, 다양한 language modeling 기법이 사용되었다. ELMo는 left-to-right, right-to-left 두 가지 unidirectional LM, GPT는 left-to-right LM으로 학습되었고, BERT는 마스킹을 통한 bidirectional LM을 학습했다. BERT는 양방향 학습으로 Natural Language Understanding(NLU, 자연어 이해) task에 대해서는 좋은 성능을 보였지만, 학습 특성상 Natural Language Generation(NLG, 자연어 생성) task에서는 좋지 못한 성능을 보였다. 

UniLM은 언급된 unidirectional LM, bidirectional LM, 그리고 sequence to sequence LM을 pre-training 과정에서 모두 학습하여 NLU와 NLG에서 모두 좋은 성능을 보인다. 다음 표를 확인하자.

 

표 1. UniLM은 다양한 downstream task에서 평가된다

 

위에서와 같이, 다양한 모델링 기법으로 학습되어 오른쪽의 downstream tasks에서 좋은 성능을 보인다. 모델은 shared parameters 기법을 활용하여 하나의 네트워크에서 학습되며, cloze task를 활용하여 모델링 objective를 정의한다(2.3에서 추가 설명). 

Pre-training이 끝나면 BERT와 같이 fine-tuning을 통해 downstream tasks에 적용된다. BERT는 NLU에 특화되어 있던 것과 다르게 UniLM은 다른 마스킹을 적용하여 NLU, NLG 둘 다 좋은 성능을 보여준다. UniLM은 3 가지 이점을 가진다.

 

1. 여러 가지 모델링 기법을 통합한 pre-training은 cloze task를 통해 objective를 정의함으로써 여러 네트워크를 구현할 필요가 없다.

2. 다양한 모델링 objective로 학습되기 때문에 좀 더 일반화된 representation을 학습할 수 있다.

3. Sequence-to-sequence LM을 학습함으로써 abstractive summarization과 question generation 같은 task에서 좀 더 나은 performance에 도달한다.

 

Pre-training

Input representation

입력 $x$는 unidirectional LM에서 single-segment, bidirectional LM과 sequence-to-sequence LM에서 segment-pair의 형태이다. 입력의 처음은 항상 [SOS](start-of-sequence) 토큰으로 시작하고, segment의 끝에는 [EOS](end-of-sentence) 토큰이 삽입된다. Input representation은 BERT와 동일하여, token embeddings, segment embeddings, 그리고 positional embeddings의 합으로 구성된다. 텍스트는 WordPiece tokenizer에 의해 subword 유닛으로 토큰화된다.

 

Backbone network

Backbone 네크워크는 위 수식에서처럼 multi-layer Transformer가 사용된다. $M_{i, j}$는 행과 열의 크기가 입력의 길이로 구성된 mask matrix이다. $M$의 값이 0이면 마스킹되지 않고, $-\infty$이면 마스킹된다는 의미이다. $M$은 cloze task로 다양한 모델링 objective를 구현하는 것에 사용된다. 그림 1에서와 같이 모델링 기법에 따라 다른 마스킹을 적용함으로써 pre-training을 진행한다.

 

Modeling Objectives

그림 1. cloze tasks

위의 그림 1에서처럼 UniLM은 다양한 objective(총 4가지)에 의해 학습된다. WordPiece에 의해 토큰화된 입력은 모델링 기법에 따라 [MASK] 토큰으로 대체된다. 

 

Unidirectional LM은 left-to-right과 right-to-right에 대해 학습한다. 위 그림 1에서처럼 left-to-right을 예로 들어 설명하자면, 입력 sequence가 주어지고 그 다음 토큰을 예측했던 autoregressive 방식과 다르게 "Attention is all You Need"의 Decoder와 유사하게 마스킹을 해서 좌측에 있는 토큰만을 인코딩하게 설정했다. 예를 들어 "$x_1 x_2 [MASK] x_4$"의 입력이 주어질 때, [MASK] 토큰을 예측하기 위해 $x_1, x_2$의 정보만을 사용할 수 있다.

 

Bidirectional LM은 BERT와 동일하다. 양방향 토큰의 정보를 사용할 수 있으며,  self-attention mask $M$은 zero matrix이다. 이때, self-attention mask는 attention에 적용되는 마스킹이기 때문에 기존의 BERT의 입력 마스킹과는 관련이 없다. Bidirectional LM은 BERT에서 사용되었던 NSP와 같이 학습된다.

 

Sequence-to-sequence LM은 그림 1과 같이 segment-pair가 입력으로 주어질 때, 첫번째 source segment는 bidirectional 마스킹을 적용하며, 두번째 target segment에 대해서는 unidirectional 마스킹이 사용되었다. 예를 들어 "$[SOS] t_1 t_2 [EOS] t_3 t_4 t_5 [EOS]$"의 입력이 주어질 때, "$t_1, t_2$"는 4번째 토큰까지의 접근이 허용되지만, t_4는 첫번째부터 여섯번째 토큰까지의 정보를 활용할 수 있다. 학습 과정에서 입력 토큰이 랜덤하게 [MASK] 토큰으로 대체되며, sequence-to-sequence LM은 [MASK] 토큰을 예측하도록 학습한다.

 

Setup

하나의 훈련 배치에 대해서

  • Bidirectional LM: 1/3
  • Sequence-to-sequence LM: 1/3
  • left-to-right LM: 1/6
  • right-to-left LM: 1/6

 

의 시간이 할당된다. 모델의 구조는 공정한 평가를 위해 BERT-large 모델과 동일하며, gelu 활성화 함수가 사용되었다. Transformer 네트워크는 L=24, H=1024, A=16로 총 340M의 파라미터 수를 가진다. Vocabulary size는 28,996이고, 입력의 최대 길이는 512이다. 학습률은 3e-5, Adam은 $\beta_1 = 0.9$, $\beta_2 = 0.999$로 세팅되었고, warmup은 40,000 step동안 linear하게 진행되었다.

 

Fine-tuning

NLU task에서는 UniLM은 BERT와 같이 fine-tuning되었다. Text classification을 예로 들면, 입력의 [SOS]가 인코딩 벡터로 사용되었으며, softmax classifier를 거쳐 출력을 계산하게 된다.

NLG는 sequence-to-sequence task를 예로 들어, S1와 S2를 각각 source sequence와 target sequence라고 하자. 입력은 "$[SOS] S1 [EOS] S2 [EOS]$"와 같이 구성되며, 랜덤한 token이 마스킹되어 모델은 이를 예측하는 방식으로 fine-tuning된다. [EOS] 토큰도 마스킹되며, 이에 따라 모델은 sequence의 끝부분을 예측하는 기능을 학습한다.

 

Experiments

Text Summarization

 

표 2. CNN/DailyMail 결과

Text summarization은 입력 텍스트의 주요 정보를 간결하고 자연스럽게 요약하는 task이다. UniLM은 이전의 abstractive system의 성능을 모두 뛰어넘으며 SOTA를 달성한다. 또한 best extractive model인 ROUGE-L을 0.88 포인트 차이로 우수한 성능을 가진다.

 

표 3. Gigaword abstractive

UniLM은 이전의 모델들보다 우수한 성능을 보여주며 SOTA를 달성했다. 추가적으로 low-resource 세팅에서는 ROUGE-L을 7.08 포인트 앞서는 성능을 보여준다.

 

Question Answering

 

표 4. QA 성능표

첫번째와 두번째 표에서 Extractive QA는 입력 passage에서 답변의 start/end 위치를 예측하는 task이다. UniLM은 BERT와 동일하게 학습되었으며, BERT-LARGE 모델보다 뛰어난 성능을 보여준다.

세번째 표의 Generative QA는 NLG task로, 모델은 입력에 대해 free-form 답변을 출력해야 한다. UniLM은 이전 모델을 아주 큰 차이로 앞서는 성능을 보인다.

 

Question Generation

 

표 5. Question Generation task

Passage와 answer span이 입력으로 주어졌을 때, 모델은 answer를 묻는 question을 출력해야 한다. UniLM은 이전 모델의 성능을 앞섰으며, question generation task의 SOTA를 달성했다.

 

Response Generation

 

표 6. Response generation task

Response generation은 서로 주고받는 대화와 정보 source로 web document가 주어지며, 모델은 대화에 이어지는 답변을 출력해야 하는 task이다. UniLM은 best DSTC7 모델의 성능을 넘어서며 SOTA를 달성한다.

 

GLUE benchmark

표 7. GLUE benchmark

GLUE는 language model의 성능을 평가하기 위해 전형적으로 많이 사용되는 benchmark이며, question answering, linguistic acceptability, sentiment analysis, text similarity, paraphrase detection, 그리고 natural language inference task를 포함하고 있다. GLUE benchmark에서는 BERT-large와 대립되는 구도로 몇 가지 task는 더 나은 성능을 보이는 반면 나머지 task는 조금 떨어지는 성능을 확인할 수 있다.

 

Discussions

UniLM은 세 가지 종류의 LM을 학습하여 5가지 NLG 데이터셋에서 SOTA를 달성했다. BERT에서 사용되었던 bidirectional LM을 그대로 가져오면서 autoregressive objective를 마스킹으로 cloze task로 변형시켜 같이 학습시킨 것이 인상적인 paper이다.

 

논문

https://arxiv.org/pdf/1905.03197.pdf

profile

learningAI

@YyunS

인공지능 공부하는 학생입니다!