Hvordan vi modererer annonser

Hvordan vi modererer annonser

Hver tjeneste som lar brukerne lage sitt eget innhold (UGC – bruker-generert innhold), mĂ„ ikke bare lĂžse forretningsoppgaver, men ogsĂ„ rydde opp i UGC. DĂ„rlig eller ugyldig moderering av innhold kan i bunn og grunn redusere tjenestens attraktivitet for brukerne, opp til at tjenesten kan avslutte driften.

I dag skal vi fortelle deg om synergi mellom Yula og Odnoklassniki, som hjelper oss med effektiv moderering av annonser pÄ Yula.

Synergi er generelt en veldig nyttig ting, og i den moderne verden der teknologi og trender endrer seg veldig raskt, kan det bli en redningsplanke. Hvorfor slÞse med begrensede ressurser og tid pÄ Ä oppfinne det som allerede har blitt oppfunnet og perfeksjonert fÞr deg?

Det tenkte vi ogsĂ„ pĂ„, da vi sto overfor oppgaven med moderering av brukerinnhold – bilder, tekst og lenker. VĂ„re brukere laster opp millioner av enheter med innhold til Yula hver dag, og uten automatisk behandling er det helt urealistisk Ă„ moderere all denne dataen manuelt.

Derfor benyttet vi en allerede eksisterende modereringsplattform som pÄ den tiden vÄre kolleger fra Odnoklassniki hadde perfeksjonert til nesten fullkommenhet.

Hvorfor Odnoklassniki?

Hver dag kommer det titalls millioner brukere til det sosiale nettverket, som publiserer milliarder av enheter med innhold: fra bilder til videoer og tekster. Modereringsplattformen til Odnoklassniki hjelper med Ă„ kontrollere veldig store mengder data og motvirke spam og roboter.

Modereringsteamet til OК har opparbeidet seg mye erfaring, ettersom de har forbedret sitt verktĂžy i 12 Ă„r. Det er viktig at de ikke bare kunne dele sine ferdige lĂžsninger, men ogsĂ„ tilpasse arkitekturen til sin plattform til vĂ„re spesifikke behov.

Hvordan vi modererer annonser

Videre skal vi for korthets skyld kalle modereringsplattformen OK for «plattformen».

Hvordan alt fungerer

Mellom Yula og Odnoklassniki er datadeling etablert gjennom Apache Kafka.

Hvorfor valgte vi dette verktĂžyet:

  • I Yula gĂ„r alle annonser gjennom postmoderering, sĂ„ en synkron respons var ikke nĂždvendig i utgangspunktet.
  • Dersom det oppstĂ„r et alvorlig problem, og Jula eller VKontakte blir utilgjengelige, inkludert pĂ„ grunn av toppbelastninger, vil ikke dataene fra Kafka gĂ„ tapt, og de kan leses senere.
  • Plattformen er allerede integrert med Kafka, sĂ„ de fleste sikkerhetsspĂžrsmĂ„lene er lĂžst.

Hvordan vi modererer annonser

For hver annonse som opprettes eller endres av brukeren i Jula, genereres det en JSON med dataene, som plasseres i Kafka for videre moderering. Annonser lastes opp fra Kafka til plattformen, hvor beslutninger fattes automatisk eller manuelt. DÄrlige annonser blokkeres med angivelse av Ärsak, mens de som plattformen ikke fant brudd pÄ, merkes som «gode». Deretter sendes alle beslutninger tilbake til Jula og anvendes i tjenesten.

Til slutt handler alt for Jula om enkle handlinger: Ä sende en annonse til VKontakte-plattformen og sÄ motta en «ok»-avgjÞrelse tilbake, eller en forklaring pÄ hvorfor det ikke er «ok».

Automatisk behandling

Hva skjer med en annonse etter at den kommer til plattformen? Hver annonse deles opp i flere enheter:

  • tittel,
  • beskrivelse,
  • bilder,
  • brukerens valgte kategori og underkategori for annonsen,
  • pris.

Hvordan vi modererer annonser

Deretter utfĂžrer plattformen klustering for hver enhet for Ă„ finne duplikater. Tekst og bilder grupperes derimot etter forskjellige metoder.

Tekstene normaliseres fÞr klustering for Ä fjerne spesialtegn, endrede bokstaver og annet sÞppel. De oppnÄdde dataene deles opp i N-grammer, som deretter blir hashet. Til slutt fÄr man mange unike hasher. Likheten mellom tekstene vurderes etter Jaccard-mÄlet mellom de to oppnÄdde mengdene. Hvis likheten overstiger terskelen, slÄs tekstene sammen til én kluster. For Ä akselerere sÞket etter lignende klynger brukes MinHash og lokalitetsfÞlsom hashing.

For bilder er det utviklet ulike metoder for Ă„ kombinere bilder, fra Ă„ sammenligne pHash av bilder til Ă„ finne duplikater ved hjelp av nevrale nettverk.

