Wie wir Anzeigen moderieren

Wie wir Anzeigen moderieren

Jeder Dienst, dessen Nutzer eigene Inhalte (UGC – vom Nutzer generierte Inhalte) erstellen können, steht nicht nur vor geschĂ€ftlichen Herausforderungen, sondern muss auch Ordnung im UGC schaffen. Schlechte oder unzureichende Inhaltsmoderation kann die AttraktivitĂ€t des Dienstes fĂŒr die Benutzer verringern, bis hin zur Einstellung des Betriebs.

Heute erzÀhlen wir Ihnen von der Synergie zwischen YuLa und Odnoklassniki, die uns hilft, die Anzeigen in YuLa effektiv zu moderieren.

Synergie ist generell eine sehr nĂŒtzliche Sache, und in der heutigen Welt, in der sich Technologien und Trends sehr schnell Ă€ndern, kann sie zu einem hilfreichen Werkzeug werden. Warum sollten Sie knappe Ressourcen und Zeit dafĂŒr aufwenden, etwas zu erfinden, das bereits erfunden und verfeinert wurde?

So dachten wir auch, als wir vor der Herausforderung standen, nutzergenerierte Inhalte – Bilder, Texte und Links – zu moderieren. Unsere Nutzer laden tĂ€glich Millionen von Inhalten in YuLa hoch, und ohne automatisierte Verarbeitung ist es völlig unrealistisch, all diese Daten manuell zu moderieren.

Deshalb haben wir auf die bereits bestehende Modulationsplattform zurĂŒckgegriffen, die unsere Kollegen von Odnoklassniki bis zum Zustand "fast perfekt" weiterentwickelt hatten.

Warum Odnoklassniki?

TĂ€glich strömen Dutzende Millionen Nutzer in das soziale Netzwerk, die Milliarden von Inhalten veröffentlichen: von Fotos ĂŒber Videos bis hin zu Texten. Die Moderationsplattform von Odnoklassniki hilft dabei, sehr große Datenmengen zu ĂŒberprĂŒfen und gegen Spam und Bots vorzugehen.

Das Moderationsteam von OK hat ĂŒber 12 Jahre lang umfangreiche Erfahrungen gesammelt, da es sein Tool kontinuierlich verbessert. Wichtig ist, dass sie nicht nur ihre vorhandenen Lösungen teilen konnten, sondern auch die Architektur ihrer Plattform an unsere spezifischen Anforderungen anpassen konnten.

Wie wir Anzeigen moderieren

Zur Vereinfachung werden wir die Moderationsplattform von OK fortan einfach "Plattform" nennen.

Wie alles organisiert ist

Zwischen Yula und Odnoklassniki erfolgt der Datenaustausch ĂŒber Apache Kafka.

Warum wir dieses Tool gewÀhlt haben:

  • Bei Yula durchlaufen alle Anzeigen eine Postmoderation, daher war anfangs keine synchrone Antwort erforderlich.
  • Sollte es zu einer extremen Auslastung kommen und Yula oder Odnoklassniki nicht verfĂŒgbar sein, beispielsweise aufgrund hoher Lastspitzen, gehen die Daten aus Kafka nicht verloren und können spĂ€ter nachgelesen werden.
  • Die Plattform wurde bereits mit Kafka integriert, wodurch die meisten Sicherheitsfragen gelöst wurden.

Wie wir Anzeigen moderieren

FĂŒr jede von einem Benutzer erstellte oder geĂ€nderte Anzeige in Yula wird ein JSON mit den Daten erstellt, das in Kafka abgelegt wird, um eine spĂ€tere Moderation zu ermöglichen. Die Anzeigen werden aus Kafka in die Plattform geladen, wo sie automatisch oder manuell bewertet werden. Schlechte Anzeigen werden mit einer BegrĂŒndung gesperrt, wĂ€hrend die Anzeigen, in denen die Plattform keine VerstĂ¶ĂŸe gefunden hat, als 'gut' gekennzeichnet werden. Alle Entscheidungen werden dann an Yula zurĂŒckgesendet und im Service angewendet.

Zusammengefasst geht es fĂŒr Yula um einfache Schritte: Eine Anzeige an die Plattform von Odnoklassniki senden und zurĂŒck eine RĂŒckmeldung 'ok' oder den Grund, warum es nicht 'ok' ist, erhalten.

Automatische Verarbeitung

Was passiert mit der Anzeige, nachdem sie in die Plattform aufgenommen wurde? Jede Anzeige wird in mehrere EntitÀten unterteilt:

  • Titel,
  • Beschreibung,
  • Fotos,
  • ausgewĂ€hlte Kategorie und Unterkategorie der Anzeige,
  • Preis.

Wie wir Anzeigen moderieren

