규칙 기반 혹은 통계적 자연어처리 연구의 대다수는 단어를 원자적(쪼갤 수 없는) 기호로 취급한다.
ex) hotel, conference, walk 같은 단어들.
벡터 공간 관점에서 보면, 이는 한 원소만 1이고 나머지는 모두 0인 벡터를 의미한다.[0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0]
차원 수(= 단어 사전 크기)는 대략 다음과 같다
이를 원-핫(one-hot) 표현이라고 부르며, 단어를 원-핫 표현으로 바꾸는 과정을 원-핫 인코딩(one-hot encoding) 이라고 한다.
갤럭시 핸드폰 == 갤럭시 스마트폰 인데 웹 검색시에 검색 쿼리 벡터와 대상이 되는 문서 벡터들이 서로 직교하게 되어, 원-핫 벡터로는 유사도를 측정할 수 없음

차원의 저주
→ 고차원의 희소 벡터를 다루기 위해선 많은 메모리가 필요함
의미적 정보 부족
단어들 단어들 사이의 의미적 관계를 포착할 수 있는 밀집(dense)되고 연속적/분산적(distributed) 벡터 표현으로 나타내는 방법
원-핫 인코딩에선 비슷한 단어가 완전히 독립적인(무관한) 벡터로 표현되었지만, 워드 임베딩에서는 두 단어의 벡터가 공간상 서로 가깝게 위치하며, 이를 통해 의미적 유사성을 반영할 수 있음

google이 2013년에 개발한 워드 임베딩 기법임
단어의 표현을 간단한 인공 신경망을 이용해 힉습함
Word2Vec의 아이디어는 각 단어와 그 주변 단어들 간의 관계를 예측한다는 것임
알고리즘

Skip-grams(SG) 방식
예시 - 윈도우 크기 2

Continuous Bag of Words (CBOW) 방식
주변 단어들을 통해 중심 단어를 예측하는 방법
문맥 단어들의 집합으로 중심 단어를 맞춤
주변 단어들의 집합이 주어졌을 때, 그 문맥과 함께 등장할 수 있는 단일 단어를 예측함

| 모델 | 장점 | 한계 |
|---|---|---|
| Skip-Gram | - 적은 데이터에도 잘 동작한다. |
순차적 데이터
순서가 중요함. 데이터 순서가 바뀌면 의미가 달라짐
장기 의존성 (Long-term dependency)
→ 멀리 떨어진 과거의 정보가 현재/미래에 영향을 줌
가변 길이 (Variable length)
→ 순차 데이터는 길이가 일정하지 않고 단어 수도 제각각임
순차적 데이터를 처리하려면 일반적인 모델들로는 불가능함
Sequential Models가 필요하다!
ex) RNN, LSTM, Transformer 등등
전통적인 인공신경망(MLP, CNN)들은 고정된 길이의 입력을 받아 가변 길이의 데이터를 처리하기 적합하지 않음
하지만, RNN은 가변 길이의 입력을 받을 수 있고, 이전 입력을 기억할 수 있어서 순차적 데이터 처리에 적합한 아키텍처임
전통적인 신경망과 달리 RNN은 이전 시점의 정보를 담는 hidden state를 갖고 있음
→ 입력 시퀀스 벡터 x를 처리할 때 각 시점마다 recurrence 수식을 적용하여 hidden state를 업데이트함


RNN의 출력은 과거 입력에 영향을 받는다는 점에서 feedforward 신경망과 다름