Den siste metoden er den «hardeste». For Ä trene modellen ble det valgt slike trioer av bilder (N, A, P) der N ikke ligner pÄ A, mens P ligner pÄ A (er en halvduplikat). Deretter lÊrte nevrale nettverket Ä fÄ A og P til Ä vÊre sÄ nÊrt som mulig, mens A og N skulle vÊre sÄ langt fra hverandre som mulig. Dette gir fÊrre falske positiver sammenlignet med Ä bare ta inn embeddings fra et forhÄndstrent nettverk.

NÄr det nevrale nettverket fÄr bilder pÄ inngangen, genererer det en N(128)-dimensjonal vektor for hvert bilde og sender en forespÞrsel om vurdering av nÊrhet mellom bildene. Deretter beregnes en terskelverdi, der nÊre bilder anses som duplikater.

Modellen er dyktig til Ä finne spammerne som spesifikt tar bilder av den samme varen fra forskjellige vinkler for Ä omgÄ sammenligninger basert pÄ pHash.

Hvordan vi modererer annonserHvordan vi modererer annonser
Eksempel pÄ spam-bilder, satt sammen av nevrale nettverk som duplikater.

PÄ slutttrinnet sÞkes det etter duplikater i annonser bÄde basert pÄ tekst og bilder.

Hvis det i en klynge er to eller flere annonser som klumper seg sammen, aktiverer systemet en automatisk blokkering som ifĂžlge bestemte algoritmer velger hvilke duplikater som skal fjernes og hvilke som skal beholdes. For eksempel, hvis to brukere har identiske bilder i annonsene sine, vil systemet blokkere den nyeste annonsen.

Etter opprettelsen gÄr alle klynger gjennom en rekke automatiske filtre. Hvert filter tildeler klyngen et antall poeng (score): hvor stor sannsynlighet det er for at den inneholder en trussel som identifiseres av dette filteret.

For eksempel analyserer systemet beskrivelsen i annonsen og velger potensielle kategorier for den. Det tar sÄ den kategorien med hÞyest sannsynlighet og sammenligner den med kategorien som er angitt av annonsens forfatter. Hvis de ikke samsvarer, blokkeres annonsen for feil kategori. Og siden vi er snille og Êrlige, forteller vi brukeren hvilken kategori han mÄ velge for at annonsen skal gÄ gjennom moderasjon.

Hvordan vi modererer annonser
Varsel om blokkering for feil kategori.

PÄ plattformen vÄr fÞler maskinlÊring seg som hjemme. For eksempel bruker vi den til Ä sÞke etter forbudte varer i titler og beskrivelser i Russland. Og nevrale nettverksmodeller undersÞker nÞye bildene for eventuelle URL-er, spam-tekster, telefonnummer og den samme «forbudne».

For cases where a prohibited item is attempted to be sold disguised as something legal, and there is no text in either the title or the description, we use image tagging. Up to 11,000 different tags can be assigned to each image, describing what is depicted in the image.

Hvordan vi modererer annonser
A hookah is trying to be sold disguised as a samovar.

Alongside complex filters, there are also simple ones that address obvious text-related tasks:

  • profanity;
  • detector for URLs and phone numbers;
  • mention of messengers and other contacts;
  • unduly low price;
  • ads that do not sell anything, etc.

Today, every ad goes through a fine sieve of more than 50 automated filters that attempt to find something wrong in the ad.

If none of the detectors are triggered, a response is sent to Yula stating that the ad is 'most likely' in good order. We use this response ourselves, and users who subscribed to the seller receive a notification about a new item.

Hvordan vi modererer annonser
Notification that a seller has a new item.

