Căutarea vectorială (căutare semantică)
Definiție rapidă
Căutarea vectorială este o metodă de recuperare care returnează elementele ale căror încadre sunt cele mai apropiate de încadrarea interogării, astfel încât rezultatele se potrivesc prin semnificație mai degrabă decât prin cuvinte cheie comune. Este motorul obișnuit al căutării semantice.
Pe această pagină
Cum funcționează căutarea vectorială
Fiecare document, pasaj sau produs este transformat într-o încadrare și stocat într-un index. La momentul interogării, întrebarea este încadrată cu același model, iar indexul returnează vectorii cei mai apropiați, de obicei măsurați prin similaritate cosinusoidală. Un client care întreabă „ceva cald pentru schi” poate găsi o jachetă descrisă ca „shell de iarnă izolată, impermeabilă” chiar dacă niciun cuvânt nu se potrivește.
Compararea unei interogări cu milioane de vectori unul câte unul ar fi lent, așa că indecșii folosesc algoritmi aproximativi de vecinătate. HNSW, un grafic stratificat descris de Malkov și Yashunin în 2016, este unul dintre cele mai utilizate; face un mic compromis de precizie pentru o căutare foarte rapidă. Extensiile open-source, cum ar fi pgvector, aduc aceste indecși în PostgreSQL.
Căutarea semantică vs căutarea după cuvinte cheie
Căutarea după cuvinte cheie (BM25, text complet, potrivirea trigram) este precisă pe termenii exacți: o referință de produs, un brand, un cod de eroare. Eșuează pe sinonime și parafraze. Căutarea vectorială este inversul: puternică pe semnificație, slabă pe șiruri exacte și identificatori rari.
De aceea, cele mai multe sisteme de producție folosesc căutarea hibridă: rulează ambele, apoi îmbină sau re-ordonează rezultatele. Cercetarea în recuperarea densă, cum ar fi lucrarea lui Karpukhin și colegii săi din 2020 despre răspunsul la întrebări, a arătat cât de mult îmbunătățește recuperarea semantică recall-ul, iar practicienii au învățat de atunci cât de mult beneficiază în continuare de un partener de cuvinte cheie.
Capcane
Căutarea vectorială returnează întotdeauna ceva, chiar și atunci când nu există nimic relevant, așa că un sistem are nevoie de un prag de relevanță sau de o verificare înainte de a folosi rezultatele. Nu înțelege numere sau constrângeri: „sub 50 de euro, în stoc, mărimea M” necesită filtre reale pe date structurate. Și calitatea depinde de modul în care a fost împărțit conținutul: pasaje care sunt prea lungi estompează sensul, pasaje care sunt prea scurte pierd contextul.
Căutarea vectorială în AI SmartTalk
AI SmartTalk stochează embedding-uri în PostgreSQL cu pgvector, având un index HNSW pe documentele produselor, și combină similaritatea vectorială cu căutarea trigram și căutarea full-text. Pentru produse, instrumentul de căutare al asistentului adaugă filtre structurate pe preț, stoc, marcă, categorie și atribute de variantă, astfel încât o întrebare semantică și o constrângere precisă să poată fi răspunse împreună.
Întrebări frecvente
Este căutarea semantică aceeași cu căutarea vectorială?
Căutarea semantică este scopul — găsirea rezultatelor prin semnificație. Căutarea vectorială peste embedding-uri este cea mai comună modalitate de a o realiza, adesea combinată cu căutarea pe cuvinte cheie.
Am nevoie de o bază de date vectorială dedicată?
Nu neapărat. Extensii precum pgvector adaugă indecși vectoriali în PostgreSQL, ceea ce este suficient pentru multe aplicații și păstrează vectorii lângă restul datelor.
Ce este căutarea hibridă?
O căutare care rulează căutarea vectorială și căutarea pe cuvinte cheie împreună și îmbină rezultatele, astfel încât să gestioneze atât întrebările parafrazate, cât și termenii exacți, cum ar fi referințele produselor.