Hvordan vi modererer annoncer

Hvordan vi modererer annoncer

Hver tjeneste, hvis brugere kan skabe deres eget indhold (UGC - User-generated content), er tvunget ikke kun til at løse forretningsproblemer, men også til at bringe tingene i orden i UGC. Moderering af indhold af dårlig eller lav kvalitet kan i sidste ende reducere tjenestens attraktivitet for brugerne, op til og med opsigelse af driften.

I dag vil vi fortælle dig om synergien mellem Yula og Odnoklassniki, som hjælper os med effektivt at moderere annoncer i Yula.

Synergi generelt er en meget nyttig ting, og i den moderne verden, når teknologier og trends ændrer sig meget hurtigt, kan det blive en livredder. Hvorfor spilde knappe ressourcer og tid på at opfinde noget, der allerede er opfundet og bragt i tankerne før dig?

Det samme tænkte vi, da vi stod over for den fulde opgave at moderere brugerindhold – billeder, tekst og links. Vores brugere uploader millioner af stykker indhold til Yula hver dag, og uden automatisk behandling er det fuldstændig umuligt at moderere alle disse data manuelt.

Derfor brugte vi en færdiglavet modereringsplatform, som vores kolleger fra Odnoklassniki på det tidspunkt havde fuldført til en tilstand af "næsten perfektion."

Hvorfor Odnoklassniki?

Hver dag kommer titusinder af brugere til det sociale netværk og udgiver milliarder af stykker indhold: fra fotos til videoer og tekster. Odnoklassniki-moderationsplatformen hjælper med at kontrollere meget store mængder data og modvirke spammere og bots.

OK-moderationsteamet har oparbejdet en masse erfaring, da det har forbedret sit værktøj i 12 år. Det er vigtigt, at de ikke kun kunne dele deres færdige løsninger, men også tilpasse arkitekturen på deres platform, så den passer til vores specifikke opgaver.

Hvordan vi modererer annoncer

Fra nu af vil vi for kortheds skyld blot kalde OK-moderationsplatformen "platform".

Hvordan det hele fungerer

Dataudveksling mellem Yula og Odnoklassniki etableres gennem Apache Kafka.

Hvorfor vi valgte dette værktøj:

  • I Yula er alle annoncer postmodereret, så i første omgang var et synkront svar ikke påkrævet.
  • Hvis der sker et dårligt afsnit, og Yula eller Odnoklassniki er utilgængelige, inklusive på grund af nogle spidsbelastninger, så forsvinder dataene fra Kafka ingen steder og kan læses senere.
  • Platformen var allerede integreret med Kafka, så de fleste sikkerhedsproblemer var løst.

Hvordan vi modererer annoncer

For hver annonce oprettet eller ændret af brugeren i Yula, genereres en JSON med data, som placeres i Kafka til efterfølgende moderering. Fra Kafka indlæses meddelelser på platformen, hvor de bedømmes automatisk eller manuelt. Dårlige annoncer blokeres med en årsag, og dem, hvor platformen ikke finder overtrædelser, er markeret som "gode". Derefter sendes alle beslutninger tilbage til Yula og anvendes i tjenesten.

I sidste ende, for Yula kommer det hele ned til simple handlinger: send en annonce til Odnoklassniki-platformen og få en løsning "ok" tilbage, eller hvorfor ikke "ok".

Automatisk behandling

Hvad sker der med annoncen, efter at den rammer platformen? Hver annonce er opdelt i flere enheder:

  • Navn,
  • beskrivelse,
  • fotos,
  • brugervalgt kategori og underkategori af annoncen,
  • цена.

Hvordan vi modererer annoncer

Platformen udfører derefter clustering for hver enhed for at finde dubletter. Desuden er tekst og fotografier grupperet efter forskellige skemaer.

Før klyngedannelse normaliseres tekster for at fjerne specialtegn, ændrede bogstaver og andet affald. De modtagne data er opdelt i N-gram, som hver er hash. Resultatet er mange unikke hashes. Ligheden mellem tekster bestemmes af Jaccards mål mellem de to resulterende sæt. Hvis ligheden er større end tærsklen, bliver teksterne slået sammen til én klynge. For at fremskynde søgningen efter lignende klynger bruges MinHash og Locality-sensitiv hashing.

Forskellige muligheder for limning af billeder er blevet opfundet til fotografier, fra at sammenligne pHash-billeder til at søge efter dubletter ved hjælp af et neuralt netværk.

Den sidste metode er den mest "alvorlige". For at træne modellen blev der udvalgt trillinger af billeder (N, A, P), hvor N ikke ligner A, og P ligner A (er en semi-duplikat). Så lærte det neurale netværk at gøre A og P så tæt som muligt, og A og N så langt som muligt. Dette resulterer i færre falske positiver sammenlignet med blot at tage indlejringer fra et forudtrænet netværk.

