Hur vi modererar annonser

Hur vi modererar annonser

Varje tjänst vars användare kan skapa sitt eget innehåll (UGC - User-generated content) tvingas inte bara lösa affärsproblem, utan också att ställa saker i ordning i UGC. Dålig eller lågkvalitativ innehållsmoderering kan i slutändan minska tjänstens attraktionskraft för användarna, till och med avsluta driften.

Idag kommer vi att berätta om synergin mellan Yula och Odnoklassniki, vilket hjälper oss att effektivt moderera annonser i Yula.

Synergi i allmänhet är en mycket användbar sak, och i den moderna världen, när teknologier och trender förändras mycket snabbt, kan det bli en livräddare. Varför slösa knappa resurser och tid på att uppfinna något som redan har uppfunnits och kommit att tänka på före dig?

Vi tänkte samma sak när vi stod inför hela uppgiften att moderera användarinnehåll – bilder, text och länkar. Våra användare laddar upp miljontals delar av innehåll till Yula varje dag, och utan automatisk bearbetning är det helt omöjligt att moderera all denna data manuellt.

Därför använde vi en färdig modereringsplattform, som vid den tiden våra kollegor från Odnoklassniki hade slutfört till ett tillstånd av "nästan perfektion."

Varför Odnoklassniki?

Varje dag kommer tiotals miljoner användare till det sociala nätverket och publicerar miljarder delar av innehåll: från foton till videor och texter. Modereringsplattformen Odnoklassniki hjälper till att kontrollera mycket stora datamängder och motverka spammare och botar.

OK-modereringsteamet har samlat på sig mycket erfarenhet, sedan det har förbättrat sitt verktyg i 12 år. Det är viktigt att de inte bara kan dela med sig av sina färdiga lösningar, utan också kunna anpassa arkitekturen på sin plattform för att passa våra specifika uppgifter.

Hur vi modererar annonser

Från och med nu, för korthets skull, kommer vi helt enkelt att kalla OK-modereringsplattformen "plattform".

Hur allt fungerar

Datautbyte mellan Yula och Odnoklassniki etableras genom Apache Kafka.

Varför vi valde detta verktyg:

  • I Yula är alla annonser eftermodererade, så till en början krävdes inget synkront svar.
  • Om ett dåligt stycke inträffar och Yula eller Odnoklassniki är otillgängliga, inklusive på grund av vissa toppbelastningar, kommer data från Kafka inte att försvinna någonstans och kan läsas senare.
  • Plattformen var redan integrerad med Kafka, så de flesta säkerhetsproblem var lösta.

Hur vi modererar annonser

För varje annons som skapas eller modifieras av användaren i Yula, genereras en JSON med data, som placeras i Kafka för efterföljande moderering. Från Kafka laddas meddelanden in på plattformen, där de bedöms automatiskt eller manuellt. Dåliga annonser blockeras med en anledning, och de där plattformen inte hittar överträdelser markeras som "bra". Sedan skickas alla beslut tillbaka till Yula och tillämpas i tjänsten.

I slutändan, för Yula handlar allt om enkla åtgärder: skicka en annons till Odnoklassniki-plattformen och få tillbaka en upplösning "ok", eller varför inte "ok".

Automatisk bearbetning

Vad händer med annonsen efter att den kommit till plattformen? Varje annons är uppdelad i flera enheter:

  • Namn,
  • beskrivning,
  • foton,
  • användarvald kategori och underkategori för annonsen,
  • pris.

Hur vi modererar annonser

Plattformen utför sedan klustring för varje enhet för att hitta dubbletter. Dessutom är text och fotografier grupperade enligt olika scheman.

Innan klustring normaliseras texter för att ta bort specialtecken, ändrade bokstäver och annat skräp. Den mottagna datan är uppdelad i N-gram, som var och en hashas. Resultatet är många unika hash. Likheten mellan texter bestäms av Jaccards mått mellan de två resulterande uppsättningarna. Om likheten är större än tröskeln slås texterna samman till ett kluster. För att påskynda sökningen efter liknande kluster används MinHash och Locality-sensitive hashing.

Olika alternativ för att limma bilder har uppfunnits för fotografier, från att jämföra pHash-bilder till att söka efter dubbletter med hjälp av ett neuralt nätverk.

Den sista metoden är den mest "allvarliga". För att träna modellen valdes tripletter av bilder (N, A, P) där N inte liknar A och P liknar A (är en semi-duplicerad). Sedan lärde sig det neurala nätverket att göra A och P så nära som möjligt, och A och N så långt som möjligt. Detta resulterar i färre falska positiva resultat jämfört med att bara ta inbäddningar från ett förutbildat nätverk.

