상세 컨텐츠

본문 제목

[논문 리뷰 스터디] GPT-1 : Improving Language Understanding by Generative Pre-Training

심화 스터디/논문 리뷰

by jihooo 2022. 9. 22. 20:17

본문

작성자 : 김지후


1. Introduction

대부분의 딥러닝 방법에서 상당한 크기의 라벨링된 데이터가 필요합니다. 많은 산업에는 라벨링된 데이터의 부족으로 활용에 제한이 있습니다. 따라서 라벨링되지 않은 데이터에서 언어적인 정보를 이끌어낼 수 있는 모델은 라벨링 데이터를 더 모으는 것의 훌륭한 대안이 됩니다. 또한 지도학습 방법이 존재하더라도 비지도 학습이 더 좋은 성능을 보여주기도 합니다. 사전학습된 embedding이 그 예시입니다.

 

레이블링이 되지 않은 텍스트로부터 단어 수준 이상의 정보를 얻는 것에는 2가지 어려운 점이 있습니다.

 

(1) 전이학습(transfer)에서 어떤 optimiazation objectives의 종류를 사용하는 것이 학습에 가장 효과적인지 알기가 어렵다.

(2) 학습된 표현을 다른 태스크에 효과적으로 전이(transfer)할 수 있는 지에 대해 정해진 방법이 없다.

 

이러한 불확실성은 효과적인 준지도학습 개발을 어렵게 합니다.

 

본 논문에서는 비지도 사전학습(unsupervised pre-training)과 지도학습 파인튜닝(supervised fine-tuning)을 결합해 언어이해(language understanding) 태스크에서 준지도학습 접근방법을 탐구합니다. 다양한 태스크에서 보편적인 표현을 학습하는 것을 목표로 합니다. 대량의 라벨링되지 않은 텍스트와 목표 태스크(target task)의 라벨링된 학습예제를 갖는 데이터셋에 접근가능을 가정합니다. 이때 목표 태스크가 라벨링되지 않은 데이터셋의 도매인과 같지 않아도 됩니다.

 

학습은 두 단계를 거칩니다.

(1) 신경망모델의 초기 모수를 학습하기 위해 라벨링되지 않은 데이터에 대한 언어모델링 목적함수를 사용

(2) 연관된 지도목적함수를 사용하여 모수를 목표 태스크에 적용

 

모델의 구조는 머신번역, 문서생성, 구문분석과 같은 다양한 태스크에서 좋은 성능을 보여준 트랜스포머를 사용합니다. 트랜스포머는 RNN과 같은 다른 모델보다 텍스트의 장기 의존성을 다루는 데 뛰어나 더 많은 구조화된 memory를 쓸 수 있게 합니다. 전이 중에는 traversal-style 접근법에서 얻은 태스크 특화된 입력 적응(input adaptation)을 이용해 입력은 하나의 일련의 시퀀스 토큰으로 주어집니다. 이러한 입력 적응은 사전학습된 모델의 구조를 바꾸는 것을 최소화해 효과적으로 파인튜닝할 수 있도록 합니다.

본 모델을 네가지 종류의 언어 이해 태스크, 자연어 추론, 질의응답, 의미유사성, 분류 실험 결과 12개의 task들 중 9개가 SOTA를 달성할 수 있었습니다.

 

2. Related Word

Semi-supervised learning for NLP

준지도학습은 sequence labeling이나 text classification의 적용에 있어서 큰 관심을 가져왔습니다. 초기의 접근법들은 supervied 모델의 특징으로 쓰이게 될 통계(단어 수준이나 구 단위 수준의)를 계산하기 위하여 레이블되지 않은 데이터를 사용했습니다. 지난 몇년동안 연구자들은 다양한 과제에서의 성능 향상을 위해 레이블링되지 않은 말뭉치로 학습이된 워드 임베딩 사용의 효과를 입증해왔습니다. 그러나 이러한 방법들은 단어 수준의 정보밖에 학습하지 못했습니다.

 

최근 연구들은 레이블되지 않은 데이터로부터 단어 수준 이상의 정보를 학습하기 위해 노력하고 있습니다. 레이블되지 않은 데이터로 학습이 된, 구 단위 혹은 문장 단위의 임베딩은 다양한 과제를 text에서 벡터 표현으로 적합하게 바꾸기 위해 쓰여왔습니다.

 

Unsupervised pre-training

지도학습 목적함수를 수정하는 것 대신 좋은 초기값을 찾는 것이 목표라면 비지도학습은 semi-supervised 학습의 특별한 경우가 됩니다. 사전학습 단계에서는 정규화를 더 잘 되게 도와줍니다. 따라서 이러한 방식은 이미지 분류, 음성 인식, 머신번역 등 다양한 deep neural networks 과제에서 사용되고 있습니다.

 

GPT와 가장 유사한 연구는 신경망을 언어모델링 목적함수를 사용하여 사전학습시키고 지도 하에 목표 태스크에 맞춰 파인튜닝하는 것이 있습니다. 그러나 어떤 언어적 정보를 포착하는 데 있어 LSTM의 사용은 이를 좁은 범위에 한정시켰습니다. 하지만 본 모델은 Transformer를 사용함으로써 넓은 범위에 걸친 언어적 구조와 정보를 학습할 수 있게 하였고 나아가 다양한 과제에 사용할 수 있게 되었습니다.

 

