기술(Tech, IT)/머신 러닝(Machine Learning)

[ML] Word Embeddings - 1

Daniel803 2023. 11. 28. 04:57

Word Embeddings은 비슷한 의미를 가진 단어들이 비슷한 표현을 갖도록 하는 단어 표현의 한 유형이다. 이는 ML 알고리즘이 처리할 수 있도록 텍스트 데이터를 숫자 형식으로 변환하는 NLP의 기본 테크닉이다.

 

  1. 설명
    1. Numerical Represenatation (숫자 표현)
      : Word Embeddings은 단어를 실수 벡터로 변환한다. 어휘의 각 단어는 고차원 공간(일반적으로 수백 차원)의 벡터에 매핑된다.
    2. Capturing Semantic Meaning (의미론적 포착)
      : 이러한 벡터는 단어의 의미를 포착하도록 설계돼있다. 비슷한 문맥에서 사용되는 단어는 비슷한 Embedding을 갖는 경향이 있다. 예를 들어, "king"과 "queen"은 Embedding 공간에서 가깝다.
    3. Contextural Relationships
      : Embedding은 유사성, 유추, 문맥 등 다양한 언어적 패턴과 관계를 포착할 수 있다.
    4. Training
      : Word Embeddings은 일반적으로 Word2Vec, GloVe (단어 표현을 위한 글로벌 벡터) 또는 FastText와 같은 알고리즘을 사용해 대규모 text corpus를 학습해 얻어진다.
  2. 예제
    1. Word2Vec (Skip-gram 및 CBOW)
      : Word Embeddings을 생성하는 데 가장 많이 사용되는 기법 중 하나. 단어의 문맥을 기반으로 단어를 예측하는 CBOW (Continuous Bag of Words) 또는 반대로 단어에서 문맥을 예측하는 Skip-gram을 사용해 Word2Vec을 학습할 수 있다.
      예) 학습된 Word2Vec 모델에서 "king"과 "queen"에 대한 벡터는 "king"과 "apple"에 비해 벡터 공간에서 더 가깝다.
    2. GloVe
      : GloVe embedding은 동시 발생 행렬(co-occurrence matrices)에 대해 학습된다. 주어진 단어가 다른 단어와 함께 나타날 확률을 포착하려 한다.
      예) "sushi"에 대한 벡터는 text에서 자주 함께 등장하는 "japan", "restaurant", "rice"에 가깝다.
    3. FastText
      : 전체 단어뿐만 아니라 하위 단어 단위(예: n-gram)도 고려함으로써 Word2Vec의 아이디어를 확장한다. 따라서 형태학적으로 풍부한 언어 (같은 단어가 다양한 형태를 가질 수 있는 경우)를 이해하고 어휘에서 벗어난 단위를 처리하는 데 효과적.
      예) "running"에 대한 Embedding은 "run", "running", "ning"등과 같은 하위 단어 단위의 Embedding에 영향을 받는다.
  3. 속성 및 용도
    1. Dimensionality (차원)
      : 일반적으로 벡터 공간에는 수백 개의 차원이 있다. 각 차원은 단어의 의미나 사용의 일부 측면을 포착한다.
    2. Distance Metrics (거리 측정)
      : Cosine 유사도와 같은 distance metrics를 사용해 단어 간의 유사도를 측정할 수 있다.
    3. 적용
      : Word Embeddings은 text classification, sentiment analysis, machine translation 등 다양한 NLP 작업에 사용된다.

Word Embeddings은 각 단어가 단어에 해당하는 위치에 '1'이 있고 그 외에는 '0'이 있는 어휘 크기의 벡터로 표현되는 sparse vector (One-Hot Encoding 같은)를 기반으로 하는 이전의 단어 표현 모델에서 상당히 변화한 형태다. Embedding은 단어 간의 미묘한 의미 관계를 포착해 보다 간결하고 유익한 표현을 제공한다.