Anschließend fĂŒhrt die Plattform eine Clusterung fĂŒr jede EntitĂ€t durch, um Duplikate zu finden. Dabei werden Texte und Fotos unterschiedlich gruppiert.

Die Texte werden vor der Clusterung normalisiert, um Sonderzeichen, abgewandelte Buchstaben und andere Reste zu entfernen. Die erhaltenen Daten werden in N-Gramme unterteilt, von denen jedes gehasht wird. Dadurch entstehen viele einzigartige Hashes. Die Ähnlichkeit zwischen den Texten wird anhand der Jaccard-Ähnlichkeit zwischen den beiden resultierenden Mengen bewertet. Wenn die Ähnlichkeit den Schwellenwert ĂŒberschreitet, werden die Texte zu einem Cluster zusammengefĂŒhrt. Um die Suche nach Ă€hnlichen Clustern zu beschleunigen, werden MinHash und Locality-sensitive Hashing verwendet.

FĂŒr Fotos wurden verschiedene AnsĂ€tze zur Bildfusion entwickelt, von der Vergleich von pHash-Bildern bis hin zur Duplikatsuche mittels neuronaler Netze.

Die letzte Methode ist die „harte“. FĂŒr das Training des Modells wurden Bildtrios (N, A, P) ausgewĂ€hlt, bei denen N nicht wie A aussieht und P - Ă€hnlich wie A (ein Halbdublikat). Dann wurde das neuronale Netzwerk trainiert, um A und P so nah wie möglich zu machen, wĂ€hrend A und N so weit wie möglich entfernt waren. Dadurch gibt es weniger Fehlalarme im Vergleich dazu, einfach die Embeddings von einem vortrainierten Netzwerk zu verwenden.

Wenn das neuronale Netzwerk Bilder erhĂ€lt, generiert es fĂŒr jedes Bild einen N(128)-dimensionalen Vektor und es wird eine Anfrage zur Bewertung der NĂ€he des Bildes gestellt. Anschließend wird ein Schwellenwert berechnet, bei dem nahe Bilder als Duplikate betrachtet werden.

Das Modell kann meisterhaft Spammer finden, die absichtlich dasselbe Produkt aus verschiedenen Perspektiven fotografieren, um den Vergleich per pHash zu umgehen.

Wie wir Anzeigen moderierenWie wir Anzeigen moderieren
Beispiel fĂŒr Spammer-Fotos, die von einem neuronalen Netzwerk als Duplikate zusammengefĂŒgt wurden.

In der Endphase werden die Duplikate der Anzeigen gleichzeitig nach Text und Bild gesucht.

Wenn in einem Cluster zwei oder mehr Anzeigen kombiniert werden, aktiviert das System eine automatische Sperrung, die anhand bestimmter Algorithmen auswÀhlt, welche Duplikate entfernt und welche behalten werden sollen. Beispielsweise wird eine neuere Anzeige gesperrt, wenn zwei Nutzer in ihren Anzeigen identische Fotos verwenden.

Nach der Erstellung durchlÀuft jeder Cluster eine Reihe automatischer Filter. Jeder Filter weist dem Cluster eine Punktzahl (Score) zu: mit welcher Wahrscheinlichkeit er eine Bedrohung enthÀlt, die dieser Filter identifiziert.

Das System analysiert zum Beispiel die Beschreibung in der Anzeige und wĂ€hlt potenzielle Kategorien aus. Anschließend wird die Kategorie mit der höchsten Wahrscheinlichkeit genommen und mit der vom Autor der Anzeige angegebenen Kategorie verglichen. Wenn sie nicht ĂŒbereinstimmen, wird die Anzeige wegen falscher Kategorisierung gesperrt. Und da wir freundlich und ehrlich sind, informieren wir den Nutzer direkt, welche Kategorie er auswĂ€hlen sollte, damit die Anzeige genehmigt wird.

Wie wir Anzeigen moderieren
Benachrichtigung ĂŒber die Sperrung wegen falscher Kategorie.

Maschinelles Lernen fĂŒhlt sich auf unserer Plattform wie zu Hause. Damit suchen wir beispielsweise in Titeln und Beschreibungen nach in Russland verbotenen Waren. Die neuronalen Netzmodelle analysieren grĂŒndlich Bilder auf URL-Adressen, Spam-Texte, Telefonnummern und die gleichen verbotenen Inhalte.

FĂŒr FĂ€lle, in denen ein verbotener Artikel als etwas Legales verkauft werden soll und es dabei keinen Text im Titel oder in der Beschreibung gibt, nutzen wir die Bildtagging-Funktion. Jedes Bild kann mit bis zu 11.000 verschiedenen Tags versehen werden, die beschreiben, was auf dem Bild zu sehen ist.

Wie wir Anzeigen moderieren
Ein Wasserpfeife wird verkauft, indem sie als Samowar getarnt wird.

