Нейросети и категориальные величины

dimcom

Что там современная наука говорит? По-старинке бинарным кодированием надо заниматься? Или прогресс таки привел нас к чему-то более элегантному?

kuzmitch285

А нельзя как в регрессии woe использовать?

dimcom

Можно. Можно даже еще круче. Дело в другом, поясню, с чем связан вопрос.
Потенциальный клиент использует для защиты от карточного фрода решение, основанное на чистых нейросетях. А нам надо рассказать о разнице между нашей крутой гибридной логикой и его жалкими НС. А там знайка сидит ядреный, я боюсь вот чего, мы ему: «Вы ж понимаете, что чтобы скормить в нейросеть 5 тысяч MCC надо или сократить их до нескольких групп, или сделать 5000 полярных входов, а у нас вы просто выбираете тип входного параметра — категориальный, — и все, блядь, в продакшен!», а он такой: «Молодые люди, но ведь в последнем исследовании британских ученых предложен и успешно опробован новейший метод борьбы с политомическими переменными, который позволяет в один вход кидать 100500 категорий, и это не скажется ни на качестве результата, ни на производительности, и мы вот так у себя уже делаем. А теперь — валите отсюда нахуй, невежды!».
Вот я и прощупываю почву, мало ли, сдвиги какие были недавно. Научились же, вроде, по результатам измерений определять, какая величина являлась причиной, а какая — следствием. Вот, может, и тут чего-нибудь интересное придумали.

natunchik

Предложите попробовать ваш подход против их подхода на релевантном сэмпле и посмотреть на false positives/false negatives, чо. Если очко играет смотреть на реальне перформанс вместо баззвордов, то наверное тот ядрёный знайка знает чо как, а вы нет.

antcatt77

Предложите попробовать ваш подход против их подхода
Вопрос был не об этом.

natunchik

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

antcatt77

Вопрос был следующий:
Раньше в направлении Zzz была проблема Xxx. Существует ли до сих пор эта проблема в этом направлении?
Где Zzz - это чистые нейронные сети, а Xxx - невозможность задать категориальную переменную малым кол-вом нейронов

dimcom

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

gala05

«Вы ж понимаете, что чтобы скормить в нейросеть 5 тысяч MCC надо или сократить их до нескольких групп, или сделать 5000 полярных входов, а у нас вы просто выбираете тип входного параметра — категориальный, — и все, блядь, в продакшен!»,
Честно говоря, кажется, что человек не понял, как это "просто выбираете". Я тоже не понял. Может, объяснить, как именно реализован сей тип входного параметра?

dimcom

человек не понял
Человеку это пока еще не говорили :)
Я тоже не понял. Может, объяснить, как именно реализован сей тип входного параметра?
Допустим, мы решили, что для более эффективной борьбы с фродом нам будет полезен темперамент клиента. Для этого (полный процесс от идеи до продакшена):
1. Добавляем поток статических входящих данных со связкой ID клиента — код темперамента.
2. В веб-админке делаем копию текущей модели.
3. Создаем внутреннюю сущность Temperament на индексе CustomerID, указываем тип «Categorical».
4. В настройках входящего потока указываем, что надо декодировать {1 -> "Sanguine", 2 -> "Choleric", 3 -> "Melancholy", 4 -> "Phlegmatic", 5 -> "Supine", default -> ""} (чтобы аналитику человеческие значения использовать, а не коды) и записать в поле Temperament соответствующему клиенту.
5. Запускаем загрузку потока, темпераменты привязываются к клиентам.
6. Добавляем темперамент в список полей для моделирования. Запускаем генератор модели принятия решений, ждем от пары минут до пары часов, в зависимости от требуемых ограничений.
7. Смотрим, какие правила он решает исправить/добавить/удалить, повысился ли процент попаданий, снизилось ли количество ложных срабатываний, при необходимости делаем косметические правки.
8. Если все устраивает, делаем новую модель действующей, она сразу же отправляется в продакшен.
9. Если потом обнаружилось, что что-то пошло не так — откатываемся на предыдущую версию модели.
Никакого проганья при этом не требуется, все мышкой-клавой через браузер. А теперь повторяем упражнение на нейросети (включая процесс переобучения) и сравниваем результаты и количество потраченного времени.

Sander

Потенциальный клиент использует для защиты от карточного фрода решение, основанное на чистых нейросетях. А нам надо рассказать о разнице между нашей крутой гибридной логикой и его жалкими НС.
И вообще, параметров же 3:
1. Качество работы
2. Сложность поддержки
3. Сложность настройки
По идее вам надо обосновать, что вы по всем пунктам выигрываете.
И +1 за сравнение на практике. В теории может быть что угодно, а на практике этот чувак со своими простыми НС может вас порвать чисто за счет того, что он умеет их бодро настраивать под свои данные.
ЗЫ
про реальный тест дочитал - ок

Sander

Никакого проганья при этом не требуется, все мышкой-клавой через браузер. А теперь повторяем упражнение на нейросети (включая процесс переобучения) и сравниваем результаты и количество потраченного времени.
С чего ты взял, что провязывание факторов в НС требует проганья? Сделали из категориального фактора X бинарных и кинули в нейросеть.
Может там тоже - кнопку нажать, подождать сутки и в продакшн.
А ваша система без машинного времени на переобучение как работает?

dimcom

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

Sander

процесс занимает месяцы
:shocked: :shocked: :shocked:
А правда, а за счет чего ваша система подхватывает категориальные факторы? Там же тоже переобучение должно хоть какое-то быть.

dimcom

А у нас методика совсем другая. Тут надо сразу отметить, что предметная область вполне конкретная — фрод. А фрод примечателен тем, что его обычно очень мало, а именно 0,2%, плюс-минус. Наш алгоритм самообучения на основании исторических данных формирует модель принятия решений, то бишь перечень правил, которые описывает характерные признаки только фродовых транзакций. Т. е. нам не надо анализировать вообще все транзакции, мы на входе принимаем только фрод. Далее методом ветвей и границ ищем, что у них общего (типа: Гонконг, магнитная полоса, ювелирные магазины, крупная сумма). Дальше отсев фрода идет уже по заготовленным правилам. Как это ни парадоксально, процент попаданий у такого подхода выше, а ложных срабатываний меньше, если сравнивать с нейросетями. Про скорость вообще молчу.
И еще разок про предметную область. Если мы полезем в распознавание картинок, например, то здесь уже с таким подходом не выедешь, нейросети будут несравнимо эффективнее.

dimcom

Докладываю. Вопросов про нейросети не было :-)
Основные переживания были по поводу производительности, но с этим у нас более чем хорошо, поэтому все прошло ок.
Оставить комментарий
Имя или ник:
Комментарий: