fbpx

Semantisch zoeken met vectoren

Semantisch zoeken met vectoren

Share This Post


Als je het laatste zoeknieuws hebt gevolgd, heb je waarschijnlijk wel eens gehoord van vector zoeken.

En misschien ben je zelfs begonnen je in het onderwerp te verdiepen in een poging er meer over te weten te komen, om er aan de andere kant verward uit te komen. Heb je die wiskunde niet laten vallen op de universiteit?

Zoeken naar vectoren is moeilijk. Begrijp dat het niet zo hoeft te zijn.

En begrijpen dat zoeken naar vectoren niet de toekomst is, maar hybride zoeken, dat is net zo belangrijk.

Wat zijn vectoren?

Als we het hebben over vectoren in de context van machine learning, bedoelen we dit: vectoren zijn groepen getallen die iets vertegenwoordigen.

Dit ding kan een afbeelding zijn, een woord of bijna alles.

De vragen zijn natuurlijk waarom deze vectoren nuttig zijn en hoe ze worden gemaakt.

Laten we eerst kijken waar deze vectoren vandaan komen. Het korte antwoord: machine learning.

Jay Alammar heeft misschien wel de beste blogpost ooit geschreven wat zijn vectoren.

Kortom, machine learning modelleert invoerelementen (ervan uitgaande dat het vanaf nu alleen woorden zijn) en probeert de beste formules te vinden om iets anders te voorspellen.

U hebt bijvoorbeeld een model waarin het woord ‘bij’ is verwerkt en probeert de beste formules te vinden die nauwkeurig voorspellen dat ‘bij’ wordt gezien in contexten die vergelijkbaar zijn met ‘insecten’ en ‘wespen’.

Zodra dit model de beste formule heeft, kan het het woord ‘bij’ transformeren in een groep getallen die toevallig lijkt op de groep getallen voor ‘insecten’ en ‘wespen’.

Waarom vectoren krachtig zijn

Vectoren zijn om deze reden erg krachtig: Grote taalmodellen zoals de Generative Pre-Trained Transformer 3 (GPT-3) of die van Google houden rekening met miljarden woorden en zinnen, zodat ze die verbanden kunnen leggen en echt slim kunnen worden.

Het is gemakkelijk in te zien waarom mensen zo enthousiast zijn om deze intelligentie toe te passen op onderzoek.

Sommigen zeggen het zelfs zoeken met vectoren vervangt zoeken op trefwoord die we al tientallen jaren kennen en liefhebben.

Het punt is echter dat zoeken met vectoren het zoeken op trefwoord niet volledig vervangt. Denken dat zoekwoordonderzoek geen enorme waarde zal behouden, is te veel optimisme in het glanzende nieuwe.

Zoeken met vectoren en zoeken op trefwoorden hebben elk hun eigen sterke punten en werken het beste als ze samenwerken.

Vector zoeken voor long tail-query’s

Als u met zoeken werkt, is de kans groot dat u goed bekend bent met de lange wachtrij voor zoekopdrachten.

Dit begrip, gepopulariseerd door Chris Anderson om digitale inhoud te beschrijvener staat dat er een aantal items (voor zoekopdrachten) zijn die veel populairder zijn dan al het andere, maar dat er veel individuele items zijn die iemand nog steeds wil.

Zo is het ook met onderzoek.

Sommige zoekopdrachten (ook wel “geen” zoekopdrachten genoemd) worden veel doorzocht, maar de overgrote meerderheid van de zoekopdrachten wordt heel weinig gezocht, misschien zelfs maar één keer.

De aantallen zullen van site tot site verschillen, maar op een gemiddelde site kan ongeveer een derde van de totale zoekopdrachten afkomstig zijn van enkele tientallen zoekopdrachten, terwijl bijna de helft van het zoekvolume afkomstig is van zoekopdrachten die buiten de 1.000 meest populaire vallen.

Long tail-query’s zijn meestal langer en kunnen zelfs natuurlijke taalquery’s zijn.

Het onderzoek van mijn bedrijf Algolia toonde aan dat 75% van de zoekopdrachten twee woorden of minder zijn. 90% van de zoekopdrachten zijn vier woorden of minder. Om 99% van de zoekopdrachten te bereiken, hebt u 13 woorden nodig!

