Hvordan vi modererer annonser

Hvordan vi modererer annonser

Hver tjeneste hvis brukere kan lage sitt eget innhold (UGC – User-generated content) tvinges ikke bare til å løse forretningsproblemer, men også til å sette ting i orden i UGC. Moderering av innhold av dårlig eller lav kvalitet kan til slutt redusere tjenestens attraktivitet for brukere, til og med avslutte driften.

I dag vil vi fortelle deg om synergien mellom Yula og Odnoklassniki, som hjelper oss effektivt å moderere annonser i Yula.

Synergi generelt er en veldig nyttig ting, og i den moderne verden, når teknologier og trender endres veldig raskt, kan det bli en livredder. Hvorfor kaste bort knappe ressurser og tid på å finne opp noe som allerede er oppfunnet og tenkt på før deg?

Vi tenkte det samme da vi sto overfor den fulle oppgaven med å moderere brukerinnhold – bilder, tekst og lenker. Våre brukere laster opp millioner av deler av innhold til Yula hver dag, og uten automatisk behandling er det helt umulig å moderere alle disse dataene manuelt.

Derfor brukte vi en ferdig modereringsplattform, som på det tidspunktet våre kolleger fra Odnoklassniki hadde fullført til en tilstand av "nesten perfeksjon."

Hvorfor Odnoklassniki?

Hver dag kommer titalls millioner brukere til det sosiale nettverket og publiserer milliarder av deler av innhold: fra bilder til videoer og tekster. Moderasjonsplattformen Odnoklassniki hjelper til med å sjekke svært store datamengder og motvirke spammere og roboter.

OK-moderasjonsteamet har samlet mye erfaring siden det har forbedret verktøyet sitt i 12 år. Det er viktig at de ikke bare kan dele sine ferdige løsninger, men også tilpasse arkitekturen til plattformen deres for å passe våre spesifikke oppgaver.

Hvordan vi modererer annonser

Fra nå av vil vi for korthets skyld ganske enkelt kalle OK-moderasjonsplattformen "plattform".

Hvordan alt fungerer

Datautveksling mellom Yula og Odnoklassniki er etablert gjennom Apache Kafka.

Hvorfor vi valgte dette verktøyet:

  • I Yula er alle annonser ettermoderert, så i utgangspunktet var det ikke nødvendig med et synkront svar.
  • Hvis et dårlig avsnitt skjer og Yula eller Odnoklassniki er utilgjengelige, inkludert på grunn av noen toppbelastninger, vil dataene fra Kafka ikke forsvinne noe sted og kan leses senere.
  • Plattformen var allerede integrert med Kafka, så de fleste sikkerhetsproblemene ble løst.

Hvordan vi modererer annonser

For hver annonse opprettet eller modifisert av brukeren i Yula, genereres en JSON med data, som plasseres i Kafka for senere moderering. Fra Kafka lastes kunngjøringer inn på plattformen, hvor de bedømmes automatisk eller manuelt. Dårlige annonser blokkeres med en grunn, og de som plattformen ikke finner brudd på, er merket som «bra». Deretter sendes alle avgjørelser tilbake til Yula og brukes i tjenesten.

Til slutt, for Yula kommer alt ned til enkle handlinger: send en annonse til Odnoklassniki-plattformen og få tilbake en oppløsning "ok", eller hvorfor ikke "ok".

Automatisk behandling

Hva skjer med annonsen etter at den treffer plattformen? Hver annonse er delt inn i flere enheter:

  • Navn,
  • beskrivelse,
  • bilder,
  • brukervalgt kategori og underkategori av annonsen,
  • цена.

Hvordan vi modererer annonser

Plattformen utfører deretter klynging for hver enhet for å finne duplikater. Dessuten er tekst og fotografier gruppert i henhold til forskjellige skjemaer.

Før gruppering normaliseres tekster for å fjerne spesialtegn, endrede bokstaver og annet søppel. De mottatte dataene er delt inn i N-gram, som hver er hash. Resultatet er mange unike hasher. Likheten mellom tekster bestemmes av Jaccards mål mellom de to resulterende settene. Hvis likheten er større enn terskelen, blir tekstene slått sammen til en klynge. For å få fart på søket etter lignende klynger, brukes MinHash og Locality-sensitiv hashing.

Ulike alternativer for liming av bilder har blitt oppfunnet for fotografier, fra å sammenligne pHash-bilder til å søke etter duplikater ved hjelp av et nevralt nettverk.

Den siste metoden er den mest "alvorlige". For å trene modellen ble det valgt ut trillinger av bilder (N, A, P) der N ikke er lik A, og P er lik A (er en semi-duplikat). Deretter lærte det nevrale nettverket å gjøre A og P så nærme som mulig, og A og N så langt som mulig. Dette resulterer i færre falske positiver sammenlignet med å bare ta innbygginger fra et forhåndsopplært nettverk.

