--- id: [[P-Reinforce|P-Reinforce]]-AUTO-EMB-001 category: AI_and_ML confidence_score: 1.00 tags: [auto-reinforced, embedding, nlp, vector-space, transformer] last_reinforced: 2026-05-04 --- # [[Vector Embedding|Vector Embedding]] ## πŸ“Œ ν•œ 쀄 톡찰 (The Karpathy Summary) > "λ°μ΄ν„°μ˜ μ§€λ¬Έ: λΉ„μ •ν˜• 데이터(ν…μŠ€νŠΈ, 이미지 λ“±)λ₯Ό AIκ°€ 이해할 수 μžˆλŠ” κ³ μ •λœ 길이의 숫자 λ°°μ—΄λ‘œ λ³€ν™˜ν•˜μ—¬, 컴퓨터가 μ •λ³΄μ˜ '의미적 거리'λ₯Ό 계산할 수 있게 λ§Œλ“œλŠ” λ²ˆμ—­ κ³Όμ •." ## πŸ“– κ΅¬μ‘°ν™”λœ 지식 (Synthesized Content) 벑터 μž„λ² λ”©μ€ 이산적인 데이터(예: 단어, λ¬Έμž₯, 이미지)λ₯Ό 연속적인 닀차원 벑터 κ³΅κ°„μ˜ 점으둜 λ³€ν™˜ν•˜λŠ” μˆ˜μΉ˜ν™”λœ ν‘œν˜„ λ°©μ‹μž…λ‹ˆλ‹€. 1. **핡심 κ°œλ… (Key Concepts)**: * **의미둠적 보쑴 (Semantic Preservation)**: μ˜λ―Έκ°€ μœ μ‚¬ν•œ 데이터듀은 벑터 κ³΅κ°„μƒμ—μ„œλ„ μ„œλ‘œ κ°€κΉκ²Œ μœ„μΉ˜ν•˜λ„λ‘ ν•™μŠ΅λ©λ‹ˆλ‹€ (예: 'μ™•'-'λ‚¨μž' β‰ˆ 'μ—¬μ™•'-'μ—¬μž'). * **고차원 ν‘œν˜„ (High-dimensional Representation)**: μˆ˜λ°±μ—μ„œ 수천 μ°¨μ›μ˜ 곡간을 μ‚¬μš©ν•˜μ—¬ λ°μ΄ν„°μ˜ λ―Έμ„Έν•œ νŠΉμ§•(Feature)듀을 ν¬μ°©ν•©λ‹ˆλ‹€. * **λ°€μ§‘ 벑터 (Dense Vector)**: λŒ€λΆ€λΆ„μ˜ 값이 0인 Sparse Vector(예: One-hot encoding)와 달리, λŒ€λΆ€λΆ„μ˜ 차원이 의미 μžˆλŠ” μ‹€μˆ˜κ°’μœΌλ‘œ μ±„μ›Œμ Έ 정보 밀도가 λ†’μŠ΅λ‹ˆλ‹€. 2. **μž„λ² λ”© λͺ¨λΈμ˜ μ§„ν™”**: * **Static Embeddings**: Word2Vec, GloVe (λ¬Έλ§₯에 관계없이 λ™μΌν•œ λ‹¨μ–΄λŠ” λ™μΌν•œ λ²‘ν„°λ‘œ λ³€ν™˜). * **Contextual Embeddings**: [[BERT]], GPT (λ¬Έλ§₯에 따라 λ‹¨μ–΄μ˜ μ˜λ―Έμ™€ 벑터가 λ³€ν™”). 3. **μž„λ² λ”© 생성 ν”„λ‘œμ„ΈμŠ€**: * μž…λ ₯ 데이터 β†’ 사전 ν•™μŠ΅λœ λͺ¨λΈ(Encoder) β†’ κ³ μ • 길이 벑터(Latent Space) β†’ [[Vector Database|Vector Database]] μ €μž₯. ## βš–οΈ Trade-offs & Caveats * **λͺ¨λΈ μ˜μ‘΄μ„±**: μ–΄λ–€ μž„λ² λ”© λͺ¨λΈ(OpenAI `text-embedding-3`, `all-MiniLM-L6-v2` λ“±)을 μ‚¬μš©ν•˜λŠλƒμ— 따라 검색 μ„±λŠ₯κ³Ό λΉ„μš©μ΄ μ²œμ°¨λ§Œλ³„μž…λ‹ˆλ‹€. * **의미적 κ°„κ·Ή (Semantic Gap)**: λͺ¨λΈμ΄ ν•™μŠ΅ν•˜μ§€ λͺ»ν•œ 도메인 νŠΉν™” λ‹¨μ–΄λ‚˜ μ•½μ–΄λŠ” 잘λͺ»λœ λ²‘ν„°λ‘œ λ³€ν™˜λ˜μ–΄ 검색 μ‹€νŒ¨λ₯Ό μœ λ°œν•  수 μžˆμŠ΅λ‹ˆλ‹€. * **μ°¨μ›μ˜ μ €μ£Ό (Curse of Dimensionality)**: 차원이 λ„ˆλ¬΄ λ†’μœΌλ©΄ 계산 λ³΅μž‘λ„κ°€ κΈ°ν•˜κΈ‰μˆ˜μ μœΌλ‘œ λŠ˜μ–΄λ‚˜κ³  μœ μ‚¬λ„ 츑정이 λͺ¨ν˜Έν•΄μ§ˆ 수 μžˆμŠ΅λ‹ˆλ‹€. ## πŸ’» μ‹€μ „ κ΅¬ν˜„ μ½”λ“œ (Boilerplate) `sentence-transformers`λ₯Ό ν™œμš©ν•˜μ—¬ ν…μŠ€νŠΈλ₯Ό μž„λ² λ”©μœΌλ‘œ λ³€ν™˜ν•˜λŠ” κ°€μž₯ 기본적인 λ°©λ²•μž…λ‹ˆλ‹€. ```python from sentence_transformers import SentenceTransformer import numpy as np # 1. λͺ¨λΈ λ‘œλ“œ (κ²½λŸ‰ν™”λœ λ‹€κ΅­μ–΄ 지원 λͺ¨λΈ μΆ”μ²œ) model = SentenceTransformer('paraphrase-multilingual-MiniLM-L12-v2') # 2. ν…μŠ€νŠΈ 데이터 μ€€λΉ„ sentences = [ "AIλŠ” 지식 μˆ˜μ§‘μ˜ νš¨μœ¨μ„±μ„ ν˜μ‹ ν•©λ‹ˆλ‹€.", "인곡지λŠ₯은 데이터 뢄석을 κ³ λ„ν™”ν•©λ‹ˆλ‹€.", "였늘 점심 λ©”λ‰΄λŠ” λ¬΄μ—‡μž…λ‹ˆκΉŒ?" ] # 3. μž„λ² λ”© 생성 embeddings = model.encode(sentences) # 4. 코사인 μœ μ‚¬λ„ 계산 (첫 λ²ˆμ§Έμ™€ 두 번째 λ¬Έμž₯ 비ꡐ) def cosine_similarity(a, b): return np.dot(a, b) / (np.linalg.norm(a) * np.linalg.norm(b)) sim = cosine_similarity(embeddings[0], embeddings[1]) print(f"Similarity (AI vs AI): {sim:.4f}") diff = cosine_similarity(embeddings[0], embeddings[2]) print(f"Similarity (AI vs Lunch): {diff:.4f}") ``` ## πŸ”— 지식 μ—°κ²° (Graph) * **μƒμœ„ κ°œλ…**: [[Natural Language Processing (NLP)|NLP]], [[Machine Learning (Machine Learning)|Machine Learning]] * **ν™œμš© 기술**: [[Vector Database|Vector Database]], [[Vector Search|Vector Search]], [[Semantic Search|Semantic Search]] * **κ΄€λ ¨ 기법**: [[BERT|BERT]], [[TF-IDF|TF-IDF]] (Sparse Baseline) --- *Last updated: 2026-05-04*