Stanford CS224N: NLP with Deep Learning | Winter 2021 | Lecture 1 - Intro & Word Vectors

2강 보충 PyTorch의 nn.Embedding()

단어의 One-Hot Encoding

단어를 categorical variable로 Encoding한 벡터로 표현

단어는 하나의 차원이 각각의 단어를 뜻하도록 표현할 수 있다.

다른 차원은 0으로 표현되기 때문에 *sparse representation(희소표현)*이 가능하다.

대부분의 요소가 0인 벡터나 행렬로 데이터를 표현하는 방식, 이와 반대되는 개념은 Dense representation(밀집 표현) 0이 아닌 요소만 저장하고 나머지 값은 저장하지 않기 때문에, 큰 데이터셋을 다룰 때 메모리 절약이 가능(효율성), 특정 알고리즘이나 연산에서 0이 아닌 요소에 대해서만 연산을 수행하기 때문에, 연산 속도 또한 개선될 수 있다.(연산속도)

image.png

서로 다른 단어들의 내적 유사도는 항상 0이다.

Distributed Represtation(분산 표현)

Distributed vector( Dense vector, Embedding vector )

단어의 의미를 여러 차원에 0이 아닌 값의 형태로 표현.

분포 가설 하에서 만들어진 표현 방법이다. ‘비슷한 위치에서 등장하는 단어들은 비슷한 의미를 가진다.’

내적 유사도가 클수록, 유클리드 거리가 작을수록 유사성을 나타낸다. 단어 간 유사도를 계산할 수 있다.

Word2Vec : 워드들을 Dense vector로 표현하는 Word embedding의 대표적인 방법론, 주변 단어의 정보들을 이용해 단어 벡터를 표현

희소표현이 고차원에 각 차원이 분리된 표현 방법이었다면, 분산표현은 저차원에 단어의 의미를 여러 차원에 분산한 표현 방법이다.

Word2Vec