So öffnen Sie Kommentare und ertrinken nicht im Spam

So öffnen Sie Kommentare und ertrinken nicht im Spam

Wenn es Ihre Aufgabe ist, etwas Schönes zu schaffen, müssen Sie nicht viel darüber reden, denn das Ergebnis liegt vor aller Augen. Aber wenn Sie Inschriften von Zäunen löschen, wird niemand Ihre Arbeit bemerken, solange die Zäune anständig aussehen oder bis Sie etwas Falsches löschen.

Jeder Dienst, bei dem Sie einen Kommentar hinterlassen, eine Bewertung abgeben, eine Nachricht senden oder Bilder hochladen können, steht früher oder später vor dem Problem von Spam, Betrug und Obszönität. Dies lässt sich zwar nicht vermeiden, muss aber bewältigt werden.

Mein Name ist Mikhail, ich arbeite im Antispam-Team, das Benutzer von Yandex-Diensten vor solchen Problemen schützt. Unsere Arbeit wird selten wahrgenommen (und das ist gut so!), deshalb erzähle ich euch heute mehr darüber. Sie erfahren, wann Moderation nutzlos ist und warum Genauigkeit nicht der einzige Indikator für ihre Wirksamkeit ist. Außerdem sprechen wir am Beispiel von Katzen und Hunden über das Fluchen und warum es manchmal sinnvoll ist, „wie ein Fluch zu denken“.

In Yandex erscheinen immer mehr Dienste, bei denen Benutzer ihre Inhalte veröffentlichen. Sie können in Yandex.Q eine Frage stellen oder eine Antwort schreiben, in Yandex.District über Neuigkeiten zum Hof ​​diskutieren und in Gesprächen auf Yandex.Maps über die Verkehrslage sprechen. Aber wenn die Zielgruppe des Dienstes wächst, wird er für Betrüger und Spammer attraktiv. Sie kommen und füllen Kommentare aus: Sie bieten leichtes Geld, machen Werbung für Wundermittel und versprechen Sozialleistungen. Aufgrund von Spammer verlieren einige Benutzer Geld, während andere die Lust verlieren, Zeit mit einem ungepflegten, mit Spam überwucherten Dienst zu verbringen.

Und das ist nicht das einzige Problem. Wir bemühen uns nicht nur, Benutzer vor Betrügern zu schützen, sondern auch eine angenehme Atmosphäre für die Kommunikation zu schaffen. Wenn Menschen in den Kommentaren mit Beschimpfungen und Beleidigungen konfrontiert werden, ist die Wahrscheinlichkeit groß, dass sie gehen und nie wieder zurückkehren. Das bedeutet, dass Sie auch damit umgehen können müssen.

Sauberes Web

Wie so oft bei uns wurden die ersten Entwicklungen in der Suche geboren, im Bereich, der Spam in Suchergebnissen bekämpft. Vor etwa zehn Jahren tauchte dort die Aufgabe auf, Erwachseneninhalte für Familiensuchen und für Anfragen zu filtern, die keine Antworten aus der Kategorie 18+ erforderten. So entstanden die ersten manuell getippten Wörterbücher zum Thema Porno und Fluchen, die von Analysten ergänzt wurden. Die Hauptaufgabe bestand darin, die Anfragen dahingehend zu klassifizieren, ob es akzeptabel ist, Inhalte für Erwachsene zu zeigen, und bei welchen nicht. Für diese Aufgabe wurde Markup gesammelt, Heuristiken erstellt und Modelle trainiert. So entstanden die ersten Entwicklungen zum Filtern unerwünschter Inhalte.

Im Laufe der Zeit tauchten in Yandex UGC (benutzergenerierte Inhalte) auf – Nachrichten, die von Benutzern selbst geschrieben wurden und die Yandex nur veröffentlicht. Aus den oben beschriebenen Gründen konnten viele Nachrichten nicht ohne Hinsehen veröffentlicht werden – Moderation war gefragt. Dann beschlossen sie, einen Dienst zu erstellen, der alle UGC-Produkte von Yandex vor Spam und Angreifern schützt, und Entwicklungen zum Filtern unerwünschter Inhalte in der Suche zu nutzen. Der Dienst hieß „Clean Web“.

