machine learning model
DATA & AIAWSMACHINE LEARNING
12/12/2018 • Stijn Van den Enden

Bouwen op de schouders van reuzen: machine learning-modellen van AWS gebruiken

Ik heb in mijn vorige blog het belang benadrukt van het verzamelen van gegevens. Soms zijn er echter geen geschikte gegevens beschikbaar. Misschien wel onbewerkte gegevens, maar die zijn wellicht niet gelabeld en niet geschikt voor machine learning. Beschik je niet over de financiële middelen om deze gegevens te labelen of heb je geen product zoals reCAPTCHA om het gratis te doen? Dan is er nog een andere optie.

Amazon lanceerde meer dan 10 jaar geleden als bijverdienste het cloudplatform Amazon Web Services en dit is sindsdien enorm snel gegroeid. AWS biedt nu meer dan 165 services en geeft iedereen, van start-ups tot multinationals, toegang tot een betrouwbare en schaalbare technische infrastructuur. Enkele van deze services bieden de zogenaamde vooraf getrainde machine learning-modellen aan.

amazon web services

De vooraf getrainde machine learning-modellen kunnen afbeeldingen of objecten herkennen, tekst verwerken, aanbevelingen doen en meer. Het mooiste aan het hele verhaal is dat je gebruik kunt maken van services die zijn gebaseerd op Deep Learning zonder dat je enige kennis van machine learning hoeft te bezitten. Deze services worden getraind door Amazon met gegevens van hun websites, immense productcatalogus en warehouses.

De informatie op de AWS-websites kan in eerste instantie nogal overweldigend zijn. Ik geef in deze blog daarom een overzicht van enkele services die gebruikmaken van machine learning-modellen van Amazon die volgens mij eenvoudig in applicaties kunnen worden geïntroduceerd.

Computervisie met Rekognition

Amazon Rekognition is een service waarmee afbeeldingen en video's worden geanalyseerd. Je kunt deze service gebruiken om gezichten van mensen, alledaagse objecten of zelfs verschillende beroemdheden te herkennen. Je kunt zo bijvoorbeeld labels toevoegen aan video's, de bal volgen tijdens een voetbalwedstrijd of beroemdheden tussen het publiek te vinden.

computervisie met rekognition getest op ons HR team

Rekognition heeft ook een API om overeenkomsten tussen personen in meerdere afbeeldingen te vergelijken. Gebruik dit om de identiteit van een persoon te verifiëren of om automatisch vrienden te taggen op social media. Nu we het toch over social media hebben: afhankelijk van de context van een platform, kunnen bepaalde bijdragen van gebruikers als ongeschikt worden beschouwd. Een socialmediaplatform kan dankzij Rekognition semiautomatisch suggestieve of expliciete context beheren, zodat geüploade media kunnen worden vervaagd of geweigerd als er bepaalde labels aan zijn gekoppeld.

Archieven digitaliseren met Textract

Met Amazon Textract kun je tekst uit een gescand document extraheren. Er wordt gebruikgemaakt van Optical Character Recognition (OCR) en er wordt bovendien rekening gehouden met de context.

Als je bedrijf geen digitale maar wel veel gedrukte formulieren ontvangt, dan kan dit betekenen dat er een paar duizend documenten handmatig moeten worden gedigitaliseerd. Het is voor standaard OCR een hele uitdaging om te bepalen waar formulierlabels eindigen en formuliervelden beginnen. Het is voor OCR eveneens moeilijk om kranten te lezen als de tekst over twee of meer kolommen is verdeeld. Textract kan bepalen welke groepen woorden bij elkaar horen, zoals bijvoorbeeld een paragraaf, een formulierveld of een gegevenstabel. Dit bespaart tijd en moeite bij het digitaliseren van dergelijke archieven.

Tekst analyseren met Comprehend

Amazon Comprehend is een service voor natuurlijke taalverwerking (Natural Language Processing of NLP). Het helpt om te bepalen wat het onderwerp is in een document, wat de kernzinnen en belangrijke locaties zijn en wie erin wordt vermeld.

