JM_Research Blog

[nlp study] Deep contextualized word representations 본문

+ 딥러닝/STUDY

[nlp study] Deep contextualized word representations

-jm- 2024. 6. 25. 14:58

 본 포스팅은 고려대학교 산업경영공학부 DSBA 연구실의 Unstructured Data Analysis (Text Analytics) 강의를 일부 참고하였습니다.  많은 도움이 되었습니다. 감사합니다 😀 (문제 발생 시 해당 포스팅은 삭제하도록 하겠습니다)

 

🌞Summary

💡 주목하고 있는 문제가 무엇인지?

  • 사전 학습된 word representations 은 neural language understanding models들의 key component !!
  • 그러나 high quality representations을 학습하는 것은 challenging 한 과제
    • 단어 사용의 복잡한 특성(syntax and semantics)
    • 언어적 맥락(polysemy)에 따라 단어를 학습할 수 있도록 임베딩
      -> 눈 : eye, snow 같이 맥락에 따라 임베딩되는 벡터가 달라야 함

💡 이 문제를 해결하기 위해 어떤 방법을 사용했는지?

  • ELMo (Embeddings from Language Models) representations 제안
    • large text corpus에 의해 사전 학습된 bidirectional LSTM의 모든 vector들을 사용
    • language model의 objective로 학습 → 다음 단어 예측
  • ELMo를 어떻게 사용?
    • input vector와 downstream task model의 마지막 hidden layer의 output과 concat 해서 사용

💡 왜 이 방법을 사용했는지?

  • 기존 연구들에 의해서 Pre-trained word representations이 downstream task에서 이점을 갖는다는 것을 알고 있었고, Language Models을 통한 학습은 단어의 풍부한 표현을 가능하게 하여, 복잡한 언어적 특성과 맥락을 더 잘 반영할 수 있기 때문

 

 

ABSTRACT & INSTRODUCTION


 

본 논문은 사전 훈련된 단어 표현의 중요성과 품질을 높이기 위한 새로운 접근법을 제시합니다.

각 단어의 복잡한 특성(syntax and semantics)과 언어적 맥락(polysemy)에 따라 단어를 학습할 수 있도록 효가적으로 임베딩하는 것이 목표입니다.

이를 위해 ELMo (Embeddings from Language Models)라는 새로운 유형의 deep contextualized word representation을 도입하였고, 이는 기존의 단어별 임베딩 방식을 넘어서 문장 단위로 임베딩을 수행합니다.

 

ELMo (Embeddings from Language Models)의 주요 특징

 

1. Language Models의 embedding 활용

large text corpus에 의해 사전 학습된 deep bidirectional language model(biLM)의 임베딩을 사용

 

 

2. deep 한 representations

biLM의 모든 내부 레이어를 활용하여 end task에 대한 입력 단에 위에 쌓인 벡터의 선형조합을 학습합니다. 이는 최상위에 LSTM 계층을 사용하는 것보다 더 뛰어난 성능을 제공합니다.

 

3. 풍부한 word representations

higher-level LSTM states에서는 단어 의미의 문맥적 의존적인 측면을 capture 하는 반면, 

lower-level states capture에서는 문법적인 측면을 capture 합니다.

이러한 구조는 part-of-speech tagging(품사 태깅)에 사용될 수 있습니다.

 

4. easily added to existing models

기존의 존재하는 모델들과 쉽게 결합될 수 있고, ELMo 표현을 추가하면 최대 20 %의 상대 오차 감소와 성능 향상을 이룰 수 있습니다.

 

 

ELMo


ELMo 구조와 특징

 

1. Token Representation

각 토큰은 입력된 전체 문장의 맥락에서 해석되며, 이는 문장 내에서 단어의 의미가 어떻게 변화하는지를 반영합니다.

 

2. Token Representation

ELMo의 임베딩 벡터는 bidirectional LSTM 모델로부터 파생됩니다. 이 모델은 large text corpus에서 language model의 objective를 바탕으로 학습됩니다.

 

3. Features of ELMo

 

1) Representation Depth: ELMo는 단순히 특정 층의 벡터를 사용하는 것이 아니라, biLM의 모든 내부 레이어의 히든 벡터들을 결합합니다. 이는 입력 단어 위에 쌓인 벡터들의 선형 결합으로 구현되며, 모든 LSTM 레이어를 결합하는 것이 상위 레이어만 사용하는 것보다 down stream task에서 더 큰 이점을 제공합니다.

 

2) Rich Word Representation

Higher-Level LSTM States: 문맥 의존적 정보를 포착합니다.

Lower-Level LSTM States: 문법적 정보를 포착합니다.