Neue Aufgaben und Hilfe von Pushern

Zunächst funktionierte bei uns nur eine einfache Automatisierung: Die Dienste schickten uns Texte, und wir ließen Obszönitäten-Wörterbücher, Porno-Wörterbücher und reguläre Ausdrücke darauf laufen – Analysten haben alles manuell zusammengestellt. Doch im Laufe der Zeit wurde der Dienst in immer mehr Yandex-Produkten genutzt und wir mussten lernen, mit neuen Problemen umzugehen.

Anstelle einer Bewertung veröffentlichen Benutzer oft eine bedeutungslose Reihe von Briefen, um ihre Erfolge zu steigern, manchmal machen sie Werbung für ihr Unternehmen in Bewertungen eines Konkurrenzunternehmens, und manchmal verwirren sie einfach Organisationen und schreiben in einer Bewertung über eine Zoohandlung: „ Perfekt zubereiteter Fisch!“ Vielleicht wird künstliche Intelligenz eines Tages lernen, die Bedeutung jedes Textes perfekt zu erfassen, aber jetzt kommt die Automatisierung manchmal schlechter zurecht als der Mensch.

Es wurde klar, dass wir dies ohne manuelle Markierung nicht schaffen würden, und wir fügten unserer Schaltung eine zweite Stufe hinzu und schickten sie zur manuellen Inspektion durch eine Person. Dort wurden diejenigen veröffentlichten Texte aufgenommen, bei denen der Klassifikator keine Probleme sah. Sie können sich das Ausmaß einer solchen Aufgabe leicht vorstellen, also haben wir uns nicht nur auf Gutachter verlassen, sondern auch die „Weisheit der Masse“ genutzt, das heißt, wir haben uns hilfesuchend an die Toloker gewandt. Sie sind diejenigen, die uns helfen, herauszufinden, was der Maschine entgangen ist, und sie dadurch zu unterrichten.

Intelligentes Caching und LSH-Hashing

Ein weiteres Problem, auf das wir bei der Arbeit mit Kommentaren gestoßen sind, war Spam, genauer gesagt dessen Menge und Geschwindigkeit der Verbreitung. Als das Publikum von Yandex.Region schnell zu wachsen begann, kamen Spammer dorthin. Sie lernten, reguläre Ausdrücke zu umgehen, indem sie den Text leicht änderten. Spam wurde natürlich immer noch gefunden und gelöscht, aber auf der Skala von Yandex konnte eine inakzeptable Nachricht, die auch nur 5 Minuten lang gepostet wurde, von Hunderten von Menschen gesehen werden.

So öffnen Sie Kommentare und ertrinken nicht im Spam

Das gefiel uns natürlich nicht und wir haben intelligentes Text-Caching auf Basis von LSH erstellt (lokalitätssensitives Hashing). Das funktioniert so: Wir haben den Text normalisiert, Links daraus entfernt und ihn in n-Gramme (Folgen von n Buchstaben) zerschnitten. Als nächstes wurden die Hashes von n-Grammen berechnet und daraus der LSH-Vektor des Dokuments erstellt. Der Punkt ist, dass ähnliche Texte, selbst wenn sie geringfügig verändert wurden, in ähnliche Vektoren umgewandelt wurden.

Diese Lösung ermöglichte die Wiederverwendung der Urteile von Klassifikatoren und Tolokern für ähnliche Texte. Sobald bei einem Spam-Angriff die erste Nachricht den Scan bestanden und mit dem Urteil „Spam“ in den Cache gelangt war, erhielten alle neuen ähnlichen Nachrichten, auch geänderte, das gleiche Urteil und wurden automatisch gelöscht. Später haben wir gelernt, wie man Spam-Klassifikatoren trainiert und automatisch neu trainiert, aber dieser „intelligente Cache“ ist uns geblieben und hilft uns immer noch oft weiter.

Guter Textklassifikator

