In 1964 brachten de Beatles hun iconische nummer “I Want to Hold Your Hand” uit. Vanaf dat moment hebben ‘the Fab Four’ zich ontwikkeld tot één van de meest invloedrijke bands uit de muzikale geschiedenis. Nu, vijftig jaar later, kan je zelf Beatles songteksten genereren met behulp van AI.
In de afgelopen jaren is met behulp van artificial intelligence (AI) enorme vooruitgang geboekt binnen het domein van natural languange processing (NLP). Dit heeft geresulteerd in de ontwikkeling van AI systemen die in staat zijn menselijke teksten te genereren. Een toepassing van deze technologie is het genereren van tekst en songteksten gebruik makend van AI.
Met AI gegenereerde tekst is meer dan een trucje; het heeft een groot aantal toepassingen in de dagelijkse praktijk. Zo kan AI bijvoorbeeld worden gebruikt om productomschrijvingen te genereren, blogs te schrijven en zelfs songteksten te genereren. In dit artikel zullen we verkennen hoe AI gebruikt kan worden om teksten te genereren, specifiek om songteksten te maken.
Dit is de eerste paragraaf die we zelf schrijven. De tekst hierboven is in zijn geheel geschreven door een algoritme met de naam GPT-3 van Open AI, door de instructie te geven een artikel te schrijven over het genereren van teksten voor Beatles liedjes.
Tekstanalyse heeft een enorme vlucht genomen in de afgelopen 20 jaar (zoals de AI ons hierboven al vertelde). Waar het twintig jaar geleden state of the art was om open teksten uit klanttevredenheidsonderzoek met word counts te analyseren en Google Translate woord voor woord letterlijke vertalingen deed en daarom tot onzinnige vertalingen leidde, komen er tegenwoordig juist hele bruikbare resultaten uit.
Tekstanalyse op klanttevredenheidsonderzoek of reviews kan nu helpen om de bepalende factoren en het sentiment van klanten te identificeren. Daarmee kan je daadwerkelijk de tevredenheid en NPS scores verbeteren door toepasbare inzichten te verkrijgen. Of je kan je chatbot zo trainen met de informatie op F.A.Q. en help pagina’s zodat deze zo relevant mogelijke antwoorden geeft op vragen van gebruikers.
Is het je al eens opgevallen hoe goed WhatsApp kan voorspellen wat je aan het typen bent? Of hoe nauwkeurig de suggesties van Outlook zijn hoe een mail te beantwoorden? Gebaseerd op deep learning algoritmes en de beschikbaarheid van steeds grotere rekenkracht hebben text generation toepassingen een enorme ontwikkeling doorgemaakt in de afgelopen vijf jaar. Voor een groot deel wordt dit gedreven door gebruik van neurale netwerken, een variant van AI met enige parallellen met hoe het menselijk brein leert.
We hebben bovenstaande technieken gebruikt om een algoritme te trainen om ‘op zijn beatles’ te spreken. Gebaseerd op een beginzin maakt het algoritme een Beatles songtekst voor je, compleet met titel en albumhoes. Benieuwd hoe dit werkt? Zie hieronder voor hoe het er uit ziet:
Gebruik makend van Hugging Face, een datascience platform en community die veel hulpmiddelen biedt om modellen te ontwikkelen, trainen en beschikbaar te stellen met behulp van open-source code, hebben we een pre-trained model gefinetuned om zich ‘beatle-achtig’ te gedragen. Daarnaast hebben we een pre-trained summarization model gebruikt om een bijpassende titel te genereren. En tot slot hebben we een text-to-image model gebruikt om ook een bijpassende albumhoes te genereren. Het resultaat demonstreren we op onze eigen Hugging Face Space. Deze spaces zijn geïntegreerd met Gradio, een tool om Python functies zo ongeveer overal te kunnen gebruiken: met een jupyter notebook, een colab notebook, op je eigen website of binnen een Huggingface Space.
Wij zijn allemaal verre van ‘professor in de beatlekunde’. Om te beoordelen hoe goed ons model Beatle-achtige lyrics weet te genereren, hebben we een evaluatieplan bepaald. Het evalueren van Natural Language Generation modellen is niet zo eenvoudig: Er is namelijk geen ‘goed antwoord’ om de gegenereerde tekst mee te vergelijken. In ons blog over het evalueren van NLG modellen hebben we verschillende methoden laten zien om dergelijke modellen te evalueren. En een aantal daarvan passen we ook toe op onze gegenereerde songteksten. Onze aanpak is tweevoudig: we gebruiken veelgebruikte statistieken om NLG modellen te evalueren én we hebben aan Beatles fans hun mening gevraagd hoe ‘beatly’ (of niet-zo-beatly) ze onze songteksten vinden.
De evaluatie levert een aantal interessante inzichten: De populaire evaluatiestatistieken tonen aan dat ons model het best goed doet: Zowel BLEURT als BERT-score resulteren in een f-score hoger dan 0.7, wat wijst op een goede kwaliteit van de gegenereerde liedjes. Echter, we hebben ook een kritisch panel van Beatles fans om hun mening gevraagd wat zij van de gegeneerde songteksten vinden. Op basis van hun feedback is het minder zeker dat we echt goede songteksten in de Beatles stijl hebben kunnen genereren. Dit toont aan dat het is erg belangrijk niet alleen naar statistieken te kijken maar ook beoordelingen door een mens mee te laten wegen in de evaluatie.
Zo gaven deze reviewers aan dat sommige zinnen letterlijk uit bestaande Beatles liedjes afkomstig waren. Over het algemeen waren de Beatles fans nog niet zo overtuigd dat AI hun geliefde Beatles kan vervangen. Met de kanttekening dat echte Beatles fans waarschijnlijk ook niet zo happig zullen zijn om toe te geven dat Beatles uberhaupt vervangbaar zijn, dus ook in deze terugkoppeling kan enige vertekening aanwezig zijn…
Concluderend: we kunnen met AI hele imposante dingen doen, ook binnen het domein van genereren van tekst. Dus als je toepassing in gedachten hebt om een natural language processing model te maken, hopen we dat onze blog serie je helpt en inspireert hoe dit aan te pakken. Het toont aan hoe je kan profiteren van de geweldige Huggingface repo en spaces om jouw model te hosten, zodat je anderen in staat stelt jouw model te testen en gebruiken. En we hebben laten zien hoe verschillende evaluatiemethoden kunnen worden gebruikt om een zuiver beeld te krijgen van jouw NLG oplossing.