Når det nevrale nettverket mottar bilder som input, genererer det en N(128)-dimensjonal vektor for hver av dem, og det sendes en forespørsel om å vurdere bildets nærhet. Deretter beregnes en terskel der nærbilder anses som duplikater.

Modellen er i stand til å finne spammere som spesifikt fotograferer det samme produktet fra forskjellige vinkler for å omgå pHash-sammenligningen.

Hvordan vi modererer annonserHvordan vi modererer annonser
Et eksempel på spam-bilder limt sammen av et nevralt nettverk som duplikater.

I sluttfasen søkes dupliserte annonser samtidig med både tekst og bilde.

Hvis to eller flere annonser henger sammen i en klynge, starter systemet automatisk blokkering, som ved hjelp av visse algoritmer velger hvilke duplikater som skal slettes og hvilke som skal forlates. For eksempel, hvis to brukere har de samme bildene i en annonse, vil systemet blokkere den nyere annonsen.

Når de er opprettet, går alle klynger gjennom en serie automatiske filtre. Hvert filter tildeler en poengsum til klyngen: hvor sannsynlig er det at det inneholder trusselen som dette filteret identifiserer.

Systemet analyserer for eksempel beskrivelsen i en annonse og velger potensielle kategorier for den. Deretter tar den den med størst sannsynlighet og sammenligner den med kategorien spesifisert av forfatteren av annonsen. Hvis de ikke samsvarer, blokkeres annonsen for feil kategori. Og siden vi er snille og ærlige, forteller vi brukeren direkte hvilken kategori han må velge for at annonsen skal bestå moderering.

Hvordan vi modererer annonser
Melding om blokkering for feil kategori.

Maskinlæring føles hjemme på plattformen vår. For eksempel, med dens hjelp søker vi i navn og beskrivelser av varer som er forbudt i den russiske føderasjonen. Og nevrale nettverksmodeller "undersøker" bildene omhyggelig for å se om de inneholder URL-er, spam-tekster, telefonnumre og den samme "forbudte" informasjonen.

For tilfeller der de prøver å selge et forbudt produkt forkledd som noe lovlig, og det ikke er tekst i verken tittel eller beskrivelse, bruker vi bildemerking. For hvert bilde kan det legges til opptil 11 tusen forskjellige tagger som beskriver hva som er i bildet.

Hvordan vi modererer annonser
De prøver å selge vannpipen ved å skjule den som en samovar.

Parallelt med komplekse filtre fungerer enkle også, og løser åpenbare problemer knyttet til tekst:

  • antimatte;
  • URL- og telefonnummerdetektor;
  • omtale av direktemeldinger og andre kontakter;
  • redusert pris;
  • annonser hvor ingenting er til salgs osv.

I dag går hver annonse gjennom en fin sil av mer enn 50 automatiske filtre som prøver å finne noe dårlig i annonsen.

Hvis ingen av detektorene fungerte, sendes et svar til Yula om at annonsen "mest sannsynlig" er i perfekt rekkefølge. Dette svaret bruker vi selv, og brukere som har abonnert på selger får et varsel om tilgjengeligheten av et nytt produkt.

Hvordan vi modererer annonser
Melding om at selger har et nytt produkt.

Som et resultat blir hver annonse "overgrodd" med metadata, hvorav noen genereres når annonsen opprettes (forfatterens IP-adresse, brukeragent, plattform, geolokalisering osv.), og resten er poengsummen som gis av hvert filter .

Kunngjøringskøer

Når en annonse treffer plattformen, setter systemet den i en av køene. Hver kø opprettes ved hjelp av en matematisk formel som kombinerer annonsemetadata på en måte som oppdager eventuelle dårlige mønstre.

Du kan for eksempel opprette en kø med annonser i kategorien "Mobiler" fra Yula-brukere som angivelig kommer fra St. Petersburg, men IP-adressene deres er fra Moskva eller andre byer.

Hvordan vi modererer annonser
Et eksempel på annonser lagt ut av én bruker i forskjellige byer.

Eller du kan danne køer basert på poengsummene som det nevrale nettverket tildeler annonser, og ordne dem i synkende rekkefølge.

Hver kø, i henhold til sin egen formel, tildeler en endelig poengsum til annonsen. Deretter kan du gå frem på forskjellige måter:

  • angi terskelen der en annonse vil motta en viss type blokkering;
  • send alle annonser i køen til moderatorer for manuell gjennomgang;
  • eller kombiner de tidligere alternativene: spesifiser terskelen for automatisk blokkering og send til moderatorer de annonsene som ikke har nådd denne terskelen.