Een van de functies is het analyseren van het sentiment in de tekst. Zo kun je snel inzicht krijgen in de interactie met klanten: zijn ze blij, boos, tevreden? Amazon Comprehend kan zelfs aangeven welke frustraties over een bepaald onderwerp met elkaar overeenkomen. Als de beoordelingen over een bepaald product voornamelijk positief zijn dan kan dat eenvoudig in een promotiecampagne worden opgenomen. Als beoordelingen voornamelijk negatief zijn dan is dat wellicht interessante informatie voor de fabrikant.

comprehend

Comprehend Medical is een subservice van Comprehend die wordt gebruikt om patiëntendossiers te beheren en patiënten- en behandelgegevens te extraheren. Zorgverleners kunnen op die manier snel een overzicht krijgen van eerdere interacties met patiënten. Comprehend Medical identificeert belangrijke informatie in medische gegevens en voegt er structuur aan toe, zodat medische klanten in korte tijd veel documenten kunnen verwerken.

Notities maken met Transcribe

amazon transcribe

Amazon Transcribe is een universele service om spraak in tekst om te zetten en biedt ondersteuning aan 14 talen. Leestekens en opmaak worden automatisch toegevoegd, zodat de tekst leesbaarder is en gemakkelijker te doorzoeken.

Ideaal als je op basis van een audiobestand een transcript hebt gemaakt dat je door Comprehend wilt laten analyseren. Callcenters kunnen realtime streaming transcripties gebruiken om namen van klanten te herkennen en hun gegevens door te sturen naar de operator. Het callcenter kan gesprekken ook met trefwoorden labelen om te bepalen welke problemen zich vaker voordoen.

Een van de functies van Transcribe is het identificeren van meerdere sprekers. Dit komt van pas bij het transcriberen van interviews of het maken van notulen tijdens vergaderingen zodat deelnemers geen aantekeningen hoeven te maken.

Meertalig dankzij Translate

amazon translate

Amazon Translate is een service die je kunt benutten om alle soorten tekst naar 25 talen te vertalen (enkele uitzonderingen daargelaten). Het maakt gebruik van machine learning om natuurlijke vertalingen te produceren en de service wordt continu verbeterd.

Je kunt reacties van klanten op je producten naar de gewenste taal vertalen, zodat je een indruk krijgt van wat bepaalde woorden betekenen. Of je kunt je bereik vergroten door je berichten op social media te vertalen. Je kunt Transcribe en Translate ook combineren om automatisch in meerdere talen ondertitels te genereren voor live events.

Laat jezelf horen met Polly

De service Polly biedt eigenlijk het tegenovergestelde van de service Transcribe. Je kunt Polly gebruiken om tekst om te zetten in spraak die zo natuurlijk mogelijk klinkt. Er worden meer dan 30 talen ondersteund en nog veel meer natuurlijk klinkende stemmen. Je kunt als je dat wilt zelfs een gesprek voeren met je applicaties.

Polly biedt tot op zekere hoogte ondersteuning voor Speech Synthesis Markup Language (SSML). Dit betekent dat je nauwkeuriger kunt instellen hoe bepaalde delen van de tekst worden uitgesproken. Je kunt niet alleen pauzes toevoegen, maar ook woorden benadrukken, acroniemen vervangen door volledige woorden en je kunt zelfs ademhalingsgeluiden toevoegen. Al deze aanpassingsopties maken het mogelijk om stemopnames zo natuurlijk mogelijk te laten klinken.

Het genereren van realistische spraak is doorslaggevend geweest voor het succes van apps zoals Duolingo waarbij uitspraak van groot belang is. Lees meer over deze specifieke use case in deze blog. Bonus: geen zin om te lezen? Laat het voorlezen door Polly!

Suggesties doen met Personalize

amazon personalize

