Lecture 22 - BERT and Other Pre-trained Language Models

tobigs-text1415·2021년 6월 23일
1
post-thumbnail

작성자 : 서울시립대학교 경제학부 박준영

목차
1. Contextual representation
2. History of Contextual Representation
   2-1) semi-supervised sequence learning, Google, 2015
   2-2) Elmo(Deep contextual word embedding)
   2-3) GPT-1
       * Transformer VS LSTM
        
3. BERT
   3-1) problem with previous methods
      문제1) 잘 수행하는 확률 분포를 만들기 위해 방향성이 필요했다.
      문제2) 단어의 'See themselves'문제
   3-2) 문제를 해결한 BERT
      해결방법 : Masked LM(language model)
      * Bert vs GPT vs ELMO
   3-3) Bert pretraining
      3-3-1) Bert pretraining 방법
         방법1) masked language model
         방법2) Next sentence prediction
      3-3-2) Bert pretraining의 input
         -Token Embedding
            *WordPiece
         -segment Embedding
         -Position Embedding
      3-3-3) Bert pretraining procedure
   3-4) Bert fine tuning
      a) Sentence Pair Classification Tasks
      b) single sentence Classification Tasks
      c) Question Answering Tasks
      d) single Sentence Tagging Tasks
   3-5) Experiment            
4. Post-Bert pre-training Advancement
   4-1) ROBERTA
   4-2) XLNET
   4-3) ALBERT
   4-4) T5
   4-5) ElecTra
5. Distillation
   5-1) Distillation
   5-2) Distillation의 기술
   5-3) Distillation이 성능이 좋은 이유
6.conclusion
reference



1. Contextual representation

이전 강의에서 word2vec, FastText, Glove와 같은 워드 임베딩 방법들을 배웠다.
위의 임베딩 방법들의 문제는 하나의 단어가 하나의 벡터로 mapping되어 context을 고려하지 못한다는 점이다.

위의 problem을 보면

  • open a bank account
  • on the river bank
    위의 bank가 [0.3, 0.2, -0.8,....]으로 문맥을 고려하지 못하고 동음의의어를 구분하지 못하는 문제점이 있었다. EX) 사과하다, 사과를 먹다의 "사과"라는 단어 벡터로 mapping되어 의미 구별이 힘들다.

그래서 이를 해결하기 위해 텍스트 corpus 문맥상의 표현을 학습하는 Train contextual representation on corpus가 제안되었다.

2. History of Contextual Representation

문맥상의 표현을 학습하기 위한 Train contextual representation on corpus는 어떻게 발전했을까????

2-1) semi-supervised sequence learning, Google, 2015

https://arxiv.org/pdf/1511.01432.pdf


2015년도 구글에서 발표한 semi-supervised sequence learning 논문이다.

이 논문은 전체 모델을 pretrain한 뒤에 classification을 위해 fine tuning을 진행하는 방식으로 영화 리뷰데이터 감성분석을 진행하였다.
이 논문으로 충분한 데이터가 없기 때문에 좋은 결과를 얻지 못했다는 것을 알게되었다.

2-2) ELMO(Deep contextualized word representations)

https://arxiv.org/pdf/1802.05365.pdf
그 후 ELMO가 등장한다.

ELMO는 큰 언어 corpus를 순방향 역방향 LSTM으로 학습하는 양방향 모델이다. 역방향 언어 모델도 사용함으로써 기존의 GLOVE 등에 있던 워드 임베딩 문제점을 해결하였다.

2-3) GPT-1(improving language understanding by generative pre-training, openAI, 2018)

https://www.cs.ubc.ca/~amuham01/LING530/papers/radford2018improving.pdf

Transformer(attention is all you need): https://arxiv.org/pdf/1706.03762.pdf

Transformer가 등장하게 되고 언어 모델 학습시 Transformer를 이용한 연구가 이루어지게 되었다.

* Transformer VS LSTM 기법 비교

  • self-attention == no locality bias

LSTM은 단어를 순차적으로 입력 받아서 처리하기때문에 각 단어의 위치 정보를 가질 수 있었고 멀리 있는 단어보다 가까이 있는 단어가 관련성이 높다고 판단하는 locality bias 문제가 발생한다.

