Anlamsal Arama
- İngilizcesi
- Semantic Search
- Türkçe karşılığı
- semantik arama
- Okunuşu
- simentik sörç
Günlük kullanımda iki ad da yaygın.
Kısaca
Anlamsal arama, sonuçları birebir anahtar kelimelere değil anlama göre, genellikle sorgu ve belge embedding'lerini karşılaştırarak bulan arama tekniğidir.
Anlamsal arama (semantic search) nedir?
Anlamsal arama, bir sorgunun yalnızca içerdiği sözcüklerle değil, ne anlama geldiğiyle eşleşen sonuçlar döndürür. 'Planımı nasıl iptal ederim' araması, ikisi arasında önemli bir ortak sözcük olmasa bile 'Aboneliğinizi sonlandırma' başlıklı bir makaleyi bulabilir. Bunu, hem sorguları hem belgeleri anlamı yakalayan sayı listeleri olan embedding'ler olarak temsil edip, embedding'leri sorgununkine en yakın belgeleri arayarak yapar.
Tipik bir kurulumun iki aşaması vardır. Önceden belgeler parçalara bölünür, her parça bir embedding modeliyle embedding'e dönüştürülür ve vektörler bir vektör veritabanında ya da sıradan bir veritabanının içindeki vektör indeksinde saklanır. Sorgu anında sorgu aynı modelle embedding'e çevrilir, en yakın vektörler çoğunlukla kosinüs benzerliğiyle bulunur ve ilk sonuçlar, reranker adı verilen daha yavaş ama daha kesin bir modelle yeniden sıralanabilir.
Fark, bir şeyi kitabın arkasındaki dizinde aramakla bilgili bir kütüphaneciye sormak arasındaki fark gibidir. Dizin yalnızca yazarın kullandığı tam sözcüğü biliyorsanız işe yarar; kütüphaneci ise neyin peşinde olduğunuzu anlar ve sizi doğru bölüme yönlendirir. Anlamsal arama; site ve yardım merkezi aramasına, ürün ve kod aramasına, yinelenen kayıt tespitine, öneri sistemlerine ve RAG sistemlerinin getirme adımına güç verir.
Anlamsal arama çoğu zaman tam metin aramasıyla karşılaştırılır. Tam metin araması, ters indeks kullanarak anahtar kelimeleri eşleştirir ve ürün kodları, hata mesajları ve isimler gibi kesin terimler için mükemmeldir; anlamsal arama ise başka sözcüklerle ifade edilmiş cümleleri ve doğal soruları daha iyi ele alır ama kesin tanımlayıcıları kaçırabilir; bu yüzden birçok sistem ikisini hibrit aramada birleştirir. Anlamsal arama vektör veritabanıyla da aynı şey değildir: veritabanı bir depolama ve indeksleme aracıdır, anlamsal arama ise onu kullanan tekniktir.
Önemli noktalar
- Anlamsal arama anlama göre eşleştirir; bu yüzden farklı ifadeler de doğru sonucu bulabilir.
- Sorgular ve belgeler embedding olarak, genellikle kosinüs benzerliğiyle karşılaştırılır.
- Sorguları ve belgeleri her zaman aynı modelle embedding'e çevirin.
- Kesin terimler için anahtar kelime araması daha iyidir; hibrit arama ikisini birleştirir.
- RAG sistemlerindeki olağan getirme adımıdır.
Örnek
# embed() and cosine_similarity() are placeholders for an embedding model and a vector helper
docs = [
"Ending your subscription",
"Changing your profile picture",
"Refund policy for annual plans",
]
doc_vectors = [embed(d) for d in docs] # computed once and stored
query_vector = embed("how to cancel my plan")
scores = [cosine_similarity(query_vector, v) for v in doc_vectors]
# Rank documents by meaning, not by shared keywords
ranked = sorted(zip(scores, docs), reverse=True)
print(ranked[0][1]) # Ending your subscriptionSık sorulan sorular
Anlamsal arama ile anahtar kelime araması arasındaki fark nedir?
Anahtar kelime araması sorgunun sözcüklerini içeren belgeleri bulur; anlamsal arama ise farklı sözcükler kullansalar bile benzer anlama sahip belgeleri bulur. Anahtar kelime araması kesin isimler ve kodlar için daha iyidir; anlamsal arama doğal dildeki sorular için daha iyidir.
Hibrit arama nedir?
Hibrit arama, anahtar kelime aramasını ve anlamsal aramayı birlikte çalıştırır ve sonuçlarını tek bir sıralamada birleştirir. Birebir eşleşmenin kesinliğini, anlama göre eşleşmenin esnekliğiyle bir araya getirir.
Anlamsal arama için vektör veritabanına ihtiyacım var mı?
Her zaman değil. Küçük koleksiyonlar vektörleri doğrudan bellekte karşılaştırarak aranabilir ve birçok sıradan veritabanı vektör sütunlarını ve indekslerini destekler. Özel bir vektör veritabanı esas olarak çok büyük koleksiyonlarda veya katı gecikme gereksinimlerinde yardımcı olur.
İlgili sayfalar
- EmbeddingYapay Zekâ ve Makine Öğrenmesi, s. 18Embedding, metin, görüntü ya da başka verilerin anlamını vektör denen bir sayı listesiyle temsil eden ve benzer öğeleri birbirine yakın konumlandıran yapıdır.
- Vektör VeritabanıYapay Zekâ ve Makine Öğrenmesi, s. 47Vektör veritabanı, embedding'leri saklayıp bir sorguya en benzer vektörleri hızla bulmak için tasarlanmış, anlamsal arama ve RAG'in dayandığı veritabanıdır.
- Tam Metin AramaVeritabanları, s. 35Tam metin arama, verilen sözcükleri ya da ifadeleri içeren dokümanları bir metin indeksinde arayarak bulan ve sonuçları alaka düzeyine göre sıralayan tekniktir.
- RAGYapay Zekâ ve Makine Öğrenmesi, s. 38RAG, bir LLM'in soru anında getirilen ilgili belgelere dayanarak yanıt vermesini sağlayan ve yanıtları güncel, özel verilere dayandıran bir tekniktir.
- Doğal Dil İşlemeYapay Zekâ ve Makine Öğrenmesi, s. 16Doğal dil işleme, bilgisayarlara insan dilini metin ya da konuşma biçiminde okumayı, anlamayı ve üretmeyi öğreten yapay zekâ alanıdır.
- Veritabanı İndeksiVeritabanları, s. 38Veritabanı indeksi, tüm tabloyu taramadan satırları hızla bulmayı sağlayan, bir kitabın sonundaki dizine benzeyen bir veri yapısıdır.
- Kosinüs BenzerliğiYapay Zekâ ve Makine Öğrenmesi, s. 27Kosinüs benzerliği, iki vektörün benzerliğini aralarındaki açıyla, -1 ile 1 arasında ölçer; semantik aramada embedding'leri karşılaştırmanın olağan yoludur.
- ChunkingYapay Zekâ ve Makine Öğrenmesi, s. 9Chunking, uzun belgeleri embedding'e çevrilip saklanmadan önce küçük parçalara böler; böylece bir RAG sistemi yalnızca ilgili kısımları bulup modele iletebilir.
Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin