Spam, spam, spam ...

Setiap pelanggan aktif menerima rata-rata lebih dari empat panggilan yang tidak diinginkan per minggu - ini adalah iklan, penawaran bank, kadang-kadang hanya penipuan. Sebagian besar pelanggan bereaksi negatif terhadap jenis panggilan ini. Untuk mengatasi masalah ini, kami mengembangkan layanan "Pemblokiran Panggilan Spam", dengan menghubungkan pengguna yang berhenti menerima panggilan yang tidak diinginkan, dan pada akhir setiap hari sistem memberi tahu pelanggan tentang panggilan yang telah diblokir. Dalam artikel ini, ilmuwan data MTS Anna Rozhkova ( @RogotulkA ) dan Olga Gerasimova ( @ynonaolga ) akan memberi tahu bagaimana mereka mengembangkan algoritma yang membedakan jumlah spammer dari basis pelanggan lainnya.



Bangunan model


Jadi, kami dihadapkan dengan tugas klasifikasi biner.

Memang, bagaimana membedakan pelanggan (bahkan yang sangat ramah, dengan berbagai kontak baru) dari seorang spammer yang tanpa lelah memaksakan layanan pusat medis lain? Pada awalnya, kami menganggap angka-angka yang menelepon banyak pelanggan yang berbeda sebagai spam, tetapi ternyata sulit dibedakan dari toko online. Kemudian kami memutuskan untuk mengambil nomor, yang panggilannya sering dijatuhkan, tetapi orang kadang-kadang menjatuhkan panggilan saat mereka tidak nyaman berbicara. Kami juga menguji hipotesis bahwa pelanggan tidak akan menelepon kembali ke spammer (dalam waktu singkat setelah panggilan tidak terjawab), tetapi ada terlalu banyak angka seperti itu, mungkin bagi beberapa pelanggan ini adalah perilaku standar, mereka tidak menelepon kembali ke teman. Akibatnya, kami sampai pada keputusan bahwa jumlah spam berbeda dalam tingkat ketidakpuasan pengguna terhadap mereka. Oleh karena itu sebagaivariabel target diambil angka, yang menerima banyak keluhan, dan contoh-contoh negatif ditandai mereka yang memiliki sedikit ulasan negatif atau tidak sama sekali.

Data agregat dari aktivitas pelanggan pelanggan digunakan sebagai tanda: durasi rata-rata panggilan, periode hari dengan aktivitas tertinggi, rata-rata durasi jeda antar panggilan, kecepatan memperbarui lingkaran kontak, dan banyak lainnya. Kami juga memperhatikan bahwa banyak spammer memilih "angka cantik" atau mirip dengan yang sudah diketahui (misalnya, nomor hotline bank) dan menambahkan fitur biner seperti itu. 

Pemilihan Metrik


Langkah selanjutnya adalah memilih metrik optimasi. Dalam keputusan kami, penting untuk tidak memblokir panggilan dari nomor biasa, jadi kami menentukan bahwa keakuratan model minimal 95%. Presisi adalah persentase angka yang diakui sebagai objek kelas spam yang diprediksi oleh model dengan benar. Tetapi penting untuk memblokir sebanyak mungkin angka yang tidak diinginkan, jadi pilihlah penarikan maksimum (recall) untuk tingkat akurasi yang dapat diterima. Versi terakhir dari model memiliki indikator berikut: presisi 95%, penarikan kembali 94%. Sekarang model sudah sesuai jadwal dan secara teratur dilatih ulang untuk mencatat perubahan dalam aktivitas panggilan berbagai kelompok pelanggan, dan metrik ini diperiksa sehingga masing-masing tidak jatuh di bawah 90%.



Karena kenyataan bahwa jumlah spam jauh lebih kecil dari biasanya, yaitu, sampel tidak seimbang, jumlah contoh negatif berkurang relatif terhadap yang positif (undersampling). Dalam sampel validasi, rasio kelas dipilih nyata untuk memiliki gagasan tentang kualitas model "dalam pertempuran". Juga, hanya nomor-nomor spam yang aktif pada tanggal tertentu karena inkonsistensi spammer yang dimasukkan dalam sampel: ada periode panggilan aktif, dan ada periode pasif ketika mereka melakukan beberapa panggilan, kemungkinan besar mempertahankan nomor tersebut. Kadang-kadang angka setelah kampanye diblokir dan ditransfer ke pemilik lain.

Sebagai sebuah algoritma, implementasi xgboost boosting digunakan, karena memberikan hasil terbaik pada sampel validasi. Tanda-tanda penting untuk model tersebut ternyata: data aktivitas pelanggan pada waktu yang berbeda dalam sehari, jumlah panggilan singkat, luasnya lingkaran teman. Fakta yang menarik adalah bahwa fitur operator telekomunikasi memasuki fitur teratas. Di bawah pada bagan, kami menganonimkan operator seluler dan menyajikan statistik tentang penggunaan nomor mereka oleh spammer:


Pengujian


Dalam tugas ini, tidak mungkin melakukan pengujian A / B: layanan di tingkat jaringan tidak menyiratkan adanya berbagai daftar nomor spam, jadi kami meluncurkan pilot versi pertama model di dalam perusahaan, kolega, dan manajemen puncak menjadi penguji. Salah satu fitur positif dari pengujian internal adalah umpan balik cepat. Kami segera mulai mengajukan pertanyaan:

  • mengapa nomor ini bisa melewati?
  • mengapa Anda memblokir nomor ini?
  • Saya tidak perlu asuransi mobil lain (berapa yang bisa saya?!)


Pengalaman pribadi kami juga menjadi alasan tambahan untuk mencari fitur baru untuk model, ketika setelah menunggu lama untuk pengiriman dari toko online, telepon kurir ditemukan dalam daftar yang diblokir.

Luncurkan dalam prod


Masalah serius lain dalam klasifikasi angka adalah perbedaan ide tentang apa itu spam: bagi sebagian orang, panggilan dengan tawaran pinjaman adalah informasi yang tidak perlu, dan seseorang sedang menunggu penawaran pribadi dan memilih yang terbaik, sehingga pelanggan diberi kesempatan untuk melihat daftar penelepon. angka dengan opsi untuk menonaktifkan mereka yang berpotensi berguna baginya.



Salah satu permintaan paling populer dari pengguna untuk menyelesaikan layanan adalah untuk memperluas konten informasi dari laporan SMS pada nomor yang diblokir setiap hari dengan data pada kategori panggilan, misalnya, bank, layanan medis atau real estat.

Versi pertama model dibangun berdasarkan fitur yang dikumpulkan selama periode waktu yang lama, tetapi kami memperhatikan bahwa model tersebut sering tidak menganggap angka-angka yang muncul baru-baru ini sebagai spam, mis. nomor baru atau yang sudah memulai panggilan penelepon aktif setelah periode "hening". Untuk mengatasi masalah ini, kami membangun model tambahan pada fitur yang dikumpulkan selama periode yang lebih singkat. Itu tidak cukup untuk menambahkan fitur "pendek" ke etalase untuk pelatihan, karena sampel pelatihan itu sendiri berbeda: pelanggan yang aktif untuk jangka waktu yang lama dan pendek tidak cocok.

Rencana kami selanjutnya untuk pengembangan produk termasuk pembuatan daftar spam individu, dengan mempertimbangkan profil klien dan kebutuhannya, transfer model ke mode online, sehingga dapat menangkap puncak aktivitas spammer mulai di sini dan sekarang.

All Articles