Spam, Spam, Spam ...

Jeder aktive Abonnent erhält durchschnittlich mehr als vier unerwünschte Anrufe pro Woche - dies sind Werbung, Bankangebote, manchmal nur Betrug. Die meisten Kunden reagieren negativ auf diese Art von Anrufen. Um dieses Problem zu lösen, haben wir den Dienst "Spam-Anrufsperre" entwickelt, bei dem der Benutzer keine unerwünschten Anrufe mehr empfängt. Am Ende eines jeden Tages benachrichtigt das System den Teilnehmer über blockierte Anrufe. In diesem Artikel werden die MTS-Datenwissenschaftler Anna Rozhkova ( @RogotulkA ) und Olga Gerasimova ( @ynonaolga ) erläutern , wie sie einen Algorithmus entwickelt haben, der die Anzahl der Spammer vom Rest der Abonnentenbasis unterscheidet.



Modellbau


Wir standen also vor der Aufgabe der binären Klassifikation.

Wie kann man einen Abonnenten (selbst einen sehr kontaktfreudigen mit einer Vielzahl neuer Kontakte) von einem Spammer unterscheiden, der unermüdlich die Dienste eines anderen medizinischen Zentrums in Anspruch nimmt? Zuerst haben wir die Nummern, die viele verschiedene Abonnenten angerufen haben, als Spam betrachtet, aber es stellte sich heraus, dass es schwierig ist, sie von Online-Shops zu unterscheiden. Dann haben wir uns entschlossen, die Nummern anzunehmen, deren Anrufe oft abgebrochen werden, aber die Leute lassen manchmal Anrufe fallen, wenn sie sich einfach nicht wohl fühlen. Wir haben auch die Hypothese getestet, dass Abonnenten nicht zu Spammern zurückrufen (innerhalb kurzer Zeit nach einem verpassten Anruf), aber es gab zu viele solcher Nummern. Vielleicht ist dies für einige Abonnenten ein Standardverhalten, sie rufen nicht zu Freunden zurück. Infolgedessen kamen wir zu dem Schluss, dass sich die Spam-Nummern in der Unzufriedenheit der Benutzer mit ihnen unterscheiden. Daher alsAls Zielvariable wurden Zahlen verwendet, die viele Beschwerden erhielten, und negative Beispiele wurden mit solchen markiert, die nur wenige oder gar keine negativen Bewertungen haben.

Aggregierte Daten der Aktivität von Anrufern wurden als Zeichen verwendet: durchschnittliche Anrufdauer, Zeiträume mit der höchsten Aktivität, durchschnittliche Dauer einer Unterbrechung zwischen Anrufen, Geschwindigkeit der Aktualisierung des Kontaktkreises und viele andere. Wir haben auch festgestellt, dass viele Spammer „schöne Zahlen“ oder ähnliche bekannte bekannte auswählen (z. B. die Hotline-Nummer der Bank) und solche binären Funktionen hinzufügen. 

Metrische Auswahl


Der nächste Schritt war die Auswahl einer Optimierungsmetrik. Bei unserer Entscheidung war es wichtig, Anrufe von normalen Nummern nicht zu blockieren, daher haben wir festgelegt, dass die Genauigkeit des Modells mindestens 95% betragen sollte. Die Genauigkeit ist der Prozentsatz der Zahlen, die als Objekte einer Spam-Klasse erkannt wurden und die das Modell korrekt vorhergesagt hat. Es ist jedoch wichtig, so viele unerwünschte Nummern wie möglich zu blockieren. Wählen Sie daher den maximalen Rückruf (Rückruf) für eine akzeptable Genauigkeit. Die endgültige Version des Modells weist die folgenden Indikatoren auf: 95% Genauigkeit, Rückruf 94%. Jetzt ist das Modell im Zeitplan und wird regelmäßig umgeschult, um Änderungen in der Anrufaktivität verschiedener Teilnehmergruppen festzustellen. Diese Metriken werden überprüft, damit sie nicht jeweils unter 90% fallen.



