NormalizeEmbedding
Normaliserar en inbäddningsvektor. Om parametern dimension anges minskar den antalet vektordimensioner att använda före normaliseringen.
Format
NormalizeEmbedding ( data { ; dimension } )
Parametrar
data
– ett textuttryck, textfält eller containerfält som innehåller en inbäddningsvektor.
dimension
– antalet vektordimensioner som ska användas för normalisering. Om värdet utelämnas, eller om värdet är större än vektorns faktiska dimension eller mindre än eller lika med 0, används hela vektordimensionen i beräkningen.
Parametrar inom klamrar {} är valfria.
Returnerad datatyp
text, container
Ursprungsversion
22.0
Beskrivning
Den här funktionen returnerar en normaliserad version av den inmatade inbäddningsvektorn. Att normalisera en vektor innebär att dess värden skalas så att längden (magnituden) blir 1. Det är ofta ett nödvändigt steg innan du utför beräkningar som cosinuslikhet, eftersom det säkerställer att likhetsmåttet endast baseras på vektorernas riktning, inte deras storlek.
Om parametern data
är text måste den vara i form av en JSON-matris som innehåller flyttal, till exempel [-0,1, 0,5, ...]
. Vanligtvis förbättras prestanda om man använder inbäddningsvektorer som binära containerdata.
Med parametern dimension
kan du normalisera vektorn baserat endast på ett visst antal av de ursprungliga dimensionerna. Om dimension
anges beräknar funktionen storleken med endast de första dimension-elementen och skalar sedan hela den ursprungliga vektorn baserat på den storleken. Den returnerade vektorn har samma antal dimensioner som den ingående vektorn, såvida inte parametern dimension
används för att trunkera vektorn före normalisering.
Kommentarer
-
De flesta inbäddningsmodeller genererar inbäddningsvektorer som redan är normaliserade (enhetslängd). I så fall är det inte nödvändigt att anropa
NormalizeEmbedding
för de vektorerna, i stället returneras helt enkelt den ursprungliga vektorn. Du behöver vanligtvis bara använda den här funktionen om du arbetar med inbäddningsvektorer som genereras av en modell som inte returnerar normaliserade vektorer, eller om du specifikt behöver normalisera baserat på en delmängd av vektorns dimensioner. -
Att använda den valfria parametern
dimension
kan vara användbart om du vill arbeta med en mindre representation med fast storlek av en större vektor samtidigt som jämförbarheten bibehålls baserat på de ursprungliga dimensionerna.
Exempel 1
NormalizeEmbedding ( "[3, 4]" )
returnerar [0,5999999999999999778, 0,80000000000000004441], vilket för illustrationens syfte är ungefär [0,6, 0,8]
. Den ursprungliga vektorn [3, 4]
har en längd på Sqrt(3^2 + 4^2) = 5. Den normaliserade vektorn [0,6, 0,8]
har en längd på sqrt(0,6^2 + 0,8^2) = 1.
Exempel 2
NormalizeEmbedding ( Tabell::Inbäddningsdata; 256)
returnerar en ny vektor som innehåller endast de första 256 dimensionerna av den ursprungliga vektorn, normaliserad så att dess längd är 1. Inbäddningsvektorn lagras i ett containerfält med namnet Tabell::Inbäddningsdata. Det här är användbart om din inbäddningsmodell producerar stora vektorer, men du vill bara använda ett mindre, fast antal dimensioner för dina cosinuslikhetsberäkningar och behöver normalisera dimensionerna.