Zephyrnet-logo

Beste praksis for å lage Amazon Lex-interaksjonsmodeller

Dato:

Amazon Lex er en AWS-tjeneste for å bygge samtalegrensesnitt inn i en hvilken som helst applikasjon ved hjelp av tale og tekst, som gjør det mulig for bedrifter å legge til sofistikerte, naturlige språk chatbots på tvers av forskjellige kanaler. Amazon Lex bruker maskinlæring (ML) for å forstå naturlig språk (normal samtaletekst og tale). I dette innlegget går vi gjennom et sett med beste fremgangsmåter for å bruke ML for å lage en bot som vil glede kundene dine ved å forstå dem nøyaktig. Dette lar boten din ha mer naturlige samtaler som ikke krever at brukeren følger et sett med strenge instruksjoner. Å designe og bygge et intelligent samtalegrensesnitt er veldig annerledes enn å bygge en tradisjonell applikasjon eller nettside, og dette innlegget vil hjelpe deg med å utvikle noen av de nye ferdighetene som kreves.

La oss se på noen av terminologien vi bruker ofte i dette innlegget:

  • Ytring – Uttrykket brukeren sier til live-boten din.
  • Eksempel på ytring – Noen eksempler på hva brukere kan si. Disse er knyttet til intensjoner og brukes til å trene boten.
  • Intent – Dette representerer hva brukeren mente og bør være tydelig knyttet til et svar eller en handling fra boten. For eksempel en hensikt som reagerer på at en bruker sier hei, eller en hensikt som kan svare og iverksette tiltak hvis en bruker ønsker å bestille en kaffe. En bot har en eller flere hensikter som ytringer kan tilordnes.
  • Slot – En parameter som kan fange opp spesifikke typer informasjon fra ytringen (for eksempel tidspunktet for en avtale eller kundens navn). Spor er festet til intensjoner.
  • Slotverdi – Enten eksempler på hva sporet skal fange opp, eller en spesifikk liste med verdier for et spor (f.eks. stor, mediumog liten som verdier for et spor for kaffestørrelser).

Bildet nedenfor viser hvordan alle disse delene passer sammen for å utgjøre boten din.

Et diagram som viser hvordan en interaksjon med en Amazon Lex-robot flyter gjennom automatisk talegjenkjenning, naturlig språkforståelse, oppfyllelse (inkludert samtalebrukeropplevelse) og tilbake til tekst til tale

Å bygge en godt designet bot krever flere ulike hensyn. Disse inkluderer kravinnsamling og oppdagelse, samtaledesign, testing gjennom automatisering og med brukere, og overvåking og optimalisering av boten din. Innenfor samtaledesignaspektet er det to hovedelementer: interaksjonsmodellen og samtale- eller stemmebrukeropplevelsen (CUX/VUX). CUX og VUX omfatter personligheten til roboten, typene svar, flyten i samtalen, variasjoner for modalitet og hvordan boten håndterer uventede inndata eller feil. Interaksjonsmodellen er stykket som kan ta det brukeren sa (ytring) og kartlegge det til hva de mente (intensjon). I dette innlegget ser vi kun på hvordan du kan designe og optimalisere din interaksjonsmodell.

Fordi Amazon Lex bruker maskinlæring, setter det skaperen av boten i rollen som maskinlærer. Når vi bygger en bot, må vi gi den all kunnskapen den trenger om hvilke typer samtaler den vil støtte. Vi gjør dette både ved hvordan vi konfigurerer boten (hensikter og spor) og treningsdataene vi gir den (eksempel på ytringer og sporverdier). Den underliggende tjenesten beriker den med kunnskap om språk generelt, slik at den kan forstå setninger utover de nøyaktige dataene vi har gitt den.

De beste fremgangsmåtene som er oppført i de følgende delene, kan hjelpe deg med å bygge en bot som vil gi kundene dine en god brukeropplevelse og som fungerer godt for din brukssituasjon.

