Yapay Zekaya Giriş – Dense vs Sparse Vector Nedir?

Temel Kavramlar ve Kullanım Farkları (Detaylı Rehber)

Yapay zekâ, makine öğrenmesi ve özellikle vector databasesemantic 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 nedirarasındaki farklar nelerdirhangi 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ı

ÖzellikDense VectorSparse Vector
BoyutDüşük (384–1536)Çok yüksek (binlerce)
VeriFloatGenelde int/float
AnlamSemantikKeyword / token
Zero oranıDüşükÇok yüksek
Search tipiAnlamsalKelime bazlı
PerformansGPU/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

KatmanKullanım
Document chunkingDense
Semantic retrievalDense
Keyword filterSparse
Re-rankingHybrid

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