그러나 transformer은 단어 입력을 순차적으로 받는 것이 아니라 각 단어의 embedding벡터에 positional encoding을 통해 위치정보를 더하여 locality bias문제를 해결한다.

self-attention에선 맥락을 concatenate함으로써 long-distance context가 "equal opportunity"를 가지도록한다.

  • single multiplication per layer == efficiency on TPU
    LSTM은 문장(몇개의 과거 데이터를 볼지)를 이용하고 Transformer는 단어 임베딩을 사용한다. 만약 500개의 단어와 32개의 sentence가 있다면 Transformer는 512*32개의 batch 사이즈를 사용하면 된다. 따라서 TPU와 GPU를 효율적으로 사용할 수 있다.

GPT-1은 표준 Transformer의 Encoder는 사용하지 않고 Decoder만 사용하므로 Decoder에서 Encoder의 출력과 Attention을 하는 부분인 Encoder-Decoder Multi-Head attention 부분을 제거하였다.
그리고 12개의 transformer 층을 쌓은 후 방대한 텍스트 데이터를 이용하여 GPT-1 모델을 만들었다.

GPT-1
1) 큰 말뭉치에서 대용량의 언어모델 학습
2) 분류 데이터를 써서 과제에 맞춰 모델을 fine-tuning하는 방식으로 진행된다.
GPT-1은 12개 중 9개의 nlp task에서 sota(state of art)를 달성



3. BERT

3-1) problem with previous methods


problem: LM(언어 모델)은 left, right 맥락으로만 사용되었다. 그러나 언어는 양방향 이해가 필요하다.


LM(언어 모델)이 단방향이었던 이유


  • 확률 분포를 잘 형성하기 위해서 방향성이 필요했다.
  • 양방향 encoder에서는 단어가 자기를 볼 수 있다.


    기존의 단반향 LM은 가 들어가면 다음 단어를 예측하는 방식이었다. 양방향 LM이 am을 예측할때 순방향 모델의 정보(, I)와 역방향 모델의 정보(a, am, i)를 가지고 있다. 즉, am을 예측하기 위해 am의 정보를 가지고 있는 상황이 발생한다

??? : 아까 ELMO도 양방향이라면서요? 그건 단어가 자기자신을 보는게 아닌가요?

-> 위 질문에 대한 답은 뒤에서 서술하겠습니다.

3-2) problem with previous methods

- Masked LM


양방향 학습의 문제를 해결하기 위해서 Masked LM이 탄생했다.
Masked LM이란 입력 텍스트 단어 집합의 15%의 단어를 랜덤으로 masking하고 masking된 단어를 예측하는 방법이다.
이때 masking 개수가 적으면 학습하는데 많은 비용이 들고, 너무 많다면 맥락의 수가 적어져 예측이 어렵다.

Masked LM 을 통한 양방향 학습을 사용하는 모델이 Bert이다.

Bert는 transformer에서 디코더를 제외하고 인코더만 사용한다.
Bert의 작동구조는 Bert를 이용하여 pretrained-model에 분류를 위해 fined tuning을 하는 구조이다.

- Bert VS GPT vs ELMO

  • ELMO는 정방향/역방향 LSTM을 각각 훈련시키고 합쳐 양방향 언어 모델을 만들었다.
  • GPT-1은 transformer의 decoder를 이전 단어로 다음 단어를 예측하는 단방향 언어모델을 만들었다.
  • Bert는 GPT와 달리 Masked LM을 사용하여 양방향 학습을 사용하는 모델이다.

3-3) Bert pretraining

3-3-1) Bert pretraining 방법

Bert pretraining 방법은 Masked LM(MLM)/Next sentence prediction(NSP) 2가지로 나뉜다.


방법1) Masked LM(MLM)

Bert는 사전 훈련을 위해 신경망 input으로 들어가는 입력 text의 15%를 랜덤으로 masking하고 masking을 예측한다.