Å skape intensjoner

Hver hensikt er et konsept du lærer boten din å forstå. Det kan for eksempel være en hensikt som representerer noen som bestiller en kaffe, eller noen som hilser på boten din. Du må sørge for at du gjør det veldig klart og enkelt for roboten å gjenkjenne at en bestemt ytring bør matches med den intensjonen.

Tenk om noen ga deg et sett med indekskort med setninger på, hver sortert i hauger, men uten annen kontekst eller detaljer. De begynte deretter å gi deg flere kartotekkort med fraser og ba deg legge dem til den riktige bunken, ganske enkelt basert på frasene på kortene i hver haug. Hvis hver haug representerte et klart konsept med lignende formuleringer, ville dette vært enkelt. Men hvis det ikke var noe klart emne i hver, ville du slite med å finne ut hvordan du kunne matche dem til en haug. Du kan til og med begynne å bruke andre ledetråder, som "dette er alle korte setninger" eller "bare disse har tegnsetting."

Boten din bruker lignende teknikker, men husk at selv om ML er smart, er den ikke like smart som et menneske, og har ikke all den eksterne kunnskapen og konteksten et menneske har. Hvis et menneske uten kontekst for hva boten din gjør, kan slite med å forstå hva som var ment, vil boten sannsynligvis også gjøre det. De beste fremgangsmåtene i denne delen kan hjelpe deg med å skape intensjoner som vil være gjenkjennelige og mer sannsynlig å bli matchet med ønsket ytring.

1. Hver hensikt skal representere et enkelt konsept

Hver hensikt skal representere ett konsept eller idé, og ikke bare et emne. Det er greit å ha flere hensikter som knytter seg til den samme handlingen eller responsen hvis det å skille dem gir hver et klarere, sammenhengende konsept. La oss se på noen bør og ikke gjøres:

  • Må ikke lage generiske intensjoner som grupperer flere konsepter sammen.

For eksempel kombinerer følgende hensikt setninger om et skadet produkt og mer generelle klagefraser:

DamageComplaint
I've received a damaged product
i received a damaged product
I'm really frustrated
Your company is terrible at deliveries
My product is broken
I got a damaged package
I'm going to return this order
I'll never buy from you again

Følgende hensikt er et annet eksempel, som kombinerer oppdatering av personlige detaljer med oppdatering av mobilapplikasjonen:

UpdateNeeded
I need to update my address
Can I update the address you have for me
How do I update my telephone number
I can't get the update for the mobile app to work
Help me update my iphone app
How do I get the latest version of the mobile app

  • Do dele opp intensjoner når de har veldig forskjellige betydninger. For eksempel kan vi dele opp UpdateNeeded hensikt fra forrige eksempel til to hensikter:

UpdatePersonalDetails
I need to update my address
Can I update the address you have for me
How do I update my telephone number

UpdateMobileApp
I can't get the update for the mobile app to work
Help me update my iphone app
How do I get the latest version of the mobile app

  • Do dele opp intensjoner når de har samme handling eller respons som trengs, men bruker svært forskjellige fraseringer. For eksempel kan de følgende to hensiktene ha samme sluttresultat, men den første forteller oss direkte at de trenger å taue bilen sin, mens den andre bare indirekte antyder at de kan trenge bilen tauet.

RoadsideAssistanceRequested
I need to tow my car

Can I get a tow truck
Can you send someone out to get my car

RoadsideAssistanceNeeded
I've had an accident

I hit an animal
My car broke down

2. Reduser overlapping mellom intensjoner

