Maschinelles Lernen gegen Spam

Das maschinelle Lernen wird von Entwicklern von Schutzlösungen häufig als eine Art „Silberkugel“, als magische Allround-Technologie dargestellt, die den Nutzer vor einem breiten Bedrohungsspektrum zu schützen in der Lage ist. Aber was steckt hinter diesen Behauptungen? Ohne eine Erklärung dazu, wo und wie genau diese Technologien eingesetzt werden, sind solche Aussagen nichts anderes als Marketing-Parolen.

In unseren Produkten werden schon seit Jahren Technologien des Maschinenlernens eingesetzt und von einer Sache sind wir fest überzeugt: Man darf sie nicht als irgendwie geartete Supertechnologien ansehen, die alle Bedrohungen zunichtemachen. Maschinelles Lernen ist ein hocheffizientes Tool, aber es ist und bleibt ein Tool, und zwar eins von vielen. Mein Kollege Alexey Malanov hat bereits einen Artikel zu dem Thema Mythen über das Maschinenlernen im Bereich der Cybersicherheit verfasst.

Bei Kaspersky Lab kommt das Maschinenlernen in den unterschiedlichsten Bereichen zum Einsatz, insbesondere bei einer so interessanten Aufgabe wie der Spam-Erkennung. Denn dieses Problem ist wesentlich komplexer als es auf den ersten Blick erscheint. Ein Spam-Filter soll nämlich nicht nur 100% der Mitteilungen mit unerwünschtem Content identifizieren, sondern er muss – was weitaus wichtiger ist – auch dafür sorgen, dass alle für den Empfänger wichtigen Nachrichten diesem auch korrekt zugestellt werden. Um es einmal wissenschaftlich auszudrücken: Wir müssen die Fehler erster Art minimieren, und zwar die falsch-positiven Ergebnisse, oder auch False Positives.

Ein weiterer Task, der keinesfalls vernachlässigt werden darf, ist die Gewährleistung der Reaktionsgeschwindigkeit des Systems. Damit der Spam-Filter den normalen Austausch elektronischer Nachrichten nicht behindert, muss das System praktisch unverzüglich reagieren.

Zur Veranschaulichung kann man es mit dem magischen Dreieck im Projektmanagement vergleichen, nur dass in unserem Fall die Eckpunkte wie folgt lauten: Geschwindigkeit, Fehlen von falsch-positiven Ergebnissen und hohe Qualität der Spam-Erkennung. Und dabei können wir in keinem dieser Punkt Zugeständnisse machen. Beispielsweise kann man Spam manuell analysieren, mit einer 100%igen Effizienz, doch die Geschwindigkeit geht dabei auf ein Minimum zurück. Oder es ist möglich, strenge Regeln zu konfigurieren und überhaupt gar nichts mehr durchzulassen. In dem Fall gibt es zwar kein Spam, aber niemand erhält mehr seine erwünschte Korrespondenz. Man könnte auch nur den offensichtlichen und bekannten Spam herausfiltern, aber dann gelangt ein Teil der Junk-Mails trotzdem an den Adressaten. Um in diesem Dreieck ein Gleichgewicht zu erzielen, setzen wir Technologien des maschinellen Lernens ein, insbesondere einen Algorithmus, der es dem Filter ermöglicht, fehlerlos und schnell ein Urteil zu fällen, ob es sich um einen Brief der einen oder anderen Art handelt.

Wie wird ein solcher Algorithmus zusammengesetzt? Selbstverständlich mit Hilfe von Daten. Bevor diese Daten jedoch an das Klassifikationssystem „verfüttert“ werden, muss erst ein weiteres Problem gelöst werden – sie müssen zunächst von jeglicher Verrauschung gereinigt werden. Denn das eigentliche Problem bei der Spam-Filterung besteht darin, dass verschiedene Nutzer auch unterschiedliche Kriterien bezüglich des Mitteilungsnutzens anlegen könnten. Während die einen Mails mit Ausverkaufsangeboten als lästigen Spam ansehen, empfinden sie andere als potentiell nützliche Informationen. Eine Mail dieser Art erzeugt ein Rauschen, das die Erstellung eines qualifizierten Algorithmus‘ des Maschinenlernens erschwert. Im statistischen Fachjargon ausgedrückt heißt das, in unserer Datensammlung könnte es so genannte Ausreißer geben, d.h. also Ergebnisse, die sich stark von den übrigen unterscheiden. Zur Lösung dieses Problems haben wir eine automatische Filterung der Ausreißer auf der Grundlage des an unsere Bedürfnisse angepassten Algorithmus‘ Isolation Forest eingebaut. Zweifellos lässt sich mit Hilfe dieses Algorithmus‘ nur ein Teil des Rauschens aussieben, doch das erleichtert unseren Algorithmen schon ungemein die Arbeit.

