Домино с предупреждающим значком и падающим графиком на заднем плане.

Нейросимволическое обнаружение мошенничества: выявление концептуального дрейфа до падения F1 (без использования меток)

Использование FIDI Z-Score, расширения FIDI для обнаружения аномалий на символическом уровне, позволило выявить изменения в схемах мошенничества во всех 5 экспериментах, иногда на 1 окно раньше, при нулевых метках.

Делиться

Изменение концепции модели обнаружения мошенничества вызывает эффект домино: мошеннические транзакции с ранним сигналом обнаружения аномалий

В окне 3 все показатели выглядели идеально.
RWSS = 1,000. Вероятности выходных данных остались без изменений. Метки не перемещены.
Все говорили: «Все в порядке».

Но оповещение всё равно сработало.

Окно 3: severity=warning RWSS=1.000 fired=True ← Здесь срабатывает FIDI Z

Модель ещё не предвидела никаких проблем.
Но символический слой все же присутствовал.

Вот что на самом деле произошло в ходе эксперимента — и почему это важно для всех, кто использует модели выявления мошенничества в реальных условиях.

Полный код: https://github.com/Emmimal/neuro-symbolic-drift-detection

Вкратце: Что вы узнаете из этой статьи

  • Z-Score FIDI обнаруживает изменение концепции в 5 из 5 исходных образцов , иногда еще до выхода первого поколения, при этом не требуется никаких меток.
  • Одна только команда RWSS не прошла 3 из 5 посевных мест. Расширение Z-показателя в системе FIDI — вот что обеспечивает её работоспособность.
  • Изменение ковариат — это совершенно слепое пятно. Для него необходим отдельный монитор исходных данных.
  • Система оповещения состоит примерно из 50 строк кода и определяет разницу между плановой и экстренной переподготовкой.

Не знакомы с этой серией? В главе «Гибридное нейросимволическое обнаружение мошенничества: управление нейронными сетями с помощью правил предметной области» рассматривается архитектура. В главе «Как нейронная сеть научилась самостоятельно определять правила обнаружения мошенничества: эксперимент с нейросимволическим ИИ» объясняется, как модель обнаруживает собственные правила. Это глава, посвященная обнаружению дрейфа.

История на данный момент

Это третья часть серии. Впервые здесь? Достаточно одного абзаца.

HybridRuleLearner обучает два параллельных пути: многослойный персептрон (MLP) для обнаружения и путь правил, который изучает символические условия IF-THEN на основе тех же данных. Путь правил самостоятельно обнаружил V14 на двух начальных значениях, без указания искать его. Теперь отслеживается именно это изученное правило (IF V14 < −1.5σ → Мошенничество). В этой статье рассматривается вопрос о том, что происходит, когда V14 начинает вести себя иначе.

Часть Что оно сделало Ключевой результат
Управление нейронными сетями с помощью правил предметной области В функцию потерь внесены правила аналитика, закодированные в код. ROC-AUC 0,967 → 0,970, стабильно для 5 семян
Как нейронная сеть выучила собственные правила мошенничества Пусть модель сама обнаружит свои правила «ЕСЛИ-ТО». Градиент обнаружен без использования направляющих. Точность 99,3%.
Эта статья Отслеживайте эти правила на предмет отклонения от общепринятой концепции. Показатель FIDI Z-Score показывает хорошие результаты в 5 из 5 посевных единиц до того, как выбывает F1.

Могут ли правила выступать в роли индикатора? Может ли нейросимволический мониторинг дрейфа концепций работать во время вывода, без использования меток?

Три способа, которыми мошенничество может изменить ситуацию

Обнаружение мошенничества с изменением концепции сложнее, чем кажется, потому что только один из трех распространенных типов изменения концепции фактически меняет значение ассоциаций, изученных моделью. В эксперименте имитируются три типа изменения концепции на наборе данных Kaggle Credit Card Fraud (284 807 транзакций, уровень мошенничества 0,17%) в 8 последовательных окнах для каждого [9].

Дрейф ковариат. Распределения входных признаков смещаются. Значения V14, V4 и V12 постепенно изменяются на величину до +3,0σ. Модели мошенничества остаются прежними. Мир просто выглядит немного иначе.

Предшествующее изменение. Уровень мошенничества увеличивается с 0,17% до 2,0%. Характеристики остаются неизменными. Мошенничество становится более распространенным.

Дрейф концепции. Знак V14 постепенно меняется для случаев мошенничества в течение 8 временных окон. В итоге транзакции, которые модель научилась помечать как мошеннические, теперь выглядят как законные. Правило IF V14 < −1.5σ → Мошенничество теперь указывает в неверном направлении.