Bij elke zoektocht naar producten op de website van Amazon krijg je direct suggesties voor soortgelijke producten of producten die andere klanten in combinatie daarmee hebben gekocht. Amazon biedt miljoenen items aan en het is ongelooflijk dat ze een nauwkeurig overzicht met aanverwante producten kunnen geven terwijl de pagina wordt geladen. Je kunt deze krachtige tool gebruiken via Amazon Personalize. Je moet een inventaris (producten, documenten, video's, ...) en bepaalde demografische gegevens over je gebruikers aanleveren die door Personalize worden gecombineerd met een activiteitsstroom van je applicatie om in realtime of in bulk aanbevelingen te genereren.

Dit kan eenvoudig worden toegepast op uiteenlopende applicaties. Je kunt klanten van een webshop een overzicht met soortgelijke items geven. Aanbieders van cursussen kunnen andere cursussen met een soortgelijk thema aanbevelen. Een interessant restaurant gevonden? Dit is een overzicht van soortgelijke restaurants in jouw omgeving. Personalize doet aanbevelingen als jij de gegevens levert.

Gesprekken creëren met Lex

Amazon Lex

Amazon Lex is een service voor gespreks-AI. Het maakt gebruik van dezelfde Natural Language Understanding-technologie als Alexa, de virtuele assistent van Amazon. Gebruikers kunnen met je applicatie chatten in plaats van overal op te klikken. Alles begint met een intentie (intent). Hiermee wordt de intentie van de gebruiker gedefinieerd, het doel dat wij voor de gebruiker willen bereiken. Dit kan heel simpel zijn, zoals het plannen van een afspraak, een routebeschrijving of het zoeken van een recept met bepaalde ingrediënten. Die intenties worden geactiveerd door uitingen (utterances). Een uiting is iets dat je zegt en dat een betekenis heeft. "Ik wil graag een afspraak bij dokter Smith", "Wanneer kan ik dokter Smith zien?", "Is dokter Smith volgende week woensdag beschikbaar?" dit zijn allemaal uitingen met dezelfde intentie: een afspraak maken. Lex beschikt over de mogelijkheden om deze uitingen zodanig te generaliseren dat de juiste intentie ook wordt geactiveerd als de uitingen enigszins verschillen. Er moeten bij het registreren van een afspraak ook bepaalde tijdvakken (slots) worden gespecificeerd. Dit zijn gegevens die gebruikers moeten verstrekken om de intentie te vervullen. Bij bovenstaand voorbeeld bestaan die gegevens uit de naam van de persoon die je wilt zien, het tijdvak en misschien de reden van het bezoek.

De vereisten zijn vrij eenvoudig, maar alles is afhankelijk van de kwaliteit van de uitingen en het koppelen van de intenties. Als er onvoldoende voorbeeldzinnen zijn of als de applicatie steeds blijft vragen om gegevens die gebruikers al hebben verschaft, dan zal dit tot irritatie en stress leiden bij gebruikers.

De vraag voorspellen met Forecast

forecast by amazon

Forecast is een vrij nieuwe service die door AWS wordt aangeboden. Ook deze service is ontstaan uit de noodzaak bij Amazon om de vraag naar hun enorme productvoorraad te voorspellen. Forecast biedt inzichten in historische tijdreeksgegevens. Je kunt bijvoorbeeld het energieverbruik van een regio analyseren en projecteren op de nabije toekomst. Dit geeft je een idee van hoe groot de toekomstige vraag naar elektriciteit zou kunnen worden. Je kunt dit op dezelfde manier gebruiken om te voorspellen wanneer een onderdeel van je productiefaciliteit moet worden onderhouden voordat het versleten is.

Forecast kan gebruikmaken van Automated Machine Learning (AutoML) om te bepalen welke learning-parameters optimaal zijn voor jouw use case. De kwaliteit van deze services is afhankelijk van de hoeveelheid en kwaliteit van de gegevens die je kunt aanleveren.

Deze service was tot voor kort uitsluitend toegankelijk voor een selecte groep, maar is tegenwoordig beschikbaar voor iedereen. Je kunt je hier aanmelden voor Forecast.

🚀 Takeaway

Wil jij je klanten kennis laten maken met machine learning, maar ontbreekt het je aan de juiste kennis? Amazon biedt kant-en-klare services om applicaties slimmer te maken. Deze services worden getraind en gebruikt door Amazon en kunnen je bedrijf helpen om te groeien en je klanten een persoonlijke ervaring te geven. Zonder eerdere kennis over machine learning dus!

Stijn Van den Enden