Hoe we advertenties modereren

Hoe we advertenties modereren

Elke service waarvan de gebruikers hun eigen content kunnen creƫren (UGC - User-generated content) moet niet alleen zakelijke doelen aanpakken, maar ook orde scheppen in de UGC. Slechte of ongeschikte contentmoderatie kan de aantrekkelijkheid van de service voor gebruikers verminderen, tot het punt dat de werking ervan wordt stopgezet.

Vandaag vertellen we je over de synergie tussen Yula en Odnoklassniki, die ons helpt om advertenties op Yula effectief te modereren.

Synergie is over het algemeen een zeer nuttig fenomeen, en in de moderne wereld waarin technologie en trends zich razendsnel ontwikkelen, kan het een redmiddel worden. Waarom kostbare middelen en tijd verspillen aan het uitvinden van wat al eerder is uitgevonden en verfijnd?

Dit dachten wij ook, toen we geconfronteerd werden met de taak om gebruikerscontent te modereren - afbeeldingen, teksten en links. Onze gebruikers uploaden dagelijks miljoenen eenheden content naar Yula, en zonder automatische verwerking is het praktisch onmogelijk om al deze gegevens handmatig te modereren.

Daarom hebben we gebruikgemaakt van een reeds bestaande moderatieplatform, dat tegen die tijd door onze collega's van Odnoklassniki was verfijnd tot de status van 'bijna perfectie'.

Waarom Odnoklassniki?

Dagelijks komen er tientallen miljoenen gebruikers naar het sociale netwerk die miljarden eenheden content publiceren: van foto's tot video's en teksten. Het moderatieplatform van Odnoklassniki helpt om zeer grote hoeveelheden data te controleren en om spam en bots tegen te gaan.

Het moderatieteam van OK heeft veel ervaring opgebouwd, omdat ze hun tool al 12 jaar verbeteren. Het is belangrijk dat ze niet alleen in staat waren om hun kant-en-klare oplossingen te delen, maar ook de architectuur van hun platform aan onze specifieke behoeften konden aanpassen.

Hoe we advertenties modereren

Voor de eenvoud zullen we het moderatieplatform van OK verder gewoon 'platform' noemen.

Hoe alles is geregeld

Tussen Yula en Odnoklassniki is de data-uitwisseling geregeld via Apache Kafka.

Waarom we dit instrument hebben gekozen:

  • Op Yula ondergaan alle advertenties postmoderatie, daarom was een synchrone reactie in eerste instantie niet vereist.
  • Als er zich een ernstige storing voordoet en Yula of Odnoklassniki niet beschikbaar zijn, bijvoorbeeld door piekbelasting, dan gaan de gegevens uit Kafka niet verloren en kunnen ze later alsnog worden gelezen.
  • Het platform is al geĆÆntegreerd met Kafka, waardoor de meeste beveiligingskwesties zijn opgelost.

Hoe we advertenties modereren

Voor elke door een gebruiker gemaakte of gewijzigde advertentie op Yula wordt een JSON met gegevens aangemaakt, die in Kafka wordt geplaatst voor latere moderatie. Uit Kafka worden de advertenties in het platform geladen, waar beslissingen automatisch of handmatig worden genomen. Slechte advertenties worden geblokkeerd met vermelding van de reden, terwijl advertenties waarin het platform geen overtredingen heeft gevonden, worden gemarkeerd als 'goed'. Vervolgens worden alle beslissingen teruggestuurd naar Yula en toegepast in de dienst.

Uiteindelijk komt het voor Yula neer op eenvoudige acties: stuur de advertentie naar het Odnoklassniki-platform en ontvang de resolutie 'ok', of de reden waarom niet 'ok'.

Automatische verwerking

Wat gebeurt er met de advertentie nadat deze het platform binnenkomt? Elke advertentie wordt opgesplitst in verschillende entiteiten:

  • titel,
  • beschrijving,
  • foto's,
  • de door de gebruiker gekozen categorie en subcategorie van de advertentie,
  • prijs.

Hoe we advertenties modereren

