AI evaluerer nettsteder ved å etterligne virkelige mennesker og til og med overgå dem. Hvordan gjøres det?

I dag blir en av komponentene i uKit AI, et intelligent redesignsystem for nettsteder, offentlig. Det er en prototypmodul for å evaluere skjønnheten på websider. Den kombinerer et nevralt nettverk og beslutningstrær for å etterligne reaksjonen til en vanlig besøkende på nettstedets design.

I fremtiden vil en slik modul evaluere arbeidet med den generative designalgoritmen, nøkkelelementet i uKit AI, som vil designe sider uten menneskelig involvering avhengig av tilgjengelig innhold og "kunnskap" om forskjellen mellom et ikke-effektivt nettsted og den som hadde som mål å øke konverteringsfrekvensen.

Den nåværende WebScore AI-versjonen gjenspeiler synet til en gjennomsnittlig internettbruker om nettstedets utseende. Selv om vi for eksempel kan lage andre alternativer, er det mulig å rangere brukervennligheten for en webside.

Nettsteder som brukes til å trene systemet. Først av alt har vi samlet 12 000 nettsteder og nettbutikker opprettet i forskjellige år på forskjellige plattformer og på forskjellige språk. Hovedoppgaven var å få nok visuelle graderingseksempler, fra ganske dårlige nettsteder til veldig gode. På denne måten har vi vist systemet hva det kan komme over på det moderne nettet.

Et par nettsteder fra treningsutvalget.

Hver gradering måles med en skala, og denne skalaen er ment å bli forstått av en vanlig person hvis mening vi prøver å modellere. Så vi kom på en idé om ‘fra 1 til 10’ skala, som brukes i tjenesten vår.

Mennesker som er etterlignet av WebScore AI. Vi trengte to ting for å danne et datasett (et sett med data for en treningsmodell) fra en rekke nettsteder:

  • tegnene som systemet vil avgjøre om nettstedet er attraktivt;
  • evalueringer (merker) gjort ved hjelp av skalaen vår for en viss mengde nettsteder. De vil bli en modell for systemet.

Noen bør sette disse første evalueringene. En slik "lærer", eller en gruppe "lærere", for å være mer spesifikk, vil ha stor innvirkning på hvordan modellen vil fungere.

Nettsteder evalueringsgrensesnitt: ta og bruke fra vår GitHub snart.

For å samle en fokusgruppe gjennomførte vi et foreløpig utvalg av kandidater på 1500 nettstedeksempler. Et rutinemessig arbeid, men et ansvarlig arbeid og krever stort fokus. Det foreløpige utvalget hjalp oss med å eliminere uegnede kandidater og også å ekskludere de “kontroversielle” nettstedene (når noen vurderer det som 1 og den andre som 10) fra utvalget.

Til å begynne med eksperimenterte vi med evalueringsmetoder.

For eksempel tilbød vi å evaluere ett nettsted om gangen, deretter to nettsteder samtidig, eller å velge ett av to, det mest attraktive. Tilnærmingen der respondenten så ett enkelt nettsted og evaluerte det fungerte best. Vi brukte den til å evaluere 10.000 av de gjenværende nettstedene.

En person evaluerte om et nettsted er vakkert eller ikke. Hvordan vil maskinen gjøre dette? Du og jeg trenger bare ett blikk for å danne oss en mening om det generelle skjønnheten til noe. Men vi vet at djevelen er i detaljene.

Nettstedets visuelle attraktivitetstegn som vil lede modellen er et nøkkeløyeblikk for hele prosjektet. Vi ba uKit websitebuilder designteam om en hånd, arbeidet deres brukes som grunnlag for hundretusener av nettsteder, og millioner av mennesker ser det. Sammen har vi samlet en utvidet liste over funksjoner som fagpersoner tar hensyn til når de utvikler et nettsteddesign. Og prøvde å kutte den, og etterlot bare de viktigste.

uKit.com designteam.

Som et resultat fikk vi en sjekkliste på 125 ganske forskjellige, men likevel viktige kriterier gruppert i femten kategorier. For eksempel har listen: tilpasning til populære skjermer, en rekke skriftstørrelser, renhet i farger, lengde på overskrifter, andel av bildene på hele siden, og så videre. Det som gjenstår å gjøre er å trene modellen ved å bruke disse reglene.

Lag en algoritme. Hva er en ‘undervisningsmodell’ nøyaktig? Det er konstruksjonen av en algoritme som er basert på et gitt sett med egenskaper og kan evaluere det valgte nettstedet. Det er ønskelig at systemets evaluering og den gjennomsnittlige lærerens evaluering deler et minimumsgap i deres sluttevalueringer.

Vi har bestemt oss for å bruke gradient boosting-metoden over beslutningstrærne, fordi det er en av de mest populære og effektive tilnærmingene. Ved hjelp av grunnleggende algoritmer konstruerer den et sett, hvis totale resultat overstiger resultatene fra en hvilken som helst separat algoritme.

Ved å legge til hver påfølgende grunnleggende algoritme prøver den å forbedre kvaliteten på svarene i hele settet.

For å akselerere og lette prosessen, brukte vi CatBoost-biblioteket fra Yandex som gjør det mulig å bygge en gradientbasert booster i såkalte "glemte beslutnings-trær" som sikrer gode opplæringsevner for en modell fra starten og en rask overgang til å gi forutsigelser (estimater ) for nye objekter.

Legge til et nevralt nettverk. Da den grunnleggende algoritmen var klar, bestemte vi oss for å utføre et eksperiment: vil resultatene bli bedre hvis vi legger til et nevralt nettverk? Egentlig visste vi allerede hvordan vi skulle "se på" en webside og dens design, og nå bestemte vi oss for å gi systemet et slags "forstørrelsesglass" som det kan bruke for å avsløre enda flere detaljer.

Vi valgte et av de mest populære nettverkene, resnet50, det er kjent som en god algoritme for å trekke ut funksjoner på høyt nivå. Og vi har lært hvordan vi kan få 1000 ekstra attributter for evaluering av nettsteder. Som et resultat karakteriserer systemet nå en URL med totalt 1125 funksjoner og finner nettstedets ‘sted’ i en 10-punkts skala. Prosessen tar opptil flere titalls sekunder, det er derfor vi vurderer å få fart på modellen ved å redusere antall skilt og samtidig holde kvaliteten på evalueringen på samme nivå.

Første resultater. Modellen som ble trent på denne måten, kunne gjøre tre ganger mer nøyaktige estimater sammenlignet med de til individuelle ‘lærere’.

Vi kan si at modellen overgikk de første lærerne, siden fokusgruppestimatene avviker fra gjennomsnittet mer enn estimatet for det nevrale nettverket. Nå legger vi algoritmen inn i nettverket for videre trening. Og du kan bli lærer også.