2025년 7월 24일 작성

Embedding - 비정형 Data를 Vector로 변환하는 AI 핵심 기술

embedding은 의미적으로 유사한 data들이 수학적으로도 가까운 거리에 위치하도록 하여, AI가 인간의 언어와 개념을 이해할 수 있게 합니다.

Embedding : 비정형 Data를 Vector로 변환하는 AI 핵심 기술

  • embedding은 비정형 data를 고차원 vector space의 수치로 변환하는 representation learning 기술입니다.
    • computer가 이해할 수 없는 symbolic data를 연산 가능한 numerical form으로 mapping하여, machine learning algorithm이 처리할 수 있도록 합니다.
      • 단어, 문장, image, audio 등을 computer가 이해할 수 있는 숫자 형태로 바꿉니다.
    • 예를 들어 “사과”라는 단어를 [0.2, -0.8, 0.5, 0.1, …]과 같은 수백 개의 숫자 list로 변환합니다.
    • 숫자들은 무작위가 아니라, 단어나 문장의 의미를 수학적으로 표현한 것입니다.
  • embedding의 핵심은 원본 data의 semantic relationship을 vector space에서의 geometric relationship으로 보존하는 것입니다.
    • 의미적으로 유사한 data들이 수학적으로도 가까운 거리에 위치하도록 합니다.

Embedding이 필요한 이유

  • computer는 “사과”나 “바나나”라는 단어 자체를 이해할 수 없습니다.
    • computer에게 문자는 단순한 symbol에 불과하고, 의미를 파악할 수 없습니다.
    • 하지만 숫자로 변환하면 computer가 계산을 통해 “사과와 바나나는 둘 다 과일이므로 비슷하다”는 것을 알 수 있습니다.
  • 기존의 keyword matching 방식과 달리, embedding은 의미의 유사성을 파악할 수 있습니다.
    • keyword matching : “자동차”를 검색하면 정확히 “자동차”가 들어간 문서만 찾습니다.
    • embedding 검색 : “자동차”를 검색하면 “차량”, “승용차”, “SUV” 등 관련된 의미의 문서도 찾을 수 있습니다.
  • machine learning model은 수치 data만 처리할 수 있기 때문에, text나 image 같은 비정형 data를 숫자로 변환하는 과정이 필수입니다.
    • neural network의 모든 연산은 행렬 곱셈과 덧셈 등 수학적 계산으로 이루어집니다.
    • 따라서 모든 input data는 반드시 숫자 형태로 제공되어야 합니다.

Embedding과 Vector Space

  • embedding vector는 고차원 공간상의 한 점으로 표현되며, 각 차원은 특정한 의미적 특성을 나타냅니다.
    • 일반적으로 50차원에서 1024차원 사이의 고차원 vector를 사용합니다.
    • 각 차원은 “성별”, “감정”, “추상성” 등과 같은 잠재적 의미 특성을 encoding합니다.
  • cosine similarity를 통해 두 vector 간의 의미적 유사도를 측정합니다.
    • cosine similarity는 -1에서 1 사이의 값으로, 1에 가까울수록 의미가 유사함을 나타냅니다.
    • 두 vector가 이루는 각도가 작을수록 의미적으로 유사하다고 판단합니다.

Vector Space에서의 의미 관계

  • embedding vector는 고차원 공간에서 점으로 표현됩니다.
    • 각 단어나 문장은 고차원 공간의 한 좌표로 mapping됩니다.
    • 이 공간에서의 위치가 해당 data의 의미적 특성을 결정합니다.
  • 의미가 비슷한 단어들은 vector space에서 가까운 위치에 cluster를 형성합니다.
    • “강아지”, “고양이”, “토끼”는 서로 가까운 곳에 위치합니다.
    • “사과”, “바나나”, “오렌지”도 또 다른 가까운 곳에 위치합니다.
    • 동일한 category나 domain에 속하는 단어들이 자연스럽게 grouping됩니다.
  • 의미적 관계가 geometric relationship으로 표현되어, 유사도 계산이 가능해집니다.
    • 두 vector 사이의 거리나 각도를 계산해서 얼마나 비슷한 의미인지 측정할 수 있습니다.
    • euclidean distance나 cosine similarity 등의 수학적 metric을 사용합니다.