Vervolgens voert het platform clustering uit voor elke entiteit om duplicaten te vinden. Tekst en foto's worden daarbij volgens verschillende schema's geclusterd.

De teksten worden vóór de clustering genormaliseerd om speciale symbolen, gewijzigde letters en ander spul te verwijderen. De verkregen gegevens worden opgesplitst in N-grammen, waarvan elke enkele wordt gehasht. Dit resulteert in een groot aantal unieke hashes. De gelijkenis tussen de teksten wordt bepaald door de Jaccard-index tussen de twee resulterende verzamelingen. Als de gelijkenis boven de drempel ligt, worden de teksten samengevoegd in één cluster. Om de zoekopdracht naar vergelijkbare clusters te versnellen, worden MinHash en Locality-sensitive hashing gebruikt.

Voor foto's zijn er verschillende opties voor het samenvoegen van beelden, van het vergelijken van pHash van afbeeldingen tot het zoeken naar duplicaten met behulp van een neuraal netwerk.

De laatste methode is de 'hardste'. Voor het trainen van het model zijn dergelijke trio's afbeeldingen (N, A, P) gekozen, waarbij N niet lijkt op A, terwijl P lijkt op A (deels een duplicaat). Vervolgens leerde het neuraal netwerk om A en P zo dicht mogelijk bij elkaar te brengen, terwijl A en N zo ver mogelijk van elkaar werden gehouden. Dit levert minder valse positieven op in vergelijking met gewoon het nemen van embeddings van een voorgetraind netwerk.

Wanneer de neurale netwerk afbeeldingen ontvangt, genereert het voor elke afbeelding een N(128)-dimensionale vector en doet het een aanvraag om de nabijheid van de afbeelding te evalueren. Vervolgens wordt de drempel berekend waarbij nabije afbeeldingen als duplicaten worden beschouwd.

Het model kan meesterlijk spammer identificeren die opzettelijk dezelfde producten vanuit verschillende hoeken fotograferen om de vergelijking op pHash te omzeilen.

Hoe we advertenties modererenHoe we advertenties modereren
Voorbeeld van spamfoto's, samengevoegd door een neuraal netwerk als duplicaten.

In de laatste fase worden duplicaten van advertenties tegelijkertijd op tekst en afbeelding gezocht.

Als er twee of meer advertenties in een cluster worden samengevoegd, start het systeem een automatische blokkering, die op basis van bepaalde algoritmen bepaalt welke duplicaten verwijderd moeten worden en welke behouden. Bijvoorbeeld, als twee gebruikers in een advertentie dezelfde foto's hebben, dan blokkeert het systeem de nieuwere advertentie.

Na het creëren gaan alle clusters door een aantal automatische filters. Elk filter kent een score toe aan het cluster: met welke waarschijnlijkheid het een bedreiging bevat die door dit filter wordt geïdentificeerd.

Bijvoorbeeld, het systeem analyseert de beschrijving van de advertentie en kiest potentiƫle categorieƫn voor deze. Vervolgens neemt het de categorie met de hoogste waarschijnlijkheid en vergelijkt deze met de categorie die de auteur van de advertentie heeft opgegeven. Als ze niet overeenkomen, wordt de advertentie geblokkeerd vanwege een onjuiste categorie. En omdat we vriendelijk en eerlijk zijn, vertellen we de gebruiker rechtstreeks welke categorie hij moet kiezen zodat de advertentie de moderatie doorstaat.

Hoe we advertenties modereren
Melding van blokkering vanwege een onjuiste categorie.

Op ons platform voelt machine learning zich als thuis. Bijvoorbeeld, hiermee zoeken we in titels en beschrijvingen naar verboden producten in Rusland. En de modellen van neurale netwerken kijken nauwkeurig of er geen URL-adressen, spamteksten, telefoonnummers en diezelfde 'verboden' op de afbeeldingen staan.

Voor gevallen waarin een verboden product wordt geprobeerd te verkopen door het te vermommen als iets legaals, en er tegelijkertijd geen tekst in de titel of beschrijving staat, gebruiken we beeldtagging. Voor elke afbeelding kunnen tot 11.000 verschillende tags worden toegewezen, die beschrijven wat er op de afbeelding staat.

