HNSW Nedir? Vektör Veritabanları Benzer Sonuçları Nasıl Hızlı Buluyor?
Yapay zekâ uygulamaları, metinleri ve görselleri karşılaştırmak için embedding adı verilen sayısal vektörlerden yararlanabilir. Ancak milyonlarca kayıt içeren bir sistemde, her sorguyu bütün vektörlerle karşılaştırmak önemli bir işlem yükü oluşturur.
05/10/2026 20:54 | Son Güncelleme : 11/10/2026 02:21 | Netosfer
HNSW (Hierarchical Navigable Small World), yaklaşık en yakın komşu aramalarını hızlandırmak için geliştirilmiş, katmanlı grafik yapısına dayanan bir indeksleme yöntemidir. Veriler arasındaki bağlantıları kullanarak sorguya yakın sonuçlara ulaşmayı hedefler. Matematiksel olarak en yakın sonuçların tamamını bulmayı garanti etmez.
HNSW Nedir?
HNSW, vektörleri bir komşuluk grafiğinde düzenleyen ANN (Approximate Nearest Neighbor) algoritmasıdır.
Grafikte her düğüm bir vektörü, bağlantılar ise arama sırasında izlenebilecek komşuluk ilişkilerini temsil eder. Sorguya uygun sonuçlar, bu bağlantılar üzerinden ilerlenerek aranır.
Buradaki grafik, GraphRAG’da kullanılan bilgi grafiğinden farklıdır. HNSW bağlantıları genellikle “bir şirketin başka bir şirkete ürün satması” gibi anlamlı ilişkileri anlatmaz. Amaç, vektör uzayında verimli arama yapmaktır.
Katmanlı Yapı Nasıl Çalışır?
HNSW grafiğinin en alt katmanında bütün vektörler bulunur. Üst katmanlara ise vektörlerin giderek daha küçük bir bölümü dahil edilir. Katman ataması, standart yaklaşımda rastgele seçimden yararlanır.
Üst katmanlar, aramanın veri kümesi içinde daha geniş adımlarla ilerlemesine yardımcı olur. Alt katmanlarda daha ayrıntılı arama yapılır.
Bu düzen, uzak bir bölgeye önce ana yollarla yaklaşmaya, ardından yerel yolları kullanarak adres aramaya benzetilebilir. Ancak bağlantıların kurulması yalnızca en yakın birkaç komşunun seçilmesinden ibaret değildir; grafikte farklı yönlere erişimi koruyan seçim yöntemleri de önemlidir.
HNSW ile Arama Nasıl Yapılır?
Bir anlamsal arama uygulamasında süreç şöyle ilerleyebilir:
-
İçerikler vektörlere dönüştürülür: Bu işlemi embedding modeli gerçekleştirir.
-
İndeks hazırlanır: Vektörler katmanlara yerleştirilir ve komşuluk bağlantıları oluşturulur.
-
Sorgu vektörü üretilir: Kullanıcının isteği, kayıtlarla karşılaştırılabilecek bir temsile dönüştürülür.
-
Üst katmandan başlanır: Arama, sorguya daha yakın düğümlere doğru ilerler.
-
Alt katmanlara geçilir: Daha ayrıntılı aday değerlendirmesi yapılır.
-
Sonuçlar döndürülür: Seçilen benzerlik ölçütüne göre yakın bulunan kayıtlar sunulur.
HNSW embedding üretmez ve belgelerin anlamını kendisi öğrenmez. Var olan vektörler üzerinde arama yapar. Bu nedenle sonuçların anlamsal kalitesi, kullanılan embedding modeline de bağlıdır.
Temel Parametreler Nelerdir?
M: Bağlantı Yoğunluğu
M, grafikteki komşuluk bağlantılarının sayısını kontrol eden temel ayarlardan biridir. Kesin bağlantı sınırları katmana ve uygulamaya göre farklılaşabilir.
Daha yüksek değer, arama için daha fazla yol sağlayabilir; ancak bellek tüketimini ve indeks oluşturma maliyetini artırabilir.
efConstruction: İndeks Oluşturma Kapsamı
Bu parametre, yeni vektörler eklenirken uygun komşuların ne kadar kapsamlı aranacağını etkiler.
Daha yüksek değerler daha kaliteli bağlantı yapısı sağlayabilir. Bunun karşılığında indeks oluşturma süresi uzayabilir.
efSearch: Sorgu Sırasındaki Arama Kapsamı
efSearch, bazı uygulamalarda yalnızca ef olarak adlandırılır. Arama sırasında tutulan aday listesinin kapsamını kontrol eder; toplam yapılan karşılaştırma sayısıyla birebir aynı değildir.
Değer yükseldikçe daha iyi sonuç yakalama olasılığı artabilir, fakat sorgu maliyeti de yükselir. Tek bir ideal ayar yoktur.
Sonuç Kalitesi Nasıl Ölçülür?
Yaygın ölçütlerden biri recall@k değeridir. Tam aramanın bulduğu ilk k komşunun ne kadarının HNSW sonuçlarında da bulunduğunu gösterir.
Örneğin tam aramadaki en yakın 10 kaydın 9’u HNSW tarafından da bulunuyorsa, o sorguda recall@10 yüzde 90’dır.
Bu ölçüt, aramanın matematiksel başarısını değerlendirir. Kullanıcının gerçekten yararlı bilgiye ulaşıp ulaşmadığını anlamak için içerik uygunluğu da ayrıca ölçülmelidir.
Bir ürün öneri sisteminde birbirine yakın vektörlerin bulunması yeterli olmayabilir. Stok durumu, kategori ve kullanıcının ihtiyacı da nihai sonuçları etkiler.
Milyarlarca Vektörde Milisaniyelik Arama Garanti mi?
Hayır. HNSW büyük veri kümelerinde hızlı arama sağlayabilir; ancak performans donanıma, vektör boyutuna, indeks ayarlarına ve eş zamanlı sorgu sayısına bağlıdır.
Örneğin bir milyar adet, 768 boyutlu ve 32 bit sayılarla saklanan vektör, yalnızca ham değerler için yaklaşık 3,07 TB alan gerektirir. Grafik bağlantıları ve diğer kayıtlar buna eklenir.
Bu nedenle milyar ölçeğinde arama, yalnızca algoritma seçimiyle çözülemez. Sıkıştırma, veriyi sunucular arasında bölme ve uygun depolama tasarımı gibi ek kararlar gerekir.
Filtreleme ve Güncellemeler Neden Önemlidir?
Kullanıcı yalnızca belirli bir kategoriye, tarihe veya kuruma ait sonuçları isteyebilir. Filtrelerin aramayla nasıl birleştirildiği, bulunan sonuç sayısını ve kalitesini etkiler.
Örneğin pgvector dokümantasyonu, yaklaşık indeks taramasından sonra uygulanan filtrelerin beklenenden az sonuç bırakabileceğini açıklar. Daha kapsamlı tarama gibi yöntemler bu durumu yönetmek için kullanılabilir.
Silme ve güncelleme davranışları da kullanılan yazılıma bağlıdır. Dolayısıyla yalnızca HNSW adını görmek, bütün veritabanlarının aynı özellikleri sunduğu anlamına gelmez.
HNSW ile IVF Arasındaki Fark Nedir?
HNSW, grafik bağlantıları üzerinden arama yapar.
IVF, vektörleri kümelere ayırır ve sorguda seçilen kümelerin içini tarar. Özellikle IVFFlat gibi uygulamalarda küme merkezlerinin hazırlanması için bir eğitim aşaması gerekir.
HNSW güçlü bir hız ve sonuç kalitesi dengesi sunabilir; bağlantı yapısı ek bellek gerektirir. IVF’nin performansı ise küme sayısı, taranan küme miktarı ve kullanılan sıkıştırma yöntemleriyle değişir. Seçim gerçek veri ve sorgular üzerinde karşılaştırılarak yapılmalıdır.
Sık Sorulan Sorular
HNSW ile ANN aynı şey mi?
Hayır. ANN, yaklaşık en yakın komşu arama yaklaşımının genel adıdır. HNSW bu amaçla kullanılan algoritmalardan biridir.
HNSW bir vektör veritabanı mı?
Hayır. Bir indeksleme ve arama yöntemidir. Veritabanı veya arama kütüphanesi içinde kullanılabilir.
Nerelerde kullanılır?
Anlamsal arama, RAG, görsel arama, öneri sistemleri ve vektör tabanlı ajan belleğinde kullanılabilir.
Her veri kümesinde gerekli mi?
Hayır. Küçük koleksiyonlarda veya az sorgulanan verilerde tam arama daha uygun olabilir.
HNSW’nin değeri, bütün vektörleri karşılaştırmadan yararlı yakın sonuçlara ulaşabilmesidir. Başarılı bir kurulum, arama kalitesini gecikme ve bellek maliyetiyle birlikte değerlendirir.
Kaynaklar: Malkov ve Yashunin — Efficient and Robust Approximate Nearest Neighbor Search Using Hierarchical Navigable Small World Graphs; nmslib/hnswlib — HNSW Algorithm Parameters ve resmî proje dokümantasyonu; pgvector — HNSW, IVFFlat ve Filtering dokümantasyonu.
Editör Notu
Bu içerik, kamuya açık vektör arama araştırmaları ve resmî teknik dokümantasyonlardan yararlanılarak hazırlanmış bir araştırma ve değerlendirme yazısıdır. İçerikte yer alan değerlendirmeler editoryal yorum niteliğindedir. HNSW’nin performansı ve sonuç kalitesi; veri dağılımına, donanıma, filtrelere ve indeks ayarlarına göre değişebilir.
Bunlar da ilginizi çekebilir
Sovereign SDK Nedir? Kendi Rollup Ağınızı Oluşturmayı Nasıl Kolaylaştırıyor?
Sovereign SDK, geliştiricilerin sıfırdan blockchain altyapısı oluşturmak yerine modüler bileşenleri kullanarak uygulamalarına özel ve özelleştirilebilir rollup'lar geliştirmesini sağlayan açık kaynaklı bir geliştirme kitidir.
1 ay önceTAC (TON Application Chain) Nedir? Ethereum Uygulamalarını TON Ekosistemine Taşıyan Blockchain Nasıl Çalışır?
TAC (TON Application Chain), EVM uyumlu Ethereum uygulamalarını TON ve Telegram kullanıcılarıyla buluşturmayı amaçlayan blockchain altyapısıdır. EVM uyumluluğu, çalışma modeli ve sunduğu avantajlarla TAC'ın nasıl çalıştığını keşfedin.
1 ay önceOpenSocial Nedir? Web3 Sosyal Uygulama Altyapısı Nasıl Çalışır?
Web3 sosyal uygulamalarının yaygınlaşmasıyla birlikte geliştiricilerin kullanıcı profilleri, sosyal grafikler, topluluklar ve mesajlaşma gibi temel bileşenleri tekrar tekrar oluşturması önemli bir altyapı ihtiyacı ortaya çıkarıyor. OpenSocial, bu bileşenleri ortak ve modüler bir yapı altında sunarak yeni nesil sosyal uygulamaların geliştirilmesini kolaylaştırmayı amaçlıyor.
1 ay önce