위의 예시처럼 My dog is cute. He likes playing이라는 문장에 대해 masked language 모델을 학습하려고 할 때 [my, dog, is, cute, he, likes, play, ##ing]로 토큰화가 되어 bert에 입력으로 사용된다.
여기서 dog가 [mask]되었는데 Bert 모델이 [mask]된 단어를 맞추려고 하고 이때 dog 위치의 출력층 벡터만 사용한다.

위 사진 처럼 [Mask] 토큰만 사용하면 mask token이 파인튜닝 단계에서 나타나지 않는다. 이를 해결하기 위해
15%의 80%는 [mask]로 EX) went to the store -> went to the [mask]
15%의 10%는 랜덤으로 단어 변경 EX) went to the store -> went to the running
15%의 10%는 동일하게 EX) went to the store -> went to the store

여기서는 He -> king / play를 play 그대로 사용한다. [mask], 'king', 'play'에서도 원래 단어를 예측한다.

따라서, Bert에서는 input과 masked된 token을 Transformer encoder에 넣고 token을 예측하므로 양방향 학습을 한다.

방법2) Next sentence prediction(NSP)
Next sentence prediction(NSP)는 QA나 Natureal language inference와 같이 두 문장 사이의 관계를 이해하도록 두 문장을 이어서 맞추는 것이다.

pre-training 시에는 50:50 비율로 실제 이어지는 문장과 랜덤한 문장을 넣어서 Bert가 맞추도록 한다.

Bert의 입력에 [Sep]라는 토큰을 넣어 문장을 구분한다. 문장 분류 문제를 위해 [CLS] 토큰을 추가하여 [CLS]의 출력층에서 NSP 분류 문제를 푼다.
이때 NSP와 MLM은 loss를 합하여 학습이 이루어진다.

3-3-2) Bert pretraining의 input


Bert의 input은 3가지 embedding 값의 합으로 이루어짐

  • Token Embedding : WordPiece Embedding 사용. Embedding 벡터의 종류는 단어 집합의 크기

  • WordPiece : 단어보다 더 작은 단위로 쪼개는 tokenizer
    자주 등장하는 단어는 단어집합에 추가하고 자주 등장하지 않는 단어는 더 작은 단위의 서브워드로 분리되어 서브 워드들이 단어집합에 추가된다.
    해당 토큰의 첫번째 서브워드를 제외한 나머지 서브워드들은 앞에 ##을 붙인 것을 토큰으로 한다.
    위의 예시인 Playing의 경우 Play, ####ing로 분리 되었다. 이때 ###은 단어의 중간부터 등장하는 서브워드라는 것을 알리기위해 표시해둔 기호. 단어 집합을 기반으로 토큰화를 수행한다.

  • segment Embedding : QA 등과 같은 두개의 문장 입력이 필요한 task를 풀 때 segment embedding 사용한다. 만약 문장이 하나면?? Sentece A embedding만 사용

  • position Embedding : 위치 정보를 학습하기 위한 Embedding이다. Embedding 벡터의종류는 문장의 최대 길이인 512개, Transformer에서 positional encoding 방법과 같다.

  • 모든 sentence의 첫번째 token은 언제나 [CLS](special classification token)이다. 이 token이 transformer층을 통과하고 나면 token sequence의 결합된 의미를 가지게 된다. 이때 [CLS]에 classifier을 붙이면 classification을 쉽게 할 수 있다. Classification task가 아니면 [CLS]무시.

3-3-3) Bert pretraining procedure

1단계 : 위키피디아, book corpus 데이터 이용

2단계 : NSP를 위해 sentence를 뽑아서 Sentence embedding을 넣는다(이때, 50%는 진짜 sentence, 나머지는 random sentence)

3단계: masking 작업을 하고 masking 예측

-pretraing hyper parameter

이제 pre-train 과정이 끝났으니 task를 위한 fine tuning에 대해 알아보자

3-4) Bert fine tuning


a,b는 sequence-level task / c,d는 token-level task다.

a) Sentence Pair Classification Tasks: 텍스트의 쌍에 대한 분류 문제