Hvordan vi modererer annonser

Hvorfor trengs disse køene? La oss si at en bruker lastet opp et bilde av et skytevåpen. Det nevrale nettverket tildeler det en poengsum fra 95 til 100 og fastslår med 99 prosent nøyaktighet at det er et våpen i bildet. Men hvis poengverdien er under 95%, begynner nøyaktigheten til modellen å avta (dette er en funksjon av nevrale nettverksmodeller).

Som et resultat dannes det en kø basert på poengmodellen, og de annonsene som mottas mellom 95 og 100 blir automatisk blokkert som "Forbudte produkter". Annonser med en poengsum under 95 sendes til moderatorer for manuell behandling.

Hvordan vi modererer annonser
Sjokolade Beretta med patroner. Kun for manuell moderering! 🙂

Manuell moderering

I begynnelsen av 2019 modereres omtrent 94 % av alle annonser i Yula automatisk.

Hvordan vi modererer annonser

Hvis plattformen ikke kan bestemme seg for noen annonser, sender den dem til manuell moderering. Odnoklassniki utviklet sitt eget verktøy: oppgaver for moderatorer viser umiddelbart all nødvendig informasjon for å ta en rask avgjørelse - annonsen er egnet eller bør blokkeres, og angir årsaken.

Og slik at kvaliteten på tjenesten ikke lider under manuell moderering, overvåkes folks arbeid konstant. For eksempel, i oppgavestrømmen, vises moderatoren «feller» – annonser som det allerede finnes ferdige løsninger for. Dersom moderatorens avgjørelse ikke er sammenfallende med den ferdige, får moderatoren en feilmelding.

I gjennomsnitt bruker en moderator 10 sekunder på å sjekke én annonse. Dessuten er antallet feil ikke mer enn 0,5 % av alle bekreftede annonser.

Folks måtehold

Kolleger fra Odnoklassniki gikk enda lenger og utnyttet "publikummets hjelp": de skrev en spillapplikasjon for det sosiale nettverket der du raskt kan merke en stor mengde data, og fremheve et dårlig tegn - Odnoklassniki Moderator (https://ok.ru/app/moderator). En god måte å dra nytte av hjelpen fra OK-brukere som prøver å gjøre innholdet morsommere.

Hvordan vi modererer annonser
Et spill der brukere merker bilder som inneholder et telefonnummer.

Enhver kø med annonser på plattformen kan omdirigeres til Odnoklassniki Moderator-spillet. Alt som spillbrukere markerer blir deretter sendt til interne moderatorer for verifisering. Denne ordningen lar deg blokkere annonser som det ennå ikke er opprettet filtre for, og samtidig lage treningsprøver.

Lagre moderasjonsresultater

Vi lagrer alle avgjørelser som er tatt under moderering, slik at vi ikke behandler de annonsene vi allerede har tatt en beslutning om på nytt.

Millioner av klynger opprettes hver dag basert på annonser. Over tid blir hver klynge merket "god" eller "dårlig". Hver ny annonse eller dens revisjon, som går inn i en klynge med et merke, mottar automatisk en løsning fra klyngen selv. Det er omtrent 20 tusen slike automatiske oppløsninger per dag.

Hvordan vi modererer annonser

Hvis ingen nye kunngjøringer kommer til klyngen, fjernes den fra minnet og hashen og løsningen skrives til Apache Cassandra.

Når plattformen mottar en ny annonse, prøver den først å finne en lignende klynge blant de som allerede er opprettet og ta en løsning fra den. Hvis det ikke finnes en slik klynge, går plattformen til Cassandra og ser der. Fant du det? Flott, bruker løsningen på klyngen og sender den til Yula. Det er i gjennomsnitt 70 tusen slike "gjentatte" avgjørelser hver dag - 8% av totalen.

Oppsummering

Vi har brukt moderasjonsplattformen Odnoklassniki i to og et halvt år. Vi liker resultatene:

  • Vi modererer automatisk 94 % av alle annonser per dag.
  • Kostnaden for å moderere en annonse ble redusert fra 2 rubler til 7 kopek.
  • Takket være det ferdige verktøyet glemte vi problemene med å administrere moderatorer.
  • Vi økte antallet manuelt behandlede annonser med 2,5 ganger med samme antall moderatorer og budsjett. Kvaliteten på manuell moderering har også økt på grunn av automatisert kontroll, og svinger rundt 0,5 % av feilene.
  • Vi dekker raskt nye typer spam med filtre.
  • Vi kobler raskt nye avdelinger til moderering "Yula vertikaler". Siden 2017 har Yula lagt til vertikalene Eiendom, Ledige stillinger og Bil.

Kilde: www.habr.com

Legg til en kommentar