När det neurala nätverket tar emot bilder som indata genererar det en N(128)-dimensionell vektor för var och en av dem och en begäran görs för att bedöma bildens närhet. Därefter beräknas en tröskel vid vilken nära bilder anses vara dubbletter.

Modellen kan skickligt hitta spammare som specifikt fotograferar samma produkt från olika vinklar för att kringgå pHash-jämförelsen.

Hur vi modererar annonserHur vi modererar annonser
Ett exempel på spamfoton limmade ihop av ett neuralt nätverk som dubbletter.

I slutskedet genomsöks dubbletter av annonser samtidigt med både text och bild.

Om två eller flera annonser sitter ihop i ett kluster startar systemet automatisk blockering, som med hjälp av vissa algoritmer väljer vilka dubbletter som ska raderas och vilka som ska lämnas. Till exempel, om två användare har samma foton i en annons, kommer systemet att blockera den senaste annonsen.

När de väl har skapats går alla kluster igenom en serie automatiska filter. Varje filter tilldelar en poäng till klustret: hur troligt är det att det innehåller hotet som detta filter identifierar.

Systemet analyserar till exempel beskrivningen i en annons och väljer potentiella kategorier för den. Sedan tar den den med maximal sannolikhet och jämför den med kategorin som anges av annonsens författare. Om de inte stämmer överens blockeras annonsen för fel kategori. Och eftersom vi är snälla och ärliga berättar vi direkt för användaren vilken kategori han måste välja för att annonsen ska klara moderering.

Hur vi modererar annonser
Meddelande om blockering för felaktig kategori.

Maskininlärning känns riktigt hemma i vår plattform. Till exempel, med dess hjälp söker vi i namn och beskrivningar av varor som är förbjudna i Ryska federationen. Och neurala nätverksmodeller "undersöker" noggrant bilderna för att se om de innehåller webbadresser, spamtexter, telefonnummer och samma "förbjudna" information.

För fall där de försöker sälja en förbjuden produkt förklädd till något lagligt, och det inte finns någon text i vare sig titeln eller beskrivningen, använder vi bildtaggning. För varje bild kan upp till 11 tusen olika taggar läggas till som beskriver vad som finns i bilden.

Hur vi modererar annonser
De försöker sälja vattenpipan genom att maskera den som en samovar.

Parallellt med komplexa filter fungerar också enkla som löser uppenbara problem relaterade till text:

  • antimatta;
  • URL- och telefonnummerdetektor;
  • omnämnande av snabbmeddelanden och andra kontakter;
  • rabatterat pris;
  • annonser där inget är till salu osv.

Idag går varje annons igenom ett fint såll av mer än 50 automatiska filter som försöker hitta något dåligt i annonsen.

Om ingen av detektorerna fungerade skickas ett svar till Yula att annonsen "mest troligt" är i perfekt ordning. Vi använder det här svaret själva och användare som har prenumererat på säljaren får ett meddelande om tillgängligheten för en ny produkt.

Hur vi modererar annonser
Meddelande om att säljaren har en ny produkt.

Som ett resultat är varje annons "övervuxen" med metadata, av vilka en del genereras när annonsen skapas (författarens IP-adress, användaragent, plattform, geolokalisering, etc.), och resten är poängen som ges av varje filter .

Annonsköer

När en annons träffar plattformen placerar systemet den i en av köerna. Varje kö skapas med hjälp av en matematisk formel som kombinerar annonsmetadata på ett sätt som upptäcker eventuella dåliga mönster.

Du kan till exempel skapa en kö med annonser i kategorin "Mobiler" från Yula-användare som förmodligen kommer från St. Petersburg, men deras IP-adresser är från Moskva eller andra städer.

Hur vi modererar annonser
Ett exempel på annonser som lagts upp av en användare i olika städer.

Eller så kan du skapa köer baserat på poängen som det neurala nätverket tilldelar annonser, ordna dem i fallande ordning.

Varje kö, enligt sin egen formel, tilldelar annonsen ett slutresultat. Sedan kan du gå vidare på olika sätt:

  • ange den tröskel vid vilken en annons kommer att få en viss typ av blockering;
  • skicka alla annonser i kön till moderatorer för manuell granskning;
  • eller kombinera de tidigare alternativen: ange tröskeln för automatisk blockering och skicka till moderatorer de annonser som inte har nått denna tröskel.

