[TIL] Distributed Representation

lena_log·2022년 3월 3일
0

Codestates Section4

목록 보기
6/12
post-thumbnail

보통 자연어 처리에서 인풋되는 데이터는 텍스트인데 텍스트를 숫자로 표현하는 과정을 인코딩이라고 함


Distribution Representation

  • 분포가설에 기반하여 주변 단어 분포를 기준으로 단어의 벡터 표현이 결정됨=> 분산표현

원핫인코딩

  • 범주형 변수를 벡터로 나타내는 방법
  • 단점: 단어간 유사도를 구할 수 없음

Embedding

  • 원핫인코딩의 단점을 해결
  • 단어들 고정길이의 벡터 즉, 차원이 일정한 벡터로 나타내기 때문에 '임베딩'이라는 이름이 붙었음
  • 즉, 벡터가 아닌것을 고정 길이의 벡터로 나타내기
  • 원핫 인코딩 보다 차원이 저차원임

Word2vec

  • 특정단어 양옆에 있는 두단어의 관계를 활용하기 때문에 분포가설을 잘 방영
  • 은닉층이 하나여서 딥러닝이라고 하기 어려움

CBow

  • 주변 단어에 대한 정보를 기반으로 중심단어의 정보를 예측하는 모델인지

skip-gram

  • 중심단어의 정보를 기반으로 주변 단어의 정보를 에측하는 모델인지
  • 역전파 과제에서 훨씬 더 많은 학습이 일어나기 때문에 성능이 더 좋다
  • 단점: 계산량이 많아 리소스가 크다

word2vec 의 구조

입력층: word2vec 의입력은 원핫인코딩된 단어 벡터
은닉층: 임베딩된 벡터의 차원 수 만큼의 노드로 구성된 은닉층이 1개인 신경망, 선형이라 은닉층에서 활성화 함수 사용하지 않음
출력층: 단어 개수 만큼의 노드로 이루어져 있으며 활성화 함수로 소프트 맥스를 사용

word2vec을 통해 얻은 임베딩 벡터는 단어간의 의미적, 문법적 관계를 잘 나타냄

단점: 말뭉치에서 없는 단어를 임베딩 벡터를 생성 할 수 없음

gensim 패키지

  • word2vec으로 사전학습된 임베딩 벡터를 쉽게 사용해 볼수 있는 패키지
profile
안녕하세요. 기억보다 기록을 믿는 레나입니다!

0개의 댓글