observe_db

[NLP] 11. 단어 벡터 본문

학교 공부/자연언어처리(4-2)

[NLP] 11. 단어 벡터

쩡윤 2024. 11. 8. 14:46

11/7

 

단어 임베딩(word Embedding)

: 문자를 숫자들의 배열인 벡터로 변환하는 방법

: 또는 그러한 방법으로 만들어진 단어 벡터.

단어벡터-단어사이의 관계(의미)를 나타냄.

 

단어 임베딩의 목표

  • 쉽게 확보할 수 있는 대량의 원시 말뭉치를 통해
  • 비지도 학습(self-supervised learning)을 하고
  • 다양한 NLP 시스템에서 범용적으로 사용할 수 있는 단어 벡터를 만드는  것

One-hot Encoding

: 학습 데이터에 존재하는 단어들을 수집하여 vocabulary 구축.

단어들의 등장 빈도순으로 순열 부여.

vocabulary의 크기(=|V|)가 매우 크므로 매우 큰 차원의 sparse vector가 필요하다.

*정보검색에서 나오는 'term'의 수를 5M 정도로 잡는다.

단어의 의미간 관계를 표현할 수 없음.(유의, 반의 등) => 단어 매칭이나 비교 등의 문제

 

분포 가설(distributional hyothesis)

: 유사한 단어들은 문장에서의 사용 분포(문맥)가 비슷하다는 가설

" You shall know a word by the company it keeps" - J. R. Firth, 1957

Word2Vec에서 사용.: 한 단어와 좌우 문맥 단어를 서로 관련된 벡터로 표현.

 

언어 모델링 사용 예시

  • 이전 단어들이 주어졌을 때 다음 단어 예측
  • 문장 내 빠진 단어 예측
  • 문장들의 전후 관계 예측
  • 문장 내 단어 순서를 무작위로 만들고 원 문장 예측

관계 연산

: 벡터 연산으로 단어간 관계 유추 가능(문법 관계, 지식적 관계 등)

단어 벡터 사이의 연산 가능.

 

평가 방법

내제 평가: 평가 데이터를 구축하고 이를 이용하여 평가(의미적 유추 관계, 구문적 유추 관계)

외재 평가: 다른 응용프로그램의 입력으로 사용하여 그 성능 변화 측정(감성 분석, 품사태깅, 개체명 인식 등에서 평가)

 

 

단어 벡터 구축 방법

Word2Vec

  • 언어의 문맥은 양방향 의존성(특정 단어의 의미는 이전+이후 등장 단어의 영향을 받음)을 가진다는 특징을 활용
  • CBOW(Continuous Bag-of-Words): 특정 단어를 중심으로 이전/이후에 각각 n개 단어가 주어질 떄 중심 단어를 예측
  • Skip-gram: 중심 단어가 주어질 때 이전/이후 각 n개 단어를 예측

 

CBOW 원리

인코딩

one-hot 벡터에 W를 곱해 인코딩하여 각 문맥 벡터의 평균을 구함.

최종 학습이 끝나면 W를 이용하여 단어 벡터를 구함.

 

디코딩

인코딩된 벡터를 W'를 곱하여 확장하여 대상 벡터 예측

계산 결과 값에 softmax를 취하여 대상 벡터와 비교

그 손실을 backpropagation(손실 함수는 cross entropy)

 

 

Skip-gram 원리

 

Glove

: 문맥 대신 학습 말뭉치에서 단어간 동시 발생 빈도를 이용

단어 간 동시 발생 빈도 비율이 벡터 공간상 차이가 되도록 임베딩 수행.

 

FastText

: skip-gram 학습을 사용

단어를 n-gram으로 분리하여 n-gram에 대한 벡터 학습.

subword + Skipgram.

 

subword model

: 단어 벡터들은 n-gram(부분 단어) 벡터의 합으로 나타냄.

위 수식을 최대로하는 word vector를 구하는 문제(t= target, c=context)

 

 

한국어 단어 벡터

문제점

  • 제한된 단어 벡터 어휘(많이 쓰이는 영어 단어 중심 단어벡터 생성시 크기가 10만 정도.)
    • 한국어는.. 어절단위라 100만 이상.
    • 보다 기본적 요소로 분리해야함(자소/음절/형태소 등)
  • n-gram 단어(subword)를 이용한 영어 벡터 생성 모델 이용(FastText model)

부분어 분리 단위

어절/형태소/음절/자소/천지인/품사포함.

 

입력 단위- 어절 단위 학습 / 형태소 단위 학습

 

 
 

'학교 공부 > 자연언어처리(4-2)' 카테고리의 다른 글

[NLP] 14. 거대 언어 모델(LLM)  (0) 2024.11.28
[NLP] 12. n-gram 언어 모델  (0) 2024.11.15
[NLP] 10. 기계번역  (0) 2024.11.08
[NLP] 9. 정보 추출  (0) 2024.11.01
[NLP] 8. 의미역 분석  (0) 2024.11.01
Comments