Vector 연산을 통한 의미 조작

  • embedding의 신기한 점은 vector 계산으로 의미를 조작할 수 있다는 것입니다.
    • vector의 덧셈과 뺄셈을 통해 새로운 의미를 만들어낼 수 있습니다.
    • 이는 embedding이 언어의 구조적 특성을 학습했다는 증거입니다.
  • 유명한 예시로 “king - man + woman = queen”이 있습니다.
    • “왕”에서 “남성” 요소를 빼고 “여성” 요소를 더하면 “여왕”과 비슷한 결과가 나옵니다.
    • 이는 성별이라는 의미적 차원이 vector space에서 하나의 방향으로 표현되고 있음을 보여줍니다.
  • 다른 예시로는 “Paris - France + Italy = Rome”과 같은 관계도 성립합니다.
    • 수도와 국가의 관계가 vector 연산으로 표현될 수 있습니다.
    • 이는 embedding이 단순히 단어를 외우는 것이 아니라 의미의 구조를 학습했다는 증거입니다.

Embedding의 종류와 활용 분야

  • embedding 기술은 처리하는 data 유형에 따라 다양한 형태로 발전했습니다.
    • 각 data type마다 고유한 특성을 고려한 specialized embedding 방법이 개발되었습니다.
    • 최근에는 multimodal embedding으로 여러 유형의 data를 하나의 공간에 표현하는 연구도 활발합니다.

Text Embedding

  • Word2Vec은 주변 단어의 맥락을 통해 단어의 의미를 학습하는 대표적인 word embedding 기법입니다.
    • CBOW(Continuous Bag of Words)와 Skip-gram 두 가지 architecture를 제공합니다.
    • “distribute semantics” 가설에 기반하여, 비슷한 맥락에서 사용되는 단어는 비슷한 의미를 가진다고 가정합니다.
  • BERT는 transformer architecture를 기반으로 한 contextual embedding model입니다.
    • 동일한 단어라도 문맥에 따라 다른 vector 값을 가집니다.
    • bidirectional attention을 통해 양방향 문맥 정보를 모두 고려합니다.
  • Sentence-BERT는 문장 전체의 의미를 하나의 vector로 표현하는 기술입니다.
    • 문장 간 유사도 측정이나 semantic search에 특화되어 있습니다.
    • 기존 BERT보다 inference 속도가 빠르면서도 높은 성능을 유지합니다.

Image Embedding

  • CNN 기반 embedding은 convolutional neural network를 통해 image의 visual feature를 추출합니다.
    • ResNet, VGG, EfficientNet 등의 pre-trained model을 feature extractor로 사용합니다.
    • 마지막 fully connected layer 이전의 feature map을 embedding vector로 활용합니다.
  • CLIP(Contrastive Language-Image Pre-training)은 text와 image를 동일한 embedding space에 mapping하는 multimodal 기술입니다.
    • image와 해당 image를 설명하는 text가 유사한 vector 값을 가지도록 학습합니다.
    • zero-shot image classification이나 image retrieval에 활용됩니다.

Audio Embedding

  • spectrogram 기반 embedding은 audio signal을 frequency domain으로 변환하여 처리합니다.
    • MFCC(Mel-Frequency Cepstral Coefficients)나 mel-spectrogram을 input으로 사용합니다.
    • speech recognition, music classification, audio similarity 등에 활용됩니다.
  • Wav2Vec은 raw audio waveform을 직접 처리하는 self-supervised learning 기법입니다.
    • transformer architecture를 통해 audio의 temporal dependency를 학습합니다.
    • downstream task에 fine-tuning하여 높은 성능을 낼 수 있습니다.

Embedding 생성 과정과 학습 방법

  • embedding 생성은 대량의 unlabeled data를 통한 unsupervised learning으로 이루어집니다.
    • label이 없는 raw data에서 pattern을 찾아 meaningful representation을 학습합니다.
    • 이를 통해 비교적 적은 비용으로 고품질의 embedding을 얻을 수 있습니다.

Self-Supervised Learning

  • masking 기법을 통해 model이 스스로 학습 목표를 생성합니다.
    • BERT의 경우 일부 단어를 [MASK] token으로 가리고, 원래 단어를 예측하도록 학습합니다.
    • 이 과정에서 주변 단어들과의 관계를 파악하여 의미적 representation을 학습합니다.
  • contrastive learning은 positive pair와 negative pair를 구분하도록 학습하는 방법입니다.
    • 유사한 의미의 data는 가깝게, 다른 의미의 data는 멀게 배치하도록 loss function을 설계합니다.
    • SimCLR, CLIP 등의 model에서 사용되는 핵심 기법입니다.

Transfer Learning과 Fine-tuning

  • pre-trained embedding model을 특정 domain이나 task에 맞게 조정하는 과정입니다.
    • 일반적인 corpus로 학습된 embedding을 의료, 법률, 금융 등 specialized domain에 적용할 때 사용합니다.
    • domain-specific vocabulary나 표현을 추가 학습하여 성능을 향상시킵니다.
  • few-shot learning을 통해 적은 양의 labeled data로도 효과적인 adaptation이 가능합니다.
    • pre-trained embedding의 일반적인 language understanding 능력을 활용합니다.
    • 새로운 domain의 소량 data만으로도 빠르게 학습할 수 있습니다.