Parallel zu den komplexen Filtern arbeiten auch einfache, die offensichtliche textbasierte Aufgaben lösen:

  • obszöne Sprache;
  • Erkennung von URL-Adressen und Telefonnummern;
  • ErwĂ€hnung von Messenger-Diensten und anderen Kontakten;
  • ĂŒbermĂ€ĂŸig niedriger Preis;
  • Anzeigen, in denen nichts verkauft wird, usw.

Heute wird jede Anzeige durch ein feines Sieb von mehr als 50 automatischen Filtern geleitet, die versuchen, etwas Schlechtes in der Anzeige zu finden.

Wenn kein Detektor anschlĂ€gt, erhĂ€lt Yula die RĂŒckmeldung, dass mit der Anzeige "vermutlich" alles in Ordnung ist. Diese RĂŒckmeldung verwenden wir, und den Nutzern, die den VerkĂ€ufer abonniert haben, wird eine Benachrichtigung ĂŒber das Erscheinen eines neuen Produkts gesendet.

Wie wir Anzeigen moderieren
Benachrichtigung, dass der VerkÀufer ein neues Produkt hat.

Als Ergebnis "reicht" jede Anzeige mit Metadaten, von denen ein Teil bei der Erstellung der Anzeige generiert wird (IP-Adresse des Autors, User-Agent, Plattform, Geolocation usw.), wÀhrend der Rest die von jedem Filter ausgegebene Score ist.

Warteschlangen fĂŒr Anzeigen

Wenn eine Anzeige in die Plattform kommt, platziert das System sie in eine der Warteschlangen. Jede Warteschlange wird mithilfe einer mathematischen Formel gebildet, die die Metadaten der Anzeige kombiniert, um ein schÀdliches Muster zu erkennen.

Zum Beispiel kann eine Warteschlange fĂŒr Anzeigen in der Kategorie "Mobiltelefone" von Yula-Nutzern erstellt werden, die angeblich aus Sankt Petersburg stammen, wĂ€hrend ihre IP-Adressen aus Moskau oder anderen StĂ€dten kommen.

Wie wir Anzeigen moderieren
Beispiel fĂŒr Anzeigen, die von einem Nutzer in verschiedenen StĂ€dten geschaltet wurden.

Oder man kann Warteschlangen basierend auf den Punkten bilden, die das neuronale Netzwerk den Anzeigen zuweist, und sie absteigend sortieren.

Jede Warteschlange weist gemĂ€ĂŸ ihrer Formel einen finalen Score der Anzeige zu. Danach gibt es verschiedene Handlungsmöglichkeiten:

  • einen Schwellenwert festlegen, bei dem eine Anzeige eine bestimmte Art von Sperrung erhĂ€lt;
  • alle Anzeigen in der Warteschlange zur manuellen ÜberprĂŒfung an die Moderatoren senden;
  • oder die vorherigen Optionen kombinieren: einen Schwellenwert fĂŒr automatische Sperrungen angeben und die Anzeigen an die Moderatoren senden, die diesen Schwellenwert nicht erreichen.

Wie wir Anzeigen moderieren

Warum sind diese Warteschlangen wichtig? Angenommen, ein Benutzer hat ein Foto von Schusswaffen hochgeladen. Das neuronale Netzwerk verleiht ihm einen Score von 95 bis 100 und erkennt mit einer Genauigkeit von 99 %, dass es sich auf dem Bild um eine Waffe handelt. Aber wenn der Score unter 95 % liegt, beginnt die Genauigkeit des Modells zu sinken (das ist eine Besonderheit von neuronalen Modellen).

Infolgedessen entsteht eine Warteschlange basierend auf dem Score des Modells, und die Anzeigen, die einen Score von 95 bis 100 erhalten haben, werden automatisch als „Verbotenes Produkt“ blockiert. Anzeigen mit einem Score unter 95 werden zur manuellen Bearbeitung an die Moderatoren weitergeleitet.

Wie wir Anzeigen moderieren
Die Schokoladen-Beretta mit Patronen. Nur fĂŒr manuelle Moderation! 🙂

Manuelle Moderation

Anfang 2019 wurden etwa 94 % aller Anzeigen auf Đźla automatisch moderiert.

Wie wir Anzeigen moderieren

Wenn die Plattform bei bestimmten Anzeigen keine Entscheidung treffen kann, werden diese zur manuellen Moderation weitergeleitet. Die Entwickler haben ein eigenes Tool erstellt: In den Aufgaben fĂŒr die Moderatoren wird sofort sĂ€mtliche erforderliche Information angezeigt, um eine schnelle Entscheidung zu treffen – ob die Anzeige in Ordnung ist oder ob sie aus bestimmten GrĂŒnden blockiert werden sollte.

