Wie wir Anzeigen moderieren

Wie wir Anzeigen moderieren

Jeder Dienst, dessen Benutzer ihre eigenen Inhalte erstellen können (UGC – User-Generated Content), ist gezwungen, nicht nur geschäftliche Probleme zu lösen, sondern auch Ordnung in UGC zu bringen. Eine schlechte oder minderwertige Inhaltsmoderation kann letztendlich die Attraktivität des Dienstes für Benutzer verringern und sogar seinen Betrieb beenden.

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

Synergien sind im Allgemeinen eine sehr nützliche Sache und können in der modernen Welt, in der sich Technologien und Trends sehr schnell ändern, zum Lebensretter werden. Warum sollten Sie knappe Ressourcen und Zeit damit verschwenden, etwas zu erfinden, das bereits erfunden und Ihnen in den Sinn gekommen ist?

Dasselbe dachten wir auch, als wir vor der kompletten Aufgabe standen, Benutzerinhalte – Bilder, Texte und Links – zu moderieren. Unsere Nutzer laden täglich Millionen von Inhalten auf Yula hoch und ohne automatische Verarbeitung ist es völlig unmöglich, alle diese Daten manuell zu moderieren.

Deshalb nutzten wir eine vorgefertigte Moderationsplattform, die unsere Kollegen von Odnoklassniki zu diesem Zeitpunkt bereits „nahezu perfekt“ fertiggestellt hatten.

Warum Odnoklassniki?

Täglich besuchen zig Millionen Nutzer das soziale Netzwerk und veröffentlichen Milliarden von Inhalten: von Fotos über Videos bis hin zu Texten. Die Moderationsplattform Odnoklassniki hilft dabei, sehr große Datenmengen zu prüfen und Spammern und Bots entgegenzuwirken.

Das OK-Moderationsteam hat viel Erfahrung gesammelt, da es sein Tool seit 12 Jahren verbessert. Es ist wichtig, dass sie nicht nur ihre vorgefertigten Lösungen teilen, sondern auch die Architektur ihrer Plattform an unsere spezifischen Aufgaben anpassen können.

Wie wir Anzeigen moderieren

Der Kürze halber nennen wir die OK-Moderationsplattform ab sofort einfach „Plattform“.

Wie das alles funktioniert

Der Datenaustausch zwischen Yula und Odnoklassniki wird hergestellt durch Apache Kafka.

Warum wir uns für dieses Tool entschieden haben:

  • Bei Yula werden alle Anzeigen postmoderiert, sodass eine synchrone Beantwortung zunächst nicht erforderlich war.
  • Wenn ein schlechter Absatz passiert und Yula oder Odnoklassniki nicht verfügbar sind, auch aufgrund einiger Spitzenlasten, verschwinden die Daten von Kafka nirgendwo und können später gelesen werden.
  • Die Plattform war bereits in Kafka integriert, sodass die meisten Sicherheitsprobleme behoben wurden.

Wie wir Anzeigen moderieren

Für jede vom Benutzer in Yula erstellte oder geänderte Anzeige wird ein JSON mit Daten generiert, die zur anschließenden Moderation in Kafka abgelegt werden. Von Kafka aus werden Ankündigungen in die Plattform geladen und dort automatisch oder manuell beurteilt. Schlechte Anzeigen werden mit einem Grund blockiert und diejenigen, bei denen die Plattform keine Verstöße feststellt, werden als „gut“ gekennzeichnet. Anschließend werden alle Entscheidungen an Yula zurückgesendet und im Dienst angewendet.

Am Ende kommt es für Yula auf einfache Aktionen an: Senden Sie eine Anzeige an die Odnoklassniki-Plattform und erhalten Sie als Antwort „ok“ oder warum nicht „ok“.

Automatische Verarbeitung

Was passiert mit der Anzeige, nachdem sie auf der Plattform erscheint? Jede Anzeige ist in mehrere Einheiten unterteilt:

  • Name,
  • Beschreibung,
  • Fotos,
  • Vom Benutzer ausgewählte Kategorie und Unterkategorie der Anzeige,
  • Preis

Wie wir Anzeigen moderieren

Anschließend führt die Plattform für jede Entität ein Clustering durch, um Duplikate zu finden. Darüber hinaus sind Texte und Fotos nach unterschiedlichen Schemata gruppiert.