task: NLI(자연어 추론) - 두문장이 주어졌을때 하나의 문장이 다른 문장과 어떤 관계가 있는지 추론
입력텍스트가 1개가 아니므로 text 사이에 [sep]토큰을 넣고 두 종류의 segment embedding 사용

b) single sentence Classification Tasks: 하나의 텍스트에 대한 텍스트 분류 유형

영화 리뷰 감성분류, 뉴스 분류 등 입력한 문서에 대해서 분류를 하는 유형으로 [CLS] 토큰을 사용하여 토큰의 위치 출력층에서 Dense layer또는 FC layer를 추가하여 분류에 대한 예측 실행

  • a,b는 Sequnce-level task이고 이 task에 대한 BERT-fine tuning과정은
  1. [CLS] token의 output값을 사용하고
  2. 이때 [CLS] token의 벡터는 H차원(hidden size)
  3. classify하고 싶은 K에 따라 classification layer를 붙여 K*H의 classification layer를 만듦
  4. softmax를 통과하여 label probabilities 도출하는 과정이다.

c) Question Answering Tasks : 질의응답

task: 텍스트의 쌍을 입력 받는 QA
질문과 본문을 입력 받으면 분문의 일부를 추출해서 질문에 답변하는 것이다. token들에서 Stand/end span을 찾아낸다.

d)single Sentence Tagging Tasks : 하나의 텍스트에 대한 태깅 작업

Named entity Recognition(NER)이나 형태소 분석과 같이 single sentence에서 각 토큰이 어떤 class를 갖는지 모두 classifier적용



3-5) Experiment


모든 NLP task에서 sota 달성


- Effect of pre-training Task

Pre-training task를 하나라도 제거하면 성능이 떨어진다.
NSP가 문장간의 논리적구조 파악에 중요한 역할을 하고 있기때문에 NO NSP의 경우에는 NLI(자연어 추론)에서 성능이 떨어지는 것을 볼 수 있다.
MLM대신 LTR(left to right)을 사용하면 BI-LSTM을 사용하더라도 성능이 많이 떨어진다. MLM이 더 Bidirectional한 것을 볼 수 있다.


- Effect of directionality and training Time

MLM은 수렴까지 시간이 좀 걸리지만 결과는 훨씬 좋다.

- Effect of model size

모델이 커질수록 정확도가 올라감 그러나 그렇게 눈에 띄는 변화는 아니다.



4. Post-Bert pre-training Advancement

4-1) ROBERTA(A Robustly Optimized BERT Pretraining Approach)

https://arxiv.org/pdf/1907.11692.pdf

Bert가 underfit한 상황으로 생각하여 모델을 더 오래 학습하고 더 많은 데이터를 넣어서 성능을 높임

  • 학습데이터 : Bert에 비해 더 많은 데이터로 더 오래 더 큰 배치로 학습진행
    pre-training에 이용하는 데이터(BERT:16GB -> Robert:160GB)
  • 결과 : 데이터의 양과 다양성이 중요하고 오래학습해도 overfitting이 보이지 않았다.

4-2) XLNET(Generalized Autoregressive Pretraining for Language Understanding)

https://arxiv.org/pdf/1906.08237.pdf

임베딩의 모델의 흐름은 2가지
1. AR(autoregressive)모델 : 데이터를 순차적으로 처리하는 기법
EX) ELMO, GPT
EX) 나는 사과를 먹는다 : 나는 → 사과를 → 먹는다
단점: 문맥을 양방향으로 볼 수 없다는 문제

2. AE(AutoEncoding) 모델 : 입력값을 복원하는 기법들
EX) BERT-masking기법(masking 토큰을 예측)
EX) 나는 [mask] 먹는다 : 나는 → [mask] ← 먹는다.

단점: masking한 토큰을 서로 독립으로 가정하여 token들 사이의 의존관계(dependency) 고려할 수 없다.

AR, AE 모델의 한계를 극복하기위해 permuation language model인 XLNET을 제안했다.

input sequence index의 모든 permuation(순열)을 고려한 AR방식.
Zt는 index의 permuation 조합을 사용하여 다양한 sequence 고려
EX) input sequence가 4면 Zt는 4!
각 순열에 AR Language model의 objective fuction 적용하여 특정 token에 양방향 context 고려

