임베딩: 저차원 공간으로 변환

고차원 데이터를 저차원 공간에 매핑하여 희소한 입력 데이터의 핵심 문제를 해결할 수 있습니다.

종이 실습에서 볼 수 있듯이, 작은 다차원 공간에서도 의미론적으로 유사한 항목은 한데 묶고 유사하지 않은 항목은 서로 떨어뜨리는 작업을 자유롭게 수행할 수 있습니다. 벡터 공간의 위치(거리와 방향)는 좋은 임베딩을 통해 의미론을 인코딩할 수 있습니다. 예를 들어 아래에 나온 실제 임베딩의 시각화 자료는 국가와 수도 간의 관계와 같은 의미론적인 관계를 캡처하는 기하학적인 관계를 나타냅니다.

그림 4. 임베딩은 우수한 유추를 제공할 수 있습니다.

이러한 종류의 의미 있는 공간은 머신러닝 시스템이 패턴을 감지하여 학습 작업을 향상 시킬 수 있는 기회를 제공합니다.

망 축소하기

풍부한 의미론적 관계를 인코딩하기에 충분한 차원이 필요하지만 그와 동시에 시스템을 더 빠르게 학습할 수 있게 할만큼의 작은 임베딩 공간도 필요합니다. 유용한 임베딩은 대략 수백 차원에 달할 수 있습니다. 이 크기는 자연어 작업에 필요한 어휘의 크기보다 10의 몇 승만큼이나 더 작습니다.

검색표로서의 임베딩

임베딩은 하나의 행렬이고, 행렬의 각 열은 어휘 항목 하나에 대응합니다. 단일 어휘 항목에 대한 밀집 벡터를 얻으려면 해당 항목에 대응하는 열을 검색합니다.

하지만 희소한 BOW(bag of words) 벡터는 어떻게 변환해야 할까요? 여러 개의 어휘 항목(예: 문장 또는 단락의 모든 단어)을 나타내는 희소 벡터에 대한 밀집 벡터를 얻으려면 개별 항목에 대해 임베딩을 검색한 다음 이를 전부 더하면 됩니다.

희소 벡터에 어휘 항목의 수가 포함되어 있으면 각 임베딩에 해당 항목의 수를 곱한 다음 이를 합계에 추가할 수 있습니다.

어디에선가 해본 것 같지 않나요?

행렬 곱셈으로서의 임베딩 검색

방금 설명한 검색, 곱셈, 덧셈 절차는 행렬 곱셈과 동일합니다. 1xN 크기의 희소 표현 S와 NxM 크기의 임베딩 표 E가 주어지면 행렬 곱셈 SxE를 통해 1xM 밀집 벡터를 얻을 수 있습니다.

하지만 애초에 E는 어떻게 얻어야 할까요? 다음 섹션에서는 임베딩을 얻는 방법에 대해 살펴보겠습니다.