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 크기를 정한다.