Ohne Zeit zu haben, eine Pause von der Spam-Bekämpfung einzulegen, stellten wir fest, dass 95 % unserer Inhalte manuell moderiert werden: Klassifikatoren reagieren nur auf Verstöße und die meisten Texte sind gut. Wir laden Reinigungskräfte ein, die in 95 von 100 Fällen die Bewertung „Alles in Ordnung“ geben. Ich musste einen ungewöhnlichen Job machen – Klassifikatoren für gute Inhalte erstellen, glücklicherweise hatte sich in dieser Zeit genügend Markup angesammelt.

Der erste Klassifikator sah so aus: Wir lemmatisieren den Text (reduzieren die Wörter auf ihre ursprüngliche Form), entfernen alle Hilfsteile der Sprache und verwenden ein vorbereitetes „Wörterbuch guter Lemmata“. Wenn alle Wörter im Text „gut“ sind, enthält der gesamte Text keine Verstöße. Bei verschiedenen Diensten führte dieser Ansatz sofort zu einer Automatisierung des manuellen Markups von 25 bis 35 %. Natürlich ist dieser Ansatz nicht ideal: Es ist einfach, mehrere unschuldige Wörter zu kombinieren und eine sehr beleidigende Aussage zu erhalten, aber er ermöglichte uns, schnell einen guten Automatisierungsgrad zu erreichen und gab uns Zeit, komplexere Modelle zu trainieren.

Die nächsten Versionen guter Textklassifikatoren enthielten bereits lineare Modelle, Entscheidungsbäume und deren Kombinationen. Um beispielsweise Unhöflichkeit und Beleidigungen zu kennzeichnen, versuchen wir es mit dem neuronalen Netzwerk BERT. Es ist wichtig, die Bedeutung eines Wortes im Kontext und die Verbindung zwischen Wörtern aus verschiedenen Sätzen zu erfassen, und BERT leistet dabei gute Arbeit. (Übrigens haben kürzlich Kollegen von News erzählt, wie Technologie für eine nicht standardmäßige Aufgabe eingesetzt wird – das Auffinden von Fehlern in Headern.) Dadurch war es möglich, je nach Dienst bis zu 90 % des Ablaufs zu automatisieren.

Genauigkeit, Vollständigkeit und Geschwindigkeit

Für die Entwicklung müssen Sie verstehen, welche Vorteile bestimmte automatische Klassifikatoren mit sich bringen, welche Änderungen sich darin ergeben und ob sich die Qualität manueller Prüfungen verschlechtert. Dazu verwenden wir Präzisions- und Erinnerungsmetriken.

Genauigkeit ist der Anteil richtiger Urteile an allen Urteilen über schlechte Inhalte. Je höher die Genauigkeit, desto weniger Fehlalarme. Wenn Sie nicht auf Genauigkeit achten, können Sie theoretisch alle Spam-Mails und Obszönitäten und damit auch die Hälfte der guten Nachrichten löschen. Wenn Sie sich hingegen nur auf Genauigkeit verlassen, ist die beste Technologie diejenige, die niemanden erwischt. Daher gibt es auch einen Indikator für die Vollständigkeit: den Anteil der identifizierten schlechten Inhalte am Gesamtvolumen der schlechten Inhalte. Diese beiden Kennzahlen gleichen sich aus.

Zur Messung stichproben wir den gesamten eingehenden Strom für jeden Dienst und geben Inhaltsproben an Gutachter zur Expertenbewertung und zum Vergleich mit maschinellen Lösungen weiter.

Aber es gibt noch einen weiteren wichtigen Indikator.

Ich habe oben geschrieben, dass eine inakzeptable Nachricht bereits nach 5 Minuten von Hunderten von Menschen gesehen werden kann. Wir zählen also, wie oft wir den Leuten schlechte Inhalte gezeigt haben, bevor wir sie versteckt haben. Das ist wichtig, denn es reicht nicht aus, effizient zu arbeiten – man muss auch schnell arbeiten. Und als wir eine Verteidigung gegen das Fluchen aufbauten, spürten wir es in vollen Zügen.

Antimatismus am Beispiel von Katzen und Hunden