EX)
발 없는 말이 천리 간다 -> permuation하여 발, 없는, 천리, 이, 말, 간다 집합이 아왔고 천리를 예측할때의 입력 시퀀스는 발, 없는이 된다.

시퀀스를 순차적으로 학습하는 AR 모델이지만 permuation을 통해 문장의 양방향 문맥을 고려하게 된다.


*[3,2,4,1]에서 3을 학습할때

*[2, 4, 3, 1]에서 3을 학습할때 2, 4로 3을 예측

permutation은 attetion mask로 실현한다.

3번 단어를 맞추기 위해서는 정보를 사용할 수 없고, 2번을 맞출땐 3번 단어 정보를 이용하는 방식으로 사용된다.
하지만 위 방법은 학습시 permuation 하기때문에 예측할 token이 명확하지 않아 Standard Transformer에서 작동하지 않는다.

따라서 Transformer에 XLNET의 object function을 적용하기 위해 Two-stram self-attention 제안.

Two-stram self-attention은 쿼리 스트림과 컨텐트 스트림을 합하여하여 2개의 hidden representation를 가진고 업데이트하는 기법.
* 컨텐트 스트림 : t 시점과 t이전 시점의 token정보(transformer와 같은 연산)
[3, 2, 4, 1]인 경우

x: 토큰 임베딩
h: 컨텐트 스트림 벡터

* 쿼리 스트림 : 토큰과 위치 정보를 활용한 self-attention 기법(t 이전 시점의 token정보 + t시점의 정보)
[3, 2, 4, 1]

4-3) ALBERT(ALBERT: A LITE BERT FOR SELF-SUPERVISED LEARNING OF LANGUAGE REPRESENTATIONS)

https://arxiv.org/pdf/1909.11942.pdf

-워드 임베딩을 embedding size로 설정해서 파라미터수를 줄였다.
-attention과 FFNN 레이어 간 파라미터를 공유하는 Cross-layer parameter sharing기법을 사용하여 파라미터 수를 줄이고, 학습도 안정적으로 가능하였다.

Bert에 비해 param 수도 적고 Training speed가 빠르다

4-4) T5(Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer)

https://arxiv.org/pdf/1910.10683.pdf


모든 NLP task를 통합할 수 있도록 Text-to-Text 프레임 워크 사용
모든 NLP task에서 T5라는 동일한 모델, loss, hyperparameter 사용가능
파라미터 수가 Bert의 2배이므로 Expensive한 모델이다.

4-5) ElecTra(ELECTRA: PRE-TRAINING TEXT ENCODERS AS DISCRIMINATORS RATHER THAN GENERATORS)

https://arxiv.org/pdf/2003.10555.pdf


Generator G : Bert MLM
Discriminatior D: 입력 토큰 sequnce에서 토큰이 original인지 replaced인지 분류

대용량 corpus에서 Generator loss와 discriminator loss 합을 최소화 하도록 학습한다.

5. Distillation

5-1) Distillation

제품에 모델을 적용할 때, Bert와 다른 pretrained language models는 매우 크고 비용이 많이 드는 모델이다. -> Distillation을 통해 model compression

5-2) Distillation의 기술

  • Train Teacher : Traing set으로 sota pre-training + fine-tuning하여 모델 정확성 극대화(large model 학습)
  • Label a large amount of unlabeled input examples with teacher
  • Train student : Teacher output을 흉내내는 작은 모델 훈련
  • MSE, CE로 loss를 최소화


Distillation의 목표는 성능을 유지하면서 model을 압축하고자함.

5-3) Distillation이 성능이 좋은 이유

  1. 거대한 language model을 학습하는 것은 다른 NLPtask에도 유용하다.
  2. Fine-tuning은 대부분 존재하는 latent feature를 조정한다.
  3. 기능중 일부만 지정된 작업에 유용하기 때문에 distillation이 일부 feature만 집중하게 해준다.

