본문 바로가기
정리/실무가 훤히 보이는 머신러닝&딥러닝

8장_워드투벡을 이용한 자연어 처리

by 스꼬맹이브로 2023. 3. 19.
728x90
반응형
SMALL

이전 내용에서는 기존의 단어 임베딩(Word Embedding)을 원핫 인코딩(one-hot encoding)방식을 사용함.

https://yuna96.tistory.com/133

 

7장_한글 자연어 처리

자연어 처리 기술(NLP, Natural Language Processing) : 사람이 말하는 언어를 기계적으로 분석해 컴퓨터가 이해할 수 있는 형태로 만드는 기술 1. 자연어 처리 분야 정보 검색(Information Retrieval Service) 가장

yuna96.tistory.com

이 방식은 단어 사전이 무한대로 길어지는 단점이 있으며 대부분 0으로 표시되어 의미 없는 메모리를 차지함.

또한 단어 간의 의미론적 차이와 연관 관계를 이해할 수 없음

 

이러한 문제를 해결하기 위해 단어를 다차원 공간에서 벡터화하는 방식 탄생

 

1. 자연어 처리의 꽃, 단어 임베딩 이해하기

기본적으로 컴퓨터에 무언가를 지시하기 위해서는 수치화가 필수적으로 이루어져야 함.

기존 원핫 인코딩 방식의 단점을 극복하기 위해 단어를 다차원에서 벡터화하는 것뿐만 아니라 연산 처리까지 할 수 있도록 하는 단어의 분산 표현인 단어 임베딩(Word Embedding)이라는 방식을 제안

 

word2vec

  • 대표적인 단어 임베딩 모델
  • 구글에서 만든 알고리즘
  • 단어 간의 앞뒤 관계를 보고 근접도를 정하는 방식
  • 딥러닝을 통한 비지도학습 알고리즘

출처 : https://gensim.narkive.com/RavqZorK/4914-graphic-representations-of-word2vec-and-doc2vec#

[word2vec 기술 이해하기]

word2vec → CBOW(Continuous Bag-of=Words model)와 Skip-Gram 두 가지로 구분됨.

  • CBOW
    • 주어진 단어들을 가지고 목표하는 단어를 예측하는 모델
    • 전후의 단어에서 대상 단어를 추측
    • 작은 데이터 세트에서 유용하게 사용
    • ex : 사드 배치 때문에 [중국] 관광객들이 줄어든다 '중국'이라는 단어를 찾아내는 것이 목표
  • Skip-Gram
    • 목표하는 단어를 기준으로 주어진 단어들을 예측하는 모델
    • 타켓 단어에서 주변 단어를 예측
    • 출력 계층의 주변 단어 예측 오류의 합을 최소화하는 것이 목표
    • 큰 데이터 세트에서 유용하게 사용
    • CBOW보다 주로 사용되는 모델
    • ex: 나는 매일 아침에 사과를 먹습니다.
      '먹습니다'가 대상 단어라면 '사과','오렌지','빵'등을 예측
      음식 관련성이 높은 단어가 '아파트', '컴퓨터'와 같은 관련성이 낮은 단어보다 출현할 확률이 높음을 예측

[word2vec의 활용 분야]

  • 명사와 성별 또는 국가 이름의 의미 관계를 모델링 → 개체명 인식(NER)에서 유사성 단어를 찾는데 유용
  • 사람의 감정을 나타내는 단어의 의미론적 유사성을 찾을 수 있음 → 감정 분석 정확도를 높임
  • 문구를 word2vec으로 고정 길이의 벡터로 만들고 RNN 기술을 사용하여 기계번역을 수행

[word2vec의 한계]

  • "문맥에는 비슷한 단어가 존재한다."라는 개념에 상충되는 문장에 약함
    ex: "나는 당신을 좋아하지만, 싫어한다."라는 문장에서 "좋아하다"와 "싫어하다"를 비슷한 단어로 인식
  • 문장이나 문서 단위의 의미를 반영하지 못함(전체 문맥에 따른 의미를 충분히 반영하지 못함).

[word2vec와 비교되는 알고리즘]

  • GloVe(Global Vectors for Word Representation) 
    • 일반적으로 word2vec보다 성능이 좋음
    • 학습이 빠르고 큰 말뭉치에서도 대응이 가능하며 작은 말뭉치에서도 좋은 성능을 보임
    • 스탠포드대학교의 GloVe 소개 페이지에서 확인할 수 있음
  • WordNet
    • 의미상 유사한 관계를 분류한 사전을 구축하여 동의어를 얻을 수 있음
    • word2vec처럼 자동으로 분류하고 연산할 수 는 없음
  • Doc2vec
    • word2vec을 기반으로 하여 '단어'가 아닌 '문장'에 의미를 갖고 벡터 연산 수행
    • 단어 벡터와 단락 벡터를 만들어 평균화와 결합, 추정을 거쳐서 구축
    • 뉴스 기사나 문학 작품 등의 유사도를 판정할 수 있음
  • fasttext
    • 페이스북의 인공지능연구소가 공개한 자연어 처리를 고속화하는 라이브러리
    • word2vec과 같이 단어의 분산 표현을 구축
    • 표기 흔들림이나 접두어 등에도 강한 알고리즘
728x90
반응형
LIST