O introducere în căutarea vectorială pentru dezvoltatori
Sursa: bmmagazine.co.uk

Cu toții iubim confortul unui motor de căutare. Cu toate acestea, dacă sunteți un dezvoltator sau cineva care lucrează cu date în mod regulat, poate fi frustrant atunci când trebuie să treceți prin cercuri doar pentru a obține rezultate.
Motoarele de căutare sunt foarte bune în a găsi lucruri pe baza interogărilor de text și a cuvintelor cheie, dar dacă ar exista o altă cale? Ce-ar fi dacă am putea să ne organizăm datele mai mult ca și cum ființele umane își organizează gândurile?
Căutarea vectorială este un tip de căutare care returnează cele mai apropiate rezultate de o anumită interogare. Este diferită de căutarea tradițională deoarece, în spațiul vectorial, fiecare element are asociată o listă de atribute (vectori) și fiecare vector reprezintă un anumit aspect al unui obiect. Acest lucru vă permite să găsiți obiecte similare pe baza atributelor lor, mai degrabă decât pe baza numelor sau a conținutului textului. Spațiul vectorial are multe utilizări, inclusiv găsirea celor mai apropiate corespondențe cu o interogare atunci când se caută imagini sau videoclipuri pe YouTube sau sarcini Amazon Mechanical Turk, cum ar fi etichetarea imaginilor cu cuvinte-cheie pentru sistemele de învățare automată, cum ar fi Google Photos sau Cloud Vision API
Înțelegerea căutării vectoriale și a modului în care funcționează?
Căutarea vectorială este un nou mod de căutare, dar nu este atât de diferită de căutarea tradițională. În căutarea vectorială, căutați obiecte care corespund unui set de criterii. Acesta poate fi orice, de la „găsiți-mi toate cărțile scrise de autorul X” sau „vreau să văd toate restaurantele pe o rază de 16 km de casa mea”.
În căutarea tradițională, folosim cuvinte ca primă linie de atac – și de multe ori aceste cuvinte nu ne spun suficient despre ceea ce dorim de fapt. De exemplu: Dacă scriu în Google „care este cel mai bun restaurant din San Francisco?” voi primi rezultate care sunt bune, dar nu neapărat grozave (pentru că nu au fost concepute special pentru mine). Cu toate acestea, cu ajutorul căutării vectoriale, putem folosi informații suplimentare, cum ar fi datele privind locația sau preferințele personale, atunci când ne construim lista de rezultate – și acest lucru le face mult mai precise!
Diferența dintre căutarea tradițională și cea vectorială
Căutarea vectorială este un nou mod de căutare. Este mai eficient, mai precis și consumă mai puțină energie decât căutarea tradițională.
Avantajele unei baze de date vectoriale
Căutarea vectorială este mai flexibilă decât căutarea tradițională. Într-o bază de date vectoriale, puteți utiliza aceeași interogare pentru a găsi elemente similare și elemente care sunt similare cu un anumit element de interogare. Acest lucru înseamnă că nu trebuie să efectuați mai multe interogări dacă doriți ambele tipuri de rezultate; dacă datele dvs. sunt organizate în vectori și stocate într-o bază de date vectoriale, atunci toate aceste căutări pot fi efectuate cu o singură interogare!
Această flexibilitate are un cost: pentru ca bazele de date vectoriale să funcționeze bine cu complexitatea lor suplimentară, au nevoie de mai multă memorie decât bazele de date obișnuite – dar acest lucru nu ar trebui să fie o problemă prea mare atâta timp cât lucrați cu seturi de date relativ mici (ceea ce ar trebui să fie valabil pentru majoritatea aplicațiilor).
Provocările bazelor de date tradiționale
Modelul tradițional de baze de date nu este bine adaptat la seturile de date cu dimensiuni mari. După cum am menționat în secțiunea anterioară, este dificil să se indexeze și să se efectueze căutări în toate dimensiunile în același timp.
Bazele de date tradiționale au, de asemenea, probleme cu recuperarea eficientă a datelor atunci când aveți nevoie de ele. Atunci când citiți o carte, nu doriți să cunoașteți fiecare cuvânt din ea; le doriți doar pe cele care sunt relevante pentru interogarea dumneavoastră! O bază de date tradițională nu ar avea cum să știe câte cuvinte există în total și, prin urmare, nu ar putea filtra în mod inteligent acele cuvinte irelevante înainte de a le trimite înapoi ca rezultate – ar returna pur și simplu toate documentele care conțin un anumit cuvânt sau o anumită frază (chiar dacă ar fi doar unul).
Căutarea vectorială în acțiune
Căutarea vectorială este o formă puternică de regăsire a datelor care poate fi utilizată pentru o varietate de aplicații, inclusiv pentru regăsirea informațiilor și analiza de text. Este deosebit de utilă atunci când doriți să găsiți cea mai apropiată potrivire de un anumit vector. Un bun exemplu este găsirea numărului de telefon al unei persoane pornind de la numele acesteia: dacă știți că „John Smith” are numărul de telefon 555-5555, atunci puteți cere toate persoanele ale căror nume sunt cele mai apropiate de „John Smith” (sau care diferă cel mai puțin de acesta) și puteți obține și numerele de telefon corespunzătoare.
Căutarea vectorială este, de asemenea, utilă pentru a găsi documente similare în cadrul unor colecții mari de documente sau imagini; acest proces este cunoscut sub numele de regăsire a documentelor, respectiv de regăsire a imaginilor. În acest caz, nu suntem interesați de potriviri exacte, ci mai degrabă de documente/imagini care par să provină din aceeași sursă (sau aceleași surse).
Alegerea numărului corect de dimensiuni
Numărul de dimensiuni de care aveți nevoie depinde de problema pe care încercați să o rezolvați. O bună regulă de bază este de a alege un număr care să surprindă structura de bază a datelor dumneavoastră, fără a fi prea mare. De exemplu, dacă aveți un set de date cu 100 de elemente și fiecare element conține trei atribute (de exemplu, x1, x2, x3), atunci a avea o dimensiune pentru fiecare atribut ar fi prea mult, deoarece nu există suficiente dimensiuni pentru toate cele 100 de elemente. Pe de altă parte, dacă ați lucra cu și mai multe informații despre fiecare element – cum ar fi locația sa pe Pământ – atunci adăugarea unei alte dimensiuni ar putea ajuta la captarea acestor relații mai bine decât ar face-o două sau trei singure!
Când să folosiți căutarea vectorială față de căutarea tradițională
Căutarea vectorială este un instrument puternic care poate fi utilizat într-o varietate de situații. Este deosebit de utilă atunci când trebuie să găsiți obiecte sau grupuri de obiecte similare în cadrul setului de date, dar este utilă și pentru a găsi potriviri exacte atunci când nu aveți suficiente date pentru a justifica utilizarea căutării în text complet.
O bună regulă de bază este de a utiliza căutarea vectorială ori de câte ori este posibil – vă va economisi timp și bani!
Căutarea vectorială poate debloca o gamă complet nouă de posibilități pentru dezvoltatori.
Căutarea vectorială este un nou tip de bază de date care poate fi utilizată pentru a găsi lucruri care sunt similare, dar nu identice. Acest lucru o face mult mai flexibilă decât bazele de date tradiționale, care sunt optimizate pentru potriviri exacte.
În acest articol, voi explica cum funcționează căutarea vectorială și voi oferi câteva exemple de utilizare a acesteia în propriile dumneavoastră aplicații.
Concluzie
Sperăm că acest articol v-a oferit o mai bună înțelegere a căutării vectoriale și v-a ajutat să decideți dacă este potrivită pentru proiectul dumneavoastră. Dacă da, vă încurajăm să încercați biblioteca noastră open-source pentru căutare vectorială pe GitHub!
Corina Popescu
Corina Popescu scrie la rubricile Externe, Politică și Actual de pe news24.ro. Toate articolele →
Citește și
Primăria Cogealac are de recuperat 745.376 de lei pentru studii copiate plătite în 2024
Ministrul trimite control la compania Radiocom după discuții despre darea unor bunuri ale statului către firme
Trei firme Evofarm nu pot plăti datoriile. Cine are bani de primit se înscrie la tribunal până la 27 noiembrie
Parteneri Articole recomandate din rețeaua noastră
GetPony
BYD vrea să instaleze între 10 și 20 de stații de încărcare foarte rapidă în România
Bravonet
Saveta Bogdan vrea să îi pomenească și pe foștii soți de Moșii de toamnă, pe 7 noiembrie
Lyla
Cum ajungi la psihoterapie decontată și ce trebuie să verifici înainte să plătești o ședință la psiholog
Revista Ioana
Coronițele de Luminație în Timișoara costă între 25 și 40 de lei. Ghivecele cu crizanteme ajung la 50 de lei
Financiarul
Un post de macaragiu pentru cei cu peste cinci ani de experiență oferă până la 10.000 de lei net, iar altul cel mult 5.800 de lei net
Dolce Sport
Andrei Rațiu și Ionuț Radu apar titulari la Rayo, Celta, deși primul fusese dat în afara lotului, iar al doilea rezervă