새소식

딥러닝/자연어 처리

[WordEmbedding] 딥러닝 이전의 단어 임베딩

  • -

Word Embedding이 필요한 이유: "Word는 Discrete / not continuous한 형태"

단어는 계층적 의미 구조를 지니고 있기 때문에 단어 사이의 유사성을 지니고 있다.

그러나 컴퓨터 상에서 단어가 One-hot Encoding으로 표현된 값은 유사도를 표현할 수 없다.

 

따라서 단어의 유사도를 표현하기 위해 단어를 연속적인 값으로 표현(Embedding)하고자 하였다.

 

feature는 샘플을 잘 설명하는/수치화 할 수 있는 특징이다. 

Neural Network는 x와 y 사이의 관계를 학습하는 과정에서 x의 feature을 추출하는 방법을 학습한다.

그렇다면 단어의 feature vector는 어떻게 나타낼 수 있을까?

 


Traditional Methods "Data-Driven Methods "

데이터 기반 방식은 데이터가 충분하다면 task에 특화된 표현이 가능하다.

그러나 여전히 sparse한 vector 형태이다.

 

 

TF-IDF

어떤 단어 w가 문서 d 내에서 얼마나 중요한지 나타내는 수치

  • TF(Term Frequency)
    단어가 문서 내에 출현한 횟수
    숫자가 클수록 문서 내에서 중요할 것이다.
    그러나 'the'와 같은 단어는 TF값이 매우 클 것
  • IDF(Inverse Document Frequency)
    단어가 출현한 문서 갯수의 역수
    값이 클수록 일반적으로 많이 쓰이는 단어일 것이다.

 

TF-IDF를 통해서 단어의 각 문서(문장, 주제)별 수치를 vector화 할 수 있을 것이다.

윤석열 이라는 단어는 정치, 경제, 사회 문서에서 TF-IDF 값이 높을 것이고

공유와 유재석은 정치, 경제, 사회 문서에서 TF-IDF 값이 낮을 것이다.

따라서 공유와 유재석이라는 단어의 유사도가 공유와 윤석열과의 유사도보다 높다는 것을 확인할 수 있다.

 

 

 

Based on Context window (Co-occurrence)

가정: 의미가 비슷한 단어라면 쓰임새가 비슷할 것이고 그렇기에 비슷한 문장 안에서 비슷한 역할로 사용될 것이다.

→ 함께 나타나는 단어들은 유사할 것이다.

 

Context Window를 사용하여 windowing을 실행하는 방법

- 적절한 window 크기를 정한다.

 

728x90
Contents