Vor dem Clustering werden Texte normalisiert, um Sonderzeichen, geänderte Buchstaben und anderen Müll zu entfernen. Die empfangenen Daten werden in N-Gramm unterteilt, die jeweils gehasht werden. Das Ergebnis sind viele einzigartige Hashes. Die Ähnlichkeit zwischen Texten wird bestimmt durch Jaccards Maß zwischen den beiden resultierenden Mengen. Ist die Ähnlichkeit größer als der Schwellenwert, werden die Texte zu einem Cluster zusammengeführt. Um die Suche nach ähnlichen Clustern zu beschleunigen, werden MinHash und ortssensitives Hashing verwendet.

Für Fotos wurden verschiedene Möglichkeiten zum Kleben von Bildern erfunden, vom Vergleich von pHash-Bildern bis hin zur Suche nach Duplikaten mithilfe eines neuronalen Netzwerks.

Die letzte Methode ist die „schwerste“. Um das Modell zu trainieren, wurden Tripletts von Bildern (N, A, P) ausgewählt, in denen N A nicht ähnlich ist und P A ähnlich ist (ein Halbduplikat ist). Dann lernte das neuronale Netzwerk, A und P so nah wie möglich und A und N so weit wie möglich zusammenzubringen. Dies führt zu weniger Fehlalarmen als bei der einfachen Übernahme von Einbettungen aus einem vorab trainierten Netzwerk.

Wenn das neuronale Netzwerk Bilder als Eingabe empfängt, generiert es für jedes Bild einen N(128)-dimensionalen Vektor und fordert die Beurteilung der Nähe des Bildes an. Als nächstes wird ein Schwellenwert berechnet, ab dem nahegelegene Bilder als Duplikate betrachtet werden.

Das Modell ist in der Lage, gekonnt Spammer zu finden, die gezielt dasselbe Produkt aus verschiedenen Blickwinkeln fotografieren, um den pHash-Vergleich zu umgehen.

Wie wir Anzeigen moderierenWie wir Anzeigen moderieren
Ein Beispiel für Spam-Fotos, die von einem neuronalen Netzwerk als Duplikate zusammengeklebt wurden.

Im letzten Schritt werden doppelte Anzeigen gleichzeitig nach Text und Bild durchsucht.

Wenn zwei oder mehr Anzeigen in einem Cluster zusammengeklebt werden, startet das System eine automatische Blockierung, die mithilfe bestimmter Algorithmen auswählt, welche Duplikate gelöscht und welche belassen werden sollen. Wenn beispielsweise zwei Nutzer die gleichen Fotos in einer Anzeige haben, blockiert das System die neuere Anzeige.

Nach der Erstellung durchlaufen alle Cluster eine Reihe automatischer Filter. Jeder Filter weist dem Cluster eine Bewertung zu: Wie wahrscheinlich ist es, dass er die von diesem Filter identifizierte Bedrohung enthält?

Das System analysiert beispielsweise die Beschreibung in einer Anzeige und wählt mögliche Kategorien dafür aus. Dann nimmt es diejenige mit der höchsten Wahrscheinlichkeit und vergleicht sie mit der vom Autor der Anzeige angegebenen Kategorie. Wenn sie nicht übereinstimmen, wird die Anzeige für die falsche Kategorie blockiert. Und da wir freundlich und ehrlich sind, teilen wir dem Nutzer direkt mit, welche Kategorie er auswählen muss, damit die Anzeige die Moderation besteht.

Wie wir Anzeigen moderieren
Benachrichtigung über Sperrung für falsche Kategorie.

Maschinelles Lernen fühlt sich auf unserer Plattform wie zu Hause. Mit seiner Hilfe suchen wir beispielsweise nach Namen und Beschreibungen von in der Russischen Föderation verbotenen Waren. Und neuronale Netzwerkmodelle „untersuchen“ die Bilder akribisch, um festzustellen, ob sie URLs, Spam-Texte, Telefonnummern und dieselben „verbotenen“ Informationen enthalten.

In Fällen, in denen versucht wird, ein verbotenes Produkt zu verkaufen, das als etwas Legales getarnt ist und weder im Titel noch in der Beschreibung Text enthalten ist, verwenden wir Bild-Tagging. Für jedes Bild können bis zu 11 verschiedene Tags hinzugefügt werden, die beschreiben, was im Bild enthalten ist.