Ze zijn echter niet altijd lang, ze kunnen alleen duister zijn. Voor een website voor damesmode kan ‘mauve jurk’ een lange-staartvraag zijn, omdat mensen niet vaak om die kleur vragen. “Armband” kan ook een zelden geziene zoekopdracht zijn, zelfs als de website armbanden te koop heeft.

Vector zoeken werkt over het algemeen heel goed voor long tail-query’s. U kunt begrijpen dat armbanden vergelijkbaar zijn met armbanden en dat ze zelfs armbanden aan de oppervlakte brengen zonder synoniemen in te stellen. Het kan roze of paarse outfits tonen wanneer iemand naar iets mauves zoekt.

Zoeken met vectoren kan zelfs goed werken voor deze lange of natuurlijke taalzoekopdrachten. “Iets om mijn drankjes koud te houden” zal koelers opleveren in een goed afgestemde vectorzoekopdracht, terwijl je bij het zoeken op trefwoord beter kunt hopen dat de tekst ergens in de productbeschrijving staat.

Met andere woorden, zoeken met vectoren verhoogt het terughalen van zoekresultaten, oftewel het aantal gevonden resultaten.

Hoe vector zoeken werkt

Vector zoeken doet dit door de groepen getallen te nemen die we hierboven hebben beschreven en de vectorzoekmachine te vragen: “Als ik deze groepen getallen als lijnen zou tekenen, welke zou dan het dichtst in de buurt komen?”

Een gemakkelijke manier om dit te conceptualiseren is door te denken aan groepen die slechts twee getallen hebben. de groep [1,2] zal dichter bij de groep zijn [2,2] dan het zou zijn voor de groep [2,500].

(Aangezien vectoren tientallen getallen bevatten, worden ze natuurlijk in tientallen dimensies “uitgetekend”, wat niet zo gemakkelijk te visualiseren is.)

Deze benadering voor het bepalen van gelijkenis is krachtig omdat vectoren die woorden als “dokter” en “medicijn” vertegenwoordigen veel meer op “afbeeldingen” zullen lijken dan de woorden “dokter” en “steen”.

Nadelen van vector zoeken

Vector zoeken heeft echter nadelen.

De eerste zijn de kosten. Al die machine learning die we eerder bespraken? Het heeft kosten.

Om te beginnen is het opslaan van vectoren duurder dan het opslaan van een op trefwoorden gebaseerde zoekindex. Het doorzoeken van deze vectoren is in de meeste gevallen ook langzamer dan zoeken op trefwoord.

Nu kan hashing beide problemen verminderen.

Ja, we introduceren meer technische concepten, maar dit is een andere die vrij eenvoudig te begrijpen is.

Hashing voert een reeks stappen uit om bepaalde informatie (zoals een tekenreeks of een getal) om te zetten in een getal, dat minder geheugen in beslag neemt dan de oorspronkelijke informatie.

Het blijkt dat we ook kunnen gebruiken hashing om de grootte van vectoren te verkleinen met behoud van wat vectoren nuttig maakt: hun vermogen om conceptueel vergelijkbare elementen te matchen.

Door hashes te gebruiken, kunnen we vectorlookups veel sneller maken en nemen vectoren over het algemeen minder ruimte in beslag.

De details zijn erg technisch, maar het belangrijkste is om te begrijpen dat het mogelijk is.

Het blijvende nut van zoekwoordenonderzoek

Dat betekent niet dat zoekwoordonderzoek niet nog steeds nuttig is! Zoeken op trefwoord is over het algemeen sneller dan zoeken op vectoren.

Het is ook gemakkelijker te begrijpen waarom de resultaten worden gerangschikt zoals ze zijn.

Neem het voorbeeld van de zoekopdracht “texas” en “tejano” en “state” als mogelijke woordovereenkomsten. Het is duidelijk dat “tejano” dichterbij is als we de vergelijking bekijken vanuit een puur zoekwoordperspectief. Het is echter niet zo eenvoudig om te weten wat meer in de buurt komt van een vectorzoekbenadering.

Op trefwoorden gebaseerd zoeken begrijpt dat “texas” meer lijkt op “tejano”, omdat het een op tekst gebaseerde benadering gebruikt om records te vinden.

Als de records woorden bevatten die exact hetzelfde zijn als die in de zoekopdracht (of binnen een bepaald niveau van verschil om typefouten te verklaren), wordt de record als relevant beschouwd en teruggestuurd naar de resultatensets.