Når det neurale netværk modtager billeder som input, genererer det en N(128)-dimensionel vektor for hver af dem, og der bliver lavet en anmodning om at vurdere billedets nærhed. Dernæst beregnes en tærskel, hvor nærbilleder betragtes som dubletter.

Modellen er i stand til dygtigt at finde spammere, der specifikt fotograferer det samme produkt fra forskellige vinkler for at omgå pHash-sammenligningen.

Hvordan vi modererer annoncerHvordan vi modererer annoncer
Et eksempel på spambilleder limet sammen af ​​et neuralt netværk som dubletter.

I sidste fase søges duplikerede annoncer samtidigt med både tekst og billede.

Hvis to eller flere annoncer hænger sammen i en klynge, starter systemet automatisk blokering, som ved hjælp af visse algoritmer vælger, hvilke dubletter der skal slettes, og hvilke der skal forlades. For eksempel, hvis to brugere har de samme billeder i en annonce, vil systemet blokere den nyere annonce.

Når de er oprettet, gennemgår alle klynger en række automatiske filtre. Hvert filter tildeler en score til klyngen: Hvor sandsynligt er det, at det indeholder truslen, som dette filter identificerer.

For eksempel analyserer systemet beskrivelsen i en annonce og udvælger potentielle kategorier for den. Derefter tager den den med størst sandsynlighed og sammenligner den med den kategori, der er angivet af annoncens forfatter. Hvis de ikke matcher, er annoncen blokeret for den forkerte kategori. Og da vi er venlige og ærlige, fortæller vi direkte brugeren, hvilken kategori han skal vælge, for at annoncen kan bestå moderation.

Hvordan vi modererer annoncer
Meddelelse om blokering for forkert kategori.

Machine learning føles hjemme i vores platform. For eksempel søger vi med dens hjælp i navne og beskrivelser af varer, der er forbudt i Den Russiske Føderation. Og neurale netværksmodeller "undersøger" omhyggeligt billederne for at se, om de indeholder URL'er, spam-tekster, telefonnumre og den samme "forbudte" information.

I tilfælde, hvor de forsøger at sælge et forbudt produkt forklædt som noget lovligt, og der ikke er nogen tekst i hverken titel eller beskrivelse, bruger vi billedmærkning. For hvert billede kan der tilføjes op til 11 tusinde forskellige tags, der beskriver, hvad der er på billedet.

Hvordan vi modererer annoncer
De forsøger at sælge vandpiben ved at forklæde den som en samovar.

Parallelt med komplekse filtre fungerer simple filtre også og løser åbenlyse problemer relateret til tekst:

  • antimat;
  • URL- og telefonnummerdetektor;
  • omtale af instant messengers og andre kontakter;
  • nedsat pris;
  • annoncer, hvor intet er til salg mv.

I dag går hver annonce igennem en fin sigte med mere end 50 automatiske filtre, der forsøger at finde noget dårligt i annoncen.

Hvis ingen af ​​detektorerne virkede, sendes der et svar til Yula om, at annoncen "mest sandsynligt" er i perfekt orden. Vi bruger selv dette svar, og brugere, der har abonneret på sælgeren, modtager en meddelelse om tilgængeligheden af ​​et nyt produkt.

Hvordan vi modererer annoncer
Meddelelse om, at sælger har et nyt produkt.

Som et resultat er hver annonce "overgroet" med metadata, hvoraf nogle genereres, når annoncen oprettes (forfatterens IP-adresse, brugeragent, platform, geolocation osv.), og resten er scoren udstedt af hvert filter .

Annoncekøer

Når en annonce rammer platformen, sætter systemet den i en af ​​køerne. Hver kø oprettes ved hjælp af en matematisk formel, der kombinerer annoncemetadata på en måde, der registrerer eventuelle dårlige mønstre.

For eksempel kan du oprette en kø af annoncer i kategorien "Mobiltelefoner" fra Yula-brugere, der angiveligt kommer fra St. Petersborg, men deres IP-adresser er fra Moskva eller andre byer.

Hvordan vi modererer annoncer
Et eksempel på annoncer indsendt af én bruger i forskellige byer.

Eller du kan danne køer baseret på de scores, som det neurale netværk tildeler til annoncer, og arrangere dem i faldende rækkefølge.

Hver kø tildeler i henhold til sin egen formel en endelig score til annoncen. Så kan du gå videre på forskellige måder:

  • angiv den tærskel, ved hvilken en annonce vil modtage en bestemt type blokering;
  • send alle annoncer i køen til moderatorer til manuel gennemgang;
  • eller kombiner de tidligere muligheder: Angiv den automatiske blokeringstærskel og send til moderatorer de annoncer, der ikke har nået denne grænse.

