Information Geometry and Manifold Intuition: Why Embeddings Are Meaningful
Geometric anatomy of embedding space: manifold hypothesis, t-SNE/UMAP visualization, cosine vs Euclidean metric, Riemannian geometry intuition, Fisher information, natural gradient, embedding rotation invariance. This lesson completes Module 1.
Şükrü Yusuf KAYA
40 min read
Intermediate🌐 Embedding'lerin gizemi
Bir LLM'in 4096-boyutlu embedding'i — neden 'kral - erkek + kadın = kraliçe' çalışıyor? Neden cosine similarity ile retrieval yapabiliyoruz? Neden t-SNE plot'larında benzer kavramlar yan yana? Bu dersin sonunda, bunlar 'sihir' olmaktan çıkıp manifold geometrisinin doğal sonucu olarak görünecek. Modül 1'i kapatırken matematiksel dünya görüşünü tamamlayacağız.
Ders Haritası#
- Yüksek boyut paradoksu: 4096-d uzayda hayat
- Manifold hipotezi: gerçek veri "ince" yapılarda yaşar
- Embedding nasıl bir manifold çiziyor
- Cosine vs Euclidean — hangi metric ne zaman
- t-SNE ve UMAP: 4096-d → 2D görselleştirme
- Riemannian geometri sezgisi
- Fisher information ve natural gradient
- Rotation invariance: embedding'lerin "döndürmek serbest"
- Modern uygulamalar: retrieval, clustering, semantic search
1. Yüksek Boyut Paradoksu#
3D dünyada yaşıyoruz. Beynimiz 4-5 boyut hayal edebiliyor. Llama 3 embedding'i 4096-d. Burada sezgilerimiz çuvallar.
Yüksek boyutta tuhaflıklar#
Hipersfer hacmi: d boyutlu birim küre'nin hacmi d arttıkça → 0. Hacim "kabuğa" sıkışır. d=4096'da neredeyse tüm hacim küre yüzeyine yakın.
Mesafeler eşitleşir: rastgele d-boyutlu vektörlerden ikisi arasındaki mesafe → etrafında yoğunlaşır. Tüm noktalar "aynı uzaklıkta" görünür.
√dimport torch d = 4096 N = 1000 points = torch.randn(N, d) # Pairwise distance dağılımı dists = torch.cdist(points, points) mask = torch.triu(torch.ones_like(dists), diagonal=1).bool() upper = dists[mask] print(f"Mean: {upper.mean():.2f}, Std: {upper.std():.2f}") # Mean ~90.5, Std ~1.0 — çok dar dağılım
Curse of dimensionality: k-NN, kernel density estimation gibi metric-based metodlar yüksek boyutta çuvallar.
Niye o zaman embedding'ler çalışıyor?#
Çünkü gerçek veri rastgele değil. Gerçek veri yüksek boyutta ama alt-boyutlu bir manifold üzerinde yatıyor. Sezgi:
4096-d uzayda, anlamlı dilin yaşadığı yer 4096-d küre değil; çok daha düşük boyutlu eğri yüzey (manifold).
2. Manifold Hipotezi#
Manifold Hypothesis: gerçek dünyadaki yüksek boyutlu veri, gerçekte düşük boyutlu bir manifold üzerinde yaşar. (Bengio & LeCun 2007)
Sezgi: insan yüzü#
Bir insan yüzü fotoğrafı 256×256×3 = 196,608 piksel. Yani 196,608-d uzayda bir nokta. Ama gerçek insan yüzleri bu uzayın çok küçük bir alt kümesinde — belki birkaç yüz boyutlu bir manifold üzerinde.
- "Saç rengi" değişir → manifold üzerinde bir eksen
- "Yaş" değişir → başka bir eksen
- "Gülümseme miktarı" → başka bir eksen
- ...
Gerçek yüzler arasında smooth interpolation mümkün (StyleGAN'in kanıtladığı). Bu manifold yapısının doğal sonucu.
Dil için manifold#
Bir Türkçe cümle ~30 token. Her token 4096-d embedding. Sequence olarak 30×4096 = 122,880-d.
Tüm bu uzaydaki noktalar anlamlı cümle değil — çoğu noise. Anlamlı cümleler manifold üzerinde:
- Anlam ekseni
- Zaman/kip ekseni
- Hitap/tonlama ekseni
- Konu ekseni
- ...
LLM eğitimi, bu manifold'u örtük olarak öğreniyor. Sonra üzerinde "gezinerek" sonraki token tahminini yapıyor.
Aghajanyan 2020 — intrinsic dimensionality#
Aghajanyan ve diğerleri, pretrain edilmiş BERT/RoBERTa'nın intrinsic dimension'ının ~100-200 olduğunu gösterdi (4096-d parametre uzayında!). Bu LoRA'nın matematiksel temeli (Ders 1.2'de gördük).
3. Embedding Nasıl Bir Manifold Çiziyor?#
LLM'in embedding katmanı her token'a bir 4096-d vektör veriyor. Token'lar uzayda nasıl yerleşir?
Klasik gözlem (Mikolov 2013, Word2Vec)#
king - man + woman ≈ queen Paris - France + Italy ≈ Rome walk - walked + ran ≈ run
Yani embedding uzayında anlamlı aritmetik mümkün. Bu manifold üzerindeki yönlerin anlamlı olduğunu söyler:
- "Cinsiyet" yönü
- "Coğrafya" yönü
- "Zaman/kip" yönü
Modern LLM (Llama, Qwen) için#
Aynı yapı geçerli ama daha karmaşık. Hidden state (her layer'da güncellenen aktivasyon) embedding'den daha "anlamlı":
- İlk layer'larda: sözdizimsel özellikler
- Orta layer'larda: anlam kompozisyonu
- Son layer'larda: görev-spesifik temsil
Probing experiments (Tenney 2019, BERTology) — her layer'da farklı bilgi katmanları.
Görselleştirme#
t-SNE veya UMAP ile 4096-d → 2D:
- Benzer konular bir araya gelir
- Çoklu dil modeli "İngilizce" ve "Türkçe" cluster'larını oluşturur ama aynı konu yakın olur
- Sentiment, named entity, topic gibi semantik özellikler örtüşüyor
4. Cosine vs Euclidean — Hangi Metric Ne Zaman?#
Euclidean (L2) distance#
Klasik metrik. Aynı yöndeki iki vektör eğer magnitude farklıysa uzak. Pratikte LLM embedding'lerinde bu uygun değil çünkü magnitude semantik bilgi taşımıyor.
Cosine similarity#
Magnitude'a duyarsız, sadece yön. [-1, 1] aralığında: 1 = aynı yön, 0 = dik, -1 = ters.
Cosine distance: . Veya angular distance: .
1 - cos(θ)arccos(cos(θ)) / πHangi durumda hangi?#
| Senaryo | Önerilen | Neden |
|---|---|---|
| LLM/BERT embedding retrieval | Cosine | Magnitude noise |
| Geometric data (3D positions) | Euclidean | Magnitude anlamlı |
| Normalized embedding | İkisi de OK (eşdeğer) | L2 normalize sonrası eşit |
| Hyperspherical models | Cosine veya angular | Doğal metric |
| KNN classification | Bağlam-dependent | Domain kararı |
Önemli numerik gerçek#
Eğer embedding'ler L2 normalize ediliyorsa ():
||x|| = 1Yani cosine ile Euclidean monotonic olarak ilişkili — sıralama aynı. Pratik: embedding'leri normalize et, sonra ister cosine ister Euclidean kullan.
python
import torchimport torch.nn.functional as F # Rastgele embedding'ler — magnitude farklıtorch.manual_seed(0)e1 = torch.randn(128)e2 = torch.randn(128)e3 = e1 * 5.0 # e1 ile aynı yönde, 5x magnitude # Cosine similaritycos = F.cosine_similarity(e1.unsqueeze(0), e2.unsqueeze(0)).item()cos_e1_e3 = F.cosine_similarity(e1.unsqueeze(0), e3.unsqueeze(0)).item()print(f"cos(e1, e2) = {cos:.4f}") # rastgele yakın 0print(f"cos(e1, e3) = {cos_e1_e3:.4f}") # 1.0 (aynı yön) # Euclideaneuc = (e1 - e2).norm().item()euc_e1_e3 = (e1 - e3).norm().item()print(f"euc(e1, e2) = {euc:.4f}") # ~16print(f"euc(e1, e3) = {euc_e1_e3:.4f}") # ~45 (5x magnitude farkı!) # Aynı yön ama Euclidean'da uzak — magnitude tuzağı# Bu yüzden LLM'de cosine standart # Pratik: L2 normalize sonra her şey kolaye1_n = e1 / e1.norm()e2_n = e2 / e2.norm()print(f"normalized cos = dot: {(e1_n @ e2_n).item():.4f}")print(f"normalized euc² = 2 - 2cos: {(e1_n - e2_n).norm().pow(2).item():.4f} vs {2 - 2*cos:.4f}")Cosine vs Euclidean: magnitude'ın etkisi + normalize ilişkisi.
5. t-SNE ve UMAP — Yüksek Boyutu Görselleştirme#
4096-d embedding'i 2D'de görmek için boyut indirme. İki popüler yöntem:
t-SNE (van der Maaten 2008)#
- Joint probability'ı korur
- Lokal yapıyı çok iyi korur
- Global yapı bozulur — küme arası mesafeler güvenilmez
- Yavaş (O(N²))
- Hyperparameter sensitive (perplexity)
UMAP (McInnes 2018)#
- Fuzzy simplicial set teorisi
- Hem lokal hem global yapı korunur
- Hızlı (O(N log N))
- t-SNE'den daha az hyperparameter
- Hem visualization hem dimensionality reduction (örn. 4096 → 50)
LLM bağlamı#
- Embedding kalitesini görsel kontrol: BERTurk vs multilingual-E5 vs mE5 karşılaştırması
- Cluster analysis: hangi document grupları doğal olarak yakın?
- Anomaly detection: dataset'te outlier'lar nerede?
- Model probing: layer-wise representations nasıl evrim geçiriyor?
Pratik uyarı#
t-SNE / UMAP eğitim metrici değil, visualization aracı. "İki nokta 2D'de yakın görünüyor" derken, gerçek 4096-d uzayda da yakındır demek değil. Cosine similarity üzerinden ölç, t-SNE'ye sadece görsel için güven.
python
# Embedding visualization# pip install scikit-learn umap-learn import torchimport numpy as np # Sentetik: 5 kümeden 100'er nokta, 128-dtorch.manual_seed(0)clusters = [torch.randn(128) * 2 + i * 5 for i in range(5)]data = torch.cat([c.unsqueeze(0).repeat(100, 1) + torch.randn(100, 128) * 0.3 for c in clusters])labels = torch.cat([torch.full((100,), i) for i in range(5)]) print(f"Veri shape: {data.shape}") # (500, 128) # t-SNEfrom sklearn.manifold import TSNEtsne = TSNE(n_components=2, perplexity=30, random_state=0)data_2d_tsne = tsne.fit_transform(data.numpy())print(f"t-SNE çıktısı: {data_2d_tsne.shape}") # (500, 2) # UMAP (eğer kurulu ise)try: import umap reducer = umap.UMAP(n_neighbors=15, min_dist=0.1, random_state=0) data_2d_umap = reducer.fit_transform(data.numpy()) print(f"UMAP çıktısı: {data_2d_umap.shape}")except ImportError: print("UMAP not installed") # Görsel:# import matplotlib.pyplot as plt# fig, axes = plt.subplots(1, 2, figsize=(12, 5))# axes[0].scatter(data_2d_tsne[:, 0], data_2d_tsne[:, 1], c=labels, cmap='tab10')# axes[0].set_title("t-SNE")# axes[1].scatter(data_2d_umap[:, 0], data_2d_umap[:, 1], c=labels, cmap='tab10')# axes[1].set_title("UMAP")t-SNE ve UMAP ile 128-d → 2D görselleştirme.
6. Riemannian Geometri Sezgisi#
Öklid uzayı: düz (curvature = 0). Mesafe .
Riemannian manifold: eğri uzay. Mesafe geodesic — manifold üzerinde en kısa eğri.
||x - y||Embedding'ler için ne anlama geliyor?#
LLM embedding manifold'u Öklid değil — eğri bir yüzey. İki nokta arasındaki gerçek anlamsal mesafe, Öklid distance'ı değil, manifold üzerinde geodesic'tir.
Pratikte:
- Cosine similarity, küre üzerindeki angular distance'a karşılık geliyor (hyperspherical embedding varsayımı altında)
- Bazı modeller (hyperbolic embedding, Poincaré embeddings) açıkça non-Euclidean geometri kullanıyor — hierarchy modelleme için
Hyperbolic embedding (sklenkilis)#
Nickel & Kiela 2017: kavramlar hyperbolic uzayda daha iyi yerleşiyor (ağaç-benzeri hierarchy için). Cosine'in WordNet hierarchy'sini iyi koruyamadığı yerde Poincaré disk koruyor.
LLM'lerde mainstream değil ama niche research aktif.
Tangent space#
Bir manifold üzerindeki bir noktada, tangent uzay (yerel olarak Öklid) tanımlıdır. Gradient descent ya da fine-tuning aslında bu tangent space'te oluyor — küçük adımlar için Öklid yaklaşımı iyidir.
Bu yüzden:
- Küçük learning rate → tangent space'te dolaş, manifold'da kal
- Büyük learning rate → manifold'dan "uç" → instability
7. Fisher Information ve Natural Gradient#
Fisher information#
Bir model için, parametre etrafındaki bilgi miktarı:
P(x | θ)θÇok değişkenli için: Fisher information matrix (FIM), .
d × dSezgi: 'yı küçük değiştirsem dağılım ne kadar değişir? FIM yüksek = küçük değişiklik bile büyük etki.
θNatural gradient (Amari 1998)#
Klasik gradient descent: . Bu, parametre uzayında Öklid metric varsayar.
θ ← θ - η ∇LAma parametre uzayı aslında bir manifold — bazı yönlerde küçük adım büyük etki, bazılarında tersi. Natural gradient bunu düzeltir:
FIM'in inverse'ü ile yeniden ölçeklendirir.
Avantajlar#
- Yeniden parametrizasyon invariant: parametre değiştirme stratejine bağlı değil
- Optimizer hızlandırması: daha az iterasyonda yakınsar
- K-FAC ve Shampoo optimizer'larının matematiksel temeli
Pratik#
Tam FIM hesabı — LLM ölçeğinde imkânsız. Yaklaşımlar:
- Diagonal FIM → Adam zaten approximate yapıyor
- Block-diagonal FIM → K-FAC
- Low-rank FIM → Shampoo
Modül 17 (Distributed Training) bunu derinleştirir.
8. Embedding Rotation Invariance#
Önemli ama az bilinen gerçek: bir LLM'in embedding'i, rotation'a göre invariant değildir, ama anlamsal olarak rotation tek başına bilgi taşımaz.
Ne demek?#
Bir orthogonal matris ile tüm embedding'leri çarp (). Aynı zamanda model'in bütün matrislerini ile sol-çarp et. Sonuç fonksiyonel olarak özdeş model.
RE' = E RR^TPratik etkisi:
- İki ayrı LLM'in embedding'leri, aynı corpus üzerinde eğitilse bile rotated olabilir
- Direct comparison anlamsız: önce alignment (Procrustes analysis) gerekiyor
- Embedding "tek bir anlam vektörü" değil; bir uzay — uzaydaki ilişkiler anlamlı
Pratik consequence: cross-model alignment#
Llama embedding'i ile Qwen embedding'i karşılaştırmak istersen → linear projection layer eğit (örn. CCA, Procrustes). Bu modern multilingual ve multi-model alignment'ın temeli.
9. Modern Uygulamalar — Embedding'in Hayatı#
Retrieval (RAG)#
Document'leri embed et → vector DB'ye koy. Query'i embed et → top-k cosine similar bulun. Modül 41'de detayda.
Clustering / Topic Modeling#
Document embedding'leri → K-means → otomatik topic'ler. Klasik LDA'dan çok daha güçlü (semantic).
Semantic Search#
"Türkiye ekonomik durum" → embedding → "Türk ekonomisi GDP analizi" gibi makalelere yakın. Keyword match değil semantic.
Recommender Systems#
User'ın etkileşim geçmişi → user embedding. Item embedding. Cosine ile öner. Two-tower architecture.
Outlier Detection#
Embedding cluster'larından uzak noktalar → anormal. Customer support'ta fraud, content moderation'da policy violation.
Cross-modal#
CLIP: image embedding + text embedding aynı uzayda → "köpek fotoğrafı bul" sorgusu için image vs text karşılaştırma.
10. Mini Egzersizler#
-
Yüksek boyut entropisi: 4096-d uniform küre üzerinden 1000 nokta sample. Pairwise distance dağılımının mean ve std'sini hesapla. Beklediğin yaklaşık değer?
-
Cosine eşitliği: Embedding L2 normalize edildi. Eğer iki vektör cosine sim 0.95 ise, Euclidean distance kaç?
-
t-SNE caveat: Bir embedding'in 4096-d cosine matrix'ini, 2D t-SNE plot'ından doğrudan çıkartabilir misin? Niye/Niye değil?
-
Manifold dimensionality: Aghajanyan 2020 BERT-base intrinsic dim ~100. Bu, LoRA rank=16'nın çoğu görevde yeterli olmasıyla nasıl uyumlu?
-
Natural gradient pratik: Adam, doğal gradient'in hangi yaklaşımıdır? Hangi varsayımı yapıyor?
Bu Derste Neler Öğrendik?#
✓ Yüksek boyut paradoksu: 4096-d'de mesafeler eşitleşir
✓ Manifold hipotezi: gerçek veri düşük-boyutlu yapıda yaşar
✓ Embedding manifold'u: anlamsal yönler ortaya çıkıyor
✓ Cosine vs Euclidean: normalize sonrası eşdeğer
✓ t-SNE ve UMAP: visualization, eval değil
✓ Riemannian geometri: tangent space, geodesic
✓ Fisher information ve natural gradient
✓ Rotation invariance ve cross-model alignment
✓ 9 modern uygulama: RAG, clustering, semantic search, vb.
🎉 Modül 1 Tamamlandı!#
Toplam 10 ders, ~400 dakika içerik. Cephaneliğin tam:
- Lineer cebir → matris ayrıştırma → kalkulus → autograd
- Olasılık → MLE/MAP → bilgi teorisi
- Optimizasyon → numerik stabilite → geometri
Sıradaki Modül#
Modül 2 — PyTorch'tan Önce: NumPy ve Otomatik Türev Sıfırdan
NumPy'nin kalbi (strides, broadcasting), computational graph derinden, reverse vs forward autodiff, tensor autograd sıfırdan, PyTorch ekosisteminin tarihsel arka planı.
Frequently Asked Questions
Philosophy with strong empirical support. (1) **Adversarial examples**: small perturbations break models → some directions 'off-manifold'. (2) **Diffusion models**: training interpreted as **projection onto manifold**. (3) **Aghajanyan 2020 intrinsic dim**: BERT-base ~100-d (in 110M-d parameter space!) — manifold is real. (4) **Generative models**: smooth interpolation → walking on manifold. Philosophy: why real-world data lives on manifold is open. Practice: methods built on this assumption (PCA, t-SNE, UMAP, manifold learning) work.
Yorumlar & Soru-Cevap
(0)Yorum yazmak için giriş yap.
Yorumlar yükleniyor...
Related Content
Module 0: Course Framework & Workshop Setup
Who Is an LLM Engineer? The AI Engineering Career Ladder from Junior to Staff
Start LearningModule 0: Course Framework & Workshop Setup
Course Philosophy: Why This Path, Why This Order — The Skeleton of an 8-Month Curriculum
Start LearningModule 0: Course Framework & Workshop Setup