Kennis
De opkomst van transformatormodellen zoals BERT (Devlin et al., 2018) en GPT-3 (Floridi & Chiriatti, 2020) heeft de wereld van Natural Language Processing (NLP) ingrijpend veranderd. Deze modellen vertonen nu een niveau van menselijke intelligentie in taken zoals tekstgeneratie en parafrasering. Vorig onderzoek heeft aangetoond dat het krachtige GPT-3-model in staat is om productteksten te genereren, rekening houdend met subjectieve informatie zoals schrijfstijl en kledingstijl. Het probleem is echter dat het onduidelijk is hoe goed deze teksten zijn qua kwaliteit en informativiteit.
In dit artikel wordt besproken hoe productbeschrijvingen geoptimaliseerd kunnen worden om een betere Search Engine Optimization (SEO) score te behalen voor populaire zoektermen. Deze zoektermen kunnen bijvoorbeeld keyword density, leesbaarheid, en het aantal woorden omvatten. Een interessante complicatie is dat Google haar zoekopdrachten heeft geoptimaliseerd om gebruik te maken van Transformer-modellen (Vaswani et al., 2017), wat naar verluidt ongeveer 10% van de wereldwijde rankings heeft veranderd.
BERT wordt nu in één op de tien zoekopdrachten toegepast om de inhoud van webpagina’s beter te begrijpen. Als de zoekmachine moeite heeft met het begrijpen van een tekst, zullen de lezers dat waarschijnlijk ook hebben. In deze blog worden de belangrijkste elementen van de SEO-score belicht en hoe een subset van deze elementen geoptimaliseerd kan worden met behulp van een specifiek SEO-model.
De SEO-score zoals gedefinieerd in dit artikel is opgebouwd uit zeven deelcomponenten, die elk een andere waarde hebben. De uiteindelijke score is een gewogen gemiddelde van deze individuele onderdelen. Verschillende SEO-tools, zoals Yoast en SEMrush, maken gebruik van enkele van deze scores.
De zoekwoorddichtheid verwijst naar de frequentie van een bepaald zoekwoord binnen een tekst. Een ideale dichtheid ligt rond de 1-2% ( blog.alexa.com ). Dit zorgt ervoor dat er geen overmatig gebruik van zoekwoorden plaatsvindt. Zoekwoorden om op te letten kunnen de productcategorie, merk of zoekwoorden gegenereerd via de Google Ads API zijn. De score wordt gedefinieerd als een ratio die een hoge score geeft voor een lage dichtheid en een lage score voor een hoge dichtheid.
Om te begrijpen hoe goed een tekst zich verhoudt tot de ranking van Google, worden de top 10 zoekwoorden voor een bepaalde categorie of merk gegenereerd met de Google Keyword Planner en doorgestuurd naar Sentence-BERT (Reimers & Gurevych, 2019), die vervolgens de cosine-similarity score berekent tussen de queries en de tekst.
Het ideale aantal woorden in een tekst verschilt per sector en voorkeur. Blogposts bevatten doorgaans meer woorden, terwijl productbeschrijvingen vaak beknopter zijn. Het belangrijkste is dat Google begrijpt waar een pagina over gaat; daarom kunnen teksten kort zijn, zolang ze de nodige informatie bevatten. Dit woordenaantal is een aanvulling en moet niet als het belangrijkste kenmerk worden beschouwd.
Zinnen met minder dan drie woorden worden niet als valide beschouwend, terwijl te lange zinnen de leesbaarheid negatief beïnvloeden. Slechts 25% van de zinnen mag meer dan 25 woorden bevatten ( medium.com ). Dit helpt de leesbaarheid van een tekst te verbeteren; een groter aandeel lange zinnen resulteert doorgaans in een lagere score.
Voor optimale leesbaarheid dient passieve formuleringen in zinnen te worden vermeden. Actieve formuleringen maken een tekst begrijpelijker. Hoewel Google in staat is om de betekenis van zinnen in actieve of passieve formuleringen te begrijpen (Warstadt & Bowman, 2019), heeft actief schrijven een positieve invloed op de leesbaarheid en daarmee de SEO-score ( developers.google.com ).
De verhouding passieve zinnen in een tekst moet onder de 10% zijn; hogere verhoudingen verlagen de score. Voor het onderscheiden van actieve en passieve formuleringen in het Nederlands hebben we BERTje (de Vries et al., 2019) gefinetuned voor dit classificatieprobleem ( huggingface.co ). Deze classifier is getraind op 780 actieve en 700 passieve zinnen. Een code voor het detecteren van passieve zinnen in het Engels is hier te vinden.
Het inzetten van overgangswoorden tussen zinnen bevordert de leesbaarheid en verbetert de flow van de tekst. Deze score wordt berekend op basis van de verhouding van zinnen met overgangswoorden, waarbij idealiter 30% van de zinnen er een zou moeten bevatten.
Om de leesbaarheid van een tekst objectief te meten, kan de Flesch-leesgemakscore worden gebruikt, die een score tussen 0 en 100 kan geven. Een ideale score voor productbeschrijvingen ligt tussen 60-80. Daarom moet deze score als zodanig worden geëvalueerd, zodat scores van 50 en 90 gelijke straffen krijgen.
Drie datasets zijn gebruikt om SEO-scores voor een verzameling teksten te berekenen en een subset van deze teksten te optimaliseren met een SEO-model. Twee van deze datasets zijn afkomstig van Squadra Machine Learning Company en zijn directe outputs van hun dienst Powertext.ai.De ; de derde dataset is verzameld via Promptcloud en bevat Engelstalige productbeschrijvingen van Victoria’s Secret. De totale hoeveelheid data bestaat uit 10.500 Engelse teksten en 718 Nederlandse teksten.
Dataset | Omschrijving |
---|---|
Schoenen | Deze dataset bevat 500 Engelse en 500 Nederlandse productbeschrijvingen van schoenen. Deze teksten zijn gegenereerd met Powertext.ai. |
Wasmachines | Deze dataset bevat 218 Nederlandse productbeschrijvingen van wasmachines, ook gegenereerd met Powertext.ai. |
Victoria’s Secret | Deze dataset omvat 535.600 Engelstalige productbeschrijvingen van ondergoed en badmode verdeeld over 9 websites. Uit deze totale hoeveelheid zijn willekeurig 10.000 Engelse teksten geselecteerd voor SEO-scoreberekeningen. |
Voor alle teksten in de datasets zijn de SEO-scores berekend. Hieruit zijn het minimum, gemiddelde en maximum afgeleid. Naast de algemene SEO-score wordt ook het gemiddelde van de individuele scores weergegeven. Om de scoring deterministisch te maken, zijn vooraf bepaalde zoekwoorden meegegeven aan het programma. Deze zoekwoorden zijn hieronder vastgelegd.
Dataset | Trefwoorden |
---|---|
Schoenen (Engels) | shoe, schoenen, lopen |
Schoenen (Nederlands) | schoen, schoenen, lopen |
Wasmachines | wasmachine, wassen, kleding |
Victoria Secret | BH, string, body, panty, sexy |
De volgende SEO-scores zijn vastgesteld voor de datasets:
Dataset | Min | Mean | Max |
---|---|---|---|
Shoes (English) | 0.520 | 0.692 | 0.820 |
Shoes (Dutch) | 0.600 | 0.776 | 0.870 |
Washing machines | 0.630 | 0.790 | 0.910 |
Victoria’s Secret | 0.270 | 0.591 | 0.820 |
De gemiddelden van de afzonderlijke scores worden hieronder weergegeven; let op dat het “aantal woorden” is weggelaten. Dit is omdat de totale lengte van productbeschrijvingen in de datasets varieert, zodat het onlogisch zou zijn om op basis van een algemeen minimum- en maximumaantal woorden te scoren. De scores in de tabel zijn gedefinieerd als “score (gewicht)”.
Dataset | Keyword density (2) | Query-Text (3) | Sentence length (1) | Passive vs Active (2) | Transition words (2) | Readability (3) |
---|---|---|---|---|---|---|
Shoes (English) | 0.694 | 0.251 | 1.000 | 0.723 | 0.820 | 0.821 |
Shoes (Dutch) | 0.693 | 0.443 | 0.994 | 0.637 | 0.968 | 0.980 |
Washing machines | 0.772 | 0.509 | 0.732 | 0.922 | 0.952 | 0.838 |
Victoria’s Secret | 0.927 | 0.082 | 0.628 | 0.976 | 0.287 | 0.709 |
Het volledig optimaliseren van een tekst om een hogere SEO-score te realiseren, is een uitdagende opgave. Een mogelijkheid is het implementeren van een Generative Adversarial Network (GAN) dat nieuwe teksten genereert met de SEO-score als verliesfunctie. Een andere optie is het toepassen van een parafraseringsmodel en de SEO-score te gebruiken om te beoordelen of de nieuwe tekst verbeterd is. In onze aanpak zijn we ons gaan richten op leesbaarheidsconcepten zoals: actieve versus passieve zinnen, gebruik van overgangswoorden, en de leesbaarheidsscore.
Om deze scores te optimaliseren, hebben we GPT-3 gefinetuned ( beta.openai.com ) op basis van 100 inputs en outputs, gericht op het verbeteren van de leesbaarheid van teksten. Een “betere” tekst wordt geaccepteerd indien de som van de drie scores en de algehele SEO-score zijn gestegen, en als de nieuwe tekst niet te veel afwijkt van de oude tekst. Deze gelijkenis tussen oude en nieuwe tekst wordt berekend met behulp van Sentence-BERT. Hieronder worden enkele voorbeelden weergegeven die voortkomen uit het SEO-model, afkomstig van de datasets van Victoria’s Secret en Wasmachines.
In deze blog hebben we de basisprincipes van SEO uiteengezet en hoe teksten kunnen worden beoordeeld aan de hand van deze principes. We hebben de effectiviteit van het SEO-model aangetoond en hoe het mogelijk is om zinnen te herschrijven om hogere leesbaarheid- en SEO-scores te behalen. Een uitdaging van het SEO-model is echter dat het niet in alle gevallen in staat is de leesbaarheid te verbeteren. Dit is te wijten aan de willekeurigheid van GPT-3, die niet gemakkelijk te reguleren is.
In de toekomst kan dit model worden versterkt door een Encoder-Decoder-model toe te voegen dat passieve zinnen naar actieve zinnen omzet. Dit Encoder-Decoder-model is nog niet volledig ontwikkeld door een gebrek aan data. Over het algemeen bieden de SEO-scores waardevolle inzichten in verbeterpunten, terwijl het SEO-model al sterke prestaties laat zien bij het optimaliseren van teksten.
Devlin, J., Chang, M. W., Lee, K., & Toutanova, K. (2018). Bert: Pre-training of deep bidirectional transformers for language understanding. arXiv preprint arXiv:1810.04805.
Floridi, L., & Chiriatti, M. (2020). GPT-3: Its nature, scope, limits, and consequences. Minds and Machines,30 (4), 681-694.
Reimers, N., & Gurevych, I. (2019). Sentence-bert: Sentence embeddings using siamese bert-networks. arXiv preprint arXiv:1908.10084.
Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., … & Polosukhin, I. (2017). Attention is all you need. In Advances in neural information processing systems (pp. 5998-6008).
de Vries, W., van Cranenburgh, A., Bisazza, A., Caselli, T., van Noord, G., & Nissim, M. (2019). Bertje: A dutch bert model. arXiv preprint arXiv:1912.09582.
Warstadt, A., & Bowman, S. R. (2019). Linguistic analysis of pretrained sentence encoders with acceptability judgments. arXiv preprint arXiv:1901.03438.