Hvordan vi modererer annoncer

Hvorfor er disse køer nødvendige? Lad os sige, at en bruger har uploadet et billede af et skydevåben. Det neurale netværk tildeler det en score fra 95 til 100 og fastslår med 99 procents nøjagtighed, at der er et våben på billedet. Men hvis scoreværdien er under 95%, begynder modellens nøjagtighed at falde (dette er en funktion af neurale netværksmodeller).

Som følge heraf dannes en kø baseret på scoremodellen, og de annoncer, der modtog mellem 95 og 100, blokeres automatisk som "Forbudte produkter". Annoncer med en score under 95 sendes til moderatorer til manuel behandling.

Hvordan vi modererer annoncer
Chokolade Beretta med patroner. Kun til manuel moderering! 🙂

Manuel moderering

I begyndelsen af ​​2019 modereres omkring 94 % af alle annoncer i Yula automatisk.

Hvordan vi modererer annoncer

Hvis platformen ikke kan tage stilling til nogle annoncer, sender den dem til manuel moderering. Odnoklassniki udviklede deres eget værktøj: opgaver for moderatorer viser straks alle de nødvendige oplysninger for at træffe en hurtig beslutning - annoncen er egnet eller bør blokeres, hvilket angiver årsagen.

Og for at kvaliteten af ​​servicen ikke lider under manuel moderering, overvåges folks arbejde konstant. For eksempel, i opgavestrømmen, vises moderatoren "fælder" - annoncer, som der allerede er færdige løsninger til. Hvis moderatorens beslutning ikke falder sammen med den færdige, får moderatoren en fejl.

I gennemsnit bruger en moderator 10 sekunder på at tjekke én annonce. Desuden er antallet af fejl ikke mere end 0,5 % af alle verificerede annoncer.

Folks mådehold

Kolleger fra Odnoklassniki gik endnu længere og udnyttede "tilskuernes hjælp": de skrev en spilapplikation til det sociale netværk, hvor du hurtigt kan markere en stor mængde data og fremhæve et dårligt tegn - Odnoklassniki Moderator (https://ok.ru/app/moderator). En god måde at drage fordel af hjælpen fra OK-brugere, der forsøger at gøre indholdet sjovere.

Hvordan vi modererer annoncer
Et spil, hvor brugere tagger billeder, der har et telefonnummer.

Enhver kø af annoncer på platformen kan omdirigeres til Odnoklassniki Moderator-spillet. Alt, hvad spilbrugere markerer, sendes derefter til interne moderatorer til verifikation. Denne ordning giver dig mulighed for at blokere annoncer, for hvilke der endnu ikke er oprettet filtre, og samtidig oprette træningsprøver.

Lagring af moderationsresultater

Vi gemmer alle beslutninger taget under moderering, så vi ikke genbehandler de annoncer, som vi allerede har truffet en beslutning om.

Millioner af klynger skabes hver dag baseret på annoncer. Med tiden bliver hver klynge mærket "god" eller "dårlig". Hver ny annonce eller dens revision, der indtaster en klynge med et mærke, modtager automatisk en løsning fra klyngen selv. Der er omkring 20 tusinde sådanne automatiske opløsninger om dagen.

Hvordan vi modererer annoncer

Hvis der ikke kommer nye meddelelser til klyngen, fjernes den fra hukommelsen, og dens hash og løsning skrives til Apache Cassandra.

Når platformen modtager en ny annonce, forsøger den først at finde en lignende klynge blandt de allerede oprettede og tage en løsning fra den. Hvis der ikke er en sådan klynge, går platformen til Cassandra og kigger der. Fandt du det? Fantastisk, anvender løsningen på klyngen og sender den til Yula. Der er i gennemsnit 70 tusind sådanne "gentagne" beslutninger hver dag - 8% af det samlede antal.

Opsummering

Vi har brugt Odnoklassniki-moderationsplatformen i to et halvt år. Vi kan godt lide resultaterne:

  • Vi modererer automatisk 94 % af alle annoncer pr. dag.
  • Omkostningerne ved at moderere en annonce blev reduceret fra 2 rubler til 7 kopek.
  • Takket være det færdige værktøj glemte vi problemerne med at administrere moderatorer.
  • Vi øgede antallet af manuelt behandlede annoncer med 2,5 gange med samme antal moderatorer og budget. Kvaliteten af ​​manuel moderering er også steget på grund af automatiseret kontrol og svinger omkring 0,5 % af fejlene.
  • Vi dækker hurtigt nye typer spam med filtre.
  • Vi kobler hurtigt nye afdelinger til moderation "Yula Verticals". Siden 2017 har Yula tilføjet vertikalerne Fast ejendom, Ledige stillinger og Auto.

Kilde: www.habr.com

Tilføj en kommentar