As a result, each ad 'accrues' metadata, part of which is generated during the creation of the ad (author's IP address, user-agent, platform, geolocation, etc.), while the rest consists of scores issued by each filter.

Ad queues

When an ad enters the platform, the system places it into one of the queues. Each queue is formed using a mathematical formula that combines the ad's metadata in such a way as to detect any poor patterns.

For example, one can create a queue of ads in the category 'Mobile Phones' from Yula users supposedly from Saint Petersburg, while their IP addresses are from Moscow or other cities.

Hvordan vi modererer annonser
Example of ads posted by one user in different cities.

Or queues can be formed based on points assigned to ads by the neural network, ranked in descending order.

Each queue, according to its formula, assigns a final score to the ad. Further actions can vary:

  • set a threshold value at which the ad will receive a certain type of blocking;
  • alle annonser i kĂžen sendes til moderatorene for manuell gjennomgang;
  • eller kombinere de tidligere alternativene: angi terskelen for automatisk blokkering og sende moderatorene de annonsene som ikke har nĂ„dd denne terskelen.

Hvordan vi modererer annonser

Hvorfor er disse kÞene nÞdvendige? Anta at en bruker laster opp et bilde av skytevÄpen. Nevrale nettverk gir den en score fra 95 til 100 og bestemmer med 99% nÞyaktighet at bildet viser et vÄpen. Men hvis scoretallet er under 95%, begynner nÞyaktigheten av modellen Ä synke (slik er det med nevrale nettverksmodeller).

Som et resultat dannes det en kÞ basert pÄ modellens score, og de annonsene som har fÄtt fra 95 til 100, blokkeres automatisk som 'Forbudt vare'. Annonser med score under 95 sendes til manuell behandling av moderatorene.

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

Manuell moderering

Ved starten av 2019 ble omtrent 94 % av alle annonser pÄ Jule moderert automatisk.

Hvordan vi modererer annonser

Hvis plattformen ikke kan bestemme seg for visse annonser, sendes de til manuell moderering. Odnoklassniki har utviklet et eget verktÞy: i oppgavene for moderatorer vises all nÞdvendig informasjon for Ä ta en rask beslutning - er annonsen god eller bÞr den blokkeres med oppgi Ärsak.

Og for Ä sikre at kvaliteten pÄ tjenesten ikke lider under manuell moderering, overvÄkes arbeidet til menneskene kontinuerlig. For eksempel vises 'feller' for moderatorene i oppgaveflyten - annonser som allerede har klare lÞsninger. Hvis moderatorens beslutning ikke stemmer overens med den klare lÞsningen, registreres det en feil for moderator.

En moderator bruker i gjennomsnitt 10 sekunder pÄ Ä sjekke en annonse. Feilrate utgjÞr ikke mer enn 0,5 % av alle kontrollerte annonser.

Folkets moderering

Kollegene fra Odnoklassniki gikk enda lengre, og benyttet seg av 'publikums hjelp': de laget et spill-app for sosiale nettverk, der man raskt kan merke et stort antall data, ved Ä fremheve et dÄrlig tegn - Odnoklassniki-moderator (https://ok.ru/app/moderator). En god mÄte Ä dra nytte av hjelpen fra OK-brukerne, som prÞver Ä gjÞre innholdet mer behagelig.

Hvordan vi modererer annonser
Et spill der brukere markerer bilder som inneholder telefonnumre.

Alle annonser i plattformen kan omdirigeres til Moderationsspillet for Odnoklassniki. Alt som blir merket av brukere i spillet, sendes deretter til interne moderatorer for vurdering. Denne ordningen gjÞr det mulig Ä blokkere annonser for hvilke det ikke ennÄ er opprettet filtrer, samtidig som det bidrar til Ä lage treningsutvalg.

Lagring av moderasjonsresultater

Vi lagrer alle beslutninger tatt under moderasjon, slik at vi ikke trenger Ä behandle annonser som allerede har fÄtt en avgjÞrelse pÄ nytt.

Hver dag opprettes millioner av kluster for annonser. Med tiden fÄr hvert kluster merkelappen «bra» eller «dÄrlig». Hver ny annonse eller dens redigering, nÄr den kommer inn i et kluster med en etikett, fÄr automatisk avgjÞrelsen fra klusteret. Det blir generert omtrent 20 000 slike automatiske avgjÞrelser hver dag.

Hvordan vi modererer annonser

Hvis det ikke kommer nye annonser til klusteret, fjernes det fra minnet, og dets hash og avgjĂžrelse lagres i Apache Cassandra.

NĂ„r plattformen mottar en ny annonse, prĂžver den fĂžrst Ă„ finne et lignende kluster blant de allerede opprettede og ta avgjĂžrelsen derfra. Hvis det ikke finnes noe slikt kluster, gĂ„r plattformen til Cassandra og leter der. Fant den noe? Flott, avgjĂžrelsen brukes pĂ„ klusteret og sendes til Yula. Slike «gjentatte» avgjĂžrelser utgjĂžr i snitt 70 000 daglig — 8 % av det totale antallet.

Oppsummering

Vi har brukt plattformen for moderasjon av Odnoklassniki i to og et halv Är. Vi er fornÞyde med resultatene:

  • Vi modererer automatisk 94 % av alle annonser i lĂžpet av en dag.
  • Kostnaden for moderasjon av Ă©n annonse er redusert fra 2 rubler til 7 kopeker.
  • Takket vĂŠre det ferdige verktĂžyet har vi glemt om problemer med moderatĂžrer.
  • Vi har Ăžkt antall manuelle behandlede annonser med 2,5 ganger med samme antall moderatorer og budsjett. Kvaliteten pĂ„ manuell moderasjon har ogsĂ„ forbedret seg takket vĂŠre automatisert kontroll, og ligger pĂ„ omtrent 0,5 % feil.
  • Vi dekker raskt nye typer spam med filtrer.
  • Vi kobler raskt nye avdelinger til moderasjon «Yula Vertikaler». Siden 2017 har Yula fĂ„tt vertikaler innen Eiendom, Ledige Jobber og Bil.

Kilde: habr.com

KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere đŸ”„ KjĂžp pĂ„litelig hosting for nettsteder med DDoS-beskyttelse, VPS VDS-servere | ProHoster