Wie wir Anzeigen moderieren
Sie versuchen, die Wasserpfeife zu verkaufen, indem sie sie als Samowar tarnen.

Parallel zu komplexen Filtern funktionieren auch einfache Filter, die offensichtliche Probleme im Zusammenhang mit Text lösen:

  • Antimat;
  • URL- und Telefonnummern-Detektor;
  • Erwähnung von Instant Messengern und anderen Kontakten;
  • reduzierter Preis;
  • Anzeigen, in denen nichts zum Verkauf steht usw.

Heutzutage durchläuft jede Anzeige ein feines Sieb von mehr als 50 automatischen Filtern, die versuchen, etwas Schlechtes in der Anzeige zu finden.

Wenn keiner der Detektoren funktioniert, wird eine Antwort an Yula gesendet, dass die Anzeige „höchstwahrscheinlich“ in einwandfreiem Zustand ist. Wir verwenden diese Antwort selbst und Benutzer, die den Verkäufer abonniert haben, erhalten eine Benachrichtigung über die Verfügbarkeit eines neuen Produkts.

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

Infolgedessen wird jede Anzeige mit Metadaten „überwuchert“, von denen einige bei der Erstellung der Anzeige generiert werden (IP-Adresse des Autors, Benutzeragent, Plattform, Geolokalisierung usw.), und der Rest ist die von jedem Filter ausgegebene Punktzahl .

Ankündigungswarteschlangen

Wenn eine Anzeige auf der Plattform erscheint, stellt das System sie in eine der Warteschlangen. Jede Warteschlange wird mithilfe einer mathematischen Formel erstellt, die Anzeigenmetadaten so kombiniert, dass fehlerhafte Muster erkannt werden.

Sie können beispielsweise eine Warteschlange mit Anzeigen in der Kategorie „Handys“ von Yula-Benutzern erstellen, die angeblich aus St. Petersburg stammen, deren IP-Adressen jedoch aus Moskau oder anderen Städten stammen.

Wie wir Anzeigen moderieren
Ein Beispiel für Anzeigen, die von einem Benutzer in verschiedenen Städten gepostet wurden.

Oder Sie können Warteschlangen basierend auf den Bewertungen bilden, die das neuronale Netzwerk den Anzeigen zuweist, und diese in absteigender Reihenfolge anordnen.

Jede Warteschlange weist der Anzeige gemäß ihrer eigenen Formel eine Endpunktzahl zu. Anschließend können Sie auf unterschiedliche Weise vorgehen:

  • Geben Sie den Schwellenwert an, ab dem eine Anzeige eine bestimmte Art von Blockierung erhält.
  • Senden Sie alle Anzeigen in der Warteschlange zur manuellen Überprüfung an Moderatoren.
  • oder kombinieren Sie die vorherigen Optionen: Geben Sie den Schwellenwert für die automatische Blockierung an und senden Sie die Anzeigen an Moderatoren, die diesen Schwellenwert nicht erreicht haben.

Wie wir Anzeigen moderieren

Warum werden diese Warteschlangen benötigt? Nehmen wir an, ein Benutzer hat ein Foto einer Schusswaffe hochgeladen. Das neuronale Netzwerk weist ihm einen Wert zwischen 95 und 100 zu und stellt mit einer Genauigkeit von 99 Prozent fest, dass sich auf dem Bild eine Waffe befindet. Wenn der Score-Wert jedoch unter 95 % liegt, beginnt die Genauigkeit des Modells abzunehmen (dies ist ein Merkmal neuronaler Netzwerkmodelle).

Als Ergebnis wird eine Warteschlange basierend auf dem Score-Modell gebildet und diejenigen Anzeigen, die zwischen 95 und 100 erhalten haben, werden automatisch als „Verbotene Produkte“ blockiert. Anzeigen mit einer Punktzahl unter 95 werden zur manuellen Bearbeitung an Moderatoren gesendet.

Wie wir Anzeigen moderieren
Schokoladen-Beretta mit Patronen. Nur zur manuellen Moderation! 🙂

Manuelle Moderation

Anfang 2019 werden etwa 94 % aller Werbeanzeigen in Yula automatisch moderiert.

Wie wir Anzeigen moderieren