Третий фактор должен вас насторожить в производственной среде. При дрейфе ковариат и априорных данных появляются внешние сигналы. Распределения входных данных смещаются, или показатели мошенничества заметно меняются. Вы можете отслеживать эти изменения независимо. Дрейф концепции не оставляет таких следов. Меняется только то, что означают изученные моделью ассоциации. Вы не узнаете об этом, пока показатель F1 не начнет падать.

Если только кто-то не увидит это первым.

Проблема с первыми тремя показателями

Модель из статьи «Как нейронная сеть научилась самостоятельно определять правила противодействия мошенничеству: нейросимволический эксперимент в области ИИ» в качестве побочного продукта символического слоя выдала три сигнала мониторинга без меток. Идея: если правила изучают закономерности мошенничества, изменения в том, как эти правила срабатывают, должны указывать на то, когда закономерности мошенничества меняются.

Я ожидал, что первый сигнал станет ранним предупреждением. Но этого не произошло.

Проблема специфична для способа обучения этой модели. Все пять начальных значений сошлись между эпохами 3 и 10 (Val PR-AUC: 0,7717, 0,6915, 0,6799, 0,7899, 0,7951), когда температура τ все еще находится в диапазоне от 3,5 до 4,0. При такой температуре активации правил являются мягкими. Каждый входной параметр выдает практически идентичный показатель активации независимо от его фактических характеристик. Проще говоря: правила срабатывали почти одинаково на каждой транзакции, чистой или смещенной. Метрика сходства на почти постоянных векторах почти всегда возвращает 1,000. Первый сигнал срабатывал только в 2 из 5 начальных значений для смещения концепции, и в обоих случаях это было то же окно, что и F1 или более позднее.

Почему высокая температура затрудняет мониторинг

В алгоритме LearnableDiscretizer используется сигмоидная функция, управляемая температурой τ: σ((x − θ) / τ). При τ = 5,0 (эпоха 0) эта сигмоидная функция почти плоская — каждое значение признака приводит к активации, близкой к 0,5, независимо от того, где оно находится относительно изученного порога. По мере приближения τ к 0,1 сигмоидная функция становится более резкой, почти бинарной. Ранняя остановка срабатывает при τ ≈ 3,5–4,0 — до того, как правила полностью кристаллизуются. Результат: векторы активации практически постоянны для всех входных данных, поэтому любая метрика сходства между ними остается близкой к 1,000 даже при действительно изменяющихся моделях мошенничества.

Второй сигнал имел противоположную проблему. Абсолютное изменение вклада любого признака ничтожно мало (значения в диапазоне 0,001–0,005), поскольку сами весовые коэффициенты правил малы на контрольной точке ранней остановки. Проще говоря: сигнал был реальным, но невидимым в том масштабе, в котором мы его измеряли. Фиксированный абсолютный порог в 0,02 никогда не срабатывает.

Вот что представляют собой эти три исходных сигнала:

  • RWSS (Rule Weight Stability Score): косинусное сходство между базовым средним вектором активации правил и текущим. Проще говоря: срабатывают ли правила так же, как и на чистых данных?
  • FIDI (Feature Importance Drift Index): насколько изменился вклад каждой функции в активацию правил по сравнению с базовым уровнем. Проще говоря: стала ли какая-либо конкретная функция более или менее важной для правил?
  • RFR (Rule Firing Rate): какая доля транзакций приводит к срабатыванию каждого правила.

Этот диагноз привел к правильному вопросу. Вместо вопроса «Изменился ли FIDI более чем на X?» правильный вопрос звучит так: «Изменился ли FIDI более чем на X стандартных отклонений от своей собственной истории?»

На этот вопрос есть другой ответ. И ответ — V14.

Метрики: Создание системы обнаружения дрейфа без использования меток.

К первоначальным трем показателям добавились три новых.

Показатель RWSS Velocity измеряет скорость изменения значения за окно: RWSS[w] − RWSS[w−1]. Внезапное падение более чем на 0,03 за окно вызывает тревогу еще до того, как абсолютное значение пересечет пороговое значение. Если RWSS падает на −0,072 за один шаг, это сигнал независимо от исходного значения.