Aufgrund der Tatsache, dass die Spam-Zahlen viel kleiner als gewöhnlich sind, dh die Stichprobe unausgeglichen ist, wurde die Anzahl der negativen Beispiele im Vergleich zu positiven reduziert (Unterabtastung). In der Validierungsstichprobe wurde das Klassenverhältnis als real gewählt, um eine Vorstellung von der Qualität des Modells „im Kampf“ zu erhalten. Außerdem wurden nur die Spam-Nummern in die Stichprobe aufgenommen, die an einem bestimmten Datum aufgrund der Inkonsistenz der Spammer aktiv waren: Es gibt Perioden aktiven Wählens und es gibt eine Periode der Passivität, wenn sie mehrere Anrufe tätigen, wobei die Nummer höchstwahrscheinlich beibehalten wird. Manchmal werden die Nummern nach der Kampagne blockiert und an einen anderen Eigentümer übertragen.

Als Algorithmus wurde die Implementierung von xgboost-Boosting verwendet, da dies die besten Ergebnisse für die Validierungsstichprobe ergab. Wichtige Anzeichen für das Modell waren: Daten über die Aktivität der Teilnehmer zu verschiedenen Tageszeiten, die Anzahl der kurzen Anrufe, die Breite des Freundeskreises. Eine interessante Tatsache war, dass das Merkmal des Telekommunikationsbetreibers zu den Hauptmerkmalen gehörte. Unten in der Tabelle haben wir Mobilfunkbetreiber anonymisiert und Statistiken zur Verwendung ihrer Nummern durch Spammer präsentiert:


Testen


Bei dieser Aufgabe war es nicht möglich, A / B-Tests durchzuführen: Der Dienst auf Netzwerkebene impliziert nicht das Vorhandensein verschiedener Listen von Spam-Nummern. Daher haben wir den Pilotversuch der ersten Version des Modells innerhalb des Unternehmens gestartet. Kollegen und das Top-Management wurden zu Testern. Eines der positiven Merkmale interner Tests ist das schnelle Feedback. Wir begannen sofort, Fragen zu stellen:

  • Warum ist diese Nummer durchgekommen?
  • Warum hast du diese Nummer gesperrt?
  • Ich brauche keine weitere Kfz-Versicherung (wie viel kann ich ?!)


Unsere persönliche Erfahrung wurde auch zu einem zusätzlichen Grund, nach neuen Funktionen für das Modell zu suchen, als nach langem Warten auf die Lieferung aus dem Online-Shop das Telefon des Kuriers in der Liste der gesperrten gefunden wurde.

In prod starten


Ein weiteres ernstes Problem bei der Klassifizierung von Nummern war die unterschiedliche Vorstellung davon, was Spam ist: Für einige sind Anrufe mit einem Darlehensangebot unnötige Informationen, und jemand wartet auf persönliche Angebote und wählt das beste aus, sodass der Abonnent die Möglichkeit hatte, die Liste der Anrufer anzuzeigen Zahlen mit der Option, diejenigen zu deaktivieren, die für ihn möglicherweise nützlich sind.



Eine der beliebtesten Anfragen von Benutzern, den Dienst abzuschließen, bestand darin, den Informationsgehalt des SMS-Berichts über täglich blockierte Nummern um Daten zu Anrufkategorien zu erweitern, z. B. Banken, medizinische Dienste oder Immobilien.

Die ersten Versionen des Modells basieren auf Funktionen, die über einen langen Zeitraum gesammelt wurden. Wir haben jedoch festgestellt, dass das Modell häufig keine Zahlen berücksichtigt, die kürzlich als Spam erschienen sind, d. H. Neue Nummern oder solche, die aktive Anruferanrufe nach einer Zeit der „Stille“ gestartet haben. Um dieses Problem zu lösen, haben wir ein zusätzliches Modell für Funktionen erstellt, die in kürzerer Zeit erfasst wurden. Es reichte nicht aus, dem Schulungsschaufenster „kurze“ Funktionen hinzuzufügen, da die Schulungsbeispiele selbst unterschiedlich sind: Abonnenten, die für lange und kurze Zeit aktiv sind, stimmen nicht überein.

Unsere weiteren Pläne für die Entwicklung des Produkts umfassen die Erstellung individueller Spam-Listen unter Berücksichtigung des Kundenprofils und seiner Bedürfnisse sowie die Übertragung des Modells in den Online-Modus, damit es ab hier und jetzt den Höhepunkt der Spammeraktivität erreicht.

All Articles