one-hot encoding 사용 시 모델은 단어 간의 관계를 파악하기는 어렵다.
따라서 위와 같은 문제를 해결하기 위해서 Word Embedding을 통하여 각각의 단어들에 대해 feature와 value를 학습하는 과정이 필요하다.
word embedding은 단어 간의 의미적 관계와 유사성을 수치적으로 나타낼 수 있도록 학습됩니다.


단어간의 관계의 유사도를 측정할때 사용하는 방식이다.
두 단어 집합의 관계 벡터를 이용해 코사인 유사도를 구한 후 해당 값을 통해 유사도를 측정하는 방식이다.
embedding matrix는 word embedding을 진행한 벡터들을 모아둔 행렬이다.
행은 고유한 단어의 수를 의미하며 열은 각 단어가 표현되는 벡터의 차원을 의미합니다.
예를 들어 만약 10000개의 단어가 존재하고, 각 단어를 300차원의 벡터로 표현한다면 10,000 x 300의 행렬로 이루어집니다.
Word2Vec은 단어의 주변 맥락을 분석하여 각 단어를 고차원 벡터로 표현합니다.
모델은 skip-gram과 continuous bag of words로 구성되어 있습니다.
Skip-Gram
중심 단어를 통해 주변 단어를 예측하는 방법입니다.
중심단어를 one-hot vector로 가정하고 해당 벡터를 embedding matrix와 곱하여 벡터를 얻은 후 소프트 맥스를 적용하여 예측값을 얻습니다.
Negative Sampling
word2vec 모델은 역전파 과정에서 모든 단어의 임베딩 벡터값을 업데이트 하여, 불필요한 계산도 수행하게 됩니다.
네거티브 샘플링은 일부 단어 집합에만 집중할 수 있도록 하는 방법입니다.
단어를 고차원 벡터로 변환하는 방식으로 단어 간의 의미적 관계를 효과적으로 포착하는 방법입니다.
동시 발생 행렬을 사용해 단어 간의 관계를 포착합니다.
동시 발생 행렬이란 데이터셋에서 각 단어가 함께 등장하는 빈도를 계산하는 행렬입니다.
감정 분석 문제는 입력된 문장의 각 단어를 모델에 매핑하고, 해당 매핑을 통하여 문장의 감정을 분류하는 방식이다.

단어 임베딩 과정에서 바이어스를 없에기 위한 과정이다.

1. 성별을 제거하고 싶다면 성별을 나타내는 단어 사이의 벡터차이를 구합니다.

2. 바이어스가 없어야 하는 단어들에 대해서 바이어스를 제거한다.

3. 성별을 포함하는 단어들에 대해서는 동일한 편향을 가지도록 한다.