FIDI Z-Score — это тот метод, который действительно сработал. Вместо совершенно нового сигнала, это простое расширение FIDI, использующее нормализацию Z-оценки относительно собственной истории окна признака. Вместо того чтобы спрашивать, пересекает ли абсолютное изменение фиксированный порог, он спрашивает, является ли изменение аномальным относительно того, что делал этот признак. В отличие от традиционных методов обнаружения дрейфа, которые полагаются на входные распределения или выходные метки, этот подход работает исключительно на символическом слое, что означает, что он работает во время вывода, без необходимости использования эталонных данных. Он основан на работах по обучению дифференцируемым правилам, включая ∂ILP [3], FINRule [4], RIFF [5] и нейросимволические списки правил [6], расширяя эти представления с помощью нормализации Z-оценки, а не фиксированных порогов. Вклад V14 в активацию правил во время чистых базовых окон невелик и незначителен. Практически нулевой, стабильный, предсказуемый. Когда начинается дрейф концепции в окне 3, он сдвигается. Незначительно в абсолютном выражении. Но разница составляет 9,53 стандартных отклонения относительно истории, которая сформировалась в стабильные периоды. Это огромная относительная аномалия, и для ее обнаружения не требуется калибровка порогового значения.

Функция PSI для активации правил была разработана для обнаружения смещения распределения в символическом слое до того, как компенсация MLP замаскирует его на выходном уровне. В данном случае она не сработала. Мягкие активации из преждевременно остановленного обучения (τ ≈ 3,5–4,0 в сохраненной контрольной точке) группируются около 0,5, создавая почти равномерные распределения, которые PSI не может различить. Значение PSI_rules = 0,0049 на протяжении всего эксперимента. PSI_rules ни разу не сработала. Она присутствует в коде для случаев, когда доступны модели с полностью кристаллизованными правилами (τ < 0,5). В этом эксперименте она не внесла никакого вклада.

Предполагаемый порядок обнаружения, от самого раннего к самому позднему:

Скорость RWSS → Z-показатель FIDI → PSI (правила) → Абсолютное значение RWSS → F1 (на основе меток)

Вот что произошло на самом деле.

Результаты: что показал каждый показатель

Концептуальный дрейф

Семя Пожары Формулы-1 Пожары RWSS Пожары VEL FIDIZ поджигает Пожары PSIR
42 В3 W4 (1w поздний) W4 (1w поздний) W3 (одновременно)
0 В3 W3 (одновременно)
7 W4 W4 (одновременно) W4 (одновременно) W3 (+1 неделя раньше)
123 В3 W3 (одновременно)
2024 W4 W3 (+1 неделя раньше)

Z-показатель FIDI срабатывает в 5 из 5 седей , всегда в окне 3. F1 срабатывает в окне 3 в трех сетях и в окне 4 в двух. Средняя задержка обнаружения FIDIZ составляет +0,40 окна , что означает, что он опережает F1 в среднем. В сетях 7 и 2024 он срабатывает на одно полное окно раньше, чем F1 отключается. В оставшихся трех сетях он срабатывает одновременно. Он никогда не срабатывает после F1 из-за дрейфа концепции. Ни разу.

Среди всех типов дрейфа, Z-показатель FIDI — единственная метрика, которая обнаружила концептуальный дрейф во всех вариантах начального варианта и ни разу не отстала от показателя F1. Для систем обнаружения мошенничества, не использующих метки для обнаружения дрейфа, это главный результат.

Показатели RWSS и F1 в 8 временных интервалах при дрейфе концепции. Среднее значение RWSS остается на уровне 1,000 в течение W0–W3, затем падает до 0,923 на W4. Среднее значение F1 резко падает на W3. Траектории отдельных семян показаны тонкими линиями.

RWSS срабатывает в 2 из 5 случаев, и в обоих случаях одновременно с F1 или после него. Скорость точно соответствует RWSS, в том же временном окне, каждый раз. PSI при активации правил вообще не срабатывает.

Дрейф концепции против дрейфа ковариат: почему у символического мониторинга есть слепые зоны

Сдвиг ковариат — это ситуация, когда символический слой полностью замолкает.

Все символические метрики: 0 из 5 начальных точек. Ни одного сигнала. Ни одного окна. F1 в конечном итоге срабатывает в 4 из 5 начальных точек на W6 или W7, медленно и с задержкой, и символический слой к этому никак не причастен. Это не тот пробел, который можно устранить с помощью лучшей настройки. Это фундаментальное свойство того, что измеряет символический слой.

Причина механическая. Когда значения V14, V4 и V12 смещаются на +3,0σ, это смещение равномерно распределено по всем образцам. Обучаемый дискретизатор вычисляет пороговые значения относительно данных. Каждый образец по-прежнему попадает примерно в один и тот же пороговый диапазон относительно своих соседей. Правила срабатывают примерно на одинаковой доле транзакций. В схеме активации ничего не меняется. Косинусное сходство средних активаций остается равным 1,0.

Проще говоря: если каждая транзакция изменяется на одинаковую величину, правила всё равно видят ту же относительную картину. Транзакция А была выше порогового значения раньше. Она остаётся выше порогового значения и после. Порядок мошенничества и законности сохраняется. RWSS измеряет именно этот порядок, а не абсолютные значения. Представьте это как прилив, который поднимает все лодки одинаково. Лодки остаются в том же порядке. RWSS измеряет только порядок.

