텍스트 마이닝과 데이터 마이닝

2024. 5. 14. 18:46·Machine Learning/Embedding & NLP

임베딩 (Embedding)

1. 컴퓨터는 '사과'를 알까?

컴퓨터는 '사과'나 'apple'을 직접 이해하지 못한다. 대신 언어는 특정 개념을 표현하기 위한 약속의 집합이므로, 컴퓨터에게 단어를 알려주기 위해 숫자의 형태로 변환해야 한다. 이 과정을 임베딩이라고 하며, 이는 컴퓨터가 단어를 인식하고 처리할 수 있게 한다.

2. 임베딩이란?

임베딩은 텍스트 데이터를 벡터로 변환하는 기술이다. 이는 텍스트 마이닝과 자연어 처리에서 기본적인 과정으로, 텍스트에서 유용한 정보를 추출해 분석하는 데 사용된다. 임베딩 과정은 다음과 같다:

  • 데이터 준비: 원문 데이터 또는 다른 소스로부터 데이터 수집
  • 전처리: 불용어, 오타 등의 데이터 제외
  • 임베딩: 목적에 맞는 임베딩 알고리즘 적용
  • 시각화: 필요시 임베딩 결과를 확인

임베딩은 단어 임베딩과 문장 임베딩으로 나뉘며, 각각 단어와 문장을 벡터로 변환한다.

3. 임베딩의 발전 과정

원핫 인코딩 (One-hot Encoding)

원핫 인코딩은 단어를 0과 1로 이루어진 벡터로 변환하는 방식이다. 각 단어는 고유한 인덱스를 가지며, 해당 인덱스 위치만 1이고 나머지는 0으로 구성된다. 예를 들어 'dog', 'cat', 'apple'이라는 단어 집합이 있을 때:

  • dog: [1, 0, 0]
  • cat: [0, 1, 0]
  • apple: [0, 0, 1]

하지만 원핫 인코딩은 다음과 같은 한계를 가진다:

  • 차원의 저주: 단어 수만큼 벡터가 커져 효율성과 계산 복잡도가 증가
  • 의미 부재: 비슷한 의미의 단어끼리 비슷한 공간에 존재하지 않음
  • 정보의 희소성: 중요한 정보가 매우 희소하며 대부분 0으로 구성됨

분산 표현 (Distributed Representation)

분산 표현은 연속적인 값으로 단어를 벡터화하는 방식으로, 단어의 의미를 여러 특성(feature)에 걸쳐 분산시켜 표현한다. 이는 원핫 인코딩의 한계를 극복하며, 비슷한 의미의 단어들이 비슷한 공간에 존재하게 한다.


단어 임베딩 (Word Embedding)

1. 원핫 인코딩

원핫 인코딩은 단어를 0과 1로 정의하는 방법이다. 예를 들어 'dog', 'cat', 'apple' 단어 집합이 있을 때:

  • dog: [1, 0, 0]
  • cat: [0, 1, 0]
  • apple: [0, 0, 1]

2. 학습 기반 임베딩

분포 가설(Distribution Hypothesis)을 기반으로 단어의 의미를 문맥에 따라 정의하는 방식이다. Word2Vec과 GloVe와 같은 알고리즘이 사용되며, 주변 단어들을 이용해 각 단어를 벡터로 변환한다.

  • Word2Vec: CBOW와 Skip-gram 방식을 사용해 이웃한 단어들로 가운데 단어를 예측하거나, 가운데 단어로 이웃한 단어들을 예측
  • GloVe: 단어 간 공동 출현 통계를 이용해 단어의 의미를 벡터로 표현

3. 최신 임베딩 기법

  • BERT: 단어별 중요도 기반의 모듈을 활용해 문장 내적 & 외적 관계를 바탕으로 임베딩을 진행
  • CLIP: 이미지와 텍스트의 공동 의미를 임베딩에 활용

문장 임베딩 (Sentence Embedding)

단어와 문장 임베딩의 차이점

단어 임베딩은 단어의 의미와 문맥적 유사성을 포착하는 데 사용되며, 문장 임베딩은 문장의 전체적인 의미를 포착하는 데 사용된다. 문장 임베딩은 더 많은 자원과 계산이 필요하지만, 글의 전반적인 이해가 용이하다.

문장 임베딩 기법

문장 임베딩은 각 단어 임베딩의 평균을 활용하거나, TF-IDF를 적용해 문장 임베딩을 생성할 수 있다. 또한, 딥러닝 모델을 활용해 문장의 의미를 담는 벡터를 생성할 수 있다.

'Machine Learning > Embedding & NLP' 카테고리의 다른 글

감정 분석(Sentiment Analysis)  (1) 2024.06.10
문장 임베딩  (0) 2024.06.10
단어 임베딩  (0) 2024.06.10
'Machine Learning/Embedding & NLP' 카테고리의 다른 글
  • 감정 분석(Sentiment Analysis)
  • 문장 임베딩
  • 단어 임베딩
Juson
Juson
  • Juson
    Juson의 데이터 공부
    Juson
  • 전체
    오늘
    어제
    • 분류 전체보기 (95)
      • RAG (2)
      • AI (2)
        • NLP (0)
        • Generative Model (0)
        • Deep Reinforcement Learning (2)
        • LLM (0)
      • Logistic Optimization (0)
      • Machine Learning (37)
        • Linear Regression (2)
        • Logistic Regression (2)
        • Decision Tree (5)
        • Naive Bayes (1)
        • KNN (2)
        • SVM (2)
        • Clustering (4)
        • Dimension Reduction (3)
        • Boosting (6)
        • Abnomaly Detection (2)
        • Recommendation (4)
        • Embedding & NLP (4)
      • Reinforcement Learning (5)
      • Deep Learning (10)
        • Deep learning Bacis Mathema.. (10)
      • Optimization (2)
        • OR Optimization (0)
        • Convex Optimization (0)
        • Integer Optimization (0)
      • SNA 분석 (0)
      • 포트폴리오 최적화 공부 (0)
        • 최적화 기법 (0)
        • 금융 베이스 (0)
      • Finanancial engineering (0)
      • 프로그래머스 데브코스(Boot camp) (15)
        • SQL (9)
        • Python (5)
        • Machine Learning (1)
      • Python (22)
      • Project (0)
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Juson
텍스트 마이닝과 데이터 마이닝
상단으로

티스토리툴바