Vektorių paieška (semantinė paieška)
Greitas apibrėžimas
Vektorių paieška yra paieškos metodas, kuris grąžina elementus, kurių įterpimai yra artimiausi užklausos įterpimui, todėl rezultatai atitinka prasmę, o ne bendrus raktinius žodžius. Tai yra įprastas semantinės paieškos variklis.
Šioje puslapio dalyje
Kaip veikia vektorių paieška
Kiekvienas dokumentas, fragmentas ar produktas paverčiamas įterpimu ir saugomas indekse. Užklausos metu klausimas įterpiamas su tuo pačiu modeliu, o indeksas grąžina artimiausius vektorius, paprastai matuojamus pagal kosinusų panašumą. Klientas, klausiantis „ką nors šilto slidinėjimui“, gali rasti striukę, apibūdintą kaip „izoliuota, nepralaidi vandeniui žiemos striukė“, net jei nė vienas žodis nesutampa.
Palyginti užklausą su milijonais vektorių po vieną būtų lėta, todėl indeksai naudoja apytikslės artimiausios kaimynystės algoritmus. HNSW, sluoksniuotas grafikas, aprašytas Malkovo ir Jašunino 2016 m., yra vienas plačiausiai naudojamų; jis maino nedidelį tikslumo praradimą už labai greitą paiešką. Atvirojo kodo plėtiniai, tokie kaip pgvector, atneša šiuos indeksus į PostgreSQL.
Semantinė paieška vs raktinių žodžių paieška
Raktinių žodžių paieška (BM25, pilno teksto, trigramų atitikimas) yra tiksli dėl tikslių terminų: produkto nuoroda, prekės ženklas, klaidos kodas. Ji nesugeba su sinonomais ir perfrazavimais. Vektorių paieška yra priešinga: stipri prasme, silpna dėl tikslių eilutėmis ir retų identifikatorių.
Būtent todėl dauguma gamybos sistemų naudoja hibridinę paiešką: vykdo abi, tada sujungia arba perrikiuoja rezultatus. Tankios paieškos tyrimai, tokie kaip Karpukhino ir kolegų 2020 m. darbas dėl klausimų atsakymo, parodė, kiek semantinė paieška pagerina atmintį, o praktikai nuo to laiko išmoko, kiek ji vis dar naudinga turint raktinių žodžių partnerį.
Kliūtys
Vektorinė paieška visada grąžina kažką, net kai nėra nieko svarbaus, todėl sistema turi turėti svarbumo slenkstį arba patikrą prieš naudodama rezultatus. Ji nesupranta skaičių ar apribojimų: „mažiau nei 50 eurų, sandėlyje, dydis M“ reikalauja tikrų filtrų struktūrizuotuose duomenyse. Ir kokybė priklauso nuo to, kaip turinys buvo padalintas: per ilgos ištraukos iškreipia prasmę, per trumpos praranda kontekstą.
Vektorinė paieška AI SmartTalk
AI SmartTalk saugo įterpimus PostgreSQL su pgvector, su HNSW indeksu produktų dokumentams, ir derina vektorinę panašumą su trigramų ir viso teksto paieška. Produktams asistento paieškos įrankis prideda struktūrizuotus filtrus pagal kainą, atsargas, prekės ženklą, kategoriją ir variantų atributus, kad semantinis klausimas ir tikslus apribojimas galėtų būti atsakyti kartu.
Dažnai užduodami klausimai
Ar semantinė paieška yra tas pats, kas vektorinė paieška?
Semantinė paieška yra tikslas — rasti rezultatus pagal prasmę. Vektorinė paieška per įterpimus yra dažniausiai naudojamas būdas tai pasiekti, dažnai derinamas su raktinių žodžių paieška.
Ar man reikia specializuotos vektorinės duomenų bazės?
Ne būtinai. Papildiniai, tokie kaip pgvector, prideda vektorių indeksus prie PostgreSQL, kas yra pakankama daugeliui programų ir laiko vektorius šalia kitų duomenų.
Kas yra hibridinė paieška?
Paieška, kuri vykdo vektorinę paiešką ir raktinių žodžių paiešką kartu ir sujungia rezultatus, kad galėtų apdoroti tiek perrašytus klausimus, tiek tikslius terminus, tokius kaip produktų nuorodos.