Если дрейф ковариат вызывает опасения в вашей системе, вам потребуется отдельный монитор входного пространства: PSI для необработанных признаков, тест KS для V14 или проверка качества данных. Символический слой вам в этом не поможет. Мониторинг дрейфа в символическом слое имеет одно слабое место — это сдвиг ковариат.

Показатели RWSS и F1 в 8 окнах с учетом дрейфа ковариат. Показатель RWSS остается на уровне 1,000 во всех окнах. Среднее значение F1 постепенно снижается, начиная со окна W2, и пересекает пороговое значение тревоги вблизи окон W6–W7.

Предварительный дрейф

FIDIZ срабатывает в 5 из 5 начальных точек, всегда в точке W3. Но предыдущий дрейф приводит к тому, что F1 срабатывает в точке W0 (начальная точка 123) или W2 (начальная точка 2024) в двух начальных точках, где F1 вообще срабатывает. Задержка обнаружения FIDIZ при предыдущем дрейфе: −2,00 окна. Он срабатывает через два окна после F1.

Это не проблема калибровки. FIDIZ требуется как минимум 3 чистых окна для построения истории, прежде чем его Z-показатель станет значимым. Предшествующий дрейф, вызывающий немедленный скачок уровня мошенничества, уже виден в F1 еще до того, как FIDIZ сможет начать вычисления. Скользящий счетчик уровня мошенничества всегда будет быстрее в этом случае.

Показатели RWSS и F1 в 8 окнах с учетом предыдущего дрейфа. RWSS остается на уровне 1,000 на протяжении всего периода. Среднее значение F1 находится в диапазоне 0,63–0,65, оставаясь выше порогового значения тревоги для всех 8 окон.

Демонстрация оповещений: Окно 3

Вот тот самый момент, к которому вся система и была создана.

Система DriftAlertSystem создается один раз из набора данных для валидации сразу после обучения. Она хранит базовый уровень. Затем метод .check() вызывается для каждого нового окна. Никаких меток. Никакого переобучения. Это обнаружение дрейфа только на этапе вывода: система считывает только символический слой и ничего больше.

Зародыш 42, концептуальный дрейф, 8 окон:

Окно 0: severity=none RWSS=0.999 fired=False Окно 1: severity=none RWSS=0.999 fired=False Окно 2: severity=none RWSS=0.999 fired=False Окно 3: severity=warning RWSS=1.000 fired=True ← Здесь срабатывает FIDI Z Окно 4: severity=critical RWSS=0.928 fired=True ← Абсолютное подтверждение RWSS Окно 5: severity=warning RWSS=0.928 fired=True Окно 6: severity=warning RWSS=0.928 fired=True Окно 7: severity=warning RWSS=0.928 fired=True

В окне 3 значение RWSS равно ровно 1,000. Схема активации полностью идентична базовой. Вероятности выходных сигналов не изменились. Ничего в стандартном стеке мониторинга не сдвинулось с места.

И срабатывает оповещение с уровнем серьезности WARNING.

Причина в V14. Его Z-показатель равен −9,53 . Это означает, что вклад V14 в активацию правил сместился почти на 10 стандартных отклонений ниже базового уровня, установленного во время чистых окон. Выход модели пока об этом не знает. Многослойный перцептрон компенсирует это. Но путь правила компенсировать не может. Он был обучен выражать фиксированную символическую связь. Он кричит.

Спустя одно окно MLP перестаёт удерживать позицию. RWSS падает до 0,928. Скорость снижается на 0,072 за один шаг. Серьезность повышается до КРИТИЧЕСКИ ВАЖНОЙ.

═══════════════════════════ ════════════════════════════ ПРЕДУПРЕЖДЕНИЕ О ДРИФТЕ | Степень опасности: КРИТИЧЕСКАЯ. Самый ранний сигнал: СКОРОСТЬ ════════════════════════════════════════════════════════ ── Слой раннего предупреждения ─────────────────────────────── Скорость RWSS: -0.0720 [пороговое значение -0.03] ⚠ Сработало Z-показатель FIDI: ⚠ Сработало V14 Z = -9.53 PSI (правила): 0.0049 [умеренный≥0.10] стабильный ── Подтвержденный слой ───────────────────────────────── Абсолютное значение RWSS: 0.9276 [пороговое значение 0.97] ⚠ СРАБАТЫВАЕТСЯ Правила перестали работать: 0 OK Среднее изменение RFR: -0.001 Рекомендуемое действие: → Немедленно переобучить. Не развертывать. ══════════════════════════════════════════════════