Q. Distillation을 이용해서 만들어낸 모델에 추가 학습을 시키고 싶다면 다시 큰 모델에 추가 학습을 시켜서 압축하는 방식인가요? 아니면 작은 모델에 추가로 학습을 진행하나요??

A. 정확도를 극대화 시키는부분은 Teacher 파트이므로 큰 모델에 추가 학습을 진행한다.
<참고>: https://blog.est.ai/2020/03/%EB%94%A5%EB%9F%AC%EB%8B%9D-%EB%AA%A8%EB%8D%B8-%EC%95%95%EC%B6%95-%EB%B0%A9%EB%B2%95%EB%A1%A0%EA%B3%BC-bert-%EC%95%95%EC%B6%95/

6.conclusion

-Pre-trained된 양방향 language models은 성능이 좋다. 하지만 매우 expensive하고 성능을 개선하려면 더 expensive한 모델과 더 많은 data가 요구된다.

-위 모델을 servivng/inference에 사용하기 위해서는 distillation을 통해서 해결해야한다.

reference

https://tmaxai.github.io/post/BERT/#4-experiments
https://wikidocs.net/115055
https://www.youtube.com/watch?v=knTc-NQSjKA&t=1049s
https://arxiv.org/pdf/1810.04805.pdf
https://baekyeongmin.github.io/paper-review/roberta-review/
XLNET:https://ratsgo.github.io/natural%20language%20processing/2019/09/11/xlnet
ElecTra:https://blog.pingpong.us/electra-review/

    

8개의 댓글

comment-user-thumbnail
2021년 6월 26일

투빅스 14기 한유진

  • 이전의 언어모델은 양방향이 아닌 left,right 맥락으로만 사용되었습니다. 입력 텍스트 단어 집합의 15%의 단어를 랜덤으로 masking하고 masking된 단어를 예측하는 방법인 Masked LM을 사용하여 양방향 학습을 가능하게 한 모델이 Bert입니다. Bert는 Transformer에서 디코더를 제외하고 인코더만 사용합니다.
  • Bert의 input은 Token embedding, segment embedding, Position embedding 값의 합으로 이루어졌습니다.
  • Bert보다 더 오래 학습하고 많은 데이터를 넣어서 성능을 높인 모델이 ROBERTA입니다. 데이터의 양과 다양성이 중요하고 오래학습해도 오버피팅이 보이지 않았습니다.
  • Permuation language model인 XLNET은 input sequence index의 모든 permuation을 고려한 Autoregressive모델입니다. sequence를 순차적으로 학습하면서 permuation을 통해 문장의 양방향 문맥을 고려하게 됩니다.
  • Bert보다 파라미터 수도 적고 학습도 안정적인 ALBERT, 모든 NLP task를 토합할 수 있도록 Text to Text를 사용한 T5, 대용량 코퍼스에서 G,D loss합을 최소화하도록 학습하는 ElecTra도 있습니다.
  • 위의 모델들을 제품에 적용할때, 매우 크고 비용이 많이 드는 문제를 해결하기 위해 Distillation으로 model compression을 합니다. 이로써 성능을 유지하면서 model압축이 가능합니다.

Bert뿐 아니라 다른 Pre-trained모델까지 상세하게 설명해주셔서 이해하기 수월했습니다. 좋은 강의 감사합니다!

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

투빅스 15기 김동현

  • GPT-1
    표준 Transformer의 Encoder는 사용하지 않고 Decoder만 사용하므로 Decoder에서 Encoder의 출력과 Attention을 하는 부분인 Encoder-Decoder Multi-Head attention 부분을 제거하였습니다.
    그리고 12개의 transformer 층을 쌓은 후 방대한 텍스트 데이터를 이용하여 GPT-1 모델을 만들었습니다.

  • Masked LM
    Masked LM이란 입력 텍스트 단어 집합의 15%의 단어를 랜덤으로 masking하고 masking된 단어를 예측하는 방법입니다.
    이때 masking 개수가 적으면 학습하는데 많은 비용이 들고, 너무 많다면 맥락의 수가 적어져 예측이 어렵습니다. Masked LM 을 통한 양방향 학습을 사용하는 모델이 Bert입니다.

  • Next sentence prediction(NSP)
    Next sentence prediction(NSP)는 QA나 Natureal language inference와 같이 두 문장 사이의 관계를 이해하도록 두 문장을 이어서 맞추는 것입니다. pre-training 시에는 50:50 비율로 실제 이어지는 문장과 랜덤한 문장을 넣어서 Bert가 맞추도록 합니다.

  • Distillation
    거대한 language model을 학습하는 것은 다른 NLPtask에도 유용하고, Fine-tuning은 대부분 존재하는 latent feature를 조정합니다. 기능중 일부만 지정된 작업에 유용하기 때문에 distillation이 일부 feature만 집중하게 해줍니다.

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

