Online gesprekken zijn alomtegenwoordig in het moderne leven, in sectoren van videogames tot telecommunicatie. Dit heeft geleid tot een exponentiële groei van de hoeveelheid online gespreksgegevens, wat heeft bijgedragen aan de ontwikkeling van state-of-the-art natural language processing (NLP)-systemen zoals chatbots en natural language generation (NLG)-modellen. In de loop van de tijd zijn er ook verschillende NLP-technieken voor tekstanalyse ontwikkeld. Dit vereist de vereiste van een volledig beheerde service die kan worden geïntegreerd in applicaties met behulp van API-aanroepen zonder de noodzaak van uitgebreide machine learning (ML)-expertise. AWS biedt vooraf getrainde AWS AI-services zoals: Amazon begrijpt het, die NLP-gebruikscasussen effectief aankan met classificatie, tekstsamenvattingen, entiteitsherkenning en meer om inzichten uit tekst te verzamelen.
Bovendien hebben online gesprekken geleid tot een wijdverbreid fenomeen van niet-traditioneel taalgebruik. Traditionele NLP-technieken presteren vaak slecht op deze tekstgegevens vanwege de voortdurend evoluerende en domeinspecifieke vocabulaires die binnen verschillende platforms bestaan, evenals de aanzienlijke lexicale afwijkingen van woorden van het juiste Engels, hetzij per ongeluk of opzettelijk als een vorm van vijandige aanval .
In dit bericht beschrijven we meerdere ML-benaderingen voor tekstclassificatie van online gesprekken met tools en services die beschikbaar zijn op AWS.
Voorwaarden
Voordat u diep in deze use-case duikt, moet u aan de volgende vereisten voldoen:
- Stel een AWS-account en maak een IAM-gebruiker aan.
- Stel de AWS CLI en AWS SDK's.
- (Optioneel) Stel uw . in Cloud9 IDE-omgeving.
dataset
Voor dit bericht gebruiken we de Jigsaw Onbedoelde bias in dataset voor toxiciteitsclassificatie, een benchmark voor het specifieke probleem van classificatie van toxiciteit in online gesprekken. De dataset biedt toxiciteitslabels en verschillende subgroepkenmerken zoals obsceen, identiteitsaanval, belediging, bedreiging en seksueel expliciet. Labels worden geleverd als fractionele waarden, die het aandeel menselijke annotators vertegenwoordigen die geloofden dat het attribuut op een bepaald stuk tekst werd toegepast, die zelden unaniem zijn. Voor het genereren van binaire labels (bijvoorbeeld toxisch of niet-toxisch), wordt een drempelwaarde van 0.5 toegepast op de fractionele waarden, en opmerkingen met waarden die groter zijn dan de drempelwaarde worden behandeld als de positieve klasse voor dat label.
Inbedding van subwoorden en RNN's
Voor onze eerste modelleringsaanpak gebruiken we een combinatie van subwoordinbedding en terugkerende neurale netwerken (RNN's) om tekstclassificatiemodellen te trainen. Inbedding van subwoorden is geïntroduceerd door Bojanowski et al. in 2017 als een verbetering ten opzichte van eerdere inbeddingsmethoden op woordniveau. Traditionele Word2Vec skip-gram modellen zijn getraind om een statische vectorrepresentatie van een doelwoord te leren die de context van dat woord optimaal voorspelt. Subwoordmodellen daarentegen stellen elk doelwoord voor als een zak met de karakters n-grammen waaruit het woord bestaat, waarbij een n-gram is samengesteld uit een set van n opeenvolgende karakters. Deze methode zorgt ervoor dat het inbeddingsmodel de onderliggende morfologie van verwante woorden in het corpus beter weergeeft, evenals de berekening van inbeddingen voor nieuwe woorden die buiten de woordenschat vallen. Dit is vooral belangrijk in de context van online gesprekken, een probleemruimte waarin gebruikers vaak woorden verkeerd spellen (soms opzettelijk om detectie te ontwijken) en ook een unieke, voortdurend evoluerende woordenschat gebruiken die misschien niet wordt vastgelegd door een algemeen trainingscorpus.
Amazon Sage Maker maakt het gemakkelijk om een onbewaakt model voor het insluiten van subwoorden op uw eigen corpus van domeinspecifieke tekstgegevens te trainen en te optimaliseren met de ingebouwde BlazingText-algoritme. We kunnen ook bestaande modellen voor algemene doeleinden downloaden die zijn getraind op grote datasets met online tekst, zoals de volgende: Engelstalige modellen direct beschikbaar bij fastText. Voer vanuit uw SageMaker-notebookinstantie het volgende uit om een vooraf getraind fastText-model te downloaden:
Of je nu je eigen inbeddingen hebt getraind met BlazingText of een vooraf getraind model hebt gedownload, het resultaat is een binair gecomprimeerd model dat je met de gensim-bibliotheek kunt gebruiken om een bepaald doelwoord in te sluiten als een vector op basis van de samenstellende subwoorden:
Nadat we een bepaald tekstsegment hebben voorbewerkt, kunnen we deze benadering gebruiken om een vectorrepresentatie te genereren voor elk van de samenstellende woorden (gescheiden door spaties). Vervolgens gebruiken we SageMaker en een diepgaand leerraamwerk zoals PyTorch om een aangepaste RNN te trainen met een binaire of multilabel classificatiedoelstelling om te voorspellen of de tekst giftig is of niet en het specifieke subtype van toxiciteit op basis van gelabelde trainingsvoorbeelden.
Om uw voorbewerkte tekst te uploaden naar: Amazon eenvoudige opslagservice (Amazon S3), gebruik de volgende code:
Voer de volgende code in om schaalbare, multi-GPU-modeltraining met SageMaker te starten:
Binnen , definiëren we een PyTorch-gegevensset die wordt gebruikt door: train.py
om de tekstgegevens voor te bereiden voor training en evaluatie van het model:
Merk op dat deze code anticipeert dat de vectors.zip
bestand met uw fastText- of BlazingText-inbeddingen wordt opgeslagen in .
Bovendien kunt u eenvoudig vooraf getrainde fastText-modellen op zichzelf implementeren om SageMaker-eindpunten te gebruiken om insluitingsvectoren on-the-fly te berekenen voor gebruik in relevante taken op woordniveau. Zie het volgende: GitHub-voorbeeld voor meer details.
Transformatoren met knuffelend gezicht
Voor onze tweede modelleringsaanpak gaan we over op het gebruik van Transformers, geïntroduceerd in de paper Aandacht is alles wat je nodig hebt. Transformers zijn deep learning-modellen die zijn ontworpen om opzettelijk de valkuilen van RNN's te vermijden door te vertrouwen op een zelfaandachtsmechanisme om wereldwijde afhankelijkheden te trekken tussen input en output. De Transformer-modelarchitectuur zorgt voor een aanzienlijk betere parallellisatie en kan hoge prestaties behalen in relatief korte trainingstijd.
Gebouwd op het succes van Transformers, BERT, geïntroduceerd in de krant BERT: Pre-training van Deep Bidirectional Transformers for Language Understanding, toegevoegde bidirectionele pre-training voor taalrepresentatie. Geïnspireerd door de Cloze-taak, is BERT vooraf getraind met gemaskeerde taalmodellering (MLM), waarbij het model leert de originele woorden voor willekeurig gemaskeerde tokens te herstellen. Het BERT-model is ook voorgetraind op de volgende zin voorspelling (NSP) taak om te voorspellen of twee zinnen in de juiste leesvolgorde staan. Sinds de komst in 2018 worden BERT en zijn variaties veel gebruikt in tekstclassificatietaken.
Onze oplossing maakt gebruik van een variant van BERT, bekend als RoBERTa, die in de krant werd geïntroduceerd RoBERTa: een robuust geoptimaliseerde BERT-vooropleiding. RoBERTa verbetert de BERT-prestaties op een verscheidenheid aan natuurlijke taaltaken verder door geoptimaliseerde modeltraining, inclusief trainingsmodellen die langer zijn op een 10 keer groter groter corpus, met behulp van geoptimaliseerde hyperparameters, dynamische willekeurige maskering, het verwijderen van de NSP-taak en meer.
Onze op RoBERTa gebaseerde modellen gebruiken de Face Transformers knuffelen bibliotheek, een populair open-source Python-framework dat hoogwaardige implementaties biedt van allerlei geavanceerde Transformer-modellen voor een verscheidenheid aan NLP-taken. Hugging Face werkt samen met AWS zodat u gemakkelijk Transformer-modellen kunt trainen en implementeren op SageMaker. Deze functionaliteit is beschikbaar via: Hugging Face AWS Deep Learning Container-afbeeldingen, waaronder de Transformers, Tokenizers en Datasets-bibliotheken, en geoptimaliseerde integratie met SageMaker voor modeltraining en inferentie.
In onze implementatie nemen we de RoBERTa-architectuurruggengraat over van het Hugging Face Transformers-framework en gebruiken we SageMaker om ons eigen tekstclassificatiemodel te trainen en te implementeren, dat we RoBERTox noemen. RoBERTox maakt gebruik van byte pair-codering (BPE), geïntroduceerd in Neurale machinevertaling van zeldzame woorden met subwoordeenheden, om invoertekst te tokeniseren in subwoordrepresentaties. We kunnen dan onze modellen en tokenizers trainen op de Jigsaw-gegevens of een groot domeinspecifiek corpus (zoals de chatlogboeken van een specifiek spel) en ze gebruiken voor aangepaste tekstclassificatie. We definiëren onze aangepaste classificatiemodelklasse in de volgende code:
Voor de training bereiden we onze tekstgegevens en labels voor met behulp van de datasetsbibliotheek van Hugging Face en uploaden het resultaat naar Amazon S3:
We starten de training van het model op een vergelijkbare manier als de RNN:
Ten slotte illustreert het volgende Python-codefragment het proces van het bedienen van RoBERTox via een live SageMaker-eindpunt voor realtime tekstclassificatie voor een JSON-verzoek:
Evaluatie van modelprestaties: onbedoelde bias-dataset puzzelen
De volgende tabel bevat prestatiestatistieken voor modellen die zijn getraind en geëvalueerd op basis van gegevens van de Jigsaw Unintended Bias in Toxicity Detection Kaggle-competitie. We hebben modellen getraind voor drie verschillende, maar onderling samenhangende taken:
- Binair geval – Het model is getraind op de volledige trainingsdataset om de
toxicity
alleen labelen - Fijnkorrelige behuizing – De subset van de trainingsgegevens waarvoor
toxicity>=0.5
werd gebruikt om andere toxiciteitssubtypelabels te voorspellen (obscene
,threat
,insult
,identity_attack
,sexual_explicit
) - Multitask-koffer – De volledige trainingsdataset werd gebruikt om alle zes labels tegelijkertijd te voorspellen
We hebben RNN- en RoBERTa-modellen getraind voor elk van deze drie taken met behulp van de door Jigsaw geleverde fractionele labels, die overeenkomen met het aandeel annotators die dachten dat het label geschikt was voor de tekst, evenals met binaire labels gecombineerd met klassegewichten in het netwerk verlies functie. In het binaire labelschema werden de verhoudingen gedrempeld op 0.5 voor elk beschikbaar label (1 als label> = 0.5, anders 0), en de modelverliesfuncties werden gewogen op basis van de relatieve verhoudingen van elk binair label in de trainingsgegevensset. In alle gevallen vonden we dat het gebruik van fractionele labels direct de beste prestaties opleverde, wat de toegevoegde waarde aangeeft van de informatie die inherent is aan de mate van overeenstemming tussen annotators.
We geven twee modelstatistieken weer: de gemiddelde precisie (AP), die een samenvatting geeft van de precisie-herinneringscurve door het gewogen gemiddelde te berekenen van de precisiewaarden die zijn bereikt bij elke classificatiedrempel, en het gebied onder de receiver operating karakteristieke curve (AUC) , die modelprestaties verzamelt over classificatiedrempels met betrekking tot het percentage echte positieve en valse positieven. Merk op dat de ware klasse voor een gegeven tekstinstantie in de testset overeenkomt met of de ware verhouding groter is dan of gelijk is aan 0.5 (1 als label>=0.5, anders 0).
. | Inbedding van subwoorden + RNN | RoBERTa | ||
. | Fractionele labels | Binaire labels + Klasse-weging | Fractionele labels | Binaire labels + Klasse-weging |
binair | AP=0.746, AUC=0.966 | AP=0.730, AUC=0.963 | AP=0.758, AUC=0.966 | AP=0.747, AUC=0.963 |
Fijn gemalen | 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 |
Conclusie
In dit bericht hebben we twee benaderingen voor tekstclassificatie gepresenteerd voor online gesprekken met behulp van AWS ML-services. U kunt deze oplossingen veralgemenen over online communicatieplatforms, waarbij bedrijfstakken zoals gaming waarschijnlijk zullen profiteren van een verbeterd vermogen om schadelijke inhoud te detecteren. In toekomstige berichten zijn we van plan om een end-to-end-architectuur verder te bespreken voor naadloze implementatie van modellen in uw AWS-account.
Als u hulp nodig heeft bij het versnellen van uw gebruik van ML in uw producten en processen, neem dan contact op met de Amazon ML Solutions-lab.
Over de auteurs
Ryan merk is een datawetenschapper in het Amazon Machine Learning Solutions Lab. Hij heeft specifieke ervaring met het toepassen van machine learning op problemen in de gezondheidszorg en de levenswetenschappen, en in zijn vrije tijd leest hij graag geschiedenis en sciencefiction.
Sourav Bhabesh is een datawetenschapper bij het Amazon ML Solutions Lab. Hij ontwikkelt AI/ML-oplossingen voor AWS-klanten in verschillende sectoren. Zijn specialiteit is Natural Language Processing (NLP) en is gepassioneerd door deep learning. Naast zijn werk houdt hij van boeken lezen en reizen.
Liutong Zhou is een Applied Scientist bij het Amazon ML Solutions Lab. Hij bouwt op maat gemaakte AI/ML-oplossingen voor AWS-klanten in verschillende sectoren. Hij is gespecialiseerd in Natural Language Processing (NLP) en is gepassioneerd door multimodaal deep learning. Hij is een lyrische tenor en geniet van het zingen van opera's buiten het werk.
Sia Gholami is Senior Data Scientist bij het Amazon ML Solutions Lab, waar hij AI/ML-oplossingen bouwt voor klanten in verschillende sectoren. Hij is gepassioneerd door natuurlijke taalverwerking (NLP) en deep learning. Naast haar werk brengt Sia graag tijd door in de natuur en speelt ze graag tennis.
Daniël Horowitz is een Applied AI Science Manager. Hij leidt een team van wetenschappers in het Amazon ML Solutions Lab dat werkt aan het oplossen van klantproblemen en het stimuleren van cloudadoptie met ML.
- Coinsmart. Europa's beste Bitcoin- en crypto-uitwisseling.
- Platoblockchain. Web3 Metaverse Intelligentie. Kennis versterkt. GRATIS TOEGANG.
- CryptoHawk. Altcoin-radar. Gratis proefversie.
- Bron: https://aws.amazon.com/blogs/machine-learning/text-classification-for-online-conversations-with-machine-learning-on-aws/
- '
- "
- 10
- 100
- 7
- a
- vermogen
- Over
- versnellen
- Account
- Bereiken
- bereikt
- over
- toegevoegd
- Adoptie
- Overeenkomst
- AI
- AI-diensten
- Alles
- toestaat
- Amazone
- bedragen
- analyse
- api
- toepassingen
- toegepast
- Solliciteer
- Het toepassen van
- nadering
- benaderingen
- passend
- architectuur
- GEBIED
- attributen
- Beschikbaar
- gemiddelde
- AWS
- zak
- criterium
- voordeel
- BEST
- Betere
- tussen
- groter
- Boeken
- bouwt
- ingebouwd
- Bellen
- geval
- gevallen
- tekens
- klasse
- classificatie
- Cloud
- code
- combinatie van
- gecombineerde
- opmerkingen
- Communicatie
- concurrentie
- compleet
- samengesteld
- berekening
- Berekenen
- computergebruik
- opeenvolgend
- permanent
- contact
- Containers
- bevat
- content
- Gesprek
- conversaties
- en je merk te creëren
- curve
- gewoonte
- klant
- Klanten
- gegevens
- data scientist
- deep
- implementeren
- inzet
- beschrijven
- ontworpen
- gegevens
- Opsporing
- Bepalen
- Ontwikkeling
- anders
- Afmeting
- direct
- bespreken
- Display
- Download
- rit
- gedurende
- dynamisch
- elk
- gemakkelijk
- effectief
- in staat stellen
- eind tot eind
- Endpoint
- Engels
- Enter
- entiteit
- evaluatie
- evoluerende
- voorbeeld
- voorbeelden
- bestaand
- ervaring
- expertise
- uitgebreid
- Gezicht
- Mode
- Fictie
- Voornaam*
- volgend
- formulier
- Naar voren
- gevonden
- breuk
- Achtergrond
- Gratis
- oppompen van
- vol
- functie
- functionaliteit
- functies
- verder
- toekomst
- spel
- Spellen
- gaming
- Algemeen
- voor algemeen gebruik
- voortbrengen
- generatie
- Globaal
- meer
- handvat
- hoofd
- gezondheidszorg
- hulp
- geholpen
- Hoge
- hoogwaardige
- geschiedenis
- HTTPS
- menselijk
- Identiteit
- uitvoering
- belangrijk
- verbeterd
- verbetering
- omvatten
- Inclusief
- industrieën
- informatie
- inherent
- invoer
- inzichten
- geinspireerd
- instantie
- Belediging
- geïntegreerde
- integratie
- IT
- decoupeerzaag
- Jobomschrijving:
- toetsen
- bekend
- laboratorium
- label
- etikettering
- labels
- taal
- Groot
- groter
- lagen
- Leads
- LEARN
- leren
- LED
- Bibliotheek
- Bio
- Waarschijnlijk
- leven
- laden
- machine
- machine learning
- maken
- MERKEN
- beheerd
- manager
- maskeren
- Maskers
- Match
- Matrix
- mechanisme
- Geheugen
- methoden
- Metriek
- macht
- ML
- model
- modellen
- meer
- meervoudig
- Naturel
- NATUUR
- netwerk
- netwerken
- volgende
- notitieboekje
- aantal
- Aanbod
- online.
- werkzaam
- Optimaliseer
- geoptimaliseerde
- bestellen
- origineel
- Overige
- anders-
- het te bezitten.
- Papier
- vooral
- partnered
- hartstochtelijk
- prestatie
- stuk
- platforms
- spelen
- dan
- Populair
- positief
- Berichten
- voorspellen
- voorspelling
- Voorbereiden
- vorig
- probleem
- problemen
- processen
- verwerking
- Producten
- Projectie
- mits
- biedt
- lezing
- real-time
- Herstellen
- relevante
- het verwijderen van
- vertegenwoordigen
- vertegenwoordiging
- vertegenwoordigen
- te vragen
- terugkeer
- Retourneren
- Rol
- lopen
- schaalbare
- schema
- Wetenschap
- WETENSCHAPPEN
- Wetenschapper
- wetenschappers
- naadloos
- segment
- service
- Diensten
- serveer-
- reeks
- verscheidene
- Bermuda's
- aanzienlijke
- gelijk
- Eenvoudig
- sinds
- ZES
- Maat
- oplossing
- Oplossingen
- OPLOSSEN
- Tussenruimte
- ruimten
- specialiseert
- Specialiteit
- specifiek
- Uitgaven
- state-of-the-art
- Staten
- mediaopslag
- succes
- Systems
- doelwit
- taken
- team
- technieken
- telecommunicatie
- proef
- De
- drie
- drempel
- Door
- niet de tijd of
- keer
- tokens
- tools
- fakkel
- traditioneel
- Trainen
- Trainingen
- overgang
- Vertaling
- Reizend
- voor
- unieke
- .
- gebruikers
- bevestiging
- waarde
- variëteit
- divers
- Video
- video games
- of
- WIE
- binnen
- zonder
- woorden
- Mijn werk
- werkzaam
- Your