С телефонным спамом знаком каждый, кто выставил свой номер в Интернете, заполнил сомнительную анкету в офлайне или просто не повезло попасть в многочисленные базы данных.
Сегодня мы расскажем читателям Хабрахабра о том, как с помощью отзывов пользователей и машинного обучения мы научили приложение Яндекса предупреждать о нежелательных звонках.
Звонки с неизвестных номеров – всегда трудный выбор.
Звонок долгожданного курьера или другого оператора с «уникальным» рекламным предложением? Для решения этой проблемы существуют мобильные приложения, работающие на основе каталогов известных организаций.
Частично они решают проблему.
Но в такие базы не попадают самые агрессивные спамеры, сомнительные сборщики и злоумышленники.
Что делать? Идея создания собственного определителя номера пришла к нам случайно.
Внимание привлек один из сотрудников компании, который носил с собой два телефона.
Когда ему позвонили с незнакомого номера на основной телефон, он ввел этот номер в поисковик на втором устройстве и поискал отзывы в сети.
Этот метод сложно назвать удобным, но мы вдохновились и решили его немного автоматизировать.
Мы собрали первый прототип для Android, который делал следующее: при входящем звонке открывалось окно с веб-просмотром, в которое загружались результаты поиска по номеру входящего звонка.
Большой! Нам удалось сэкономить на одном телефоне.
А если серьезно, то, несмотря на упрощение распорядка дня, пользы от него было мало.
Попробуйте ввести любой номер телефона в поисковую систему.
Вы гарантированно найдете сайты, которые намекают, что у них есть отзывы по этому номеру.
Но если нажать на результат, то в большинстве случаев оказывается, что сайт просто сгенерировал страницы для всех возможных номеров, а самих отзывов там нет. В таких условиях поиск информации о входящих звонках слишком трудоемок и неэффективен.
Единственный способ добиться успеха – это найти ответ прямо сейчас.
Но для этого нужны данные.
У Яндекса есть Справочник.
Это база знаний об организациях, которая обновляется как компаниями, так и пользователями.
Сюда берется информация об организациях при их поиске в Поиске или на Картах.
Когда наш внутренний прототип идентификатора вызывающего абонента для мобильного устройства впервые перешел от простого вывода к вердиктам, данные были извлечены из каталога.
Но этого было недостаточно: слишком часто звонят с номеров, принадлежность которых к тем или иным компаниям не афишируется.
Чтобы преодолеть эту проблему, необходимо дополнительно собирать отзывы пользователей, которым звонили с этих номеров.
Мы начали с чего-то простого.
С лета прошлого года Яндекс Поиск предлагает пользователям оставить отзыв о номере телефона, который они ищут в поиске.
Обычное текстовое поле для обратной связи в свободной форме.
Мы не ограничили наш обзор конкретными вариантами ответа, поскольку не до конца понимали разнообразие источников нежелательных звонков.
Проблема в том, что парсинг отзывов в свободной форме довольно сложно автоматизировать.
Но мы обошли эти трудности, используя краудсорсинговую платформу.
Очистка , чьи пользователи помогали сортировать и классифицировать отзывы.
Поэтому мы начали собирать данные не только об известных организациях с относительно хорошей репутацией, но и о спамерах, мошенниках, агрессивных коллекторах, шутниках и даже о тех, кто любит молчать по телефону.
Хотя не все категории можно смело записывать как нежелательные звонки.
Например, обычно полезны звонки курьерских служб.
Данные Справочника и первые отзывы пользователей легли в основу АОН Яндекса, который запустился в прошлом году в веб-версии Поиска.
Яндекс начал отвечать вердиктами на многие запросы, содержащие номера телефонов.
Вскоре в приложение «Яндекс.
Карты» была встроена ранняя версия Caller ID. Работала только на основе Справочника, так как отзывов в других категориях пока недостаточно для качественной работы.
Это привело нас к следующему этапу развития определителя.
Собирать отзывы нужно на мобильном устройстве и сразу после звонков с неизвестных номеров, а не ждать их в сети.
Но как это сделать? Первые внутренние попытки собрать обратную связь после любого звонка привели к проблемам.
Слишком частые запросы раздражают пользователей.
Более того, если любой пользователь может оставить отзыв на любой входящий звонок, то это провоцирует и упрощает обман.
Нам пришлось действовать умнее.
Яндекс специализируется на машинном обучении.
С его помощью Поиск выдает результаты, Браузер выявляет вредоносные сайты, а Музыка рекомендует треки.
Машинное обучение позволяет выявлять неочевидные закономерности при анализе большого количества разнородных факторов.
Поэтому мы применили его в новой версии АОН, который теперь работает в приложении Яндекса для Android. Наша библиотечная технология CatBoost , анализирует более двухсот факторов при принятии решения о необходимости проверки.
Например, частота и продолжительность звонка.
О других факторах по понятным причинам мы умолчим, но данное решение позволило снизить навязчивость и максимально затруднить накрутку отзывов.
Несколько слов о том, как это работает сейчас.
Если пользователь Приложения Яндекс включил определитель в настройках; при звонке с неизвестных номеров отправляется запрос в наше облако, откуда выдается вердикт.
Кстати, вы также можете просмотреть вердикт по пропущенным звонкам.
Это может быть удобно, когда вы не знаете, стоит ли перезванивать.
Если Яндекс не знает точно, откуда поступает звонок, то по завершению пользователь может увидеть просьбу оставить отзыв.
Вероятность появления этого запроса зависит от анализа всех факторов в облаке.
В настоящее время мы собираем новые отзывы, которые неизбежно повлияют на развитие технологии идентификации вызывающего абонента в будущем.
Если у вас есть опыт создания подобных систем или вы видите альтернативное решение проблемы телефонного спама и других нежелательных звонков, то нам будет интересно его обсудить.
Спасибо.
Теги: #Машинное обучение #информационная безопасность #Разработка мобильных приложений #Яндекс #очистка #Спам и антиспам #спам #отзывы #catboost #приложение Яндекс #АОН
-
Ооп В Javascript
19 Oct, 24 -
Структура Приложения
19 Oct, 24