투빅스 15기 조효원

  • Contextual representation은 gpt, rnn과 같은 일방향적인 representation에서 나아가 bert처럼 한 단어를 표현하는데 양방향의 토큰들을 이용하는 것을 의미한다.
  • ELMO는 한 단어를 표현하기 위해 양방향 lstm을 이용한다.
  • BERT는 Transformer의 encoder 부분을 개조한 모델로, self-attention을 통해 단어를 represent하므로, contextual representation이라고 할 수 있다. BERT는 문장에서 랜덤한 단어에 mask를 씌워 이를 복구하며 학습을 진행하는데, 이를 Auto encoding 혹은 denoising 방식이라고 한다. BERT의 또 다른 학습방식은 NSP로, 문장과 문장 사이의 관계를 표현한다.
  • BERT에서 출발한 모델로는, 하이퍼파라미터를 튜닝한 Roberta, layer weigth를 공유해 파라미터 수를 줄여 경량화한 Albert등이 있다.
  • XLNet은 Transformer의 디코더 부분을 개조한 모델로, 자연스레 Auto regressive의 성질을 가진다. 여기에 Auto encoding의 양방향 정보를 활용한 풍부한 단어표현이라는 장점을 유지하기 위해 Permuation을 이용한다.
  • 이 외에도 존재하는 언어모델들이 over-parameterized되었다며 이를 줄이고. 경량화하기 위한 다양한 시도들이 존대한다.
답글 달기
comment-user-thumbnail
2021년 6월 29일

투빅스 15기 조준혁

  • 앞선 강의에서 배웠던 Word2vec, FastText, Glove 등과 같은 워드 임베딩 방법은 하나의 단어가 하나의 벡터로 mapping되어 context를 고려하지 못한다는 단점이 있다. 이를 해결하기 위해 corpus 문맥상의 표현을 학습하는 Train contextual representation on corpus가 제안되었다.
  • semi-supervised sequence learning, ELMO, GPT-1 순으로 문맥상의 표현을 학습하기 위한 방법들이 연구되고 발전되었다.
  • 언어의 양방향 이해를 위해 Masked LM이 탄생했고 이를 통해 양방향 학습을 사용하는 모델이 Bert이다. Bert의 input은 3가지 embedding 값의 합으로 이루어지는데, Token Embedding + Segment Embedding + Position Embedding이다.
  • Bert 의 발전은 ROBERTA, XLNET, ALBERT, T5, ElecTra 등의 모델로 발전이 되었다.
  • Distillation은 모델을 압축하여 모델 적용의 비용을 줄이는 기법이다. Train set으로 large model을 학습하고 이 모델을 흉내내는 작은 모델을 훈련하는 기법을 통해 압축한다.
답글 달기
comment-user-thumbnail
2021년 6월 29일

