[clearfix]
Embedding
1. 개요
고차원 공간에서 단어나 이미지와 같은 데이터를 수학적으로 표현한 벡터뭉치. 데이터 처리 시 각 데이터에 일대일로 대응하는 벡터를 만들어 이를 밀집된 벡터 뭉치로 두게 되는데 이를 임베딩이라 하는 것이다. 일반적으로 딥러닝이나 머신러닝 분야에서 자주 이용되는 용어이다.임베딩은 복잡한 데이터를 보다 간결하고 의미 있는 방식으로 표현할 수 있기 때문에 유용하며, 주로 인간이 지각하는 이미지나 사람의 언어인 자연어를 컴퓨터에게 입력해서 인식하게 하는 데에 매우 강력한 방법이다.
2. 상세
기존에도 자연어를 처리하는 데에는 아스키 코드와 같은 언어 모델들이 이미 존재했지만 이는 단순히 단어와 컴퓨터가 인식하는 언어 사이의 일대일 대응일 뿐이며, 단어의 뜻이나 속성을 나타내는 속성은 전혀 없었다. 때문에 이러한 기존의 언어모델을 이용하여 단어의 뜻이나 맥락이 필요한 응용에는 한계가 있을 수밖에 없었으므로 이러한 응용을 위해서는 단어가 가진 속성을 포함한 언어 체계가 필요했다. 이러한 방법론의 일환으로 단어의 각각의 속성을 벡터로 치환한 후에 이러한 속성들의 합을 벡터 뭉치(=임베딩)로 만들어 단어에 대응시키는 방법론이 제시된 것이다. 이 경우 두 단어 간의 유사성을 측정하거나 언어 번역 또는 텍스트 분류와 같은 작업을 수행하는 것이 매우 수월하게 된다. 이와 같은 원리는 마찬가지로 이미지에도 적용할 수 있으며, 이를 응용하면 이미지 분류 또는 이미지 검색과 같은 작업을 좀 더 수월하게 수행할 수 있게 된다.대표적인 임베딩의 생성 알고리즘이 그 유명한 CLIP 모델. CLIP 모델은 텍스트와 이미지의 임베딩을 생성할 수 있는 사전 훈련된 신경망으로, 자연어를 입력할 경우 이를 임베딩으로 변환하여 77 x 768 숫자 값 목록이 생성된다.[1] AI 그림 모델로 유명한 Stable Diffusion이 바로 이 CLIP 모델을 사용하여 만들어진 그림 생성 모델이다. SD를 써 본 사람이라면 한번쯤은 '클립 건너뛰기' 옵션을 보았을텐데, 이 클립 건너뛰기에서의 클립이 바로 이 CLIP 모델을 의미하는 것이다.[2]
[1]
77개라는 숫자는 특별한 이유가 있는 것은 아니고, 실험을 통해 계산 효율성과 모델 성능 간의 절충안으로 마련된 것이다
[2]
엄밀히 말해, CLIP 건너뛰기는 CLIP 모델의 응용 버전이다.