Transfer Learning Researches after BERT

(1) BERT (Bidirectional Encoder Representation from Transformer)

BERT 는 NLP 분야에 조금이라도 관심이 있으면, 누구나 알만한 유명한 알고리즘으로 기존까지 NLP 문제에 대한 접근 방법이 특정 문제 해결을 위한 Embedding 부터 Feature Extraction 까지 Zero Base 로 훈련하는 형태로, 해당 문제에 해당하는 Labeled 된 다량의 데이터가 필요하다는 문제가 있었다면, BERT 는 대량의 Unlabeled 데이터를 기반으로 매우 복잡한(MultiHead Attention 으로 대표되는 Transformer 아키택쳐) 신경망을 Masked LM과 Next Sentence Prediction 이라는 방법으로 Pretraining 을 실시하여, 특정 목적이 아닌, 언어 자체를 잘 이해하는 (좋은 Feature 를 뽑는) 신경망을 훈련하고, 특정 목적에 맞는 Task 는 하나 정도의 Fully Connected Layer 를 소량의 Labeled 된 데이터만을 가지고 Transfer Learning 을 통해 훈련하여, 기존의 어떤 알고리즘 보다도 여러가지 NLP 문제(Classification ,NER, Machine Translation 등) 에서 좋은 성능을 보여주었다. BERT에 있어 중요한 키워드는 아래와 같을 것 같다.

  • Transformer Architecture (from Attention is All you needs paper )
  • Masked LM (빈칸 찾기 형태로, 이 논문에서 고유하게 제시하는 유일한? 아이디어로 보임)

조금더 자세한 설명은 여기(링크)

(2) Cloze-driven Pretraining of Self-attention Networks

Transformer 아키택쳐를 사용하여 Pretrained 모델을 만들고 Fine Tunning 을 통해 Sub Task 들을 해결한다는 측면에 있어서는 유사한 연구이지만, 몇 가지 차이점들이 존재하는 연구이다.
첫 번째, BERT 는 Masked LM 과 Next Sentence Prediction 이라는 두 가지 Loss 를 활용하여 모델을 Pretrain 한다면, 해당 연구는 하나의 주변의 토큰들을 기반으로 중간의 어떤 토큰을 예측하는 형태 하나의 Loss Function 을 정의하고 있다. 그러니까 Masked LM 처럼 일부만 Target 으로 사용하는게 아니라 모든 토큰을 Target 으로 사용하고 있다. 그리고 Masked LM 에서는 일부러 Noise 를 넣어 Overfitting 을 방지하고자 하는 행위를 하는데, 여기서는 그런 행위를 하지 않는다.
Fine Tunning 단계도 BERT 와 크게 다를 바는 없는데, 정방향과 역방향(여기서는 Two Tower 라고 명명함)의 Transformer 아키택쳐 Block 에서 나온 결과를 Combine(Concat 하거나 Avg) 하여 1024 사이즈의 Feature 를 추출하여 Classification 문제를 일반적인 Cross Entropy Loss 를 활용하여 훈련하는 형태로 진행된다.

(3) Unified Language Model Pre-training for Natural Language Understanding and Generation

이 연구도 마찬가지로 Transformer 아키택쳐를 Pretrain하여 사용한다는 측면에서는 BERT 와 유사한 연구이다. 본 논문의 주요 우리가 해결하고자 하는 언어적인 문제 “MRC”, “분류”, “기계번역과 같은 Seq2Seq 생성” 문제 등에 따라서 언어의 방향성 (정방향, 역방향, 양방향, seq2seq ) 등 필요한 언어적 해석 방향이 다르다는 점에 착안하여, 여러가지 종류의 언어적인 방향성을 하나의 Transformer 아키택쳐에 반영하여 훈련할 수 있도록 하였다는 점이다.

그 아이디어는 위의 공식 하나로 설명이 끝날 수 있는데, 위의 공식은 우리가 잘 알고 있는 BERT 의 Multi Head Attention 에 대한 공식이다. 이 논문에서는 M 이라는 Matrix 를 하나 추가하는데, 해당 Matrix 에서 어떻게 Masking 을 주는냐에 따라 훈련시 이해하는 언어의 방향성이 달라지게 된다.

(4) MASS: Masked Sequence to Sequence Pre-training for Language Generation