투빅스 13기 이혜민
어려운 개념인 bert에 대해서 구체적으로 잘 설명해주셔서 이해하기 편했습니다 :)
꼼꼼하게 잘 정리해주셔서 감사합니다! 수고많으셨습니다!

  1. Word2vec, FastText, Glove와 같은 워드 임베딩 방법들의 문제는 하나의 단어가 하나의 벡터로 mapping 되어서 문맥 고려를 하지 못한다는 점 -> 해당 문제를 해결하기 위해서 corpus 문맥상의 표현을 학습하는 Train contextual representation on corpus가 제안되었다.

  2. ELMO이후, GPT-1의 등장으로 표준 Transformer의 Encoder는 사용하지 않고 Decoder만 사용하므로 Decoder에서 Encoder의 출력과 Attention을 하는 부분인 Encoder-Decoder Multi-Head attention 부분을 제거하는 등의 새로운 방식이 나타나게 되었다.

  3. Bert는 Masked LM을 통한 양방향 학습을 사용하는 모델이다. Bert pretraining 방법은 Masked LM(MLM)/Next sentence prediction(NSP) 2가지로 나뉜다.

  4. T5(Exploring the Limits of Transfer Learning with a Unified Text-to-Text Transformer)은 모든 NLP task를 통합할 수 있도록 Text-to-Text 프레임 워크 사용, 모든 NLP task에서 T5라는 동일한 모델, loss, hyperparameter 사용가능, 파라미터 수가 Bert의 2배이므로 Expensive한 모델이다.

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

투빅스 14기 이정은

  • 기존의 Word2Vec, FastText, Glove 등은 맥락(context)를 고려하지 못하고, 동음이의어를 구분하지 못하는 단점을 가집니다. 이를 해결하기 위해 Contextual Representation이 제안되었습니다. 이 중 ELMO는 양방향 LSTM을 사용한 모델입니다.
  • 이전 LM의 맥락을 left, right으로만 사용하여 양방향으로 학습하지 못하는 문제를 해결하기 위해 Mask LM이 고안되었습니다. 이는 입력 텍스트 단어 집합의 15%의 단어를 랜덤으로 masking하여 making된 단어를 예측하는 방법입니다.
  • BERT는 Transformer의 enboder 부분만 가져와 Masked LM을 통한 양방향 학습을 사용하는 모델입니다. BERT의 input은 Token Embdding / Segment Embedding / Position Embedding 3가지 임베딩 값의 합으로 이루어집니다.
  • BERT에서 발전된 이후 모델로는 ROBERTA, XLNET, ALBERT, T5 등이 있습니다.

BERT를 비롯해 이후 모델에 대해서도 설명해주셔서 좋았습니다. 감사합니다 : )

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

투빅스 15기 이수민

  • 이전 강의에서 사용한 워드 임베딩 방법들에서 나타나는 context를 고려하지 못하는 문제점을 해결하기 위해 train contextual representation on corpus가 제안되었습니다.
  • ELMO에서는 역방향 언어 모델 사용을 통해 워드 임베딩 문제점을 해결하였습니다.
  • BERT에서는 Masked LM을 통한 양방향 학습이 사용됩니다. Masked LM이란 신경망의 input으로 들어가는 텍스트의 15%를 랜덤으로 masking하여, 이 masking된 단어를 예측하는 방법입니다.
  • 이후, BERT보다 더 많은 데이터를 활용하거나, 파라미터 수를 줄여 안정적인 학습을 가능하게 하는 등의 방법을 통해 기존의 BERT를 발전시킨 다양한 모델들이 등장했습니다 (ROBERTA, XLNET, ALBERT, T5, ElecTra).
답글 달기
comment-user-thumbnail
2021년 6월 29일

투빅스 15기 이수민

  • 이전 강의에서 사용한 워드 임베딩 방법들에서 나타나는 context를 고려하지 못하는 문제점을 해결하기 위해 train contextual representation on corpus가 제안되었습니다.
  • ELMO에서는 역방향 언어 모델 사용을 통해 워드 임베딩 문제점을 해결하였습니다.
  • BERT에서는 Masked LM을 통한 양방향 학습이 사용됩니다. Masked LM이란 신경망의 input으로 들어가는 텍스트의 15%를 랜덤으로 masking하여, 이 masking된 단어를 예측하는 방법입니다.
  • 이후, BERT보다 더 많은 데이터를 활용하거나, 파라미터 수를 줄여 안정적인 학습을 가능하게 하는 등의 방법을 통해 기존의 BERT를 발전시킨 다양한 모델들이 등장했습니다 (ROBERTA, XLNET, ALBERT, T5, ElecTra).
답글 달기