AI evalueert websites door echte mensen te imiteren en zelfs te overtreffen. Hoe is het gedaan?

Vandaag wordt een van de componenten van uKit AI, een intelligent systeem voor het opnieuw ontwerpen van websites, openbaar gemaakt. Het is een prototypemodule voor het evalueren van de schoonheid van webpagina's. Het combineert een neuraal netwerk en beslissingsbomen om de reactie van een gewone bezoeker op het ontwerp van de website te imiteren.

In de toekomst zal een dergelijke module het werk evalueren van het generatieve ontwerpalgoritme, het sleutelelement van uKit AI, dat pagina's ontwerpt zonder menselijke betrokkenheid op basis van de beschikbare inhoud en "kennis" van het verschil tussen een niet-effectieve website en die gericht was op het verhogen van de conversieratio.

De huidige WebScore AI-versie geeft het beeld weer van een gemiddelde internetgebruiker over het uiterlijk van de website. Hoewel we andere opties kunnen maken, is het bijvoorbeeld mogelijk om de bruikbaarheid van een website te beoordelen.

Websites die worden gebruikt om het systeem te trainen. Allereerst hebben we 12.000 sites en online winkels verzameld die in verschillende jaren op verschillende platforms en in verschillende talen zijn gemaakt. De belangrijkste taak was om voldoende voorbeelden van visuele gradaties te krijgen, van behoorlijk slechte websites tot zeer goede. Op deze manier hebben we het systeem laten zien wat het kan tegenkomen op het moderne web.

Een paar websites uit het trainingsvoorbeeld.

Elke gradatie wordt gemeten met een schaal, en deze schaal wordt verondersteld te worden begrepen door een gewoon persoon wiens mening we proberen te modelleren. Dus kwamen we met een idee van de schaal 'van 1 tot 10', die in onze service wordt gebruikt.

Mensen die worden nagebootst door WebScore AI. We hadden twee dingen nodig om een ​​dataset (een set gegevens voor een trainingsmodel) van verschillende websites te vormen:

  • de tekens waarmee het systeem zal bepalen of de website aantrekkelijk is;
  • de evaluaties (cijfers) gemaakt met behulp van onze schaal voor een bepaald aantal websites. Ze worden een model voor het systeem.

Iemand zou deze eerste evaluaties moeten plaatsen. Zo'n "leraar", of een groep "leraren", om specifieker te zijn, zal grote invloed hebben op hoe het model zal werken.

Evaluatie-interface van websites: neem en gebruik binnenkort van onze GitHub.

Om een ​​focusgroep te verzamelen, hebben we een voorlopige selectie van kandidaten uitgevoerd op 1500 website-voorbeelden. Een routineus werk, maar een verantwoordelijk werk dat veel aandacht vraagt. De voorlopige selectie heeft ons geholpen om ongeschikte kandidaten te elimineren en ook om de "controversiële" (wanneer iemand het beoordeelt als 1 en de andere als 10) websites uit de steekproef te verwijderen.

In eerste instantie hebben we geëxperimenteerd met evaluatiemethoden.

We boden bijvoorbeeld aan om één website tegelijk te evalueren en vervolgens twee websites tegelijkertijd, of om een ​​van de twee te kiezen, de meest aantrekkelijke. De aanpak waarbij de respondent één website zag en evalueerde, werkte het beste. We hebben het gebruikt om 10.000 van de resterende websites te evalueren.

Een persoon evalueerde of een website mooi is of niet. Hoe gaat de machine dit doen? Jij en ik hebben maar één blik nodig om een ​​oordeel te vormen over de algehele schoonheid van iets. Maar we weten dat de duivel in de details zit.

De visuele aantrekkelijkheidstekens van de website die het model zullen begeleiden, zijn een belangrijk moment voor het hele project. We hebben het ontwerpteam van de uKit-websitebouwer om een ​​handje gevraagd, hun werk wordt gebruikt als basis voor honderdduizenden websites en miljoenen mensen zien het. Samen hebben we een uitgebreide lijst met functies samengesteld waar professionals op letten bij het ontwikkelen van een website-ontwerp. En toen probeerde het te snijden, waardoor alleen de belangrijkste overbleven.

ontwerpteam van uKit.com.

Als resultaat kregen we een checklist van 125 heel verschillende maar toch significante criteria gegroepeerd in vijftien categorieën. De lijst heeft bijvoorbeeld: aanpassing aan populaire schermen, verschillende lettergroottes, zuiverheid van kleuren, lengte van koppen, deel van de afbeeldingen op de hele pagina, enzovoort. Wat overblijft is om het model te trainen met behulp van deze regels.

Maak een algoritme. Wat is een ‘onderwijsmodel’ precies? Het is de constructie van een algoritme dat is gebaseerd op een gegeven set kenmerken en de geselecteerde website kan evalueren. Het is wenselijk dat de evaluatie van het systeem en de evaluatie van de gemiddelde leraar een minimale kloof hebben in hun eindevaluaties.

We hebben besloten om de gradiëntboostmethode te gebruiken voor de beslissingsbomen, omdat dit een van de meest populaire en effectieve benaderingen is. Met behulp van basisalgoritmen construeert het een set, waarvan het totale resultaat de resultaten van elk afzonderlijk algoritme overtreft.

Bovendien probeert het elk volgend basisalgoritme de kwaliteit van de antwoorden van de hele set te verbeteren.

Om het proces te versnellen en te vergemakkelijken, hebben we de CatBoost-bibliotheek van Yandex gebruikt, waarmee een gradiëntgebaseerde booster kan worden gebouwd in zogenaamde "onbewuste beslissingsbomen" die vanaf het begin goede trainingsmogelijkheden van een model en een snelle overgang naar voorspellingen biedt (schattingen) ) voor nieuwe objecten.

Een neuraal netwerk toevoegen. Toen het basisalgoritme klaar was, besloten we een experiment uit te voeren: zullen de resultaten verbeteren als we een neuraal netwerk toevoegen? We wisten eigenlijk al hoe we een website en het ontwerp ervan moesten bekijken, en nu hebben we besloten het systeem een ​​soort 'vergrootglas' te geven waarmee het nog meer details kan onthullen.

We hebben gekozen voor een van de populairste netwerken, resnet50, het staat bekend als een goed algoritme voor het extraheren van functies op hoog niveau. En we hebben geleerd hoe we 1000 extra attributen kunnen krijgen voor website-evaluatie. Als gevolg hiervan kenmerkt het systeem nu een URL door het totaal van 1125 functies en vindt het de plaats van de website op een schaal van 10 punten. Het proces duurt enkele tientallen seconden, daarom overwegen we het model te versnellen door het aantal tekens te verminderen en de kwaliteit van de evaluatie op hetzelfde niveau te houden.

Eerste resultaten. Het model dat op deze manier is getraind, kan drie keer nauwkeuriger schattingen maken in vergelijking met die van individuele 'leraren'.

We kunnen zeggen dat het model zijn eerste leraren overtrof, omdat de schattingen van de focusgroep sterker verschillen van de gemiddelde dan de schatting van het neurale netwerk. Nu zetten we het algoritme in het netwerk voor verdere training. En jij kunt ook de leraar worden.