이 연구는 기본적은 Encoder – Decoder 구조에서 Encoder 부에 정보 일부를 Mask 토큰으로 변환하고 해당 토큰을
Decoder 부에서 예측하도록 Loss Function 을 구성하는 아이디어가 핵심으로 Seq-Seq 구조 기반의 Transfer Learning 연구이다. ※PS> Encoder/Decoder 부의 아키택쳐는 무엇을 사용해도 상관이 없지만, 요즘 가장 성능이 좋은 Transformer 아키택쳐를 연구시에 차용하였다.

Seq2Seq 구조를 사용하고 있기 때문에 기존의 BERT , GPT 등과는 구조적인 상이성이 있으나, Mask 토큰의 수를 극단적으로 1, 혹은 전체로 정의하면, 의미적으로 유사한 형태라고 비교를 해볼 수가 있다. 예를 들어서 토큰의 수가 하나라면, BERT의 Masked LM 과 같은 의미적인 유사성이 있다고 볼 수 있으며, Mask 토큰의 수가 전체 문장의 수와 같다면, Standard LM 과 유사하다고 볼 수 있을 것이다.

이 논문에서는 양 극단이 아닌 임의의 u~v 사이의 연속적인 Mask 토큰을 지정하여, BERT 와 GPT 그 사이의 어떤 형태로써 존재한다고 이야기 하고 있다. 기존의 연구와의 차별점을 크게 3가지 정도로 이야기하고 있는데

  • Encoder 와 Decoder 가 각각 서로 다른 정보를 가지고 있기 때문에, Encoder 는 없는 정보를 더 잘 추론 하려고 할 것이고, Decoder 는 없는 정보를 Encoder 에서 더 잘 추려낼 려고 할 것이다. Encoder 와 Decoder 가 상호 작용을 하여 시너지를 낼 것으로 기대한다.
  • 단일 토큰을 예측하는 것이 아닌, 연속적인 토큰을 예측해야 하기 때문에, 언어적인 이해력이 더 상승할 것

(5) XLNet: Generalized Autoregressive Pretraining for Language Understanding

이 논문도 마찬가지로 기존 연구들의 장단점을 분석하는 것에서 부터 시작합니다. 두 가지 표현을 정의하는데, AE(AutoEncdoing) 과 AR(AutoRegressive) 입니다.

AE 는 BERT의 MaskLM 방식이 잡음(MASK)를 넣고 이를 복원하는 과정이 Denosing AutoEncoder 와 유사하다고 하여 지칭한 것으로 보이며, (사실 BERT 는 전체 복원이 아닌, 특정 MASK 만 복원으로 차이는 있지만)

AR의 경우 이전 데이터를 보고 다음 데이터를 예측하는 방식으로 GPT 가 이에 해당한다고 볼 수 있습니다. 이 논문에서는 AE/AR 의 장단점을 아래와 같이 이야기하고 그 해결 방안을 제시합니다.

  • AE 방식은 Input 에 사용한 MASK 가 실제 Task 해결을 위한 Fine튜닝에서는 사용되지 않아 불일치 발생
  • AE 는 단일 토큰을 예측하기 때문에 토큰간의 관계를 학습하기가 쉽지 않음
  • AR 방식은 단방향성으로 BERT 에 비해 문제 해결에 참조할 수 있는 Context 의 한계가 있음

해당 연구에서는 AE와 AR 의 장점만을 결합한 알고리즘을 제시하고 있습니다. 핵심 아이디어는 아래와 같습니다.

  • Permutation Language Model Objective : AR 방식의 목적함수를 기반으로 하되, 단방향성의 문제를 해결하기 위하여, 순열을 Factorization Order 로 학습한다.
  • Two Stream Self-Attention : 모든 경우의 수를 AR 방식으로 목적함수 설계시, 동일한 순서에서 서로 다른 결과를 예측해야 하는 문제가 발생할 수 있습니다. 이 문제를 해결하기 위해 Positional Encoding 을 사용하고,
    Position 과 Context 를 별도로 학습할 수 있도록 별도 두개의 Hidden Representation 을 사용합니다.
  • Partial Prediction : 연산속도를 위해 AR 적용시 전체를 예측하는 것이 아닌 뒤에 2개 순서만 예측에 사용
  • Relative Positional Encoding : Segment 단위로 데이터를 나누고 Segment 단위로 순번을 부여하여, 상대적인 순서를 사용할 수 있도록 합니다.
  • Segment Recurrence Mechanism : Seg 단위로 Recurrent 하게 훈련이 이루어지며, 앞의 연산의 결과인 Hidden 을 재 사용 할 수 있도록 합니다.

Leave a Reply

Your email address will not be published. Required fields are marked *