Задать вопрос
mitaichik
@mitaichik

С помощью чего проанализировать данные и построить свою нейронную сеть для бана пользователей?

Есть проект, что-то типа онлайн магазина.
К нам захаживают пользователи, которые совершают нехорошие действия.
Если сравнивать с интернет-магазином - то добавляют товар в корзину, переходят на страницу оплаты, и спустя время отказываются, либо просто закрывают страницу заказа.

Делают они это специально, нужно им (не с целью навредить нам, но вот им нужно)
Делают это массово, в основном - в ручную, то есть реально тыкают в телефоне, с реальных устройств, с абсолютно разных ip, из разных стран.

Да им волю - они таких заказов насоздают по несколько тысяч в день.

Все бы ничего, но вот только для нас такой цикл (корзина - попытка оплаты - отмена) стоит приличных денег (специфика бизнеса)

Естественно, у нас есть разные бан-фильтры, и мы их баним, баним IP адреса, пользователей, устройства, иногда и подсети. Но:
- не всегда хорошо срабатывает, иногда зацепляет реальных пользователей.
- банит она уже после того, как пользователь совершил некоторое число нехороших действий.

Решили попробовать нейронные сети.
Что провести анализ действий данных персонажей и выявить паттерны поведения, и на основе них банить превентивно.

Есть большая база (десятки миллионов строк) действий пользователей - какой и когда товар просматривали, когда добавляли в корзину, когда нажимали кнопочку оплатить, закрыли ли просто страницу оплаты или отменили заказ, ФИО покупателя (это забавно, но злоумышленники не парятся над именами - Иванов Иван Иванович - имеет довольно существенный вес для бана)
Есть список уже забаненых злоумышленников по нашим текущим алгоритмам.

Вопрос: чем анализировать и с помощью чего строить нейронку?
У нас в команде нет человека с компетенциями в данной области.
По времени не сказать что спешим - либо своего подучим, либо кого-то найдем.

Но нужно понимать в какую сторону копать.
Какую книжку прочитать спецу?
На основе чего делать нейронку?

Я вот сейчас смотрю книгу по TensorFlow - оно?
  • Вопрос задан
  • 112 просмотров
Подписаться 1 Простой 3 комментария
Пригласить эксперта
Ответы на вопрос 2
Maksim_64
@Maksim_64
ML Engineer
1. Размечаешь датасет вся информация о действиях пользователя и метка хороший/нехороший

2. Арендуешь сервер с gpu

3. Разворачиваешь Базу в которой будут хранится размеченные данные. (плюс mlflow и airflow требуют коннекта к бд)

4. Разворачиваешь в докере mlflow для трекинга результатов экспериментов.

5. Разворачиваешь в докере airflow для управления тасками (композиции пайплана тренировки определенной архитектуры нейронной сети и оценки результатов)

6. Возможно понадобится векторная база тоже поднимаешь в докере (в зависимости от архитектуры нейронной сети), ты можешь создать эмбеддинги "плохих пользователей" (портреты так сказать) и потом транслировать поведение пользователей которые заходят на сайт в эмбеддингии искать ближайшие (тех кто похож).

7. Здесь можно и нейронки и классификатор с xgboost/catboost попробовать, что не отменяет необходимость трекировать эксперименты.

8. В целом либо классическая архитектура нейрокна получает на вход информацию в определенном представлении и выдает вероятность пользователя быть "нехорошим" либо вариант с созданием эмбеддинга либо и то другое.

Это если реально интересен результат продакшен уровня, а не просто пойграться с нейронками и их параметрами.
Ответ написан
Комментировать
@rPman
Нейронная сеть в первую очередь это про выбор формы и сбор данных, на основе которых будет приниматься решение. Выбор алгоритмов вторичны. В подавляющем большинстве случаев правильно подобранные данные вообще позволяют обойтись классическими алгоритмами (бывает что для самого сбора данных может понадобиться нейронная сеть но принятие решение может остаться классическим).

Начните с формального описания процесса выявления злонамеренных пользователей, как вы это делаете вручную, в идеале, представьте что вы описываете процесс человеку с улицы, который вообще в вашем бизнесе ничего не понимает.

p.s. кстати атака такого рода - это классический ddos (его почему то все воспринимают как исключительно сетевая атака в виде огромного количества запросов, но это не только так) на вашу платежную систему и возможно красивое решение кроется в изменении бизнеспроцессов. Типовое решение - ввести KYC, нужна какая то относительно надежная система аутентификации пользователей, минимально защищенная от мультиаккаунта (в интернете таковой является авторизация по телефонному номеру, это фактически интернет паспорт). Еще способ - сделать регистрацию 'платной', и платить не обязательно деньгами, помню был месседженер - bitmessage (в нем сообщения требовали вычислений (proof of work), обычный пользователь с небольшим количеством сообщений нагрузку не заметит а вот злоумышленник уже не сможет отсылать сотни сообщений, точнее это станет дорого)
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы