본문 바로가기

AI.ML

[NLP 스터디] 5주차 NLP에서의 사전 훈련

1. 사전 훈련된 워드 임베딩


💡 방대한 데이터로 Word2Vec 등과 같은 임베딩 알고리즘으로 사전에 학습된 임베딩 벡터들을 가져와 사용하는 방법

    >> 태스크에 사용하기 위한 데이터가 적다면, 사전 훈련된 임베딩을 사용하면 성능 향상을 기대해볼 수 있었다.

 

문제점

    >> 하나의 단어가 하나의 벡터값으로 맵핑되므로, 문맥을 고려하지 못 하여 다의어나 동음이의어를 구분하지 못했다.

 

💡 해결방안

    >> 사전 훈련된 언어 모델을 사용 

 

2. 사전 훈련된 언어 모델


 

💡 방대한 텍스트로 모델을 학습해두고, 언어 모델을 다른 태스크에서 높은 성능을 얻기 위해 사용하는 방법

  • 트랜스포머 등장 이후 LSTM이 아닌 트랜스포머로 사전 훈련된 언어 모델을 학습하려는 시도가 등장

 

3. Masked Language Model


 

💡 Masked Model의 등장

언어의 문맥은 양방향이다.

 

⛔ 문제점

  • 이전 단어들로부터 다음 단어를 예측하는 언어 모델의 특성으로 인해 양방향 언어 모델을 사용할 수 없었다. 
  • 대안으로 ELMo에서는 순방향과 역방향이라는 두 개의 단방향 언어 모델을 따로 준비하여 학습하는 방법을 사용했다.

💡 해결방안

이와 같이 기존 언어 모델로는 양방향 구조를 도입할 수 없으므로, 양방향 구조를 도입하기 위해서

새로운 구조의 언어모델인 Masked Language Model이 등장했다.

 

[방법론]

  • 단어 집합의 15%의 단어를 랜덤으로 마스킹(Masking)
  • 인공 신경망에게 이렇게 마스킹 된 단어들을(Masked words) 예측하도록 한다.
  • ⇒ 문장 중간에 빈칸을 뚫어놓고 이 빈칸에 들어갈 단어를 예측하게 하는 것