La oss tenke på stabelen med kartotekkort igjen. Hvis det var kort med de samme (eller svært like) frasene, ville det være vanskelig å vite hvilken stabel du skal legge til et nytt kort med den frasen på. Det er det samme i dette tilfellet. Vi ønsker virkelig klare sett med eksempler på ytringer i hver hensikt. Følgende er noen strategier:

  • Må ikke skape intensjoner med svært like formuleringer som har lignende betydninger. For eksempel, fordi Amazon Lex vil generalisere utenfor eksempelytringene, kan setninger som ikke tydeligvis er en spesifikk hensikt bli mismatchende, for eksempel en kunde som sier "Jeg vil bestille en time" når det er to avtalehensikter, som følgende:

BookDoctorsAppointment
I’d like to book a doctors appointment

BookBloodLabAppointment
I’d like to book a lab appointment

  • Do bruk spor for å kombinere hensikter som er om samme emne og har lignende frasering. For eksempel, ved å kombinere de to intensjonene i det forrige eksemplet, kan vi mer nøyaktig fange opp eventuelle forespørsler om en avtale, og deretter bruke en plass for å bestemme riktig type avtale:

BookAppointment
I’d like to book a {appointmentType} appointment

  • Må ikke skape hensikter der en hensikt er undergruppe av en annen. For eksempel, ettersom boten din vokser, kan det være enkelt å begynne å lage intensjoner for å fange opp mer detaljert informasjon:

BookFlight
I'd like to book a flight
book me a round trip flight
i need to book flight one way

BookOneWayFlight
book me a one-way flight
I’d like to book a one way flight
i need to book flight one way please

  • Do bruke spor for å fange opp forskjellige delmengder av informasjon innenfor en hensikt. For eksempel, i stedet for å bruke forskjellige hensikter for å fange informasjonen om flytypen, kan vi bruke et spor for å fange dette:

BookFlight
I'd like to book a flight
book me a {itineraryType} flight
i need to book flight {itineraryType}
I’d like to book a {itineraryType} flight

3. Ha riktig mengde data

I ML er treningsdata nøkkelen. Hundrevis eller tusenvis av prøver er ofte nødvendig for å få gode resultater. Du vil bli glad for å høre at Amazon Lex ikke krever en enorm mengde data, og faktisk vil du ikke ha for mange eksempler på ytringer i hver hensikt, fordi de kan begynne å avvike eller skape forvirring. Det er imidlertid nøkkelen at vi gir nok eksempler på ytringer til å skape et klart mønster som roboten kan lære av.

Tenk på følgende:

  • Ha minst 15 ytringer per intensjon.
  • Legg til flere ytringer trinnvis (batcher på 10–15) slik at du kan teste ytelsen i trinn. Et større antall ytringer er ikke nødvendigvis bedre.
  • Gjennomgå intensjoner med et stort antall ytringer (over 100) for å vurdere om du enten kan fjerne svært like ytringer, eller bør dele intensjonen i flere hensikter.
  • Hold antallet ytringer likt på tvers av intensjoner. Dette gjør at gjenkjennelse av hver hensikt kan balanseres, og unngår ved et uhell å påvirke boten din til bestemte hensikter.
  • Gjennomgå intensjonene dine regelmessig basert på lærdom fra produksjonsboten din, og fortsett å legge til og justere ytringene. Å designe og utvikle bot er en iterativ prosess som aldri stopper.

4. Ha mangfold i dataene dine

Amazon Lex er en samtale-AI – dens primære formål er å chatte med mennesker. Mennesker har en tendens til å ha stor variasjon i hvordan de formulerer ting. Når vi designer en bot, ønsker vi å forsikre oss om at vi fanger det området i intensjonen vår. Det er viktig å revurdere og oppdatere konfigurasjonen og prøvedataene med jevne mellomrom, spesielt hvis du utvider eller endrer brukerbasen over tid. Vurder følgende anbefalinger:

  • Do har et mangfoldig spekter av ytringer i hver hensikt. Følgende er eksempler på typer mangfold du bør vurdere:
    • Ytringslengder – Følgende er et eksempel med varierende lengder:

