Semantic Search
Anlamsal arama, gömmeler, en yakın komşu araması ve yeniden sıralayıcılar kullanarak belgeleri ve görüntüleri sorgunun tam sözcükleri yerine anlamına göre sıralar.
Anlamsal arama; belgeleri, görüntüleri veya diğer öğeleri, sorguyla paylaştıkları sözcüklere göre değil, anlamlarının sorgunun anlamına ne kadar yakın olduğuna göre sıralar. "Kedim aç" araması, iki metinde ortak sözcük bulunmasa bile "Yeni bir yavru kedinin beslenme programı" başlıklı bir sayfayı döndürebilir. Modern sistemler bunu gömme vektörleri ile yapar: bir sinir ağı kodlayıcısı sorguları ve öğeleri, anlamları benzer olduğunda birbirine yakın duran vektörlere eşler; vektör araması de en yakın öğeleri bulur. Google, 2019'da arama sorgularını anlamak için BERT'i kullanmaya başladığında web araması bu yönde ilerledi. Şirket, bu değişikliğin ABD'deki İngilizce aramaların onda birini etkilediğini söyledi.
Anlamsal Arama Nasıl Çalışır#
Çoğu anlamsal arama sistemi, çift kodlayıcıyla sonuç getirir ve yeniden sıralayıcıyla iyileştirir. Çift kodlayıcı her belgeyi önceden bir kez gömme vektörüne dönüştürür ve vektörler bir vektör veritabanına kaydedilir. Sorgu sırasında yalnızca sorgu gömme vektörüne dönüştürülür; yaklaşık en yakın komşu dizini, adayları kosinüs benzerliğine göre sıralayıp ilk sıradakileri döndürür. (2019) tarihli Sentence-BERT, bu yaklaşımı cümleler için uygulanabilir kıldı: 10.000 cümle arasındaki en benzer çifti bulmak, BERT çapraz kodlayıcısıyla yaklaşık 65 saat, cümle gömme vektörleriyle ise yaklaşık 5 saniye sürüyordu. Ardından Dense Passage Retrieval (2020), öğrenilmiş gömme vektörlerinin açık alanlı soru yanıtlama görevlerinde en iyi 20 metin parçasını getirme doğruluğunda BM25 anahtar sözcük sıralamasını 9 ila 19 puan geçtiğini gösterdi. Son olarak bir çapraz kodlayıcı yeniden sıralayıcı, kısa listeyi daha hassas biçimde yeniden düzenlemek için sorguyu ve her adayı birlikte okur.
Bu örnek, Sentence Transformers kütüphanesini kullanarak sözcük örtüşmesini gömme vektörü benzerliğiyle karşılaştırıyor:
from sentence_transformers import SentenceTransformer
model = SentenceTransformer("sentence-transformers/all-MiniLM-L6-v2")
documents = [
"How to reset a forgotten account password",
"Feeding schedule for a new kitten",
"Quarterly sales report for the retail division",
"Best hiking trails near Denver",
]
query = "my cat is hungry"
# Keyword search: documents sharing at least one word with the query
query_words = set(query.lower().split())
print("Keyword matches:", [d for d in documents if query_words & set(d.lower().split())])
# Semantic search: rank documents by cosine similarity of their embeddings
doc_embeddings = model.encode(documents)
query_embedding = model.encode(query)
scores = model.similarity(query_embedding, doc_embeddings)[0]
best = int(scores.argmax())
print(f"Semantic match: {documents[best]!r} (cosine {scores[best]:.2f})")Hiçbir belge "my", "cat", "is" veya "hungry" sözcüklerini içermediği için anahtar sözcük eşleştirme boş bir liste döndürür. Anlamsal arama ise kosinüs benzerliği 0,56 olan yavru kedi beslenme programını anlam bakımından en yakın belge olarak döndürür.
Anlamsal Arama ve İlgili Terimler#
- Anahtar sözcük araması: BM25 gibi formüllerle belgeleri tam terim eşleşmelerine göre sıralar. Gömme vektörlerinin birbirine benzetebileceği adları, parça numaralarını ve nadir sözcükleri bulur; eş anlamlı sözcükleri ve başka biçimde ifade edilmiş sözleri ise kaçırır.
- Hibrit arama: Anahtar sözcük ve anlamsal bilgi getirmeyi birlikte çalıştırıp sonuçları birleştirir. Üretim ortamındaki arama ve RAG sistemlerinde sık kullanılan bir düzendir.
- Anlamsal bölütleme: Her görüntü pikseline bir sınıf etiketi atayan, bununla ilgisi olmayan bir bilgisayarlı görü görevidir; yalnızca "anlamsal" sözcüğünü paylaşır.
- Anlamsal önbelleğe alma: Aynı anlam temelli eşleştirmeyi LLM isteklerine uygular ve yeni bir istem daha öncekinin aynısı anlama geldiğinde saklanmış yanıtı yeniden kullanır.
Gerçek Dünya Uygulamaları#
- Bilgi getirmeyle desteklenmiş üretim (RAG): Kullanıcının kullandığı ifade belgelerdeki ifadeden farklı olsa bile bir dil modelinin ihtiyaç duyduğu metin parçalarını bulur.
- Patent arama: Aynı buluşu farklı terimlerle açıklayan önceki teknik bilgileri ortaya çıkarır.
- Perakende ürün araması: "Yağmurlu havada işe gidip gelmek için ayakkabı" gibi bir sorguyu, ürün açıklamalarında bu sözcükler hiç geçmese bile su geçirmez spor ayakkabılarla eşleştirir.
- Öneri sistemleri: Gömme vektörleri kullanıcının daha önce seçtiklerine yakın olan makaleleri veya ürünleri önerir.
Görüntüleri Anlamlarına Göre Arama#
CLIP gibi, görüntü-altyazı çiftleriyle karşıtsal öğrenme kullanılarak eğitilmiş modeller metinleri ve görüntüleri tek bir uzaya gömer. Böylece metin sorgusu, etiketi veya altyazısı olmayan fotoğrafları sıralayabilir. Ultralytics anlamsal görüntü arama çözümü bu şekilde çalışır: VisualAISearch sınıfı, bir klasördeki her görüntüyü CLIP ile bir kez gömme vektörüne dönüştürür; her metin sorgusunu aynı uzaya gömer ve sorguyla kosinüs benzerliği belirli bir eşiği geçen en çok 30 görüntüyü en benzerden en aza doğru sıralı biçimde döndürür. Böylece "bankta oturan bir köpek" sorgusu, etiketsiz bir koleksiyondaki eşleşen fotoğrafları bulur.