В отчете VELOCITY указан как самый ранний уровень. Это порядок приоритетов во внутренней логике. В фактическом временном окне FIDI Z-Score сработал на одно окно раньше, на уровне W3. Предупреждение W3 — это более раннее оповещение, которое видят люди. То, которое дает вам время действовать до того, как сработает критическое предупреждение.

Сетка 5×3, показывающая временные шкалы оповещений для 5 начальных точек с учетом ковариат, априорного распределения и дрейфа концепции. Зеленые круги отмечают оповещения RWSS; оранжевые квадраты — оповещения F1. Зеленые круги появляются только в столбце «Концепция» для начальных точек 7 и 42, на уровне W4, на один шаг правее оповещения F1.

Почему показатель FIDI Z-Score видит это раньше, чем Формула-1?

В модели два пути протекают параллельно от одного и того же входного сигнала.

На пути MLP приходится 88,6% конечного результата (среднее значение α = 0,886 по всем начальным значениям; α — это весовой коэффициент обучаемой смеси; 0,886 означает, что нейронная сеть выполняет 88,6% работы по прогнозированию, а символические правила — оставшиеся 11,4%). Когда дрейф концепций постепенно меняет отношение V14 к меткам мошенничества, MLP, обученный на 284 000 транзакциях, частично поглощает это изменение. Его внутренние представления смещаются. Вероятности выходных данных остаются примерно стабильными, по крайней мере, в течение одного окна. Это компенсация со стороны MLP.

Путь правила составляет 11,4%. Он был обучен выражать знания MLP в символической форме: V14 ниже порогового значения означает мошенничество [2]. Эта связь фиксирована и очевидна. Когда V14 меняет знак для случаев мошенничества, вклад правила в V14 не корректируется. Оно просто перестает работать. Биты активации для V14 меняют направление. Правило начинает срабатывать на неправильных транзакциях.

Нейронная сеть адаптируется. Символический слой — нет. И именно поэтому символический слой первым обнаруживает дрейф.

Именно эту асимметрию и использует Z-показатель FIDI.

Абсолютное изменение вклада V14 незначительно (значения в диапазоне от 0,001 до 0,005), поскольку весовые коэффициенты правил малы на контрольной точке ранней остановки. Фиксированный абсолютный порог никогда его не зафиксирует.

Тепловая карта FIDI для оценки дрейфа концепции по 7 признакам (V14, V12, V4, V11, V10, V17, V3) и 8 временным окнам. Все ячейки имеют однородный серый цвет, что указывает на практически нулевые абсолютные значения FIDI по всем признакам и всем окнам.

Но история V14 в чистых окнах столь же стабильна. Когда изменение концепции приводит к сдвигу в окне 3, Z-показатель составляет −9,53. Та же закономерность: почти нулевое абсолютное изменение, экстремальный относительный сдвиг.

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

Но это справедливо только для одного из трех типов дрифта. С двумя другими ситуация совершенно иная.

Чего эта система не может сделать

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

Дрейф ковариат — это полная слепая зона. 0 из 5 начальных значений. Механизм объяснен в разделе «Результаты» выше. Используйте PSI для необработанных признаков или тест Колмогорова-Смирнова для V14.

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

PSI для активаций правил не дал никакого результата. PSI_rules = 0,0049 во всех окнах каждого начального значения. Мягкие активации из раннеостановленного обучения группируются около 0,5, а PSI для почти равномерных распределений нечувствителен независимо от того, что происходит на самом деле. Эта метрика присутствует в коде и может работать с полностью отожженными моделями (τ < 0,5). В этом эксперименте она не показала никаких результатов.

Пять начальных точек — это лишь доказательство, а не подтверждение. FIDIZ критикует W3 за отклонение концепции от заданных параметров на всех пяти начальных точках. Это последовательно и обнадеживает. Но это не то же самое, что надежность в производственной среде на разных наборах данных, при разных типах мошенничества и степени отклонения, которые вы не тестировали. Пять начальных точек — это отправная точка, а не вывод. Для убедительных заявлений о внедрении необходимо больше начальных точек, больше конфигураций отклонения и проверка в реальных условиях.

Краткий обзор результатов

Закономерность наиболее очевидна, если сначала изложить ее простым языком. Представьте это как систему раннего предупреждения о дрейфе концепции с тремя различными режимами в зависимости от того, что меняется. Дрейф ковариат: символический слой ничего не обнаружил, F1 обнаружил это медленно. Предварительный дрейф: символический слой сработал после F1, а не до него. Дрейф концепции: Z-оценка FIDI сработала в каждом исходном ядре, всегда на уровне F1 или раньше, в среднем на +0,40 временных интервалов опережения.