Um die QualitĂ€t des Services bei der manuellen Moderation sicherzustellen, wird die Arbeit der Moderatoren kontinuierlich ĂŒberwacht. Beispielsweise werden im Auftragfluss dem Moderator „Fallen“ angezeigt – Anzeigen, fĂŒr die bereits Lösungen vorliegen. Wenn die Entscheidung des Moderators von der vorab festgelegten Lösung abweicht, wird dies als Fehler gewertet.

Ein Moderator benötigt im Durchschnitt 10 Sekunden zur ÜberprĂŒfung einer Anzeige. Dabei liegt die Fehlerquote bei maximal 0,5 % aller geprĂŒften Anzeigen.

Volksmoderation

Die Kollegen von Odnoklassniki sind noch einen Schritt weiter gegangen und haben die "Hilfe des Publikums" genutzt: Sie entwickelten eine App-Spiel fĂŒr das soziale Netzwerk, mit dem eine große Menge an Daten schnell markiert werden kann, indem man ein unerwĂŒnschtes Merkmal hervorhebt – Moderator von Odnoklassniki (https://ok.ru/app/moderator). Eine gute Möglichkeit, die UnterstĂŒtzung der OK-Nutzer zu nutzen, die versuchen, die Inhalte angenehmer zu gestalten.

Wie wir Anzeigen moderieren
Ein Spiel, in dem die Nutzer Fotos markieren, auf denen eine Telefonnummer zu sehen ist.

Jede Anzeigenreihe auf der Plattform kann in das Spiel Moderator von Odnoklassniki umgeleitet werden. Alles, was die Nutzer des Spiels markieren, wird anschließend den internen Moderatoren zur ÜberprĂŒfung ĂŒbermittelt. Dieses Schema ermöglicht es, Anzeigen zu blockieren, fĂŒr die noch keine Filter erstellt wurden, und gleichzeitig SchulungsdatensĂ€tze zu erstellen.

Speicherung der Moderationsergebnisse

Wir speichern alle wĂ€hrend der Moderation getroffenen Entscheidungen, um die Anzeigen, zu denen bereits eine Entscheidung getroffen wurde, nicht erneut bearbeiten zu mĂŒssen.

TĂ€glich entstehen Millionen von Clustern aus den Anzeigen. Mit der Zeit erhĂ€lt jeder Cluster das Urteil „gut“ oder „schlecht“. Jede neue Anzeige oder deren Bearbeitung, die in einen Cluster mit einem Urteil gelangt, erhĂ€lt automatisch die Entscheidung des Clusters. TĂ€glich summieren sich etwa 20.000 solcher automatischen Entscheidungen.

Wie wir Anzeigen moderieren

Wenn ein Cluster keine neuen Anzeigen erhÀlt, wird er aus dem Speicher gelöscht, wÀhrend sein Hash und seine Entscheidung in Apache Cassandra gespeichert werden.

Wenn die Plattform eine neue Anzeige erhĂ€lt, versucht sie zuerst, einen Ă€hnlichen Cluster unter den bereits erstellten zu finden und die Entscheidung daraus zu ĂŒbernehmen. Gibt es keinen solchen Cluster, sucht die Plattform in Cassandra. Gefunden? Ausgezeichnet, die Entscheidung wird auf den Cluster angewendet und an Yula gesendet. TĂ€glich werden im Durchschnitt 70.000 solcher „Wiederholungs“-Entscheidungen gesammelt – das sind 8 % der Gesamtmenge.

Zusammenfassend

Wir nutzen die Moderationsplattform von Odnoklassniki seit zweieinhalb Jahren. Die Ergebnisse gefallen uns:

  • Wir moderieren automatisiert 94 % aller Anzeigen pro Tag.
  • Die Kosten fĂŒr die Moderation einer Anzeige wurden von 2 Rubel auf 7 Kopeken gesenkt.
  • Dank des fertigen Werkzeugs haben wir die Probleme mit der Verwaltung der Moderatoren vergessen.
  • Wir haben die Anzahl der manuell bearbeiteten Anzeigen bei gleichbleibender Moderationsanzahl und Budget um das 2,5-Fache erhöht. Zudem ist die QualitĂ€t der manuellen Moderation dank automatisierter Kontrolle gestiegen und liegt bei etwa 0,5 % Fehlerquote.
  • Wir decken neue Spamtypen schnell mit Filtern ab.
  • Wir integrieren schnell neue Abteilungen in die Moderation. «Jula Vertikale». Seit 2017 sind bei Jula die Vertikale Immobilien, Stellenangebote und Autos hinzugekommen.

Quelle: habr.com

Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern đŸ”„ Kaufen Sie zuverlĂ€ssiges Hosting fĂŒr Websites mit DDoS-Schutz, VPS VDS-Servern | ProHoster