Onlinesamtaler er allestedsnærværende i det moderne liv, der spænder over industrier fra videospil til telekommunikation. Dette har ført til en eksponentiel vækst i mængden af online samtaledata, hvilket har hjulpet i udviklingen af avancerede NLP-systemer (natural language processing) som chatbots og natural language generation (NLG) modeller. Over tid har forskellige NLP-teknikker til tekstanalyse også udviklet sig. Dette nødvendiggør kravet om en fuldt administreret service, der kan integreres i applikationer ved hjælp af API-kald uden behov for omfattende maskinlæringsekspertise (ML). AWS tilbyder forudtrænede AWS AI-tjenester som Amazon Comprehend, som effektivt kan håndtere NLP-brugssager, der involverer klassificering, tekstresumé, enhedsgenkendelse og mere for at indsamle indsigt fra tekst.
Derudover har onlinesamtaler ført til et udbredt fænomen med ikke-traditionel sprogbrug. Traditionelle NLP-teknikker klarer sig ofte dårligt på disse tekstdata på grund af de konstant udviklende og domænespecifikke ordforråd, der findes inden for forskellige platforme, såvel som de betydelige leksikalske afvigelser af ord fra korrekt engelsk, enten ved et uheld eller bevidst som en form for modstridende angreb .
I dette indlæg beskriver vi flere ML-tilgange til tekstklassificering af onlinesamtaler med værktøjer og tjenester tilgængelige på AWS.
Forudsætninger
Inden du dykker dybt ned i denne use case, bedes du udfylde følgende forudsætninger:
- Opret en AWS-konto , oprette en IAM-bruger.
- Indstil AWS CLI , AWS SDK'er.
- (Valgfrit) Konfigurer din Cloud9 IDE-miljø.
datasæt
Til dette indlæg bruger vi Jigsaw Unintended Bias in Toxicity Classification-datasæt, et benchmark for det specifikke problem med klassificering af toksicitet i onlinesamtaler. Datasættet indeholder toksicitetsetiketter såvel som adskillige undergruppeattributter såsom obskønt, identitetsangreb, fornærmelse, trussel og seksuelt eksplicit. Etiketter er angivet som brøkværdier, som repræsenterer andelen af menneskelige annotatorer, der mente, at attributten blev anvendt på et givet stykke tekst, hvilket sjældent er enstemmigt. For at generere binære mærker (f.eks. giftige eller ikke-toksiske) anvendes en tærskel på 0.5 til brøkværdierne, og kommentarer med værdier, der er større end tærsklen, behandles som den positive klasse for den pågældende etiket.
Indlejring af underord og RNN'er
Til vores første modelleringstilgang bruger vi en kombination af indlejring af underord og tilbagevendende neurale netværk (RNN'er) til at træne tekstklassificeringsmodeller. Indlejringer af underord blev introduceret af Bojanowski et al. i 2017 som en forbedring af tidligere indlejringsmetoder på ordniveau. Traditionelle Word2Vec skip-gram-modeller er trænet til at lære en statisk vektorrepræsentation af et målord, der optimalt forudsiger ordets kontekst. Underordsmodeller repræsenterer på den anden side hvert målord som en pose af tegnet n-gram, der udgør ordet, hvor et n-gram er sammensat af et sæt af n på hinanden følgende tegn. Denne metode giver mulighed for, at indlejringsmodellen bedre repræsenterer den underliggende morfologi af relaterede ord i korpus såvel som beregningen af indlejringer for nye ord uden for ordforråd (OOV). Dette er især vigtigt i forbindelse med onlinesamtaler, et problemområde, hvor brugere ofte staver ord forkert (nogle gange med vilje for at undgå opdagelse) og også bruger et unikt, konstant udviklende ordforråd, som måske ikke fanges af et generelt træningskorpus.
Amazon SageMaker gør det nemt at træne og optimere en uovervåget indlejringsmodel for underord på dit eget korpus af domænespecifikke tekstdata med den indbyggede BlazingText algoritme. Vi kan også downloade eksisterende modeller til generelle formål, der er trænet på store datasæt af online tekst, såsom følgende Engelsksprogede modeller tilgængelige direkte fra fastText. Fra din SageMaker notebook-instans skal du blot køre følgende for at downloade en forudtrænet fastText-model:
Uanset om du har trænet dine egne indlejringer med BlazingText eller downloadet en fortrænet model, er resultatet en zippet modelbinær, som du kan bruge med gensim-biblioteket til at indlejre et givet målord som en vektor baseret på dets konstituerende underord:
Efter at vi har forbehandlet et givent tekstsegment, kan vi bruge denne tilgang til at generere en vektorrepræsentation for hvert af de konstituerende ord (adskilt med mellemrum). Vi bruger derefter SageMaker og en deep learning-ramme som PyTorch til at træne en tilpasset RNN med et binært eller multilabel klassifikationsmål for at forudsige, om teksten er giftig eller ej, og den specifikke undertype af toksicitet baseret på mærkede træningseksempler.
For at uploade din forbehandlede tekst til Amazon Simple Storage Service (Amazon S3), brug følgende kode:
Indtast følgende kode for at starte skalerbar multi-GPU-modeltræning med SageMaker:
Inden for , definerer vi et PyTorch-datasæt, der bruges af train.py
at forberede tekstdataene til træning og evaluering af modellen:
Bemærk, at denne kode forudser, at vectors.zip
fil, der indeholder dine fastText- eller BlazingText-indlejringer, vil blive gemt i .
Derudover kan du nemt implementere forudtrænede fastText-modeller på egen hånd til levende SageMaker-slutpunkter til at beregne indlejringsvektorer på farten til brug i relevante opgaver på ordniveau. Se følgende GitHub eksempel for flere detaljer.
Transformere med kramende ansigt
For vores anden modelleringstilgang går vi over til brugen af Transformers, introduceret i papiret Opmærksomhed er alt hvad du behøver. Transformere er deep learning-modeller designet til bevidst at undgå faldgruberne ved RNN'er ved at stole på en selvopmærksomhedsmekanisme til at tegne globale afhængigheder mellem input og output. Transformer-modelarkitekturen giver mulighed for væsentlig bedre parallelisering og kan opnå høj ydeevne på relativt kort træningstid.
Bygget på succesen med Transformers, BERT, introduceret i avisen BERT: Fortræning af dybe tovejstransformere til sprogforståelse, tilføjet tovejs fortræning til sprogrepræsentation. Inspireret af Cloze-opgaven er BERT fortrænet med masked language modeling (MLM), hvor modellen lærer at gendanne de originale ord for tilfældigt maskerede tokens. BERT-modellen er også fortrænet på den næste sætningsforudsigelse (NSP) opgave til at forudsige, om to sætninger er i korrekt læserækkefølge. Siden dets fremkomst i 2018 har BERT og dets variationer været meget brugt i tekstklassificeringsopgaver.
Vores løsning bruger en variant af BERT kendt som RoBERTa, som blev introduceret i papiret ROBERTa: En robust optimeret BERT-fortræningstilgang. ROBERTa forbedrer yderligere BERT-ydeevnen på en række naturlige sprogopgaver ved at optimere modeltræning, herunder træning af modeller længere på et 10 gange større korpus, ved hjælp af optimerede hyperparametre, dynamisk tilfældig maskering, fjernelse af NSP-opgaven og mere.
Vores RobERTa-baserede modeller bruger Krammede ansigtstransformere bibliotek, som er en populær open source Python-ramme, der giver højkvalitetsimplementeringer af alle slags avancerede Transformer-modeller til en række NLP-opgaver. Hugging Face har indgået partnerskab med AWS så du nemt kan træne og implementere Transformer-modeller på SageMaker. Denne funktionalitet er tilgængelig via Hugging Face AWS Deep Learning Container billeder, som omfatter bibliotekerne Transformers, Tokenizers og Datasæt og optimeret integration med SageMaker til modeltræning og inferens.
I vores implementering arver vi RoBERTa-arkitektur-rygraden fra Hugging Face Transformers-rammeværket og bruger SageMaker til at træne og implementere vores egen tekstklassificeringsmodel, som vi kalder RoBERTox. RobERTox bruger byte par kodning (BPE), introduceret i Neural maskinoversættelse af sjældne ord med underordsenheder, for at tokenisere inputtekst til underordsrepræsentationer. Vi kan derefter træne vores modeller og tokenizere på Jigsaw-dataene eller et hvilket som helst stort domænespecifikt korpus (såsom chatlogs fra et specifikt spil) og bruge dem til tilpasset tekstklassificering. Vi definerer vores tilpassede klassifikationsmodelklasse i følgende kode:
Før træning forbereder vi vores tekstdata og etiketter ved hjælp af Hugging Faces datasætbibliotek og uploader resultatet til Amazon S3:
Vi starter træning af modellen på samme måde som RNN:
Endelig illustrerer følgende Python-kodestykke processen med at betjene RobERTox via et live SageMaker-slutpunkt til realtidstekstklassificering for en JSON-anmodning:
Evaluering af modellens ydeevne: Jigsaw utilsigtet bias-datasæt
Følgende tabel indeholder præstationsmålinger for modeller, der er trænet og evalueret på data fra Jigsaw Unintended Bias in Toxicity Detection Kaggle-konkurrencen. Vi trænede modeller til tre forskellige, men indbyrdes forbundne opgaver:
- Binær sag – Modellen blev trænet på det fulde træningsdatasæt til at forudsige
toxicity
kun mærke - Finkornet sag – Den delmængde af træningsdata, for hvilken
toxicity>=0.5
blev brugt til at forudsige andre toksicitetssubtypemærker (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Multitask case – Det fulde træningsdatasæt blev brugt til at forudsige alle seks etiketter samtidigt
Vi trænede RNN- og RobERTa-modeller til hver af disse tre opgaver ved hjælp af de stiksavsleverede brøketiketter, som svarer til andelen af annotatorer, der mente, at etiketten var passende til teksten, samt med binære etiketter kombineret med klassevægte i netværket tabsfunktion. I det binære mærkningsskema blev proportionerne sat til 0.5 for hver tilgængelig etiket (1 hvis etiket>=0.5, ellers 0), og modeltabsfunktionerne blev vægtet baseret på de relative andele af hver binær etiket i træningsdatasættet. I alle tilfælde fandt vi ud af, at brugen af brøketiketterne direkte resulterede i den bedste ydeevne, hvilket indikerer merværdien af de oplysninger, der er iboende i graden af overensstemmelse mellem annotatorer.
Vi viser to modelmetrikker: gennemsnitspræcisionen (AP), som giver en oversigt over præcisions-genkaldelseskurven ved at beregne det vægtede gennemsnit af præcisionsværdierne opnået ved hver klassificeringstærskel, og arealet under modtagerens driftskarakteristikkurve (AUC) , som aggregerer modellens ydeevne på tværs af klassifikationstærskler med hensyn til den sande positive rate og falsk positive rate. Bemærk, at den sande klasse for en given tekstforekomst i testsættet svarer til, om den sande andel er større end eller lig med 0.5 (1 hvis label>=0.5, ellers 0).
. | Indlejring af underord + RNN | ROBERTA | ||
. | Fraktionelle etiketter | Binære etiketter + Klassevægtning | Fraktionelle etiketter | Binære etiketter + Klassevægtning |
Binary | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Finkornet | AP=0.906, AUC=0.909 | AP=0.850, AUC=0.851 | AP=0.913, AUC=0.913 | AP=0.911, AUC=0.912 |
Multitask | AP=0.721, AUC=0.972 | AP=0.535, AUC=0.907 | AP=0.740, AUC=0.972 | AP=0.711, AUC=0.961 |
Konklusion
I dette indlæg præsenterede vi to tekstklassificeringstilgange til onlinesamtaler ved hjælp af AWS ML-tjenester. Du kan generalisere disse løsninger på tværs af online kommunikationsplatforme, hvor industrier som spil er særligt tilbøjelige til at drage fordel af forbedret evne til at opdage skadeligt indhold. I fremtidige indlæg planlægger vi yderligere at diskutere en ende-til-ende-arkitektur til problemfri implementering af modeller på din AWS-konto.
Hvis du gerne vil have hjælp til at fremskynde din brug af ML i dine produkter og processer, så kontakt venligst Amazon ML Solutions Lab.
Om forfatterne
Ryan Brand er dataforsker i Amazon Machine Learning Solutions Lab. Han har specifik erfaring med at anvende maskinlæring på problemer inden for sundhedsvæsenet og biovidenskaberne, og i sin fritid nyder han at læse historie og science fiction.
Sourav Bhabesh er dataforsker ved Amazon ML Solutions Lab. Han udvikler AI/ML-løsninger til AWS-kunder på tværs af forskellige brancher. Hans speciale er Natural Language Processing (NLP) og brænder for dyb læring. Uden for arbejdet holder han af at læse bøger og rejse.
Liutong Zhou er en anvendt videnskabsmand ved Amazon ML Solutions Lab. Han bygger skræddersyede AI/ML-løsninger til AWS-kunder på tværs af forskellige brancher. Han har specialiseret sig i Natural Language Processing (NLP) og brænder for multimodal deep learning. Han er en lyrisk tenor og nyder at synge operaer uden for arbejdet.
Sia Gholami er Senior Data Scientist hos Amazon ML Solutions Lab, hvor han bygger AI/ML-løsninger til kunder på tværs af forskellige brancher. Han brænder for naturlig sprogbehandling (NLP) og deep learning. Uden for arbejdet nyder Sia at tilbringe tid i naturen og spille tennis.
Daniel Horowitz er en Applied AI Science Manager. Han leder et team af forskere på Amazon ML Solutions Lab, der arbejder på at løse kundeproblemer og drive cloud-adoption med ML.
- Coinsmart. Europas bedste Bitcoin og Crypto Exchange.
- Platoblokkæde. Web3 Metaverse Intelligence. Viden forstærket. FRI ADGANG.
- CryptoHawk. Altcoin radar. Gratis prøveversion.
- Kilde: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- evne
- Om
- accelererende
- Konto
- opnå
- opnået
- tværs
- tilføjet
- Vedtagelse
- Aftale
- AI
- AI-tjenester
- Alle
- tillader
- Amazon
- beløb
- analyse
- api
- applikationer
- anvendt
- Indløs
- Anvendelse
- tilgang
- tilgange
- passende
- arkitektur
- OMRÅDE
- attributter
- til rådighed
- gennemsnit
- AWS
- taske
- benchmark
- gavner det dig
- BEDSTE
- Bedre
- mellem
- større
- Bøger
- bygger
- indbygget
- ringe
- tilfælde
- tilfælde
- tegn
- klasse
- klassificering
- Cloud
- kode
- kombination
- kombineret
- kommentarer
- Kommunikation
- konkurrence
- fuldføre
- sammensat
- beregning
- Compute
- computing
- træk
- konstant
- kontakt
- Container
- indeholder
- indhold
- Samtale
- samtaler
- skabe
- skøger
- skik
- kunde
- Kunder
- data
- dataforsker
- dyb
- indsætte
- implementering
- beskrive
- konstrueret
- detaljer
- Detektion
- Bestem
- Udvikling
- forskellige
- Dimension
- direkte
- diskutere
- Skærm
- downloade
- køre
- i løbet af
- dynamisk
- hver
- nemt
- effektivt
- muliggøre
- ende til ende
- Endpoint
- Engelsk
- Indtast
- enhed
- evaluering
- udviklende
- eksempel
- eksempler
- eksisterende
- erfaring
- ekspertise
- omfattende
- Ansigtet
- Mode
- Fiktion
- Fornavn
- efter
- formular
- Videresend
- fundet
- fraktioneret
- Framework
- Gratis
- fra
- fuld
- funktion
- funktionalitet
- funktioner
- yderligere
- fremtiden
- spil
- Spil
- spil
- Generelt
- generelle formål
- generere
- generation
- Global
- større
- Vækst
- håndtere
- hoved
- sundhedspleje
- hjælpe
- hjulpet
- Høj
- høj kvalitet
- historie
- HTTPS
- menneskelig
- Identity
- implementering
- vigtigt
- forbedret
- omfatter
- Herunder
- industrier
- oplysninger
- iboende
- indgang
- indsigt
- inspirerede
- instans
- Fornærme
- integreret
- integration
- IT
- puslespil
- Job
- nøgler
- kendt
- lab
- etiket
- mærkning
- Etiketter
- Sprog
- stor
- større
- lag
- Leads
- LÆR
- læring
- Led
- Bibliotek
- Life Sciences
- Sandsynlig
- leve
- belastning
- maskine
- machine learning
- lave
- maerker
- lykkedes
- leder
- maske
- Masker
- Match
- Matrix
- mekanisme
- Hukommelse
- metoder
- Metrics
- måske
- ML
- model
- modeller
- mere
- flere
- Natural
- Natur
- netværk
- net
- næste
- notesbog
- nummer
- Tilbud
- online
- drift
- Optimer
- optimeret
- ordrer
- original
- Andet
- Ellers
- egen
- Papir
- især
- partnerskab
- lidenskabelige
- ydeevne
- stykke
- Platforme
- spiller
- Vær venlig
- Populær
- positiv
- Indlæg
- forudsige
- forudsigelse
- Forbered
- tidligere
- Problem
- problemer
- behandle
- Processer
- forarbejdning
- Produkter
- Fremskrivning
- forudsat
- giver
- Læsning
- realtid
- Recover
- relevant
- fjernelse
- repræsentere
- repræsentation
- repræsenterer
- anmode
- afkast
- afkast
- roller
- Kør
- skalerbar
- Ordningen
- Videnskab
- VIDENSKABER
- Videnskabsmand
- forskere
- sømløs
- segment
- tjeneste
- Tjenester
- servering
- sæt
- flere
- Kort
- signifikant
- lignende
- Simpelt
- siden
- SIX
- Størrelse
- løsninger
- Løsninger
- SOLVE
- Space
- rum
- specialiseret
- Specialty
- specifikke
- udgifterne
- state-of-the-art
- Stater
- opbevaring
- succes
- Systemer
- mål
- opgaver
- hold
- teknikker
- telekommunikation
- prøve
- tre
- tærskel
- Gennem
- tid
- gange
- Tokens
- værktøjer
- fakkel
- traditionelle
- Tog
- Kurser
- overgang
- Oversættelse
- Traveling
- under
- enestående
- brug
- brugere
- validering
- værdi
- række
- forskellige
- video
- videospil
- hvorvidt
- WHO
- inden for
- uden
- ord
- Arbejde
- arbejder
- Din