Hur vi modererar annonser

Varför behövs dessa köer? Låt oss säga att en användare laddade upp ett foto av ett skjutvapen. Det neurala nätverket tilldelar det en poäng från 95 till 100 och bestämmer med 99 procents noggrannhet att det finns ett vapen i bilden. Men om poängvärdet är under 95%, börjar modellens noggrannhet att minska (detta är en funktion av neurala nätverksmodeller).

Som ett resultat bildas en kö baserat på poängmodellen, och de annonser som fått mellan 95 och 100 blockeras automatiskt som "förbjudna produkter". Annonser med en poäng under 95 skickas till moderatorer för manuell bearbetning.

Hur vi modererar annonser
Choklad Beretta med patroner. Endast för manuell moderering! 🙂

Manuell moderering

I början av 2019 modereras cirka 94 % av alla annonser i Yula automatiskt.

Hur vi modererar annonser

Om plattformen inte kan besluta om vissa annonser, skickar den dem för manuell moderering. Odnoklassniki utvecklade sitt eget verktyg: uppgifter för moderatorer visar omedelbart all nödvändig information för att fatta ett snabbt beslut - annonsen är lämplig eller bör blockeras, vilket anger orsaken.

Och så att kvaliteten på tjänsten inte blir lidande under manuell moderering övervakas människors arbete ständigt. Till exempel, i aktivitetsflödet, visas moderatorn "fällor" - annonser som det redan finns färdiga lösningar för. Om moderatorns beslut inte sammanfaller med det färdiga, får moderatorn ett fel.

I genomsnitt spenderar en moderator 10 sekunder på att kontrollera en annons. Dessutom är antalet fel inte mer än 0,5 % av alla verifierade annonser.

Människors måttfullhet

Kollegor från Odnoklassniki gick ännu längre och drog fördel av "publikens hjälp": de skrev en spelapplikation för det sociala nätverket där du snabbt kan markera en stor mängd data, vilket framhäver ett dåligt tecken - Odnoklassniki Moderator (https://ok.ru/app/moderator). Ett bra sätt att ta del av hjälpen från OK-användare som försöker göra innehållet roligare.

Hur vi modererar annonser
Ett spel där användare taggar foton som har ett telefonnummer.

Vilken kö av annonser som helst på plattformen kan omdirigeras till Odnoklassniki Moderator-spelet. Allt som spelanvändare markerar skickas sedan till interna moderatorer för verifiering. Detta schema låter dig blockera annonser för vilka filter ännu inte har skapats, och samtidigt skapa träningsexempel.

Lagra modereringsresultat

Vi sparar alla beslut som fattats under moderering så att vi inte omarbetar de annonser som vi redan har fattat beslut om.

Miljontals kluster skapas varje dag baserat på annonser. Med tiden märks varje kluster som "bra" eller "dåligt". Varje ny annons eller dess revidering, som går in i ett kluster med ett märke, får automatiskt en upplösning från själva klustret. Det finns cirka 20 tusen sådana automatiska upplösningar per dag.

Hur vi modererar annonser

Om inga nya meddelanden kommer till klustret tas det bort från minnet och dess hash och lösning skrivs till Apache Cassandra.

När plattformen får en ny annons försöker den först hitta ett liknande kluster bland de redan skapade och ta en lösning från det. Om det inte finns något sådant kluster går plattformen till Cassandra och tittar där. Hittade du det? Bra, tillämpar lösningen på klustret och skickar den till Yula. Det finns i genomsnitt 70 tusen sådana "upprepade" beslut varje dag — 8 % av det totala antalet.

Sammanfattningsvis

Vi har använt modereringsplattformen Odnoklassniki i två och ett halvt år. Vi gillar resultatet:

  • Vi modererar automatiskt 94 % av alla annonser per dag.
  • Kostnaden för att moderera en annons reducerades från 2 rubel till 7 kopek.
  • Tack vare det färdiga verktyget glömde vi problemen med att hantera moderatorer.
  • Vi ökade antalet manuellt bearbetade annonser med 2,5 gånger med samma antal moderatorer och budget. Kvaliteten på manuell moderering har också ökat på grund av automatiserad kontroll, och fluktuerar runt 0,5 % av felen.
  • Vi täcker snabbt nya typer av spam med filter.
  • Vi kopplar snabbt nya avdelningar till moderering "Yula Verticals". Sedan 2017 har Yula lagt till vertikalerna Fastigheter, Vakanser och Auto.

Källa: will.com

Lägg en kommentar