Тип дрейфа F1 уволили RWSS уволена FIDIZ уволен FIDIZ среднее запаздывание
Ковариата 4/5 0/5 0/5
Прежний 2/5 0/5 5/5 −2.00 Вт (поздняя)
Концепция 5/5 2/5 5/5 +0,40 Вт (раннее начало)

Задержка = временные окна до срабатывания сигнала F1. Положительное значение = FIDIZ срабатывает первым. Отрицательное значение = F1 срабатывает первым.

Трехпанельный график, сравнивающий RWSS и F1 с учетом ковариат, априорного распределения и концептуального дрейфа. Левая панель: RWSS – плоская синяя линия, F1 – медленно снижающаяся красная линия. Центральная панель: RWSS – плоская янтарная линия, F1 – стабильная. Правая панель: RWSS резко падает на W4, F1 рушится на W3.

Строительство

Система предназначена для использования в производственной среде, а не только в ноутбуке.

# Один раз, сразу после обучения X_val_t = torch.FloatTensor(X_val) alert_system = DriftAlertSystem.from_trained_model(model, X_val_t, feature_names) alert_system.save(«results/drift_alert_baseline_seed42.pkl») # Каждый запуск оценки — еженедельно, ежедневно, для каждой партии alert_system = DriftAlertSystem.load(«results/drift_alert_baseline_seed42.pkl») alert = alert_system.check(model, X_this_week) if alert.fired: print(alert.report())

Нет меток. Нет переобучения. Нет инфраструктуры, кроме сохранения файла pickle рядом с контрольной точкой модели. Вызов .check() вычисляет скорость RWSS, Z-оценку FIDI, PSI по активациям и абсолютное значение RWSS в указанном порядке, используя PyTorch [7] и scikit-learn [8]. Уровень серьезности повышается от «нет» до «предупреждение» и «критический» в зависимости от количества срабатываний и того, насколько упал RWSS.

Все три вычисления для системы раннего предупреждения занимают всего несколько строк кода.

Скорость RWSS: скорость изменения за окно.

def compute_rwss_velocity(rwss_history: List[float]) -> float: if len(rwss_history) < 2: return 0.0 return float(rwss_history[-1] - rwss_history[-2]) # Alert fires when drop > 0.03 per window vel_fired = rwss_velocity < -0.03

Z-показатель FIDI: нормализация аномалии вклада признаков относительно истории.

def compute_fidi_zscore(fidi_history, current_fidi, min_history=3): if len(fidi_history) < min_history: return {k: 0.0 for k in current_fidi} z_scores = {} for feat_idx, current_val in current_fidi.items(): history_vals = [h.get(feat_idx, 0.0) for h in fidi_history] mean_h = np.mean(history_vals) std_h = np.std(history_vals) z_scores[feat_idx] = (current_val - mean_h) / std_h if std_h > 1e-8 else 0.0 return z_scores # Alert fires when any feature Z > 2.5 fidi_z_fired = any(abs(z) > 2.5 for z in z_scores.values())

PSI при активации правил: сдвиг распределения в символическом слое (включено для полноты картины).

def compute_psi_rules(baseline_acts, current_acts, n_bins=10): bins = np.linspace(0, 1, n_bins + 1) psi_per_rule = [] for r in range(baseline_acts.shape[1]): b = np.histogram(baseline_acts[:, r], bins=bins)[0] + 1e-6 c = np.histogram(current_acts[:, r], bins=bins)[0] + 1e-6 b /= b.sum(); c /= c.sum() psi_per_rule.append(float(np.sum((c — b) * np.log(c / b)))) return np.mean(psi_per_rule)

V14: Три статьи, одна тематическая подборка

Это та часть, которую я не планировал. Но оказалось, что именно поведение V14 при дрифте связывает все три статьи воедино.

Управление нейронными сетями с помощью правил предметной области: я написал правила для больших объемов транзакций и аномальных норм PCA. Разумные интуитивные предположения. Ничего общего с версией V14.

Как нейронная сеть научилась самостоятельно определять правила обнаружения мошенничества: модель всё равно нашла V14. Имея 30 анонимизированных признаков и не получая никаких указаний, градиент остановился на признаке с наибольшей абсолютной корреляцией с мошенничеством. Дважды, при двух независимых начальных значениях.

В этой статье я намеренно нарушил работу версии V14. Я постепенно, в течение 8 периодов, менял её значение для случаев мошенничества. И показатель FIDI Z-Score зафиксировал обвал на уровне −9,53 стандартных отклонений, в то время как RWSS оставался на уровне 1,000, а F1 не изменился.