BookFlight
book flight
I need to book a flight
I want to book a flight for my upcoming trip

    • Ordforråd – Vi må avstemme dette med hvordan kundene våre snakker. Du kan fange dette gjennom brukertesting eller ved å bruke samtaleloggene fra boten din. For eksempel:

OrderFlowers
I want to buy flowers
Can I order flowers
I need to get flowers

    • frasering – Vi trenger en blanding av ytringer som representerer de ulike måtene våre kunder kan formulere ting på. Følgende eksempel viser ytringer som bruker "bok"som et verb,"bestilling"som et substantiv, "fly booking” som fag, og formelt og uformelt språk:

BookFlight
I need to book a flight
can you help with a flight booking
Flight booking is what I am looking for
please book me a flight
I'm gonna need a flight

    • Tegnsetting – Vi bør inkludere en rekke vanlig bruk. Vi bør også inkludere ikke-grammatisk bruk hvis dette er noe en kunde vil bruke (spesielt når du skriver). Se følgende eksempel:

OrderFlowers
I want to order flowers.
i wanted to get flowers!
Get me some flowers... please!!

    • Bruk av spor – Gi eksempler på ytringer som viser at du både bruker og ikke bruker spor. Bruk forskjellige blandinger av spilleautomater på tvers av de som inkluderer dem. Sørg for at sporene har eksempler med forskjellige steder de kan vises i ytringen. For eksempel:

CancelAppointment
Cancel appointment
Cancel my appointment with Dr. {DoctorLastName}
Cancel appointment on {AppointmentDate} with Dr. {DoctorLastName}
Cancel my appointment on {AppointmentDate}
Can you tell Dr. {DoctorLastName} to cancel my appointment
Please cancel my doctors appointment

  • Må ikke fortsett å legge til ytringer som bare er små varianser i frasering. Amazon Lex er i stand til å generalisere disse for deg. Du vil for eksempel ikke kreve hver av disse tre variantene, da forskjellene er små:

DamagedProductComplaint
I've received a damaged product
I received a damaged product
Received damaged product

  • Må ikke legge til mangfold til noen intensjoner, men ikke til andre. Vi må være konsekvente med formene for mangfold vi legger til. Husk kartotekkortene fra begynnelsen - når en ytring ikke er tydelig, kan roboten begynne å bruke andre ledetråder, som setningslengde eller tegnsetting, for å prøve å matche. Noen ganger kan det være lurt å bruke dette til din fordel (for eksempel hvis du virkelig ønsker å rette alle ettordsfraser til en bestemt hensikt), men det er viktig at du unngår å gjøre dette ved et uhell.

Opprette spor

Vi kom inn på noen gode fremgangsmåter som involverer spilleautomater i forrige avsnitt, men la oss se på noen mer spesifikke beste praksiser for spilleautomater.

5. Bruk korte substantiv eller adjektivfraser for spor

