Embedding nedir? One-hot encoding'e göre avantajı nedir ve nerelerde kullanılır?
Cevap
Embedding, kelime, ürün, kullanıcı gibi ayrık (discrete) nesneleri anlamsal benzerliği koruyan yoğun (dense), düşük boyutlu sürekli vektörlere dönüştürmektir. Benzer anlamdaki nesnelerin vektörleri uzayda birbirine yakın düşer.
One-hot ile farkı
| Özellik | One-hot | Embedding |
|---|---|---|
| Boyut | Vocabulary boyutu (örneğin 100.000) | Küçük (örneğin 256–4096) |
| Seyreklik | Tek bir 1, gerisi 0 | Yoğun |
| Benzerlik | Tüm vektörler birbirine eşit uzaklıkta | Anlamsal benzerlik mesafeye yansır |
| Öğrenme | Sabit | Eğitimle öğrenilir |
Teknik olarak bir embedding katmanı, one-hot vektörle bir ağırlık matrisinin çarpımına eşdeğer bir lookup tablosudur.
import torch, torch.nn as nn
emb = nn.Embedding(num_embeddings=50_000, embedding_dim=512)
vecs = emb(torch.tensor([[12, 873, 4]])) # (1, 3, 512)Gelişim
- Statik embedding (word2vec, GloVe): Her kelimenin tek vektörü vardır. "yüz" kelimesi (sayı veya surat) aynı vektörü alır.
- Bağlamsal (contextual) embedding (BERT, LLM'ler): Aynı kelime cümleye göre farklı vektör alır.
- Cümle/doküman embedding modelleri: Contrastive learning ile eğitilir, metnin tamamını tek bir vektöre çevirir. RAG ve semantik arama bunlara dayanır. Türkçe için çok dilli (multilingual) modeller tercih edilmelidir.
Kullanım alanları
Semantik arama ve RAG, öneri sistemleri (kullanıcı ve ürün embedding'leri), yüksek kardinaliteli kategorik özellikler, kümeleme, duplicate tespiti, anomali tespiti.
Benzerlik genelde cosine similarity ile ölçülür. Vektörler normalize edilirse cosine benzerliği nokta çarpımına eşit olur ve vector DB'lerde hızlı hesaplanır.
İlgili Derin Öğrenme soruları
- NumPy ile sayısal olarak kararlı (numerically stable) softmax ve cross-entropy loss yazın. Logit'lere göre gradyanı nedir?
- PyTorch ile bir sınıflandırma modeli için eksiksiz bir training loop yazın. Hangi adımlar sık unutulur?
- Transfer learning nedir? Önceden eğitilmiş bir modeli küçük bir veri setine nasıl fine-tune edersiniz?
- Transformer mimarisini anlatın. Encoder-only, decoder-only ve encoder-decoder modeller arasındaki fark nedir?
- Self-attention nasıl çalışır? Scaled dot-product attention'ı NumPy ile yazın ve neden sqrt(d_k) ile bölündüğünü açıklayın.
- RNN ve LSTM nasıl çalışır? Transformer'lar neden büyük ölçüde onların yerini aldı?
Bu konuda başka bir soru biliyor musun?
Mülakatta karşılaştığın soruları ekle, onaylandıktan sonra yayına alınsın.