Klasik “metin bazlı” arama yöntemleri artık tarih oldu. LLM ve GPT uygulamaları sayesinde artık anlamsal olarak da aratabiliyoruz. Bu modern bilgi erişim sistemlerinin temelini oluşturan iki ana arama paradigmasını karşılaştıralım.
Lexical Search
Sözcüksel arama, adından da anlaşılacağı gibi belgelerdeki kelimelerin tam eşleşmesine dayanır. Arama motoru, sorgudaki kelimelerin dizinlenmiş belgelerde ne sıklıkta veya hangi yakınlıkta bulunduğunu analiz eder.
Çalışma prensibini 3 şey oluşturur:
Inverted Index: Çalışma temelidir. Bu dizin her kelimeyi, o kelimelerin geçtiği belgelere ve ilgili pozisyon bilgilerine eşler.
Eşleşme: Kullanıcı sorgusu ile belgedeki terimlerin harf harf eşleşmesini gerektirir.
Sıralama (ranking): Genellikle TF-IDF (Term Frequency-Inverse Document Frequency) gibi algoritmalarla yapılır. Bu bir kelimenin belgede ne kadar sık geçtiği (TF) ve tüm koleksiyonda ne kadar nadir olduğu (IDF) üzerinden belgenin alaka düzeyini hesaplar.
Hızlı, ölçeklenebilir ve anlaşılması basittir. Doğrudan anahtar kelime eşleşmesi gerektiren senaryolar için güçlüdür. Fakat bir sorunu var: Anlamsal farklılıkları (eş anlamlılar veya bağlamlar) yakalayamaz. “Mevzuat” aratırsanız dokümanda geçen “yasa” kelimesi geçse dahi dokümanı atlar.

Sözcüksel arama, temelde kelimelerin birebir eşleşmesine dayanan, hızlı ve sade bir arama yaklaşımıdır. Aradığınız kelimeyi veya terimi tam olarak biliyorsanız oldukça yüksek doğruluk sağlar. Bu nedenle dosya adlarıyla arama yapma, veritabanında belirli bir kayıt arama veya bir metin içinde kesin bir kelimeyi bulma gibi senaryolarda son derece etkilidir. Basit yapısı sayesinde hem hızlıdır hem de sistem kaynaklarını minimum seviyede tüketir.
Buna karşın sözcüksel aramanın en büyük zayıflığı dilin doğal değişkenliğini anlamamasıdır. Eşanlamlı kelimeleri, farklı çekim eklerini veya benzer ifadeleri tanıyamaz. Bu yüzden aslında ilgili olan bazı sonuçlar hiç görüntülenmeyebilir. Ayrıca kullanıcının niyetini, cümlenin bağlamını veya sorunun arkasındaki anlamı analiz edemediği için karmaşık veya çok katmanlı arama sorgularında yetersiz kalır.
Vector Search
Vektör arama yöntemi, bilgiyi bulmanın daha gelişmiş yoludur. Kelimeleri dokümanlar içinde eşleştirerek aratmak yerine kelimelerin arkasındaki anlamı anlar. Bunu kelimeleri ve tüm belgeleri vektörler adı verilen sayısal gösterimlere dönüştürerek başarır. Yani bu “vektörler” içeriğin anlamsal özünü yakalar. Kavramları anlar, arasındaki ilişkiyi çözer.
Vektör arama yöntemi kullanıcının amacını yorumlayabilir, benzer anlamlara sahip kelimeleri ilişkilendirebilir ve karmaşık sorgulara daha doğal, insan mantığına yakın karşılıklar üretebilir. Bu nedenle öneri sistemleri, kişiselleştirilmiş içerik sunan uygulamalar veya semantik arama motorları için ideal bir çözümdür.
Vektör aramanın temel avantajı, bağlamı ve anlamsal anlamı anlama yeteneğidir. İlgili kavramları birbirine bağlar, bu da onu özellikle karmaşık sorgular için daha esnek ve ‘bulanık’ hale getirir. Ancak vektörel arama daha karmaşık ve yoğun kaynak gerektirir çünkü önemli ölçüde hesaplama gücü ve depolama gerektirir. Amaçlanan anlamı ne kadar iyi yakaladığına bağlı olduğu için bazen daha az tahmin edilebilir olabilir.

Bu teknikle birlikte sorgu sonuçlarımız da artık değişmektedir. Daha ilgili ve anlamsal olarak daha detaylı dokümanları bulabiliyoruz.

Vektör Oluşturma: Anlamı Sayısallaştırmak
Vektör arama, günümüzün yapay zeka destekli sistemlerinin (özellikle Büyük Dil Modelleri – LLM’ler) temelini oluşturur, anlamsal (semantic) arama yeteneği sağlar.
Bu sürecin kalbi, gömülmelerin (embeddings) oluşturulmasıdır.
Vektör aramanın temelini, metinsel verinin anlamsal özünü yakalayan vektör oluşturma (embedding) süreci oluşturur. Bu süreçte bir kelime, cümle veya tüm belge, genellikle yüzlerce (örneğin 768 veya 1024) kayan nokta sayısından oluşan yoğun bir sayısal vektöre dönüştürülür. Bu dönüşüm genellikle LLM’ ve Transformer mimarileri (örneğin BERT) kullanılarak gerçekleştirilir.
Model büyük miktarda metin üzerinde eğitim alarak, kelimelerin birbirleriyle olan bağlamsal ilişkilerini “öğrenir”. Örneğin “doktor” kelimesi ile “hastane” kelimesinin aynı bağlamlarda geçtiğini öğrenir ve bu iki kelimeyi vektör uzayında birbirine yakın bir konuma yerleştirir.

Nihayetinde ortaya çıkan bu vektörler, metnin yüksek boyutlu uzaydaki bir temsilidir. Anlamsal olarak benzer içerikler, bu uzayda birbirine geometrik olarak yakın konumlanır. Bu sayede “seri otomobil” sorgusunun vektörü “hızlı araba” belgesinin vektörüne, “kedi videoları” belgesinin vektöründen çok daha yakın olur. Bu sayısal temsil daha sonra arama sırasında “cosine similarity” gibi metriklerle hızlı ve etkili bir şekilde karşılaştırılır. Elbette daha derin ve uzayabilecek bir konu.
Lexical ve Vector Arama Senaryoları
Doğru arama yöntemini seçerken, ihtiyacınız olan arama türünün doğasını iyi değerlendirmek gerekir. Sözcüksel arama, tam eşleşmenin kritik olduğu durumlar için ideal bir araçtır. Örneğin log kayıtlarında veya belirli bir veri setinde (ürün gibi) çok iyi performans verecektir, anahtar kelime taraması yapmak gibi temel bilgi erişim ihtiyaçlarında oldukça başarılıdır.
Vektörel arama ise bağlamın, anlamın ve kullanıcı niyetinin önemli olduğu karmaşık arama senaryolarında öne çıkar. Öneri motorlarında benzer ürünleri veya içerikleri bulmak, araştırma veritabanlarında anlam temelli arama yapmak ya da doğal dil sorularına kapsamlı yanıtlar üretmek gibi daha gelişmiş ihtiyaçlar için vazgeçilmezdir.
Buna uygun olanı seçerek kendi senaryolarınızı oluşturabilirsiniz.



Yorum bırakın