Stellen Sie sich vor, Sie hätten einen Spam-Filter geschrieben, der aus einer Reihe von if-Anweisungen besteht. Wenn der Betreff „FREE“ enthält: als Spam markieren. Wenn die Absenderadresse auf .ru endet: als Spam markieren. Wenn die E-Mail den Begriff „wire transfer“ (Banküberweisung) enthält: als Spam markieren.
Eine Woche lang funktioniert alles gut, doch dann beginnt die Leistung des Filters nachzulassen. Es tauchen neue Betrugsmaschen auf, die Ihre Schlüsselwörter umgehen, und normale E-Mails werden fälschlicherweise markiert, weil ein Kollege „free lunch“ (kostenloses Mittagessen) in eine Kalendereinladung geschrieben hat. Nichts am Postfach ist im Sinne eines Programmabsturzes „kaputt“. Die Regeln tun immer noch genau das, was Sie festgelegt haben – und genau das ist das Problem.
Da der regelbasierte Filter versagt, ist der nächste Schritt ein System, dessen Ausgabe sich ändert, nachdem es gesehen hat, was Sie als korrekt erachten. Ein Programm lernt, wenn durch das Training interne Einstellungen so angepasst werden, dass dieselbe Eingabe-E-Mail zu einer besseren Klassifizierung (Spam oder kein Spam) führt als vor dem Training.
Um dies zu veranschaulichen, betrachten wir ein sehr kleines Postfach, in dem jede E-Mail mit einem Label (einer Kennzeichnung) versehen ist. Dieses Label entspricht der korrekten Antwort, die das Programm liefern soll, etwa spam oder not_spam. Diese Menge an Beispielen bildet die Daten – also aufgezeichnete Eingaben in Verbindung mit ihren jeweiligen Labels. Das Programm betrachtet die E-Mails nicht als Ganzes auf magische Weise. Es nutzt stattdessen Merkmale (Features): messbare Eigenschaften einer E-Mail, wie etwa „enthält das Wort invoice“ oder „Absenderdomain endet auf .biz“.
Sehen Sie hier, wie dieselben gekennzeichneten E-Mails vor und nach dem Training zu unterschiedlichen Ergebnissen führen können.
Der entscheidende Punkt ist, dass das Training das Verhalten des Filters verändert, ohne dass Sie neue if-Anweisungen hinzufügen müssen. Der Trainingsprozess nutzt die Labels, um die internen Einstellungen in Richtung von Ausgaben zu lenken, die häufiger mit den Labels übereinstimmen; auf diese Weise wird eine Nachricht, die zuvor falsch klassifiziert wurde, nach der Anpassung korrekt erkannt.
Sobald der Filter sein Verhalten anhand von Beispielen anpassen kann, stellt sich die Frage, welche Art von Änderung als „Lernen“ gilt. Wenn das Programm lediglich die exakten Trainings-E-Mails auswendig lernt, erzielt es bei diesen Beispielen zwar ein perfektes Ergebnis, versagt jedoch bei der nächsten Betrugsmail, die anders formuliert ist.
Wie kann ein musterbasiertes System eine neue, dem Filter bisher unbekannte E-Mail klassifizieren, ohne dass jede neue Betrugsmasche manuell programmiert werden muss? Es kann Merkmale nutzen, die im mit Labels versehenen Datensatz häufig mit Spam korrelieren – etwa das Vorkommen des Wortes „invoice“ (Rechnung), ungewöhnliche Absenderdomains oder eine Diskrepanz zwischen Absendername und Domain.
Vergleichen Sie, wie ein System, das auf exakten Übereinstimmungen basiert, ein musterbasierter Lernalgorithmus und ein System mit festen Regeln mit einer bisher unbekannten E-Mail umgehen.