Tüm yazılar
Matematik26 Kasım 2024

Semantik Arama: Anlama Dayalı Modern Bilgi Erişimi

Anahtar kelime eşleştirme bitti. Modern arama "anlam"ı arar. Bu sayede "kedi" arayan kişi "yavru kedi" hakkında doğru içeriği bulur.

Matematik Karavanı 5 dk okuma 5 soru
Büyüteç — semantik arama metaforu

"Kelime değil, anlam ara"

Klasik arama: kelime eşleştir.

  • "Ankara hava durumu" → "Ankara" + "hava" + "durumu" geçen sayfalar.
  • Ama "Başkent havası nasıl?" gibi soru karşısında başarısız.

Modern arama: anlam eşleştir.

  • Hem "Ankara" hem "Başkent", hem "hava" hem "iklim" → aynı anlam.

Bu semantik arama.

Temel mekanizma

Adım 1: Embedding

Her belgeyi (ve sorguyu) vektöre çevir:

  • Sentence-BERT, OpenAI embedding API, BERT, vs.
  • 384-1536 boyutlu vektör.

Adım 2: Vector database

Vektörleri hızlı arama için sakla.

Adım 3: Similarity

Sorgu vektörüne en yakın belgeleri bul.

Adım 4: Rank

En iyi N sonuç döndür.

Benzerlik ölçüleri

Cosine similarity

cos(θ)=ABAB\cos(\theta) = \frac{A \cdot B}{\|A\| \|B\|}

Yön karşılaştırması, büyüklükten bağımsız. En popüler.

Dot product

Normalize edilmemiş vektörler için.

Euclidean distance

Geometrik uzaklık.

Manhattan distance

L1 uzaklığı.

Modern embedding'ler genelde L2-normalized → cosine = dot product.

Yaklaşık komşu (ANN)

Milyonlarca vektörü gerçek zamanlı aramak için:

  • Exact arama: O(N) — yavaş.
  • Approximate Nearest Neighbor: O(log N) — hızlı, küçük hata.

Algoritmalar

  • HNSW: Hierarchical Navigable Small World — hızlı, yüksek doğruluk.
  • IVF: Inverted File — bin'lere ayır.
  • PQ: Product Quantization — sıkıştırma.
  • LSH: Locality Sensitive Hashing.

FAISS, ScaNN, Annoy, Hnswlib açık kaynak kütüphaneler.

Vector databases

  • Pinecone: yönetilen.
  • Weaviate: açık kaynak.
  • Qdrant: Rust.
  • Milvus: ölçeklenebilir.
  • Chroma: kolay başlangıç.
  • pgvector: Postgres uzantısı.

Hybrid search

Klasik (BM25) + semantik kombinasyonu:

  • BM25 kesin terimler için iyi (isim, kod).
  • Semantik anlam için iyi.
  • İkisini birleştir → en iyi sonuç.

Modern arama motorları (Google, Elasticsearch) hybrid kullanır.

Modern uygulamalar

Google Search

2019'dan beri BERT tabanlı semantik anlama. 2024'te Gemini.

RAG

LLM'e ilgili belgeleri semantik arama ile getir.

Recommender systems

Spotify, Netflix benzer içerik önerme.

Code search

GitHub Copilot kod parçası bulma.

Image search

CLIP modeli: metin → görüntü arama.

Question answering

"Soru" vektörü → "cevap" vektörüne en yakın.

BM25 ile karşılaştırma

BM25Semantik
KelimeTam eşleşmeAnlam
HızÇok hızlıOrta (ANN ile)
DoğrulukEşanlamlı kaçırırAnlamı yakalar
BilgiYokPre-training
Yeni terimSorun yokYeniden eğitim

Çoklu modalite

Modern arama:

  • Text-to-text: klasik.
  • Text-to-image: CLIP.
  • Image-to-image: vision encoder.
  • Audio-to-text: Whisper + embedding.

Türkçe semantik arama

Sorun: çoğu pre-trained model İngilizce ağırlıklı.

Çözüm:

  • BERTurk embedding.
  • Multilingual BERT veya MPNet.
  • Cohere multilingual.
  • OpenAI text-embedding-3 (Türkçe destekli).

Pratik öneriler

Embedding seçimi

  • OpenAI text-embedding-3-small: ucuz, iyi.
  • OpenAI text-embedding-3-large: en iyi.
  • Cohere embed-multilingual-v3: Türkçe iyi.
  • Açık: gte, bge ailesi.

Boyut indirgeme

Matryoshka embeddings: aynı vektörün kesilmiş versiyonu daha hızlı arama.

Cache

Sık sorulan sorguların sonucunu cache'le.

Türk endüstri için

  • Trendyol: ürün arama (semantik + hybrid).
  • Sahibinden: ilan arama.
  • Hepsiburada: öneri.
  • Bankalar: bilgi tabanı.
  • TÜBİTAK ULAKBİM: akademik arama.

Sınırlamalar

  • Domain-specific: tıp, hukuk için özel embedding.
  • Çok dilli: dil seçimi önemli.
  • Cold start: yeni belge için embedding hesaplama.
  • Maliyet: vektör boyutu × belge sayısı.

Felsefe

Semantik arama temel mesajı: "Bilgi formdan değil anlamdan ibarettir".

Klasik arama: kelime. Modern arama: kavram.

Kapanış

Semantik arama, modern bilgi erişimin yeni standardı. RAG'in temeli, modern Google'ın motoru.

Bir mühendisin olgunluk işareti: ne zaman BM25, ne zaman semantik, ne zaman hybrid kullanacağını bilmek.

Anahtar kelime arama çağı bitti.

Etiketler

semantik aramaembeddingcosine similarityRAGmodern arama

Kendinizi Test Edin

Cevaplarınız profilinizde istatistik olarak saklanır.

1. Semantik arama farkı?

2. En popüler benzerlik ölçüsü?

3. Hybrid search?

4. ANN ne ifade eder?

5. Türkçe için iyi embedding?