Spilleautomater representerer noe som definitivt kan fanges opp som en parameter, som størrelsen på kaffen du vil bestille, eller flyplassen du flyr til. Vurder følgende:

  • Bruk substantiv eller korte adjektiver for sporverdiene dine. Ikke bruk spor for ting som bærerfraser ("hvordan gjør jeg"Eller"hva kunne jeg”), fordi dette vil redusere muligheten til Amazon Lex til å generalisere ytringene dine. Prøv å beholde spor for verdier du må fange for å oppfylle intensjonen din.
  • Hold sporene generelt til ett eller to ord.

6. Foretrekk spor fremfor eksplisitte verdier

Du kan bruke spilleautomater til å generalisere setningene du bruker, men vi må også holde oss til anbefalingene vi nettopp har gjennomgått. For å gjøre sporverdiene våre så enkle å identifisere som mulig, bruker vi aldri verdier inkludert i sporet direkte i eksempelytringer. Husk følgende tips:

  • Må ikke eksplisitt inkludere verdier som kan være spor i eksempelytringene. For eksempel:

OrderFlowers
I want to buy roses
I want to buy lilies
I would love to order some orchids
I would love to order some roses

  • Do bruk spor for å redusere repetisjon. For eksempel:

OrderFlowers
I want to buy {flowers}
I would love to order some {flowers}

flowers
roses
lilies
orchids

  • Må ikke blande spor og reelle verdier i eksempelytringene. For eksempel:

OrderFlowers
I want to buy {flowers}
I want to buy lilies
I would love to order some {flowers}

flowers
roses
lilies
orchids

  • Må ikke har intensjoner med kun spor i eksempelytringene hvis sportypene er det AlphaNumeric, Number, Date, GRXML, er svært brede tilpassede spor, eller inkluderer forkortelser. Utvid i stedet eksempelytringene ved å legge til samtalefraser som inkluderer sporet til eksempelytringene.

7. Hold sporverdiene sammenhengende

Boten må bestemme om den skal matche en spilleautomat bare basert på hva den kan lære av verdiene vi har lagt inn. Hvis det er mye likhet eller overlapping innenfor spilleautomater i samme hensikt, kan dette føre til utfordringer med at riktig spor matches.

  • Må ikke har spor med overlappende verdier i samme hensikt. Prøv å kombinere dem i stedet. For eksempel:

pets
cat
dog
goldfish

animals
horse
cat
dog

8. Vurder hvordan ordene vil bli transkribert

Amazon Lex bruker automatisert talegjenkjenning (ASR) for å transkribere tale. Dette betyr at alle inndata til din Amazon Lex-interaksjonsmodell behandles som tekst, selv når du bruker en stemmerobot. Vi må huske at en transkripsjon kan variere fra hvordan brukere skriver det samme. Vurder følgende:

  • Skriv inn akronymer, eller andre ord hvis bokstaver skal uttales individuelt, som enkeltbokstaver atskilt med et punktum og et mellomrom. Dette vil samsvare nærmere med hvordan det vil bli transkribert. For eksempel:

A. T. M.
A. W. S.
P. A.

  • Gjennomgå lyden og transkripsjonene med jevne mellomrom, slik at du kan justere eksempelytringene eller sportypene dine. For å gjøre dette, slå på samtalelogger og aktiver både tekst- og lydlogger når det er mulig.

9. Bruk de riktige alternativene som er tilgjengelige for spilleautomatene dine

Mange forskjellige typer spilleautomater og alternativer er tilgjengelige, og å bruke de beste alternativene for hver av våre spilleautomater kan hjelpe gjenkjennelsen av disse spilleautomatverdiene. Vi ønsker alltid å ta oss tid til å forstå alternativene før vi bestemmer oss for hvordan vi skal designe spilleautomatene våre:

  • Bruk begrensningsalternativet for å begrense spor til et lukket sett med verdier. Du kan definere synonymer for hver verdi. Dette kan for eksempel være menyelementene i restauranten din.
  • Bruk utvidelsesalternativet når du vil kunne identifisere mer enn bare eksempelverdiene du oppgir (for eksempel Navn).
  • Slå på obfuskering for spor som samler inn sensitive data for å forhindre at dataene blir logget.
  • Bruk kjøretidstips for å forbedre sporgjenkjenningen når du kan begrense de potensielle alternativene under kjøring. Å velge ett spor kan begrense alternativene for et annet; for eksempel kan en bestemt type møbler ikke ha alle fargealternativer.
  • Bruk stavemåter å fange opp uvanlige ord eller ord med variasjoner i stavemåter som navn.

10. Bruk tilpasset vokabular for spesialistdomener

I de fleste tilfeller, a tilpasset ordforråd er ikke påkrevd, men kan være nyttig hvis brukerne vil bruke spesialistord som ikke er vanlige i hverdagsspråket. I dette tilfellet kan det å legge til en være nyttig for å sikre at transkripsjonene dine er nøyaktige. Husk følgende:

  • Do bruk et tilpasset vokabular for å legge til ord som ikke lett gjenkjennes av Amazon Lex i stemmebaserte samtaler. Dette forbedrer tale-til-tekst-transkripsjonen og den generelle kundeopplevelsen.
  • Må ikke bruk korte eller vanlige ord som «på», «det», «til», «ja» eller «nei» i et tilpasset ordforråd.
  • Do bestemme hvor mye vekt du skal gi et ord basert på hvor ofte ordet ikke gjenkjennes i transkripsjonen og hvor sjeldent ordet er i inndata. Ord som er vanskelige å uttale krever høyere vekt. Bruk et representativt testsett for å finne ut om en vekt er passende. Du kan samle et lydtestsett ved å slå på lydlogging i samtalelogger.
  • Do bruk egendefinerte sportyper for lister over katalogverdier eller enheter, for eksempel produktnavn eller aksjefond.

11. GRXML-spor trenger en streng grammatikk

Når du migrerer til Amazon Lex fra en tjeneste som kanskje allerede har grammatikk på plass (for eksempel tradisjonelle automatiske talegjenkjenningsmotorer), er det mulig å gjenbruke GRXML-grammatikker under den nye botdesignprosessen. Men når du oppretter en helt ny Amazon Lex-bot, anbefaler vi først å sjekke om andre spilleautomater kan dekke dine behov før du bruker GRXML. Vurder følgende:

  • Do bruk GRXML-spor kun for taleinndata, og ikke tekstbaserte interaksjoner.
  • Må ikke legg til bærerfrasene for GRXML-sporene i selve GRXML-filen (grammatikk).
  • Do legg bærefraser inn i sporeksempelytringene, slik som jeg bor i {zipCode} eller {zipCode} er postnummeret mitt.
  • Do forfatter grammatikken for kun å fange opp riktige sporverdier. For eksempel, for å fange et femsifret amerikansk postnummer, bør du bare godta verdier som er nøyaktig fem sifre.

Oppsummering

I dette innlegget gikk vi gjennom et sett med beste fremgangsmåter som bør hjelpe deg når du designer og bygger din neste robot. Når du tar bort denne informasjonen, er det viktig å huske at beste praksis alltid er kontekstavhengig. Dette er ikke regler, men retningslinjer for å hjelpe deg med å bygge en chatbot med høy ytelse. Etter hvert som du fortsetter å bygge og optimalisere dine egne roboter, vil du finne at noen av disse er viktigere for bruken din enn andre, og du kan legge til dine egne ekstra beste fremgangsmåter. Som bot-skaper har du mye kontroll over hvordan du konfigurerer Amazon Lex-boten din for å få de beste resultatene for brukssaken din, og disse beste fremgangsmåtene bør gi deg et flott sted å starte.

Vi kan oppsummere de beste fremgangsmåtene i dette innlegget som følger:

  • Hold hver hensikt til et enkelt klart konsept med et sammenhengende sett med ytringer
  • Bruk representative, balanserte og mangfoldige eksempler på ytringsdata
  • Bruk spor for å gjøre intensjoner tydeligere og fange opp data
  • Hold hvert spor til et enkelt emne med et klart sett med verdier
  • Kjenn og bruk riktig type spor for din brukssituasjon

For mer informasjon om Amazon Lex, sjekk ut Komme i gang med Amazon Lex for dokumentasjon, veiledninger, fremgangsmåtevideoer, kodeeksempler og SDK-er.


om forfatteren

Bilde av Gillian ArmstrongGillian Armstrong er en Builder Solutions Architect. Hun er spent på hvordan skyen åpner opp muligheter for flere mennesker til å bruke teknologi for å løse problemer, og spesielt spent på hvordan kognitive teknologier, som konversasjons-AI, lar oss samhandle med datamaskiner på mer menneskelige måter.

spot_img

Siste etterretning

spot_img