Vektorihaku (semanttinen haku)
Nopea määritelmä
Vektorihaku on hakumenetelmä, joka palauttaa kohteet, joiden upotukset ovat lähimpänä kysymyksen upotusta, joten tulokset vastaavat merkitykseltään eivätkä jaetuilla avainsanoilla. Se on tavallinen semanttisen haun moottori.
Tällä sivulla
Miten vektorihaku toimii
Jokainen asiakirja, kappale tai tuote muutetaan upotukseksi ja tallennetaan indeksiin. Kysymyshetkellä kysymys upotetaan samalla mallilla, ja indeksi palauttaa lähimmät vektorit, yleensä mitattuna kosinisimilaariudella. Asiakas, joka kysyy "jotain lämmintä hiihtämiseen", voi löytää takin, jota kuvataan "eristettynä, vedenpitävänä talvikuorena", vaikka mikään sana ei vastaa.
Kysymyksen vertaaminen miljooniin vektoreihin yksi kerrallaan olisi hidasta, joten indeksit käyttävät likimääräisiä lähimmän naapurin algoritmeja. HNSW, kerroksellinen graafi, jonka Malkov ja Yashunin kuvailivat vuonna 2016, on yksi käytetyimmistä; se uhraa pienen tarkkuuden menetyksen erittäin nopean haun vuoksi. Avoimen lähdekoodin laajennukset, kuten pgvector, tuovat nämä indeksit PostgreSQL:ään.
Semanttinen haku vs avainsanahaku
Avainsanahaku (BM25, täysimittainen, trigram-vertailu) on tarkka tarkkojen termien osalta: tuoteviittaus, brändi, virhekoodi. Se epäonnistuu synonyymien ja parafraasien kohdalla. Vektorihaku on päinvastoin: vahva merkityksessä, heikko tarkkojen merkkijonojen ja harvinaisten tunnisteiden osalta.
Siksi useimmat tuotantojärjestelmät käyttävät hybridihakua: suorita molemmat, yhdistä sitten tai järjestä tulokset uudelleen. Tiheä hakututkimus, kuten Karpukhin ja kollegoiden vuoden 2020 työ kysymysvastaamisessa, osoitti, kuinka paljon semanttinen haku parantaa muistamista, ja käytännön ihmiset ovat sen jälkeen oppineet, kuinka paljon se edelleen hyötyy avainsanaparista.
Vaarat
Vektorihaku palauttaa aina jotain, vaikka mitään merkityksellistä ei olisikaan, joten järjestelmän on asetettava relevanssikynnys tai tarkistus ennen tulosten käyttöä. Se ei ymmärrä numeroita tai rajoituksia: "alle 50 euroa, varastossa, koko M" tarvitsee todellisia suodattimia jäsennellyistä tiedoista. Ja laatu riippuu siitä, miten sisältö on jaettu: liian pitkät pätkät hämärtävät merkitystä, liian lyhyet pätkät menettävät kontekstin.
Vektorihaku AI SmartTalkissa
AI SmartTalk tallentaa upotuksia PostgreSQL:ään pgvectorin avulla, HNSW-indeksillä tuotetiedoissa, ja yhdistää vektorisamanlaisuuden trigrammi- ja täysitekstihakuun. Tuotteille avustajan hakutyökalu lisää jäsenneltyjä suodattimia hintaan, varastoon, brändiin, kategoriaan ja varianttiattribuutteihin, jotta semanttiseen kysymykseen ja tarkkaan rajoitukseen voidaan vastata yhdessä.
Usein kysytyt kysymykset
Onko semanttinen haku sama kuin vektorihaku?
Semanttinen haku on tavoite — löytää tuloksia merkityksen perusteella. Vektorihaku upotusten yli on yleisin tapa saavuttaa se, usein yhdistettynä avainsanahakuun.
Tarvitsenko erillisen vektoritietokannan?
Ei välttämättä. Laajennukset, kuten pgvector, lisäävät vektorindeksejä PostgreSQL:ään, mikä riittää moniin sovelluksiin ja pitää vektorit muiden tietojen vieressä.
Mikä on hybridihaku?
Haku, joka suorittaa vektorihakua ja avainsanahakua yhdessä ja yhdistää tulokset, jotta se käsittelee sekä parafraasikysymyksiä että tarkkoja termejä, kuten tuoteviittauksia.