На каждого активного абонента в неделю поступает в среднем более четырех нежелательных звонков – это реклама, предложения от банков, а иногда и просто мошенничество.
Большинство клиентов негативно реагируют на подобные звонки.
Для решения этой проблемы мы разработали услугу «Блокировка спам-вызовов», активировав которую, пользователь перестает получать нежелательные звонки, а в конце каждого дня система уведомляет абонента о заблокированных звонках.
В этой статье аналитик данных МТС Анна Рожкова ( @РоготулкА ) и Ольга Герасимова ( @ynonaolga ) расскажут, как разработали алгоритм, отличающий номера спамеров от остальной абонентской базы.
Построение модели
Итак, перед нами стояла задача бинарной классификации.Действительно, как отличить абонента (даже очень общительного, с большим кругом новых контактов) от спамера, без устали навязывающего услуги другого медицинского центра? Сначала мы посчитали спамом те номера, на которые звонило много разных абонентов, но отличить их от интернет-магазинов оказалось сложно.
Тогда мы решили брать номера, звонки с которых часто сбрасываются, но люди иногда сбрасывают звонки, когда им просто неудобно разговаривать.
Также мы проверяли гипотезу о том, что абоненты не будут перезванивать на спамерские номера (в течение короткого времени после пропущенного звонка), но таких номеров было слишком много, возможно, для некоторых абонентов это стандартное поведение; они не перезванивают своим друзьям.
В результате мы пришли к выводу, что количество спама различается по уровню недовольства им пользователей.
Поэтому, как целевая переменная были взяты номера, на которые поступает много жалоб, а в качестве отрицательных примеров были отмечены те, у которых мало или вообще нет отрицательных отзывов.
В качестве признаков использовались агрегированные данные звонковой активности абонентов: средняя продолжительность звонков, периоды дня с наибольшей активностью, средняя продолжительность перерыва между звонками, скорость обновления круга контактов и многие другие.
Мы также заметили, что многие спамеры выбирают «красивые номера» или похожие на известные уже существующие (например, номер горячей линии банка) и добавляют такие бинарные функции.
Выбор метрики
Следующим шагом был выбор метрики оптимизации.В нашем решении было важно не блокировать звонки с обычных номеров, поэтому мы определили, что точность модели должна быть не менее 95%.
Точность — это процент чисел, распознанных как объекты класса спама, которые модель предсказала правильно.
Но важно заблокировать как можно больше нежелательных номеров, поэтому выбираем максимальный охват (отзыв) для приемлемого уровня точности.
Финальная версия модели имеет следующие показатели: точность 95%, полнота 94%.
Теперь модель работает по расписанию и регулярно переобучается для выявления изменений звонковой активности различных групп абонентов, а эти метрики проверяются, чтобы они не падали ниже 90% у каждой.
В связи с тем, что спамовых номеров гораздо меньше, чем обычных, то есть выборка несбалансированная, количество негативных примеров было уменьшено относительно положительных (недостаточная выборка).
В проверочной выборке соотношение классов было выбрано реальным, чтобы иметь представление о качестве работы модели «в бою».
Также в выборку попали только те спам-номера, которые были активны на определенную дату из-за непостоянства спамеров: есть периоды активных звонков, а есть период пассивности, когда они делают несколько звонков, скорее, для поддержания номера.
Иногда номера блокируются после акции и переходят к другому владельцу.
В качестве алгоритма была использована реализация повышения xgboost, поскольку она дала наилучшие результаты на проверочном наборе.
Важными особенностями для модели оказались: данные об активности абонентов в разное время суток, количество коротких звонков и широта круга общения.
Интересным фактом было то, что функция оператора связи вошла в топ функций.
На графике ниже мы анонимизировали мобильных операторов и представили статистику использования их номеров спамерами:
Тестирование
В данной задаче не удалось провести A/B-тестирование: сервис на уровне сети не предполагает наличие различных списков спам-номеров, поэтому мы запустили пилот первой версии модели внутри компании, с коллеги и высшее руководство в качестве тестировщиков.Одна из положительных особенностей внутреннего тестирования — быстрая обратная связь.
К нам сразу начали поступать вопросы:
- почему этот номер прошел?
- Почему вы заблокировали этот номер?
- Мне не нужна еще одна страховка автомобиля (насколько это возможно?!)
Запуск в производство
Еще одной серьезной проблемой при классификации номеров стала разница в представлениях о том, что такое спам: для одних звонки с предложением кредита являются ненужной информацией, а другие ждут персональных предложений и выбора лучшего, поэтому абоненту была предоставлена возможность просмотреть список звонивших ему номеров с возможностью отключения тех, которые потенциально для него полезны.
Одним из самых популярных запросов пользователей по улучшению сервиса было расширение информативности СМС-отчета о заблокированных за день номерах данными о категориях звонков, например, банки, медицинские услуги или недвижимость.
Первые версии модели были построены на признаках, собранных за длительный период времени, но мы заметили, что модель часто не считает спамом номера, появившиеся недавно, т.е.
новые номера или те, которые начали активно звонить абонентам после периода « тишина".
Чтобы решить эту проблему, мы построили дополнительную модель, используя функции, собранные за более короткий период. Недостаточно было добавить в обучающую витрину «короткие» функции, так как сами обучающие выборки разные: подписчики, активные в течение длительного и короткого промежутков времени, не одинаковы.
В наши дальнейшие планы по развитию продукта входит создание индивидуальных спам-листов с учетом профиля клиента и его потребностей, перевод работы модели в онлайн, чтобы она ловила пик спамерской активности, начинающийся здесь и сейчас.
Теги: #Машинное обучение #Большие данные #наука о данных #антиспам
-
Устройство Управления Связью
19 Oct, 24 -
Ваш Браузер На Mac
19 Oct, 24