Vektordatabas? Vad är det?

Du kanske har märkt det? Det pratas allt mer om vektordatabaser. Ordet "vektor" är ett matematiskt begrepp, men det kanske först får dig att tänka på en superhjälte eller superskurk. I Marvels universum dyker Vektor upp som ledaren för U-Foes-ligan, med kraften att flyga och förmågan att med hjälp av telekinesi flytta på fysiska saker enbart med tankekraft.

Men här syftar vi naturligtvis på en databas av vektorer, i den matematiska betydelsen. En vektor är en rad tal, till exempel (10, 10, 10). De kan bestå av fler eller färre än de tre tal som jag använde i detta exempel. I skolan använder vi ofta vektorer för att beskriva en plats eller en riktning i en dimension. I vårt exempel kan det betyda en punkt som befinner sig 10 cm bort i x-, y- och z-led från en given referenspunkt.

Vektorer är mycket användbara eftersom de kan representera många olika typer av data. Låt oss säga att vi har en mening:

"The quick brown fox jumps over the lazy dog."

Meningen består av ett antal ord. Det är möjligt att representera denna som en vektor. Ett sätt skulle vara att ge varje ord ett nummer och därmed bygga en vektor som ser ut så här:

(23, 10023, 3202, 9238, 1232, 2231, 23, 6723, 345)

Det finns flera olika tekniker för att omvandla meningar till vektorer. Vi är inte heller begränsade till text; det går att vektorisera all möjlig information, som till exempel bilder och ljud.

Men varför är det intressant att omvandla information till vektorer?

Det blir intressant eftersom vi går från ostrukturerad information till något som är strukturerat. Detta kan vi använda i en dator för att göra beräkningar.

Om vi har flera vektorer kan vi se vilka vektorer som liknar varandra. Det finns en algoritm, eller snarare en familj av algoritmer, som kallas "Approximate Nearest Neighbor" (ANN).

ANN-algoritmerna kan matematiskt avgöra vilka vektorer som ligger närmast varandra. Om vår vektor är en punkt i ett x,y,z-system, kan algoritmerna hitta vilken av våra andra vektorer som är närmast denna. Om vår vektor är en vektoriserad mening, kan de identifiera vilka meningar som är mest lika varandra.

Om vi återgår till tanken att vi kan vektorisera text: om vi får in ett e-postmeddelande från en kund i vårt CRM-system, kan vi vektorisera det och sedan jämföra det med en lista av vektorer som vi tidigare har klassificerat som negativa, neutrala eller positiva. Vilken klass är vårt e-postmeddelande mest lik? Vips, så har vi gjort en sentimentanalys av meddelandet. Detta kan användas för att till exempel prioritera kommunikationen på ett lämpligt sätt.

En vektordatabas är en databas där vi kan lagra stora mängder vektorer. Vi kan dessutom be databasen att göra ANN-beräkningar åt oss. Vi skickar in data och får tillbaka de mest liknande vektorerna.

Med andra ord kan vi använda en vektordatabas för att söka efter relaterad information.

Detta gör det också väldigt intressant ur ett CRM-perspektiv eftersom det kan ge stort värde till användaren. Förutom sentimentanalys används tekniken för att göra andra typer av sökningar och analyser, såsom semantisk sökning, multimodal sökning, objektidentifiering och ljudidentifiering, men den kan också fungera som ett minne för Large Language Models (LLMs).

I grunden är detta vad vi kallar för artificiell intelligens, men AI är egentligen bara ett smart sätt att söka information.

En vektordatabas är inget som de flesta små eller medelstora företag kommer att installera och använda själva, men det är en del av de nya smarta tjänster som våra verktyg erbjuder.

Trots att vår vektor inte har förmågan att flyga eller flytta fysiska objekt med tankekraft, hjälper den oss att få information från data på ett nästan övermänskligt sätt. Men framför allt är den en möjliggörare för funktioner som kan förbättra upplevelsen för våra kunder.

Reply

or to participate.