Ein kleiner lyrischer Exkurs. Manche mögen sagen, dass Obszönitäten und Beleidigungen nicht so gefährlich sind wie bösartige Links und nicht so ärgerlich wie Spam. Wir sind jedoch bestrebt, komfortable Kommunikationsbedingungen für Millionen von Benutzern aufrechtzuerhalten, und die Menschen kehren nicht gerne an Orte zurück, an denen sie beleidigt werden. Nicht umsonst ist das Verbot von Beschimpfungen und Beleidigungen in den Regeln vieler Gemeinden verankert, auch auf Habré. Aber wir schweifen ab.

Fluchwörterbücher können dem ganzen Reichtum der russischen Sprache nicht gerecht werden. Trotz der Tatsache, dass es nur vier Hauptwurzeln für Schimpfworte gibt, kann man aus ihnen unzählige Wörter bilden, die von keiner normalen Engine erfasst werden können. Darüber hinaus können Sie einen Teil eines Wortes in Transliteration schreiben, Buchstaben durch ähnliche Kombinationen ersetzen, Buchstaben neu anordnen, Sternchen hinzufügen usw. Manchmal ist es ohne Kontext grundsätzlich unmöglich festzustellen, ob der Benutzer ein Schimpfwort gemeint hat. Wir respektieren die Regeln von Habr und werden dies daher nicht anhand lebender Beispiele, sondern anhand von Katzen und Hunden demonstrieren.

So öffnen Sie Kommentare und ertrinken nicht im Spam

„Gesetz“, sagte die Katze. Aber wir verstehen, dass die Katze ein anderes Wort gesagt hat ...

Wir begannen, über „Fuzzy-Matching“-Algorithmen für unser Wörterbuch und über eine intelligentere Vorverarbeitung nachzudenken: Wir sorgten für Transliteration, klebten Leerzeichen und Zeichensetzung zusammen, suchten nach Mustern und schrieben separate reguläre Ausdrücke darauf. Dieser Ansatz brachte Ergebnisse, verringerte jedoch häufig die Genauigkeit und lieferte nicht die gewünschte Vollständigkeit.

Dann beschlossen wir, „wie Flucher zu denken“. Wir begannen selbst, Rauschen in die Daten einzubringen: Wir ordneten Buchstaben neu, machten Tippfehler, ersetzten Buchstaben durch ähnliche Schreibweisen und so weiter. Der anfängliche Markup hierfür erfolgte durch die Anwendung von Mat-Wörterbüchern auf große Textkorpora. Wenn Sie einen Satz nehmen und ihn auf verschiedene Arten verdrehen, erhalten Sie am Ende viele Sätze. Auf diese Weise können Sie die Trainingsstichprobe um das Zehnfache erhöhen. Es blieb nur noch, auf dem resultierenden Pool ein mehr oder weniger intelligentes Modell zu trainieren, das den Kontext berücksichtigte.

So öffnen Sie Kommentare und ertrinken nicht im Spam

Es ist noch zu früh, über die endgültige Entscheidung zu sprechen. Wir experimentieren immer noch mit Ansätzen für dieses Problem, aber wir können bereits erkennen, dass ein einfaches symbolisches Faltungsnetzwerk aus mehreren Schichten Wörterbüchern und regulären Engines deutlich überlegen ist: Es ist möglich, sowohl die Genauigkeit als auch den Rückruf zu erhöhen.

Natürlich verstehen wir, dass es immer Möglichkeiten gibt, selbst die fortschrittlichste Automatisierung zu umgehen, insbesondere wenn die Angelegenheit so gefährlich ist: Schreiben Sie so, dass eine dumme Maschine es nicht versteht. Hier, wie auch im Kampf gegen Spam, besteht unser Ziel nicht darin, die Möglichkeit, etwas Obszönes zu schreiben, auszuschließen; unsere Aufgabe besteht darin, sicherzustellen, dass das Spiel nicht die Mühe wert ist.

Es ist nicht schwierig, die Möglichkeit zu eröffnen, Ihre Meinung zu äußern, zu kommunizieren und Kommentare abzugeben. Es ist viel schwieriger, sichere, komfortable Bedingungen und einen respektvollen Umgang mit Menschen zu erreichen. Und ohne dies wird es keine Entwicklung einer Gemeinschaft geben.

Source: habr.com

Kommentar hinzufügen