Абсолютные значения FIDI V14 за 8 временных окон в условиях отклонения от концепции. Средняя линия (темно-зеленая) остается практически неизменной, близкой к нулю. Порог срабатывания оповещения FIDI на уровне 0,20 показан пунктирной линией значительно выше данных.

Одна и та же функция, три разные роли: игнорируется, обнаруживается, а затем отслеживается как первый фактор, который дает сбой. Эта согласованность не была создана искусственно. Это то, что постоянно получается в результате воспроизводимой многоэтапной оценки на согласованном наборе данных.

Что с этим делать?

Используйте FIDI Z-Score для обнаружения дрейфа концепций без меток. Он срабатывает в 5 из 5 начальных точек, требует всего 3 окна истории, никогда не срабатывает после F1 и не требует меток. Поддерживайте пороговое значение Z-score на уровне 2,5 и минимальное количество окон истории на уровне 3.

Добавьте отдельный монитор входного пространства для отслеживания дрейфа ковариат. Используйте PSI для исходных признаков или тест Колмогорова-Смирнова для критически важных признаков, таких как V14. Символический слой не реагирует на сдвиги распределения, сохраняющие относительный порядок активации.

Используйте скользящий счетчик частоты мошенничества для учета предыдущего отклонения. FIDIZ структурно не может сработать до W3. Счетчик частоты на основе меток срабатывает в W0.

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

Одно окно раннего предупреждения действительно существует. Будет ли это неделя или один день, зависит от частоты начисления баллов. Для большинства групп по борьбе с производственным мошенничеством разница между плановой и экстренной переподготовкой измеряется именно этими единицами.

Три вещи, которые вас заметят, если вы воспользуетесь системой раннего предупреждения Concept Drift.

Период «слепого режима» из 3 окон. В течение первых 3 окон после развертывания у FIDIZ нет истории для работы. В это время вы осуществляете мониторинг только с помощью RWSS и RFR. Запланируйте это заранее.

Мягкие активации заглушат PSI_rules. Если ваша лучшая контрольная точка достигается при τ ≥ 1,0 (что происходит всякий раз, когда срабатывает ранняя остановка до завершения обучения), активации правил группируются около 0,5, и PSI_rules возвращает шум. Проверьте τ в сохраненной контрольной точке. В этом эксперименте τ все еще составляло 3,5–4,0 на этапе сходимости. Именно поэтому PSI_rules оставался незаметным на протяжении всего эксперимента.

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

Закрытие

Три статьи. Одна и та же тема постоянно повторялась.

Управление нейронными сетями с помощью правил предметной области: я это проигнорировал. Как нейронная сеть научилась самостоятельно выявлять мошеннические схемы: градиент это обнаружил. Статья 3: Когда произошла ошибка, символический слой заметил это раньше, чем выходной слой.

Эксперимент имеет конкретную, честную цель: Z-показатель FIDI обнаруживает дрейф концепций в 5 из 5 исходных данных, иногда за одно окно до F1, никогда после него, полностью без меток. Для дрейфа ковариат он работает вслепую. Для дрейфа предшествующих данных он работает с опозданием. Это не оговорки, добавленные в конце, чтобы смягчить утверждение. Это результаты, которые точно указывают, где этот метод следует использовать, а где нет.

Нейросимволическая модель предоставляет два канала. Многослойный перцептрон (MLP) лучше справляется с прогнозированием. Символический слой лучше определяет, когда прогнозирование может оказаться неверным. Они не дублируют друг друга. Они отслеживают разные аспекты одной и той же проблемы.

Многослойный перцептрон (MLP) компенсирует это. Символический слой этого сделать не может. В этом его слабость. В этом эксперименте это также оказалось его самым ранним предупреждением.

Ряд

Статья Тема
Гибридное нейросимволическое обнаружение мошенничества: управление нейронными сетями с помощью правил предметной области. Внедрение правил: кодирование знаний предметной области в функцию потерь.
Как нейронная сеть выучила собственные правила мошенничества: нейросимволический эксперимент в области искусственного интеллекта Обучение правилам: дифференцируемая индукция IF-THEN, V14 найден без подсказок.
Нейросимволическое обнаружение мошенничества: выявление концептуального дрейфа до падения F1 (без использования меток) Обнаружение дрейфа: Z-показатель FIDI как система раннего предупреждения без использования меток.

Раскрытие информации

Данная статья основана на независимых экспериментах с использованием общедоступных данных (набор данных Kaggle о мошенничестве с кредитными картами, CC-0 Public Domain) и инструментов с открытым исходным кодом (PyTorch, scikit-learn). Не использовались никакие собственные наборы данных, ресурсы компаний или конфиденциальная информация. Результаты и код полностью воспроизводимы в описанном виде. Мнения и выводы, выраженные здесь, являются моими собственными и не отражают позицию какого-либо работодателя или организации.