Dat wil zeggen, zoekwoordonderzoek richt zich op de nauwkeurigheid van de zoekresultaten, of ervoor te zorgen dat de geretourneerde records relevant zijn, zelfs als er minder zijn.

Zoeken op trefwoord als nuttig voor koptekstzoekopdrachten

Om deze reden werkt het zoeken op trefwoorden erg goed voor topzoekopdrachten – de zoekopdrachten die het populairst zijn.

Header-query’s zijn meestal korter en zijn ook gemakkelijker te optimaliseren. Dit betekent dat als een trefwoord om wat voor reden dan ook niet overeenkomt met de juiste tekst binnen een record, dit vaak wordt gedetecteerd door middel van parsing en je kunt een synoniem toevoegen.

Omdat zoeken op trefwoord het beste werkt voor hoofdzoekopdrachten en zoeken met vectoren het beste werkt voor lange-staartzoekopdrachten, werken de twee het beste samen.

Dit staat bekend als hybride zoeken.

Hybride zoeken is wanneer een zoekmachine zowel trefwoord- als vectorzoekopdrachten gebruikt voor een enkele zoekopdracht en records correct rangschikt, ongeacht de zoekbenadering die ze heeft gegenereerd.

Classificatie van records tussen zoekbronnen

Het sorteren van records die uit twee verschillende bronnen komen, is niet eenvoudig.

De twee benaderingen hebben, door hun aard, verschillende manieren om records te vestigen.

Zoeken met vectoren levert een score op, terwijl sommige op trefwoorden gebaseerde zoekmachines dat niet doen. Zelfs als op trefwoorden gebaseerde zoekmachines een score geven, is er geen garantie dat de twee scores gelijkwaardig zijn.

Als de scores niet gelijkwaardig zijn, kun je niet zeggen dat een engine-score voor zoekwoorden van 0,8 relevanter is dan een score voor vector-engines van 0,79.

Een ander alternatief zou zijn om alle resultaten uit te voeren met behulp van vectorengine of keyword engine scoring.

Dit heeft het voordeel dat het extra herstel krijgt van de vector-engine, maar heeft ook enkele nadelen. Die extra teruggeroepen resultaten die afkomstig zijn van de vectorengine, worden niet als relevant beoordeeld op basis van een trefwoordscore, of zouden anders al in de resultatenset zijn verschenen.

Als alternatief kunt u alle resultaten (trefwoord of anderszins) via vectorscores laten lopen, maar dit is traag en duur.

Vector zoeken als alternatief

Dit is de reden waarom sommige zoekmachines niet eens proberen om de twee te combineren, maar altijd eerst zoekwoordresultaten tonen en daarna vectorresultaten als tweede.

De gedachte hier is dat als een zoekopdracht nul of weinig resultaten oplevert, u terug kunt gaan naar de vectorresultaten.

Houd er rekening mee dat zoeken met vectoren is gericht op het verbeteren van de herinnering of het vinden van meer resultaten, en kan daarom relevante resultaten vinden die met zoeken op trefwoord niet zijn gevonden.

Dit is een goede oplossing, maar niet de toekomst van echt hybride zoeken.

Echt hybride zoeken zal verschillende zoekbronnen in dezelfde reeks resultaten rangschikken, waardoor een score ontstaat die vergelijkbaar is tussen bronnen.

Er is tegenwoordig veel onderzoek naar deze aanpak, maar weinigen doen het goed en bieden hun motor publiekelijk aan.

Dus wat betekent dit voor jou?

Op dit moment is het beste wat u kunt doen waarschijnlijk kalm blijven en op de hoogte blijven van wat er in de branche gebeurt.

Hybride zoeken op basis van vectoren en trefwoorden komt de komende jaren en zal beschikbaar zijn voor mensen zonder datawetenschapsapparatuur.

Ondertussen is het zoeken op trefwoorden nog steeds waardevol en wordt het alleen maar beter wanneer zoeken op vectoren later wordt geïntroduceerd.

Meer middelen:

Uitgelichte afbeelding: pluie_r/Shutterstock



Source link

More To Explore

WACHT! VOORDAT JE GAAT...

Geef me jouw E-mail Address, en dan stuur ik je een GRATIS kopie van mijn boek, waarin ik je laat zien hoe je jouw inkomen kan verdubbelen in 90 dagen!