С помощью чего проанализировать данные и построить свою нейронную сеть для бана пользователей?
Есть проект, что-то типа онлайн магазина.
К нам захаживают пользователи, которые совершают нехорошие действия.
Если сравнивать с интернет-магазином - то добавляют товар в корзину, переходят на страницу оплаты, и спустя время отказываются, либо просто закрывают страницу заказа.
Делают они это специально, нужно им (не с целью навредить нам, но вот им нужно)
Делают это массово, в основном - в ручную, то есть реально тыкают в телефоне, с реальных устройств, с абсолютно разных ip, из разных стран.
Да им волю - они таких заказов насоздают по несколько тысяч в день.
Все бы ничего, но вот только для нас такой цикл (корзина - попытка оплаты - отмена) стоит приличных денег (специфика бизнеса)
Естественно, у нас есть разные бан-фильтры, и мы их баним, баним IP адреса, пользователей, устройства, иногда и подсети. Но:
- не всегда хорошо срабатывает, иногда зацепляет реальных пользователей.
- банит она уже после того, как пользователь совершил некоторое число нехороших действий.
Решили попробовать нейронные сети.
Что провести анализ действий данных персонажей и выявить паттерны поведения, и на основе них банить превентивно.
Есть большая база (десятки миллионов строк) действий пользователей - какой и когда товар просматривали, когда добавляли в корзину, когда нажимали кнопочку оплатить, закрыли ли просто страницу оплаты или отменили заказ, ФИО покупателя (это забавно, но злоумышленники не парятся над именами - Иванов Иван Иванович - имеет довольно существенный вес для бана)
Есть список уже забаненых злоумышленников по нашим текущим алгоритмам.
Вопрос: чем анализировать и с помощью чего строить нейронку?
У нас в команде нет человека с компетенциями в данной области.
По времени не сказать что спешим - либо своего подучим, либо кого-то найдем.
Но нужно понимать в какую сторону копать.
Какую книжку прочитать спецу?
На основе чего делать нейронку?
а нет ли у таких пользователей реальной причины так делать? например вы скрываете необходимую информацию (цены, скидки, способы доставки и т.п.) до тех пор пока не начнется оплата?
для нас такой цикл (корзина - попытка оплаты - отмена) стоит приличных денег (специфика бизнеса)
как такое возможно? действительно, как можно такое простое действие сделать для бизнеса платным?
допускаю что если используются банковские карты, то это платно, но я правильно понимаю что у вас до реальных переводов дело не доходит?
1. Размечаешь датасет вся информация о действиях пользователя и метка хороший/нехороший
2. Арендуешь сервер с gpu
3. Разворачиваешь Базу в которой будут хранится размеченные данные. (плюс mlflow и airflow требуют коннекта к бд)
4. Разворачиваешь в докере mlflow для трекинга результатов экспериментов.
5. Разворачиваешь в докере airflow для управления тасками (композиции пайплана тренировки определенной архитектуры нейронной сети и оценки результатов)
6. Возможно понадобится векторная база тоже поднимаешь в докере (в зависимости от архитектуры нейронной сети), ты можешь создать эмбеддинги "плохих пользователей" (портреты так сказать) и потом транслировать поведение пользователей которые заходят на сайт в эмбеддингии искать ближайшие (тех кто похож).
7. Здесь можно и нейронки и классификатор с xgboost/catboost попробовать, что не отменяет необходимость трекировать эксперименты.
8. В целом либо классическая архитектура нейрокна получает на вход информацию в определенном представлении и выдает вероятность пользователя быть "нехорошим" либо вариант с созданием эмбеддинга либо и то другое.
Это если реально интересен результат продакшен уровня, а не просто пойграться с нейронками и их параметрами.
Нейронная сеть в первую очередь это про выбор формы и сбор данных, на основе которых будет приниматься решение. Выбор алгоритмов вторичны. В подавляющем большинстве случаев правильно подобранные данные вообще позволяют обойтись классическими алгоритмами (бывает что для самого сбора данных может понадобиться нейронная сеть но принятие решение может остаться классическим).
Начните с формального описания процесса выявления злонамеренных пользователей, как вы это делаете вручную, в идеале, представьте что вы описываете процесс человеку с улицы, который вообще в вашем бизнесе ничего не понимает.
p.s. кстати атака такого рода - это классический ddos (его почему то все воспринимают как исключительно сетевая атака в виде огромного количества запросов, но это не только так) на вашу платежную систему и возможно красивое решение кроется в изменении бизнеспроцессов. Типовое решение - ввести KYC, нужна какая то относительно надежная система аутентификации пользователей, минимально защищенная от мультиаккаунта (в интернете таковой является авторизация по телефонному номеру, это фактически интернет паспорт). Еще способ - сделать регистрацию 'платной', и платить не обязательно деньгами, помню был месседженер - bitmessage (в нем сообщения требовали вычислений (proof of work), обычный пользователь с небольшим количеством сообщений нагрузку не заметит а вот злоумышленник уже не сможет отсылать сотни сообщений, точнее это станет дорого)