Im Ergebnis erhalten wir praktisch „saubere“ Daten. Unsere nächste Aufgabe besteht darin, sie in ein Format zu bringen, das das Klassifizierungssystem versteht. Das bedeutet, wir teilen sie bezüglich bestimmter Merkmale ein (oder, wie wir sagen, Features). Im Großen und Ganzen gibt es drei Haupttypen solcher Features, die in unserem Filter zum Einsatz kommen:

  • Textfeatures. In diesem Fall ist alles mehr oder minder verständlich. Bei diesen Features handelt es sich um Textabschnitte, die häufig in Spam-Mails anzutreffen sind. Nach einer vorläufigen Bearbeitung dieses Textes (Vorverarbeitung) erhalten wir ausreichend aussagekräftige Merkmale.
  • Experten-Features. Hierbei handelt es sich um Daten, die auf Expertenwissen basieren, das sich in unseren Datenbanken im Laufe langer Arbeitsjahre angesammelt hat. Diese Informationen hängen beispielsweise mit den Domains, der Häufigkeit von Headern usw. zusammen.
  • Raw-Features. Das ist die wohl unverständlichste Feature-Kategorie. Wir verwenden einen Teil der Mail in „Rohform“, um Features zu bestimmen, die wir bisher nicht berücksichtigt haben. Das bedeutet, der Text wird entweder unter Verwendung der Vektorendarstellung von Wörtern (word embedding) transformiert oder in das Modell Bag-of-Words überführt (die Multimenge der Wörter, ohne Berücksichtigung der Grammatik oder Wortstellung), woraufhin er dem Klassifizierungssystem übermittelt wird, das selbständig die Merkmale herausarbeitet.

Alle diese Merkmale und ihre unterschiedlichen Kombinationen tragen zu dem letzten Schritt bei – dem Start des Klassifikators.

Noch einmal zusammengefasst: Wir möchten ein System erhalten, das ein Minimum an falsch positiven Resultaten produziert, das schnell ist und dabei seine Hauptaufgabe erledigt, und zwar das Abfangen von Spam. Zu diesem Zweck erstellen wir ein Ensemble von Klassifikatoren, und zwar für jede Art von Features ein eigenes. So zeigte beispielsweise für Experten-Features das Gradient Boosting die besten Ergebnisse – eine Prozedur, bei der nacheinander Algorithmen des Maschinenlernens produziert werden, wobei jeder nachfolgende Algorithmus versucht, die Mängel aller vorangegangenen Algorithmen zu kompensieren. Das ist nicht unbedingt überraschend, da das Boosting bei einem recht breiten Spektrum von Aufgaben gute Ergebnisse erzielt, wenn zahlenmäßige oder kategoriale Merkmale zur Verfügung stehen. Schließlich werden alle Klassifikatoren zusammengefasst und das System fällt ein endgültiges Urteil.

Unsere Technologien berücksichtigen auch das mögliche Auftreten eines Problems wie des Umlernens, d.h. eine Situation in der der Algorithmus zwar während der Lernphase gut funktioniert, im Testbetrieb aber nicht effektiv ist. Damit es nicht zu einer solchen Situation kommt, werden die Parameter der Klassifizierungsalgorithmen automatisch zusammengestellt, mit Hilfe eines Algorithmus‘ des zufallsbedingten Suchverfahrens (Random Search).

Das ist in groben Zügen die Beschreibung dessen, wie wir bei Kaspersky Lab das Maschinenlernen im Kampf gegen Spam einsetzen. Und wie effektiv die von uns angewandte Methode ist, davon zeugen unabhängige Tests.

Ähnliche Beiträge

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.