다른 접근법은 목표 태스크에 맞춘 지도학습 중에 사전학습된 언어/기계번역 모델에서 얻은 은닉표현을 부가정보로 사용해 상당한 양의 parameter를 추가하지만, GPT는 전이 과정에서 모델의 구조를 조금만 수정합니다.

 

Auxiliary training objectives

보조목적함수를 추가하는 것은 준지도학습의 대안입니다. GPT도 보조목적함수를 추가하지만, 비지도 사전학습이 이미 목표 과제에 대한 여러 언어적 정보를 학습했다는 것을 보일 것입니다.

 

 

3. Framework

GPT의 학습은 두단계로 구성되어 있습니다. 첫번째 단계는 언어 코퍼스에 대하여 high-capacity 언어모델을 학습합니다. 두번째 단계는 파인튜닝 단계입니다. 레이블링 된 데이터를 이용하여 모델을 특정 task에 적용합니다.

3.1 Unsupervised pre-training

비지도 코퍼스 토큰 U = {u_1, …, u_n}가 주어졌을 때, 다음과 같은 우도함수를 최대화 하기위해서 standard language modeling objective를 사용합니다.

K : size of context window

 

조건부 확률 P는 신경망 파라미터 Θ를 사용하도록 모델링합니다. 이러한 파라미터들은 SGD를 이용하여 학습이 됩니다.

 

GPT는 언어모델로 Transformer의 변형인 multi-layer Transformer decoder를 사용합니다. 이 모델은 입력 문맥 토큰에 multi-headed self-attention을 적용한 후, 목표 토큰에 대한 출력분포를 얻기 위해 position-wise feedforward layer를 적용합니다:

U : context vector of tokens

n : number of layers

W_e : token embedding matrix

W_p : position embedding matrix

h_l : transformer block의 활성값

 

3.2 Supervised fine-tuning

위 우도에 따라 모델을 학습시키고 나면 모수를 목표 태스크에 따라 파인튜닝 합니다. 라벨링된 데이터셋 C가 있고 각 구성요소가 입력 토큰 시퀀스 x1, … xm 및 그 라벨 y로 구성되어 있습니다. 입력은 최종 transformer block의 활성값 h_l을 얻기 위해 위의 사전학습 모델을 지납니다. 이 결과는 y를 예측하기 위해 모수 W_y와 함께 추가된 선형 출력 레이어에 입력됩니다:

이는 다음의 우도함수를 최대화하도록 합니다.

미세조정 단계에 언어모델을 보조목적함수로 포함시키는 것은 다음 이유에서 학습을 돕습니다.

(a) 지도학습의 일반화를 돕습니다.

(b) 수렴을 과속화합니다.

구체적으로, weight λ에 대해 다음 목적함수를 최적화합니다:

 

종합적으로 파인튜닝 단계에서 추가된 모수는 W_y과 구분자 토큰을 위한 embedding 뿐입니다.

 

3.3 Task-specific input transformations

텍스트 분류와 같은 태스크는 위에서 본 것과 같이 본 모델에 바로 파인튜닝할 수 있습니다. QA, textual entailment와 같은 다른 태스크들은 문장쌍, 질문과 답과 같이 구조화된 입력이 있습니다. 본 사전학습 모델은 연속된 시퀀스(contiguous sequence)로 학습되었기 때문에 이러한 태스크에 적용하기 위해서는 수정이 필요합니다.

 

따라서 본 모델은 traversal style 접근법을 사용합니다. traversal style 접근법은 구조화된 입력은 모델에 사용될 수 있도록 순서가 있는 시퀀스로 변환합니다. 이러한 입력 변환은 큰 구조 변경 없이 모델이 태스크를 수행할 수 있도록 합니다. 모든 변환은 임의로 초기화된 시작<s> 그리고 끝<e> 토큰을 포함합니다.

 

 

구조화된 입력을 토큰 시퀀스로 변환하고 GPT 언어모델을 지나 linear + softmax 레이어를 지납니다.

Textual entailment

전제 p 와 가정 h를 구별자 토큰 $ 로 연결합니다.

Similarity

비교되는 문장간의 순서가 없기 때문에 이를 반영하기 위해서 입력 시퀀스를 가능한 순서 모두 가지도록 수정합니다. 그리고 두 시퀀스 표현을 독립적으로 진행하고 선형 출력 레이어에 들어가기 전에 element-wise 하게 추가됩니다.

Question Answering and Commonsense Reasoning

문맥문서 z, 질문 q, 가능한 답변들 {a_k}이라고 하면, 문맥문서와 질문, 그리고 각각 가능한 답변들을 구별자 토큰을 사이에 두고 이어 붙입니다 [z;q;$;a_k]. 이런 sequence들은 모델을 통해 독립적으로 처리가 된 후, softmax 레이어를 통해 정규화가 되어 가능한 답변에 대한 출력 분포를 생성합니다.

 

관련글 더보기

댓글 영역