Ссылки

[1] Даль Поццоло, А. и др. (2015). Калибровка вероятности с помощью недовыборки для несбалансированной классификации. IEEE SSCI. Набор данных: https://www.kaggle.com/datasets/mlg-ulb/creditcardfraud (CC-0)

[2] Александр, Э.П. (2026). Гибридное нейросимволическое обнаружение мошенничества: управление нейронными сетями с помощью правил предметной области. К науке о данных. https://towardsdatascience.com/hybrid-neuro-symbolic-fraud-detection-guiding-neural-networks-with-domain-rules/

[3] Эванс, Р., и Грефенстетте, Э. (2018). Изучение объяснительных правил на основе зашумленных данных. JAIR, 61, 1–64. https://arxiv.org/abs/1711.04574

[4] Вольфсон, Б., и Акар, Э. (2024). Дифференцируемое индуктивное логическое программирование для обнаружения мошенничества. arXiv:2410.21928. https://arxiv.org/abs/2410.21928

[5] Мартинс, Дж. Л., Браво, Дж., Гомес, А. С., Соарес, К., и Бизарро, П. (2024). RIFF: Построение правил обнаружения мошенничества на основе деревьев решений. В RuleML+RR 2024. arXiv:2408.12989. https://arxiv.org/abs/2408.12989

[6] Сюй, С., Вальтер, Н.П., и Врикен, Дж. (2024). Нейросимволические списки правил. arXiv:2411.06428. https://arxiv.org/abs/2411.06428

[7] Пашке, А. и др. (2019). PyTorch: Высокопроизводительная библиотека глубокого обучения в императивном стиле. NeurIPS 32. https://pytorch.org

[8] Педрегоса, Ф. и др. (2011). Scikit-learn: машинное обучение на Python. JMLR, 12, 2825–2830. https://scikit-learn.org

[9] Гама, Дж. и др. (2014). Обзор адаптации дрейфа концепции. ACM Computing Surveys, 46(4). https://dl.acm.org/doi/10.1145/2523813

Код: https://github.com/Emmimal/neuro-symbolic-drift-detection

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

Источник: towardsdatascience.com

ОСТАВЬТЕ СВОЙ КОММЕНТАРИЙ

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

галерея

ideipro logotyp
Человек и робот пылесосят с помощью VR, концепция будущего технологий.
Человек в красном жилете готовит подводный дрон на причале у озера.
Мужчина в светлом пиджаке у стены с ярким геометрическим узором, офисная обстановка.
Образовательная диаграмма о третьем законе Ньютона с примерами и пояснениями.
ideipro logotyp
Новая методика структурированных подсказок от Meta значительно повышает эффективность работы юристов-практиков при проверке кода, в некоторых случаях до 93%.
Лунный ровер на поверхности Луны с солнечными панелями исследует лунный ландшафт.
Человек у кафедры выступает с речью, микрофон, темный фон.
Image Not Found
ideipro logotyp

Лучшие чехлы для Samsung Galaxy S26 (2026): S26, S26+ и S26 Ultra

Защитите свой новый телефон Samsung с помощью этих чехлов и защитных пленок для экрана. Источник: www.wired.com

Апр 5, 2026
Человек и робот пылесосят с помощью VR, концепция будущего технологий.

Работники, выполняющие разовые заказы и обучающие человекоподобных роботов на дому.

MITTR | Adobe Stock Когда Зевс, студент-медик, живущий в горном городе в центральной Нигерии, возвращается в свою студию после долгого дня в больнице, он включает кольцевую лампу, прикрепляет свой iPhone ко лбу и начинает записывать себя. Он…

Апр 5, 2026
Человек в красном жилете готовит подводный дрон на причале у озера.

Рекомендуемое видео: Программирование для подводной робототехники

Стажерка из лаборатории Линкольна Айви Манке разработала и протестировала алгоритмы, помогающие водолазам и роботам ориентироваться под водой. Смотрите видео Воспроизвести видео Во время летней стажировки в лаборатории имени Линкольна при Массачусетском технологическом институте Айви Манке, студентка бакалавриата…

Апр 5, 2026
Мужчина в светлом пиджаке у стены с ярким геометрическим узором, офисная обстановка.

Новый метод может повысить эффективность обучения LLM.

Используя свободное вычислительное время, исследователи могут удвоить скорость обучения модели, сохраняя при этом точность. ↓ Скачать подпись к изображению : «Поскольку рассуждения становятся основной рабочей нагрузкой, определяющей спрос на вывод информации, метод TLT Цинхао [Ху] — это…

Апр 5, 2026

Впишите свой почтовый адрес и мы будем присылать вам на почту самые свежие новости в числе самых первых