Wenn sich die Plattform für einige Anzeigen nicht entscheiden kann, sendet sie diese zur manuellen Moderation. Odnoklassniki hat ein eigenes Tool entwickelt: Aufgaben für Moderatoren zeigen sofort alle notwendigen Informationen an, um eine schnelle Entscheidung zu treffen – die Anzeige ist geeignet oder sollte gesperrt werden, unter Angabe des Grundes.

Und damit die Servicequalität bei der manuellen Moderation nicht leidet, wird die Arbeit der Menschen ständig überwacht. Beispielsweise werden dem Moderator im Taskstream „Fallen“ angezeigt – Anzeigen, für die es bereits fertige Lösungen gibt. Stimmt die Entscheidung des Moderators nicht mit der fertigen Entscheidung überein, erhält der Moderator einen Fehler.

Im Durchschnitt verbringt ein Moderator 10 Sekunden damit, eine Anzeige zu prüfen. Darüber hinaus beträgt die Fehlerquote nicht mehr als 0,5 % aller verifizierten Anzeigen.

Mäßigung der Menschen

Kollegen von Odnoklassniki gingen sogar noch weiter und nutzten die „Hilfe des Publikums“: Sie haben eine Spielanwendung für das soziale Netzwerk geschrieben, in der man schnell eine große Datenmenge markieren und so ein schlechtes Zeichen hervorheben kann – Odnoklassniki-Moderator (https://ok.ru/app/moderator). Eine gute Möglichkeit, die Hilfe von OK-Benutzern in Anspruch zu nehmen, die versuchen, den Inhalt angenehmer zu gestalten.

Wie wir Anzeigen moderieren
Ein Spiel, bei dem Benutzer Fotos markieren, auf denen eine Telefonnummer steht.

Jede Anzeigenwarteschlange auf der Plattform kann zum Odnoklassniki Moderator-Spiel umgeleitet werden. Alles, was Spielbenutzer markieren, wird dann zur Überprüfung an interne Moderatoren gesendet. Mit diesem Schema können Sie Anzeigen blockieren, für die noch keine Filter erstellt wurden, und gleichzeitig Trainingsbeispiele erstellen.

Speicherung von Moderationsergebnissen

Wir speichern alle während der Moderation getroffenen Entscheidungen, damit wir die Anzeigen, für die wir bereits eine Entscheidung getroffen haben, nicht erneut verarbeiten.

Täglich werden Millionen von Clustern basierend auf Werbung erstellt. Im Laufe der Zeit wird jeder Cluster als „gut“ oder „schlecht“ eingestuft. Jede neue Anzeige oder deren Überarbeitung, die mit einer Markierung in einen Cluster aufgenommen wird, erhält automatisch eine Auflösung vom Cluster selbst. Es gibt etwa 20 solcher automatischen Auflösungen pro Tag.

Wie wir Anzeigen moderieren

Wenn keine neuen Ankündigungen im Cluster eingehen, wird er aus dem Speicher entfernt und sein Hash und seine Lösung werden in Apache Cassandra geschrieben.

Wenn die Plattform eine neue Anzeige erhält, versucht sie zunächst, unter den bereits erstellten Clustern einen ähnlichen Cluster zu finden und daraus eine Lösung abzuleiten. Wenn es keinen solchen Cluster gibt, geht die Plattform zu Cassandra und sucht dort. Hast du es gefunden? Großartig, wendet die Lösung auf den Cluster an und sendet sie an Yula. Täglich gibt es durchschnittlich 70 solcher „wiederholten“ Entscheidungen – 8 % der Gesamtzahl.

Zusammenfassend

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

  • Wir moderieren automatisch 94 % aller Anzeigen pro Tag.
  • Die Kosten für die Moderation einer Anzeige wurden von 2 Rubel auf 7 Kopeken gesenkt.
  • Dank des vorgefertigten Tools haben wir die Probleme der Moderatorenverwaltung vergessen.
  • Wir haben die Anzahl der manuell bearbeiteten Anzeigen bei gleicher Moderatorenzahl und gleichem Budget um das 2,5-fache erhöht. Auch die Qualität der manuellen Moderation ist durch die automatisierte Steuerung gestiegen und liegt bei etwa 0,5 % der Fehler.
  • Mit Filtern decken wir schnell neue Arten von Spam ab.
  • Wir binden schnell neue Abteilungen an die Moderation an „Yula Verticals“. Seit 2017 hat Yula die Branchen Immobilien, Stellenangebote und Auto hinzugefügt.

Source: habr.com

Kommentar hinzufügen