Embedding의 실제 활용 사례

  • embedding 기술은 검색, 추천, 분류 등 다양한 AI application의 핵심 component로 활용됩니다.
    • semantic search, recommendation system, content classification 등에서 필수적인 역할을 담당합니다.
    • 기존의 rule-based system을 대체하여 더 정확하고 유연한 결과를 제공합니다.
  • 의미 기반 검색에서 embedding은 query와 document 간의 semantic similarity를 계산합니다.
    • 사용자가 “빠른 운송 수단”을 검색하면 “항공기”, “고속 열차” 등의 관련 문서를 찾아줍니다.
    • keyword matching으로는 불가능한 conceptual search가 가능해집니다.
  • multilingual search에서는 서로 다른 언어의 query와 document를 동일한 embedding space에 mapping합니다.
    • 한국어 query로 영어 문서를 검색하거나, 그 반대의 경우도 가능합니다.
    • cross-lingual embedding을 통해 언어 장벽을 극복할 수 있습니다.

Recommendation System

  • collaborative filtering에서 embedding은 user와 item의 latent feature를 학습합니다.
    • 사용자의 과거 행동 pattern과 item의 특성을 vector로 표현하여 preference를 예측합니다.
    • matrix factorization이나 neural collaborative filtering 등의 기법에 활용됩니다.
  • content-based recommendation에서는 item의 content feature를 embedding으로 표현합니다.
    • 영화의 경우 genre, director, cast 등의 정보를 종합하여 embedding vector를 생성합니다.
    • 사용자가 선호하는 content와 유사한 item을 추천할 수 있습니다.

Natural Language Processing

  • sentiment analysis에서 embedding은 text의 감정적 nuance를 capturing합니다.
    • 단순한 positive/negative 분류를 넘어서 세밀한 감정 분석이 가능합니다.
    • 문맥상의 미묘한 의미 차이도 embedding을 통해 구분할 수 있습니다.
  • machine translation에서는 source language와 target language를 동일한 semantic space에 mapping합니다.
    • encoder-decoder architecture에서 중간 representation으로 embedding을 활용합니다.
    • attention mechanism과 결합하여 더 정확한 번역 결과를 생성합니다.

Embedding의 한계와 개선 방향

  • embedding 기술은 강력하지만 여러 기술적 한계와 개선해야 할 부분들이 존재합니다.
    • 이러한 한계를 이해하고 적절한 해결책을 적용하는 것이 중요합니다.
    • 지속적인 연구를 통해 더 robust하고 reliable한 embedding 기술이 개발되고 있습니다.

차원의 저주 문제

  • 고차원 vector space에서는 모든 점들이 비슷한 거리에 위치하게 되는 현상이 발생합니다.
    • 차원이 증가할수록 data point들 간의 거리 차이가 줄어들어 구분이 어려워집니다.
    • 이로 인해 similarity metric의 신뢰성이 떨어질 수 있습니다.
  • dimensionality reduction 기법을 통해 중요한 정보는 보존하면서 차원을 줄이는 방법이 사용됩니다.
    • PCA, t-SNE, UMAP 등의 기법으로 고차원 embedding을 저차원으로 projection합니다.
    • 하지만 정보 손실이 불가피하므로 적절한 trade-off를 고려해야 합니다.

Bias와 Fairness 문제

  • 학습 data의 bias가 embedding에 그대로 반영되는 문제가 있습니다.
    • 성별, 인종, 종교 등에 대한 사회적 편견이 embedding에 encoding될 수 있습니다.
    • 예를 들어 “의사”라는 단어가 남성 관련 단어들과 더 가깝게 위치할 수 있습니다.
  • debiasing 기법을 통해 embedding에서 불공정한 bias를 제거하려는 연구가 진행됩니다.
    • gender subspace를 찾아서 제거하거나, adversarial training을 통해 bias를 줄이는 방법들이 제안됩니다.
    • 하지만 완전한 debias는 어려우며, 성능과의 trade-off도 고려해야 합니다.

Out-of-Vocabulary 문제

  • 학습 시 보지 못한 새로운 단어나 표현에 대해서는 적절한 embedding을 생성하기 어렵습니다.
    • 신조어, 전문 용어, 오타 등에 대해서는 embedding을 생성할 수 없습니다.
    • 이는 실제 application에서 coverage 문제로 이어집니다.
  • subword tokenization 기법을 통해 이 문제를 완화할 수 있습니다.
    • BPE(Byte Pair Encoding), SentencePiece 등을 사용하여 단어를 더 작은 unit으로 분해합니다.
    • 이를 통해 unseen word도 subword unit의 조합으로 표현할 수 있습니다.

Reference


목차