Embeddings

Embedding'ler, modern doğal dil işleme (NLP) ve bilgi erişim (IR) sistemlerinin temel yapı taşlarından biridir. Metin, görüntü, ses gibi yapılandırılmamış verilerin yoğun (dense) sayısal vektör temsillerine dönüştürülmesi sürecine embedding denir. Bu rapor, embedding kavramını temelden ele alarak MTEB (Massive Text Embedding Benchmark) çerçevesindeki görev türlerini, değerlendirme metriklerini ve liderlik tablosu dinamiklerini hiyerarşik biçimde incelemektedir.

1. Temel Kavramlar

1.1 Embedding Nedir?

Embedding, bir veri parçasının (kelime, cümle, paragraf veya doküman) sabit uzunlukta, sürekli ve yoğun bir vektör uzayında temsil edilmesidir. Matematiksel olarak bir embedding fonksiyonu şu şekilde tanımlanır:

f: X → ℝ^d

Burada X girdi uzayını (örneğin tüm olası cümleler kümesi), d ise vektör boyutunu (dimension) temsil eder. Sonuç olarak her metin parçası, d boyutlu bir reel sayı vektörüne dönüştürülür.

Klasik metin temsillerinden (bag-of-words, TF-IDF) farklı olarak embedding'ler anlamsal (semantic) ilişkileri yakalar. "Köpek" ve "kedi" kelimeleri, vektör uzayında birbirine yakın konumlanırken "köpek" ve "ekonomi" birbirinden uzak düşer.

1.2 Embedding Ne İşe Yarar?

Embedding'ler aşağıdaki temel kullanım alanlarında kritik rol oynar:

  • Anlamsal Arama (Semantic Search): Kullanıcının sorgusunu ve dokümanları aynı vektör uzayına taşıyarak anahtar kelime eşleşmesi yerine anlam düzeyinde eşleşme sağlar.
  • Retrieval-Augmented Generation (RAG): Büyük dil modellerine (LLM) bağlam sağlamak için ilgili dokümanların vektör benzerliği üzerinden getirilmesi.
  • Kümeleme (Clustering): Benzer dokümanların veya cümlelerin otomatik olarak gruplandırılması.
  • Sınıflandırma (Classification): Metin vektörlerinin sınıflandırma modellerine girdi olarak kullanılması.
  • Yeniden Sıralama (Reranking): İlk aşamada getirilen sonuçların daha hassas bir modelle yeniden sıralanması.
  • Duygu Analizi ve Metin Benzerliği: İki metin arasındaki anlamsal yakınlığın ölçülmesi.

1.3 Temel Kavramlar ve Terminoloji

1.3.1 Vektör Boyutu (Dimension)

Bir embedding modelinin ürettiği vektörün eleman sayısıdır. Yaygın boyutlar 384, 768, 1024 ve 4096'dır. Daha yüksek boyut genellikle daha zengin temsil kapasitesi sunar ancak bellek ve hesaplama maliyetini artırır.

1.3.2 Benzerlik Metrikleri

İki vektör arasındaki yakınlığı ölçmek için kullanılan fonksiyonlardır:

  • Kosinüs Benzerliği (Cosine Similarity): İki vektör arasındaki açının kosinüsü. Değer aralığı [-1, 1]. En yaygın kullanılan metriktir.
  • Dot Product (İç Çarpım): Vektörlerin hem yönünü hem büyüklüğünü dikkate alır.
  • Öklid Mesafesi (L2 Distance): Vektörler arasındaki geometrik mesafe. Küçük değer daha yüksek benzerlik anlamına gelir.

1.3.3 Bi-Encoder vs Cross-Encoder

  • Bi-Encoder: Sorgu ve doküman bağımsız olarak encode edilir, ardından benzerlik hesaplanır. Hızlıdır, büyük ölçekli retrieval için uygundur.
  • Cross-Encoder: Sorgu ve doküman birlikte (concat edilmiş şekilde) modele verilir ve tek bir benzerlik skoru üretilir. Daha doğrudur ancak yavaştır; genellikle reranking aşamasında kullanılır.

1.3.4 Dense vs Sparse Embeddings

  • Dense Embedding: Her boyutta sıfır olmayan değerler içerir. BERT, Sentence-BERT ve modern embedding modelleri bu kategoridedir.
  • Sparse Embedding: Çoğu boyutun sıfır olduğu, yüksek boyutlu vektörler. BM25, SPLADE gibi modeller sparse temsil üretir. Anahtar kelime düzeyinde eşleşmede güçlüdür.

1.3.5 Matryoshka Representation Learning (MRL)

Tek bir modelin, vektörün ilk k boyutunun kesilmesiyle farklı boyutlarda kullanılabilir embedding'ler üretmesini sağlayan bir eğitim tekniğidir. Örneğin 1024 boyutlu bir modelin ilk 256 boyutu da anlamlı ve kullanılabilir bir temsil oluşturur. Bu, depolama ve hız optimizasyonu için önemli esneklik sağlar.

1.3.6 Instruction-Tuned Embeddings

Bazı modern modeller (E5-Mistral, GTE-Qwen2 vb.) encode işlemi sırasında bir talimat (instruction/prompt) alır. "Retrieve relevant documents for the query:" gibi bir önek ile modelin görev bağlamını anlaması sağlanır. Bu yaklaşım, aynı modelin farklı görevlerde daha iyi performans göstermesine yardımcı olur.

1.3.7 Quantization (Nicemleme)

Embedding vektörlerinin float32'den daha düşük hassasiyetli veri tiplerine (float16, int8, binary) dönüştürülmesidir. Bellek kullanımını ve arama süresini düşürür, performans kaybı genellikle sınırlı kalır.