Hoe we advertenties modereren
Een waterpijp wordt geprobeerd te verkopen door het als een samovar te vermommen.

Tegelijkertijd werken er ook eenvoudige filters die voor de hand liggende tekstgerelateerde taken oplossen:

  • anti-materie;
  • URL- en telefoonnummerdetector;
  • vermelding van instant messaging-apps en andere contacten;
  • verlaagd tarief;
  • advertenties waarin niets te koop is, enzovoorts.

Vandaag de dag gaat elke advertentie door een fijn zeefje van meer dan 50 automatische filters die proberen iets slechts in de advertentie te vinden.

Als geen van de detectors afgaat, wordt er een reactie naar Yula gestuurd waarin staat dat alles 'waarschijnlijk' in orde is met de advertentie. We passen deze reactie bij ons toe en gebruikers die zich hebben aangemeld voor de verkoper ontvangen een melding over de nieuwe producten.

Hoe we advertenties modereren
Een melding dat de verkoper een nieuw product heeft.

Uiteindelijk ā€˜verrijkt’ elke advertentie zich met metadata, waarvan een deel wordt gegenereerd bij het aanmaken van de advertentie (IP-adres van de auteur, user-agent, platform, geolokalisatie, enzovoorts), en de rest zijn scores die door elk filter worden toegewezen.

Advertentielijsten

Wanneer een advertentie op het platform komt, plaatst het systeem deze in een van de lijsten. Elke lijst wordt gevormd met behulp van een wiskundige formule die de metadata van de advertentie combineert om een bepaald slecht patroon te detecteren.

Bijvoorbeeld, het is mogelijk om een lijst van advertenties in de categorie 'Mobiele telefoons' van Yula-gebruikers uit Sint-Petersburg te maken, terwijl hun IP-adressen uit Moskou of andere steden komen.

Hoe we advertenties modereren
Voorbeeld van advertenties die door ƩƩn gebruiker in verschillende steden zijn geplaatst.

Of lijsten te vormen op basis van de scores die een neuraal netwerk aan advertenties toekent, gerangschikt van hoog naar laag.

Elke lijst geeft, volgens zijn formule, een uiteindelijke score aan de advertentie. Daarna kan er op verschillende manieren worden gehandeld:

  • een drempelwaarde aangeven waarbij een advertentie een bepaald type blokkade ontvangt;
  • alle advertenties in de lijst handmatig naar moderators sturen voor controle;
  • of de vorige opties combineren: een drempel voor automatische blokkering aangeven en de advertenties die deze drempel niet hebben bereikt naar moderators sturen.

Hoe we advertenties modereren

Waarom zijn deze wachtrijen nodig? Stel je voor, een gebruiker uploadt een foto van vuurwapens. Het neurale netwerk geeft het een score van 95 tot 100 en bepaalt met 99 procent nauwkeurigheid dat er op de afbeelding een wapen staat. Maar als de score lager is dan 95 %, begint de nauwkeurigheid van het model af te nemen (dat is een eigenschap van neurale netwerken).

Er ontstaat een wachtrij op basis van de score van het model, en die advertenties die een score van 95 tot 100 hebben gekregen, worden automatisch geblokkeerd als 'Verboden product'. Advertenties met een score lager dan 95 worden naar handmatige moderatie gestuurd.

Hoe we advertenties modereren
Chocolade Beretta met patronen. Alleen voor handmatige moderatie! šŸ™‚

Handmatige moderatie

Begin 2019 werd ongeveer 94 % van alle advertenties op Yula automatisch gemodereerd.

Hoe we advertenties modereren

Als het platform niet zeker kan zijn van enkele advertenties, worden deze naar handmatige moderatie gestuurd. Odnoklassniki heeft een eigen tool ontwikkeld: in de opdrachten voor moderators wordt direct alle benodigde informatie weergegeven om snel een beslissing te nemen — is de advertentie goed of moet deze worden geblokkeerd met opgave van reden.

