ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LLM 기초 다지기] Word Embeddings
    Deep-Learning/[NLP] 이론 2023. 10. 30. 22:44

    진작 알았다면 좋았을 NLP 및 LLM에 대한 기초 지식 1. Word Embeddings

    Contents
    🔹 Word Embeddings: https://kuklife.tistory.com/144
    🔹 Attention Mechanism: https://kuklife.tistory.com/145
    🔹 Self-Attention: https://kuklife.tistory.com/148
    🔹 Overview of LLMs: 
    🔹 LLM benchmark and Metrics:
    🔹 GPT: 
    🔹 LLaMA2: 
    🔹 RAG: 
    🔹 Chain of Thought (CoT, Zero-shot CoT, AutoCoT, ReACT): 
    🔹 Fine-tuning for LLM (LoRA, P-tuning):  https://kuklife.tistory.com/147

    Overview

    - LLM 임베딩은 고차원 공간에 존재하는 연속적인 실수 값 벡터이다. 임베딩은 단어 간의 연결로 구성된 다차원 "semantic space"에서 대략적인 위치로 정보를 저장한다. 따라서, (학습한 데이터에 따라 다르겠지만) 동일한 의미를 가진 다른 단어 파악에 용이하게 활용될 수 있다. 

    - 하지만, 답을 완전히 신뢰할 수는 없다. 환각과 창의성은 "동전의 양면"이다.

    - NLP 에서 단어의 의미를 표현하는 것은 정말 중요하다.

    - 이에 본 페이지에서는 단어 벡터 학습에 널리 사용되는 알고리즘인 "Word2Vec"에 중점을 두고,  word semantics를 만들어내는 기술과 기본 메커니즘에 대해 설명한다.

    - 결론: word embeddings는 단어의 의미를 완벽하게 저장할 수 없지만, 실수 벡터로 어느 정도 잘 표현 가능하다. 그렇다는건 용이하게 사용될 수 있는 곳들이 많다는 것.

     

    다양한 임베딩 방법

    1) Bag-of-Words based Embeddings (단어 순서 무시)

     - One-hot Encoding: 각 단어를 동일한 크기의 이진 벡터로 표현

     - Bag-of-words: 단어가 문서에 나타는 빈도수를 나타내는 백터로 표시

     - TF/IDF: 코퍼스의 다른 모든 문서와 비교하여 문서에서 중복되는 단어를 카운팅

     - Word2Vec: 단어를 고차원 벡터로 표현하는 예측 모델, skip-gram과 CBOW의 모델로 구성

     - GloVe: 각 단어 쌍이 코퍼스에 함께 나타나는 빈도를 계산한 다음, 개수 행렬에 대해 행렬 분해하며 학습하는 모델

     - FastText: 문자의 n-gram에 대한 벡터를 학습하고, 이러한 n-gram의 합으로 단어를 나타내는 모델 (word2vec의 확장)

    2) Contextual Embeddings (단어 순서 고려)

     - ELMo: Bi-LSTM을 기반으로단어 임베딩 생성

     - BERT: 'Transformer'라는 구조를 사용하여 단어가 문장에서 어떻게 사용되는지에 따라 단어의 의미를 동적으로 이해

    3) Sentence/Document Embeddings

     - Sentence-BERT: BERT 모델에 siamese 및 triplet network 구조를 추가하여 문장 간의 의미론적 유사성을 직접 비교

    4) Positional Embeddings

     - Absolute Positional Embeddings: Transformer 모델에 사용되는 임베딩 기법으로싸, 문장 내 각 단어의 절대 위치를 인코딩하여 순서 정보를 보존하는 것이 특징

     - Relative Positinal Embeddings: Absolute Position 대신 당어 쌍 사이의 상대적 위치, 즉 두 단어 사이의 거리를 인코딩, T5 모델링에 사용됨

     - Rotary Positional Embeddings: Relative Position을 인코딩 하기 위해 rotary 작업을 사용하는 인코딩 유형, Routing Transformer 및 Roformer 모델링에 사용됨 

    5) Relative Embeddings

     - 시퀀스의 단어 쌍 사이의 상대 위치 또는 거리를 인코딩, T5와 Transformer-XL 모델링에 사용됨

     

    Word Embeddings

    - Word Embeddings or Word Vector (이하 단어 임베딩) 는 의미론적 및 구문론적 속성을 유지하면서 단어의 조밀하고 연속적인 저차원 표현을 제공한다. 본질적으로 이는 벡터 공간에서의 공간적 근접성이 단어 간의 관계를 포착하는 실수 값 벡터이다.

    - 단어 임베딩 의 개념은 분포 가설이다. 즉, 비슷한 맥락에서 나타나는 단어는 비슷한 의미를 갖는 경향이 있다. 예를 들면, 고차원 벡터 공간에서 "사과"는 "개"보다 "오렌지"에 더 가깝다. (둘 다 과일이기 때문에)

    - 단어 임베딩 은 유사한 문맥에 나타나는 단어 벡터와 유사하도록 선택된 각 단어에 대해 밀집된 벡터를 구축한다.

     

    - 위 사진을 보고 단어 임베딩이라고 불리는 이유를 살펴보자. 예를 들어, [왕 - 남자 + 여자 = 여왕]과 같이 단어를 많은 의미론적 정보를 포착하기 위해 단어를 벡터로 표현하며, 변환하는 알고리즘이 단어 임베딩 알고리즘 (대표적인 예시가 word2vec) 이다.

    - 일반적으로 단어 임베딩은 문맥을 기반으로 단어를 예측하는 것과 같이 레이블이 지정되지 않은 대규모 코퍼스에서 목표를 최적화하여 사전 학습(Pre-training)한다. 여기서 학습된 단어 벡터는 일반적인 구문 및 의미를 캡처할 수 있다.

    -  따라서, 이러한 임베딩은 컨텍스트의 유사성을 잡아내는데 효율적으로 사용되며, 차원이 작기때문에 NLP 작업을 계산하는데 빠르고 효율적으로 사용된다. (보통 Cosine Similarity 와 같은 유사도 측정 방식을 사용하여 검색 등과 같은 task에 활용한다.)

     

    Word2Vec

    - Word2Vec은 주어진 단어의 맥락을 예측하기 위해 대규모 텍스트 모음집(이하 코퍼스)에서 얕은 신경망을 사용한다. 훈련된 모델의 가중치는 단어를 나타내는 벡터로 사용된다.

    - Word2Vec은 문장 내 각 단어가 벡터로 표현되며, 목표는 이러한 벡터를 최적화하여 주변 단어를 정확하게 예측하는 것이다.

    - 예측 단어와 실제 문맥 단어 간의 불일치를 나타내는 손실함수를 최소화하기 위해 stochastic gradient descent 사용

    - Word2Vec은 2개의 모델로 구성

    1) CBOW(Continous Bag-of-words): 이 모델은 context words를 기반으로 center words를 예측.

    2) Skip-gram: Center words가 주어지면, context words를 예측

    1) CBOW
    Skip-gram

     

    Word Embeddings의 한계점, 그리고 LLM의 등장

     Word2Vec는 여러 한계가 있다.

    1) 구문이나 다의어의 의미를 포착하지 못함

    2) 큰 어휘에 대해서 상당한 계산 자원과 시간이 필요

    3) 알려지지 않은 단어나 코퍼스에 없는 단어(out-of-vocabulary, OOV) 문제 발생

     

     이러한 문제를 해결하기 위해 FastText나 ELMo, BERT, GPT-3와 같은 새로운 모델들이 도입되었습니다. 이 모델들은 보다 섬세한 의미를 포착할 수 있으며, 부분 단어 단위로 학습함으로써 OOV 단어를 처리할 수 있습니다. 이는 NLP에서 더 견고하고 문맥을 인식하는 단어 표현으로 나아가는 흥미로운 발전을 의미합니다.

    댓글

by KUKLIFE