Semantisk rankning i Azure Cognitive Search

Viktigt

Semantisk sökning är i offentlig förhandsversion under kompletterande användningsvillkor. Den är tillgänglig via Azure Portal, förhandsversion av REST API och beta-SDK:er. Dessa funktioner kan faktureras. Mer information om finns i Tillgänglighet och priser.

Semantisk rangordning är ett tillägg av frågekörningspipelinen som förbättrar precisionen genom att ändra de översta matchningarna för en inledande resultatuppsättning. Semantisk rangordning backas upp av stora transformatorbaserade nätverk som tränats för att fånga den semantiska innebörden av frågetermer, i motsats till språklig matchning på nyckelord. Till skillnad från standardalgoritmen för likhetsrankning använder den semantiska rankaren kontexten och innebörden av ord för att fastställa relevans.

Semantisk rangordning är både resurs- och tidsintensiv. För att slutföra bearbetningen inom den förväntade svarstiden för en frågeåtgärd konsolideras och minskas indata till den semantiska rangordningen så att de underliggande sammanfattnings- och omrankningsstegen kan slutföras så snabbt som möjligt.

Förbearbetning

Innan bedömning av relevans måste innehållet minskas till ett hanterbart antal indata som kan hanteras effektivt av den semantiska rankaren.

  1. För det första börjar innehållsminskningen med den första resultatuppsättningen som returneras av standardalgoritmen för likhetsrankning som används för nyckelordssökning. För en viss fråga kan resultatet vara en handfull dokument, upp till den maximala gränsen på 1 000. Eftersom det skulle ta för lång tid att bearbeta ett stort antal matchningar är det bara de 50 främsta förloppet till semantisk rangordning.

    Oavsett antalet dokument, oavsett om det är ett eller 50, upprättar den första iterationen av dokument corpus för semantisk rangordning.

  2. I hela corpus extraheras sedan innehållet i varje fält i semantikkonfigurationen och kombineras till en lång sträng.

  3. Efter strängkonsolidering trimmas alla strängar som är för långa för att säkerställa att den övergripande längden uppfyller indatakraven för sammanfattningssteget.

    Den här trimningsövningen är anledningen till att det är viktigt att lägga till fält i din semantiska konfiguration i prioriterad ordning. Om du har mycket stora dokument med textintensiva fält ignoreras allt efter maxgränsen.

Varje dokument representeras nu av en enda lång sträng.

Anteckning

I 2020-06-30-preview används parametern "searchFields" i stället för den semantiska konfigurationen för att avgöra vilka fält som ska användas. Vi rekommenderar att du uppgraderar till API-versionen 2021-04-30-preview för bästa resultat.

Strängen består av token, inte tecken eller ord. Det maximala antalet token är 128 unika token. I uppskattningssyfte kan du anta att 128 token ungefär motsvarar en sträng som är 128 ord lång.

Anteckning

Tokenisering bestäms delvis av analystilldelningen för sökbara fält. Om du använder specialiserad analysator, till exempel nGram eller EdgeNGram, kanske du vill undanta fältet från searchFields. För insikter om hur strängar tokeniseras kan du granska tokenutdata för en analysator med hjälp av REST-API:et testanalys.

Extrahering

Efter strängreducering är det nu möjligt att skicka de minskade indata via maskinläsningsförståelse- och språkrepresentationsmodeller för att avgöra vilka meningar och fraser som bäst sammanfattar dokumentet i förhållande till frågan. Den här fasen extraherar innehåll från strängen som ska gå vidare till den semantiska rankern.

Indata till sammanfattning är de långa strängar som hämtas för varje dokument i förberedelsefasen. Från varje sträng hittar sammanfattningsmodellen en passage som är mest representativ. Detta avsnitt utgör också en semantisk beskrivning för dokumentet. Varje bildtext är tillgänglig i en oformaterad textversion och en markeringsversion och är ofta färre än 200 ord per dokument.

Ett semantiskt svar returneras också om du angav parametern "svar", om frågan ställdes som en fråga och om ett avsnitt kan hittas i den långa strängen som sannolikt kommer att ge ett svar på frågan.

Semantisk rankning

  1. Undertexter utvärderas för konceptuell och semantisk relevans i förhållande till den angivna frågan.

    Följande diagram ger en illustration av vad "semantisk relevans" betyder. Överväg termen "kapital", som kan användas i samband med ekonomi, juridik, geografi eller grammatik. Om en fråga innehåller termer från samma vektorutrymme (till exempel "kapital" och "investering" får ett dokument som också innehåller token i samma kluster högre poäng än ett som inte gör det.

    Vektorrepresentation för kontext

  2. @search.rerankerScore Tilldelas till varje dokument baserat på beskrivningens semantiska relevans. Poängen varierar från 4 till 0 (hög till låg), där en högre poäng indikerar en starkare matchning.

  3. När alla dokument har poängsatts visas de i fallande ordning efter poäng och ingår i nyttolasten för frågesvar. Nyttolasten innehåller svar, oformaterad text och markerade undertexter samt alla fält som du har markerat som hämtningsbara eller angivna i en select-sats.

Nästa steg

Semantisk rangordning erbjuds på standardnivåer i specifika regioner. Mer information om tillgänglighet och registrering finns i Tillgänglighet och priser. En ny frågetyp möjliggör rangordning och svarsstrukturer för semantisk sökning. För att komma igång konfigurerar du semantisk rangordning.

Du kan också läsa följande artiklar om standardrankning. Semantisk rangordning är beroende av likhetsrankningen för att returnera de första resultaten. Genom att känna till frågekörning och rangordning får du en bred förståelse för hur hela processen fungerar.