Yapay Zekaya Giriş – Dense vs Sparse Vector Nedir?
Temel Kavramlar ve Kullanım Farkları (Detaylı Rehber)
Yapay zekâ, makine öğrenmesi ve özellikle vector database, semantic search ve RAG (Retrieval Augmented Generation) mimarileriyle ilgileniyorsanız, mutlaka şu iki kavramla karşılaşmışsınızdır:
👉 Dense Vector
👉 Sparse Vector
Bu yazıda, dense vs sparse vector nedir, arasındaki farklar nelerdir, hangi senaryoda hangisi kullanılmalı gibi sorulara net ve pratik cevaplar vereceğiz.
Vector Nedir? (Kısa Hatırlatma)
Vector, bir verinin sayısal temsilidir.
Metin, görsel, video, ses gibi veriler embedding modelleri tarafından vektörlere dönüştürülür.
Örnek:
“Kırmızı spor ayakkabı”
Bu metin → sayılar dizisi → vector
Ama bu vektörler dense veya sparse olabilir.
Dense Vector Nedir?
Dense vector, çoğu veya tüm elemanları sıfır olmayan (doluluk oranı yüksek) vektörlerdir.
Özellikleri
- Boyut sayısı sabittir (örneğin 384, 768, 1536)
- Her boyut anlam taşır
- Float değerler içerir
- Genellikle embedding modellerinden çıkar
Örnek
[0.021, -0.87, 0.33, 0.004, -0.12, ...]
Nerelerde Kullanılır?
- Semantic Search
- LLM + RAG
- Görsel / Video embedding
- Benzerlik arama (cosine similarity)
Popüler Dense Embedding Modelleri
- OpenAI embeddings
- Sentence Transformers
- CLIP (image + text)
- Gemini / Cohere embeddings
Sparse Vector Nedir?
Sparse vector, çok yüksek boyutlu olup elemanlarının büyük kısmı 0 olan vektörlerdir.
Özellikleri
- Boyut sayısı çok büyüktür (10K – 1M+)
- Sadece birkaç indeks doludur
- Genelde keyword / token tabanlıdır
- Bellek dostu özel formatlarla saklanır
Örnek
index: [12, 98, 1043]
value: [1.0, 0.8, 0.3]
Nerelerde Kullanılır?
- Keyword Search
- BM25 / TF-IDF
- Exact match senaryoları
- Search engine altyapıları
Popüler Sparse Yaklaşımlar
- TF-IDF
- BM25
- SPLADE
- ElasticSearch inverted index
Dense vs Sparse Vector Karşılaştırması
| Özellik | Dense Vector | Sparse Vector |
|---|---|---|
| Boyut | Düşük (384–1536) | Çok yüksek (binlerce) |
| Veri | Float | Genelde int/float |
| Anlam | Semantik | Keyword / token |
| Zero oranı | Düşük | Çok yüksek |
| Search tipi | Anlamsal | Kelime bazlı |
| Performans | GPU/ANN odaklı | CPU/Index odaklı |
Hangisi Ne Zaman Kullanılmalı?
Dense Vector Kullanmalısın Eğer:
- “Anlamca benzer” sonuç istiyorsan
- Kullanıcı doğal dil soruları soruyorsa
- LLM destekli sistem yapıyorsan
- Görsel, video veya ses arıyorsan
📌 Örnek:
“Koşu için rahat ayakkabı”
Kelime birebir geçmese bile doğru sonuç gelir.
Sparse Vector Kullanmalısın Eğer:
- Kelime bazlı exact match gerekiyorsa
- Filtreleme ve ranking çok önemliyse
- Arama motoru performansı kritikse
📌 Örnek:
“nike air zoom pegasus 40”
Ürün kodu, model adı birebir yakalanır.
Hybrid Search: Dense + Sparse Birlikte
Modern sistemler artık hybrid search kullanıyor.
Nasıl Çalışır?
- Dense vector → anlamsal benzerlik
- Sparse vector → keyword doğruluğu
- Skorlar birleştirilir
Kullanan Sistemler
- Pinecone
- Weaviate
- Milvus
- ElasticSearch (dense_vector + BM25)
💡 En iyi sonuç = Dense + Sparse
RAG Mimarilerinde Dense vs Sparse
| Katman | Kullanım |
|---|---|
| Document chunking | Dense |
| Semantic retrieval | Dense |
| Keyword filter | Sparse |
| Re-ranking | Hybrid |
RAG’de genelde:
- %70 Dense
- %30 Sparse
yaklaşımı kullanılır.
Performans ve Maliyet Karşılaştırması
Dense Vector
- ❌ Daha fazla RAM
- ❌ GPU gerekebilir
- ✅ Daha akıllı sonuçlar
Sparse Vector
- ✅ CPU dostu
- ✅ Daha ucuz storage
- ❌ Anlamsal zayıflık
SEO Açısından Özet
Bu yazıda:
- dense vector nedir
- sparse vector nedir
- dense vs sparse farkları
- vector search kullanım alanları
- RAG ve hybrid search
gibi yüksek arama hacimli kavramları detaylıca ele aldık.
Sonuç
👉 Anlam arıyorsan → Dense Vector
👉 Kelime doğruluğu istiyorsan → Sparse Vector
👉 Gerçek dünya sistemi kuruyorsan → Hybrid Search
Neden Sparse Vector’da çoğu değer 0?
Çünkü sparse vector’ler genelde feature-based (özellik tabanlı) çalışır:
Her boyut = bir kelime / token / özellik
Yani vektör şu mantıkta:
index 0 → "araba"
index 1 → "kırmızı"
index 2 → "hızlı"
index 3 → "uçak"
index 4 → "bilgisayar"
...
Bir doküman düşün:
“kırmızı araba çok hızlı”
Bu cümlede:
- “kırmızı” ✅
- “araba” ✅
- “hızlı” ✅
Ama: - “uçak” ❌
- “bilgisayar” ❌
Sonuç:
[1, 1, 1, 0, 0, 0, 0, 0, ...]
👉 Dokümanda geçmeyen her kelime = 0
Bağımsız mı?
Evet kanka, matematiksel olarak bağımsız (independent features):
- Her boyut ayrı bir anlam taşır
- Bir boyut diğerini etkilemez
- Aralarında semantik ilişki yoktur
Örnek:
- “araba” boyutu
- “otomobil” boyutu
Sparse vector için:
👉 Bunlar iki ayrı index
👉 Aralarında anlam bağı yok
👉 Sistem bilmez ki bunlar aynı şey
Dense Vector’da neden 0 yok?
Çünkü dense vector:
- Feature-based değil
- semantic-based (anlam temsili)
Her boyut:
“Bu anlamın bir bileşeni”
Yani boyutlar:
- kelime değil
- kavram değil
- özellik değil
- latent space (gizli uzay)
Bu yüzden:
- Hepsi birbirine bağlı
- Hepsi birlikte anlam oluşturur
- Bağımsız feature değildir
Kısa Karşılaştırma (Beyne Kazınsın Diye 😄)
Sparse:
Her boyut = 1 kelime
Bağımsız
0 = yok
1 = var
Dense:
Her boyut = anlam bileşeni
Bağımsız değil
0 yok denecek kadar az
Hepsi birlikte anlam üretir
Basit Analojisi
Sparse Vector = Checkbox Form 📝
- Elma ⬜
- Armut ⬜
- Muz ⬜
- Çilek ⬜
İşaretli olanlar 1, diğerleri 0
➡️ bağımsız
➡️ ilişkisiz
Dense Vector = DNA 🧬
- Tek tek genler anlamsız
- Birlikte organizmayı oluşturur
➡️ bağımsız değil
➡️ bütünsel anlam
Cevap (Net):
“Sparse vector’da 0 olmasının sebebi hepsi birbirinden bağımsız mı?”
✅ Evet
Ama daha doğru cümle:
👉 Sparse vector = bağımsız feature temsili
👉 0 = “bu özellik bu veride yok”
👉 Anlam ilişkisi yok
👉 Sadece var/yok veya ağırlık bilgisi var
Tek cümlelik özet:
Sparse vector = kelime var mı yok mu matrisi
Dense vector = anlam uzayı (semantic space)
Yorum gönder