글 수 97


transformer-ber-ulmfit-elmo.png

 

https://jalammar.github.io/illustrated-bert/?fbclid=IwAR1tT0Z10N7fdAj0-PUYk-t3lylnUzjqYd_aRwPzYjCksM3Da3grXJ-sTyI

 

 

 

최근 인기를 끌고 있는 구글의 BERT는 사전훈련(pre-trained) 기반의 언어모델입니다. 사전훈련은 CNN 같은 이미지 분류에서는 오래전부터 많이 활용되어 왔습니다. 예를 들어, ImageNet으로 다양한 사진들을 분류하는 모델을 파인튜닝합니다. 그래서 좀 더 세부적인 이미지들을 구분하는 자신만의 모델을 만들 수 있습니다. 이렇게 하면 적은 데이터만 가지고도 성능이 높은 모델을 빠르게 학습시킬 수 있습니다.

 

2018년에는 자연어처리에서도 이런 사전훈련을 도입한 논문들이 많이 발표되었습니다. 이 글에서는 ELMo, OpenAI Transformer 등을 거쳐 BERT로 이어진 과정을 자세히 설명하고 있습니다.

 

 

 

물론 기존에도 Word2Vec이나 GloVe 같이 비지도학습 방식의 사전훈련 모델이 있었습니다. 하지만 단순히 단어의 임베딩을 생성하는데 그쳤습니다. 그리고 모든 단어가 동일한 벡터값을 가지기 때문에 문맥에 따라 다른 의미를 가진 단어들을 표현할 수 없었습니다. 예들 들어, "눈이 와서 너무 좋다"와 "너의 눈이 너무 예쁘다"에서 '눈'은 다른 뜻을 가지고 있습니다. 하지만 Word2Vec으로 변환하면 모두 같은 임베딩을 가집니다.

 

이런 문제점을 해결하여 단어마다 각각 다른 임베딩을 부여하는 방법이 ELMo입니다. 이를 위해 사전훈련을 사용합니다. Bidirectional LSTM을 사용하여 문장에서 단어들이 주어지면 다음 단어를 예측하도록 학습합니다. Ngam 언어모델과 유사합니다. 이렇게 학습된 모델에서 해당 단어위치의 히든레이어 벡터들을 조합하여 단어의 임베딩을 구합니다.

 

OpenAI Transformer는 단어 차원이 아니라 문장 단위로 활용하는 모델입니다. ELMo와 동일한 방법으로 다음 단어를 예측하도록 사전훈련합니다. Transformer에서 디코더 부분만 사용하는데 문장의 한쪽 방향으로만 학습이 가능하다는 한계가 있습니다.

 

 

 

BERT의 가장 큰 특징은 Bidirectional로 문장의 양쪽으로 학습하여 정확도가 더 높다는 것입니다. OpenAI가 디코더를 쓰는 것과 달리 Transformer의 인코더만 사용합니다. 하지만 다음 단어를 예측하는 방법은 Bidirectional에서는 적용하기 불가능합니다. 그래서 문장에서 일정 확률로 임의의 단어를 마스킹하여 그 단어를 예측하는 새로운 학습방법을 고안하였습니다. 그와 함께 두 문장이 서로 연결되는 의미인지 분류하는 방식도 함께 사용합니다.

 

올해에는 이런 사전훈련을 적용한 자연어처리 모델이 더욱 발전하지 않을까 예상됩니다.

엮인글 :
List of Articles
제목 글쓴이 날짜 조회 수
딥러닝 자연어처리 - RNN에서 BERT까지 [2] 깊은바다 2019-01-07 1130
BERT를 이용한 챗봇 구현 file 깊은바다 2019-01-07 2342
사전훈련 자연어처리 모델의 발전과정 - The Illustrated BERT, ELMo, and co. 깊은바다 2019-01-01 824
2018 Amazon Prize에서 우승한 Gunrock 소셜봇 file 깊은바다 2018-12-26 332
BERT 톺아보기 깊은바다 2018-12-17 583
한국어 형태소 분석기 성능 비교 - khaiii 깊은바다 2018-12-10 987
카카오 형태소 분석기(khaiii) 설치와 은전한닢(mecab) 형태소 분석기 비교 깊은바다 2018-12-02 2142
카카오의 딥러닝 기반 형태소 분석기 깊은바다 2018-11-30 361
위키정보를 찾아 잡담을 하는 딥러닝 모델 - Wizard Of Wikipedia file 깊은바다 2018-11-29 407
구글 듀플렉스(Duplex) 상용화 시작 [2] 깊은바다 2018-11-26 409
딥러닝 자연어처리 튜토리얼 - DLK2NLP [1] 깊은바다 2018-11-24 845
커뮤니케이션과 AI - Multi-channel CNN을 이용한 한국어 감성분석 깊은바다 2018-11-22 727
개체명인식 with Naver 깊은바다 2018-11-20 1296
사전학습을 통한 구글의 자연어처리 언어 모델 - BERT file 깊은바다 2018-11-03 2711
RNN seq2seq 간단한 대화모델 깊은바다 2018-10-23 837