이 두 레벨의 상태를 조합함으로써, 다양한 down stream task에 맞게 가중치를 조정할 수 있습니다.

 

4. Language Modeling

Language modeling은 주어진 입력 시퀀스를 바탕으로 다움에 올 단어를 예측하는 작업입니다. 이 과정에서 모델은 언어의 구조와 문맥을 학습하게 됩니다.

 

5. Bidirectional LSTM: Bidirectional LSTM은 forward & backword 모델을 학습하여, 각 토큰의 전후 맥락을 모두 고려한 임베딩을 생성합니다. ELMo에서 사용되는 벡터들은 이 두 모델의 각 히든 레이어 특징들을 결합한 것입니다.

 

 

 

 

6. Weight Adjustment for Downstream Tasks: ELMo는 각 하위 작업에 따라 다른 가중치(s1, s2, s3)를 적용할 수 있는 학습 파라미터를 제공합니다. 이를 통해 모델은 특정 작업에 최적화된 성능을 발휘할 수 있습니다. 각 특정 작업에 대한 특정 토큰 r^k는 s1~s3^task의 가중합을 통해 계산됩니다. 

 

 

 

 

ELMo 수식

 

 

 

ELMo는 biLM(bidirectional Language Model)의 중간 레이어 표현들을 조합하여 특정 작업에 맞춘 벡터를 생성합니다. 각 토큰 t_k에 대해, 층의 biLM은 2L+ 개의 representation을 계산합니다. 

 

 

모든 layer들에 대한 vector들을 하나의 single vector로 결합 시킴

 

는 해당 작업에 대한 스케일 팩터입니다. γ^task 전체 벡터의 크기를 조정하여, 최종 모델에 통합될 때 표현의 영향력을 제어합니다.

  •s^tasks_j는 특정 작업에 대한 각 레이어의 가중치입니다. 각 작업의 특성에 따라, biLM의 모든 레이어 벡터 h^LM_{k,j} 에 가중치 s^tasks_j 를 적용하여 합산합니다.

  •h^LM_{k,j}는 biLM의 각 레이어에서 나온 히든 벡터입니다.

 

 

 

 

 

EXP


Ablation study

1. 어떤 layer에 가중치를 얼마나 줘야하나?

 

 

 

실험

 

1) Task Specific 가중치 적용: 각 task에 따라 레이어별 가중치를 달리 설정.

2) 균일하게 가중치 적용: 모든 레이어에 동일한 가중치를 부여.

3) Top Layer에만 가중치 적용: 최상위 레이어에만 가중치를 부여.

4) Input Embedding에만 가중치 적용

 

실험 결과

 

1) Task Specific 가중치 적용:  최상의 성능을 기록. 각 작업에 맞게 레이어별로 적절한 가중치를 부여함으로써, 모델의 유연성과 효율성을 극대화.

2) 균일하게 가중치 적용: Task Specific 방식보다 성능이 떨어짐. 모든 레이어의 중요도를 동일하게 간주함으로써, 특정 작업에 필요한 중요한 정보를 놓칠 가능성이 있음.

3) Top Layer에만 가중치 적용: 4번 방식보다 성능이 좋음. 하지만 Task Specific 방식보다는 성능이 낮음.

4) Input Embedding에만 가중치 적용: 가장 좋지 않은 성능을 기록. 초기 입력 임베딩만 사용하여, LSTM 레이어의 중요한 문맥 정보를 활용하지 못함.

 

 

 

2. ELMo를 어디에다 추가하는 것이 효과적일까?

 

 

실험

 

1) Input과 마지막 hidden layer의 output에 합쳐진 경우: ELMo representation을 입력 벡터와 마지막 hidden layer의 출력과 결합.

2) Input vector와 합쳐진 경우: ELMo 표현을 입력 벡터와 결합. 모델이 처음부터 ELMo 표현을 사용하여 학습.

3) 마지막 hidden layer의 output과 합쳐진 경우모델의 최종 출력에 ELMo 표현을 추가

4) ELMo를 추가하지 않은 경우: ELMo 표현을 전혀 사용하지 않음. 

 

 

실험 결과

 

Input과 마지막 hidden layer의 output에 합쳐진 경우가 가장 높은 성능. 모델의 모든 단계에서 ELMo 표현을 활용함으로써, 문맥 정보를 최대한 반영할 수 있기 때문

ELMo를 추가하지 않은 경우에는 성능이 가장 낮아, ELMo 표현의 중요성을 강조

 

 

 

 

 

참고자료


더 자세한 내용을 보고 싶으시다면 해당 자료를 살펴보시기 바랍니다.

 

1.강의영상 : 📺 click!!