Om ervoor te zorgen dat de kwaliteit van de service bij handmatige moderatie niet lijdt, wordt het werk van mensen voortdurend gecontroleerd. Bijvoorbeeld, in de stroom van opdrachten worden er 'vallen' getoond aan de moderator — advertenties waarvoor al oplossingen zijn. Als de beslissing van de moderator niet overeenkomt met de kant-en-klare oplossing, wordt dit als een fout geteld.

Een moderator besteedt gemiddeld 10 seconden aan het controleren van ƩƩn advertentie. Daarbij bedraagt het aantal fouten niet meer dan 0,5 % van alle gecontroleerde advertenties.

Publieke moderatie

Collega’s van Odnoklassniki zijn nog verder gegaan en hebben gebruikgemaakt van de 'hulp van de zaal': ze hebben een spelapp voor het sociale netwerk ontwikkeld waarin een groot aantal gegevens snel kan worden gemarkeerd door een bepaalde slechte eigenschap te selecteren — Odnoklassniki Moderator (https://ok.ru/app/moderator). Een goede manier om gebruik te maken van de hulp van O.K. -gebruikers die proberen de inhoud aangenamer te maken.

Hoe we advertenties modereren
Een spel waarin gebruikers foto's markeren waarop een telefoonnummer staat.

Elke advertentielijn op het platform kan worden doorgestuurd naar de Moderator van Odnoklassniki. Alles wat de spelers van het spel markeren, wordt vervolgens ter controle aangeboden aan interne moderators. Dit systeem maakt het mogelijk om advertenties te blokkeren waarvoor nog geen filters zijn aangemaakt, en tegelijkertijd trainingsdatasets te creƫren.

Opslag van moderatieresultaten

We bewaren alle beslissingen die tijdens de moderatie zijn genomen, zodat we advertenties die al eerder zijn beoordeeld, niet opnieuw hoeven te verwerken.

Dagelijks worden miljoenen clusters voor advertenties aangemaakt. In de loop van de tijd krijgt elk cluster een label ā€˜goed’ of ā€˜slecht’. Elke nieuwe advertentie of bewerking die in een cluster met een label valt, krijgt automatisch de beslissing van dat cluster. Er worden dagelijks ongeveer 20.000 van dergelijke automatische beslissingen genomen.

Hoe we advertenties modereren

Als er geen nieuwe advertenties in het cluster binnenkomen, wordt het uit het geheugen verwijderd en worden de hash en de beslissing opgeslagen in Apache Cassandra.

Wanneer het platform een nieuwe advertentie ontvangt, probeert het eerst een vergelijkbaar cluster te vinden onder de reeds aangemaakte en neemt het daaruit de beslissing. Als zo'n cluster niet bestaat, gaat het platform naar Cassandra en zoekt daar. Gevonden? Mooi, het past de beslissing toe op het cluster en verzendt het naar Yula. Dergelijke ā€˜herhaalde’ beslissingen trekken dagelijks gemiddeld 70.000 — 8% van het totale aantal.

Samenvattend

We maken sinds tweeƫnhalf jaar gebruik van het moderatieplatform van Odnoklassniki. We zijn tevreden over de resultaten:

  • 94% van alle advertenties worden automatisch gemodereerd per dag.
  • De kosten van de moderatie van ƩƩn advertentie zijn verlaagd van 2 roebel naar 7 kopeken.
  • Dankzij de kant-en-klare tool zijn we de problemen met het beheer van moderators vergeten.
  • We hebben het aantal handmatig verwerkte advertenties met 2,5 keer verhoogd, met hetzelfde aantal moderators en budget. De kwaliteit van de handmatige moderatie is ook verbeterd dankzij de geautomatiseerde controle en fluctueert rond de 0,5% fouten.
  • We dekken snel nieuwe soorten spam met filters.
  • We schakelen snel nieuwe afdelingen in voor moderatie ā€˜Yula Verticalen’. Sinds 2017 zijn er in Yula verticalen voor Onroerend Goed, Vacatures en Auto's verschenen.

Bron: habr.com

Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers šŸ”„ Koop betrouwbare webhosting met bescherming tegen DDoS, VPS VDS servers | ProHoster