Синтетичні табличні дані: навчання моделей CTGAN і TabDDPM

Рідкісні класи в табличних даних заважають моделі навчатися, і прогноз провалюється саме там, де він найважливіший. Ми навчаємо генеративні моделі на даних замовника і синтезуємо відсутні приклади — під ключ, зі звітами про якість і придатність вибірки. Результат — стійкий прогноз на рідкісних сценаріях.
Часті запитання

Чому генерація табличних даних ламається на рідкісних класах

Генерація табличних даних ламається не на обсязі, а на хвостах розподілу. Дисбаланс класів у вибірці вигляду 99:1 — звична справа: модель впевнено відтворює більшість і завчає ті десятки рядків, якими представлений рідкісний клас.

За метриками схожості та гістограмами цього не видно — провал вилазить пізніше, коли на синтетиці навчають класифікатор або скорингову модель.

Умовна генерація за класом (підхід CTGAN і дифузійні моделі) допомагає рівно доти, доки всередині класу є статистика. Коли рідкісних записів десятки, дискримінатор запам'ятовує їх і видає майже дослівні копії вихідних рядків — перепакування даних, а не нові спостереження. Межу рішення там, де прикладів для неї немає, не відновлює й дифузія.

Пропуски та викиди в даних додають другий шар втрат. Заповнення середнім стирає сам факт відсутності значення, а він інформативний: «кредитна історія не запитана» — це ознака, а не дірка. Обрізання викидів звужує хвости, і модель втрачає саме ті випадки, заради яких її будують.

Знеособлення персональних даних — третій обмежувач: комбінація квазіідентифікаторів часто унікальна, і синтетичний рядок залишається прив'язаним до конкретної людини, а шум, що захищає приватність, б'є найсильніше по рідкісних класах.

Копіювання рядків задачу не розв'язує: обсяг зростає, інформації не додається, а модель стає самовпевненою на дублях. Розбираємо, як це закривається умовною генерацією, явними індикаторами пропусків і контролем приватності.

Ефект від синтезу табличних даних у задачах прогнозу

Синтетичні дані для машинного навчання дають ефект там, де реальної вибірки не вистачає: рідкісний клас, пропуски, неповні сегменти.

Нижче — що ми перевіряємо на прийманні разом із замовником, щоб аугментація навчальної вибірки давала вимірюваний результат, а не гарне число у звіті.

Рідкісні класи та пропуски

  • Частка рідкісного класу в навчанні доводиться до проєктної — загальна метрика зростає не за рахунок мажоритарного класу.
  • Якість моделі на рідкісному класі вважаємо окремо: повнота й точність за ним до і після синтезу, на одному й тому самому розбитті.
  • Пропуски відновлюємо за розподілом ознаки, а не середнім за стовпцем — інакше генератор тиражує зміщення.
  • Синтетичні рядки не потрапляють до контрольної частини: перевірка йде на реальних записах, яких модель не бачила.

Відтворюваність і контроль приватності

  • Прогін іде із зафіксованого зерна та версії конфігурації — навчання повторюється через місяць, а не «приблизно схоже».
  • Генератори CTGAN і табличні дифузійні моделі порівнюємо на одному протоколі та обираємо за виміряним ефектом.
  • Приватність перевіряємо атакою на відновлення: близькість синтетики до реальних рядків, частка прямих збігів, поведінка на малих підгрупах.
  • Для чутливих даних — ізольований контур, доступи за ролями, журнал звернень; підсумок фіксуємо протоколом із межами застосовності.

Методи синтезу: правила, статистика, генеративні моделі

Метод синтезу добирається під типи ознак і під те, які залежності між колонками потрібно зберегти. Правила маскування ознак і статистичне копіювання з шумом дають передбачуваний результат на невеликих наборах, коли зв'язки задані вручну і їх небагато.

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

Варіант Коли підходить Обмеження
Правила та маскування ознак Змішані типи, потрібен контроль над значеннями й відтворюваність Не переносить приховані зв'язки між колонками
Статистичне копіювання з шумом Числові ознаки, швидкий прогін на малих вибірках Розмиває рідкісні категорії та хвости розподілів
Змагальні моделі синтезу Складні взаємодії, перекіс класів, багато категорій Навчання нестабільне, потрібен підбір режимів
Дифузійні моделі синтезу таблиць Змішані типи, висока точність розподілів Тривале навчання, чутливість до обсягу вибірки

Як вибрати варіант під задачу

Орієнтуємося на склад даних: коли частка категоріальних ознак перевищує половину, змагальні підходи CTGAN тримають спільні розподіли стійкіше, а дифузійні TabDDPM точніше зберігають рідкісні значення.

На вибірках меншого обсягу розподіл «пливе» в обох, і тоді вигідніше статистичне копіювання з шумом, а рідкісні класи додаються правилами маскування.

Обмеження за типами ознак теж жорстке: дати й текстові поля потребують окремої попередньої обробки, інакше модель видає формально валідні, але безглузді значення.

Як відбувається навчання моделі на даних замовника

Аудит даних замовника йде першим: дивимося обсяг, типи колонок, частку пропусків, рідкісні категорії та зв'язок ознак із цільовою змінною. Уже на цьому кроці видно, де синтетика повторить зміщення вихідної вибірки, а де даних не вистачить для стійкого навчання.

Аудит і постановка задачі

Фіксуємо, які властивості потрібно зберегти: розподіли числових колонок, спільні частоти категорій, логічні обмеження на кшталт «дата закриття не раніше дати відкриття». Далі узгоджуємо метрики приймання — без них суперечка про якість синтетики переходить у суб'єктивну площину.

  1. Розмічаємо колонки: числові, категоріальні, дати й службові ідентифікатори, які в синтез не йдуть.
  2. Формуємо відкладну вибірку для перевірки — вона не бере участі в навчанні й залишається точкою порівняння до кінця робіт.
  3. Навчаємо генеративну модель на підготовлених даних, окремо за сегментами, якщо розподіли всередині таблиці неоднорідні.
  4. Налаштовуємо параметри синтезу: глибину моделі, число епох, співвідношення класів. Рідкісні категорії балансуємо вручну, інакше модель їх не відтворює.
  5. Оцінюємо якість синтетики: порівнюємо розподіли, перевіряємо збереження кореляцій між ознаками.
  6. Передаємо модель і звіт: скрипти навчання, конфігурацію, правила перенавчання при надходженні нових даних.

Перевірка результату на відкладеній вибірці

Приймання йде не за «схожістю» рядків. Контрольна модель навчається на синтетиці й перевіряється на реальній відкладеній вибірці: якщо розрив у якості з моделлю на вихідних даних не виходить за узгоджений поріг, партія приймається. Інакше повертаємося до налаштування параметрів синтезу, а не переписуємо постановку задачі.

Артефакти синтезу: модель, схема ознак, звіти

Синтез табличних даних цінний не результатом у ноутбуці, а набором артефактів, які ваша команда запускає, перевіряє й донавчає без нас. Передаємо не «модель на словах», а відтворюваний комплект: від ваг і схеми ознак до звіту про якість і правил перенавчання.

  • Ваги навченої моделі синтезу з контрольною сумою, описом режиму навчання та зафіксованим середовищем.
  • Схема ознак і метадані: типи колонок, допустимі діапазони, рівні категорій, правила обробки пропусків і рідкісних значень.
  • Звіт про якість синтетичних даних — за кожною ознакою та за спільними розподілами.
  • Регламент перенавчання моделі: тригери, обсяг вибірки, порядок перевірки перед викаткою.
  • Документація щодо моделі синтезу: архітектура, гіперпараметри, обмеження застосовності, відомі слабкі місця.
  • Скрипти генерації та навчання — запускаються однією командою на вашому стенді.
  • Діагностика приватності: перевірка, що за синтетикою не можна відновити рядки навчальної вибірки.

Що входить у звіт про якість

Порівнюємо синтетику з вихідними даними за маргінальними та парними розподілами, часткою унікальних рядків і збігом часток категорій.

Окремо рахуємо метрики близькості та роздільність: якщо модель-розрізнювач легко відрізняє синтетику від реальних рядків, генератор повертається на доопрацювання.

Кожна метрика йде з базовим значенням, щоб під час наступного перенавчання було видно деградацію, а не абсолютне число.

Як передаємо модель і регламент перенавчання

Комплект розгортається у вашому контурі: інференс, моніторинг дрейфу вхідних даних і скрипт перенавчання. У регламенті зазначено, які зсуви у схемі ознак або падіння метрик запускають перенавчання, хто його ініціює та за якими критеріями приймається нова версія. Так модель синтезу живе як звичайний сервіс, а не як разовий експеримент.

Кейс: відновили баланс класів у реєстрі звернень

Реєстр звернень клієнтського сервісу за півтора року — близько 400 тисяч записів, і клас «відмова під час списання» займав у ньому 0.7% рядків.

Модель на такому розподілі фактично підлаштовувалася під переважний клас: повнота за рідкісним класом трималася на 0.12, і саме ці пропуски найчастіше доходили до бойового контуру.

Вихідний стан реєстру

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

Ручне розмічання рідкісних випадків упиралося в частоту самої події — набрати статистично значущий обсяг за розумний строк не вдавалося.

Що змінилося після синтезу вибірки

Рідкісний клас досинтезували моделлю CTGAN з контролем спільних розподілів за сумою, каналом звернення, типом операції та стажем клієнта.

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

Частка рідкісного класу в навчальній вибірці зросла з 0.7% до 15%, при цьому розходження розподілів ознак із вихідними залишилося в межах статистичної похибки.

Повнота за рідкісним класом піднялася з 0.12 до 0.71, кількість пропущених відмов на тесті скоротилася більш ніж у п'ять разів, хибні спрацювання зросли на 1.5 відсоткового пункту. Клас відмов, який раніше виявлявся вже після списання, тепер відсікається до застосування операції.

Чим змагальний синтез таблиць відрізняється від дифузійного

Обидва сімейства розв'язують одну задачу — генерація табличних даних, але механіка різна. Змагальний синтез навчає генератор проти розрізнювальної моделі, дифузійний відновлює таблицю з послідовно зашумленого стану. Звідси й практичні розходження: у стійкості, швидкості та поведінці на змішаних ознаках.

Стійкість навчання моделі — головна відмінність. Змагальна пара схильна до колапсу: генератор швидко сходиться на вузькому наборі правдоподібних рядків і втрачає рідкісні категорії.

Лікується це підбором співвідношення кроків навчання мереж, штрафами за різноманіття та контролем розподілів, але майже завжди потребує кількох ітерацій.

Дифузійна схема навчається за фіксованою метою відновлення, тому крива втрат рівніша й менше залежить від балансу двох мереж. Плата — час: на кожен рядок іде багато кроків зворотного процесу. Змагальний генератор видає рядок за один прохід, тому великий масив збирається за хвилини.

На змішаних ознаках розрив помітніший. У таблиці сусідять числа, категорії, дати й пропуски, і змагальна модель частіше породжує неможливі поєднання на кшталт віку 12 років при стажі 20.

Дифузія обробляє кожен тип своїм шумовим процесом і маскою пропусків, тому краще тримає спільні залежності.

Відповідь на питання, який метод синтезу вибрати, залежить не від моди, а від вимог: частка рідкісних категорій, важливість спільних залежностей, обсяг і частота генерації.

Коректне порівняння підходів до генерації — навчити обидва сімейства на одній вибірці й подивитися, скільки рядків відбраковується правилами та наскільки якість моделі на синтетиці збігається з якістю на реальних даних.

Часті технічні сумніви щодо синтетичних вибірок

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

У синтетику потраплять реальні клієнти?

Генератор навчається на розподілах, а не зберігає рядки: на виході — комбінації значень, яких у вихідній вибірці не було.

Приватність синтетичних даних перевіряємо окремим кроком — вважаємо близькість кожного рядка до найближчого реального запису й відбраковуємо все, що підійшло ближче за узгоджений поріг.

Рідкісного класу замало для навчання

Умовні генератори (CTGAN, TabDDPM) розмножують рідкісний клас за міткою, а не копіюванням одиничних прикладів — інакше модель вивчає шум.

Цільове співвідношення класів фіксуємо заздалегідь, а якість перевіряємо навчанням на синтетиці з оцінюванням на реальних даних саме за рідкісним класом.

Змішані типи ознак зламають генератор?

Неперервні ознаки приводимо до спільного вигляду, категоріальні кодуємо, пропуски відтворюємо як окремий сигнал. Зворотне перетворення повертає типи, діапазони та допустимі значення колонок — вибірку підставляємо в наявний конвеєр без ручного очищення.

Дані дрейфують — синтетика застаріє

Розподіли дрейфують: змінюються тарифи, канали, поведінка. Синтетику перезбираємо за розкладом, розходження відстежуємо за колонками й зрізами та перенавчаємо генератор, щойно він відходить від поточних даних. Дрейф фіксуємо метриками раніше, ніж він проявиться в якості моделі.

Обговоримо задачу: з чого починається робота над синтезом

Щоб повернутися з оцінкою та планом робіт, а не загальними словами, нам потрібен мінімум контексту про дані й про те, як результат використовуватиметься.

Чек-лист нижче закриває підготовку даних до старту за одну-дві години з боку замовника — зате відразу видно, де синтез дасть ефект, а де розумніше залишитися на реальній вибірці.

  • Цільова задача: що саме прогнозуємо або генеруємо і яка метрика вважається успіхом.
  • Вихідне вивантаження за доступний період — CSV, Parquet або експорт із сховища.
  • Опис колонок: типи, одиниці вимірювання, допустимі діапазони, які поля конфіденційні.
  • Рідкісні класи та зрізи: де даних об'єктивно не вистачає — головний кандидат на досинтез.
  • Обмеження: вимоги до знеособлення, заборона на винесення даних за ваш контур.
  • Точка застосування: навчання моделі, тестовий контур, звітність або навантажувальна вибірка.

Далі ми профілюємо вибірку: частки рідкісних категорій, кореляції, пропуски, зміщення за періодами.

Від цього залежить вибір підходу — генеративно-змагальна схема або дифузійна модель, — і схема перевірки: порівняння розподілів за колонками, збереження зв'язків між ознаками, контроль ризику відтворення реальних записів.

Опишіть задачу будь-яким зручним способом — обговоримо задачу синтезу даних предметно. Якщо плануєте замовити розробку AI-рішення під свій контур, почнемо з розбору цих вступних даних і повернемося з планом робіт та оцінкою строків.

Напрямки AI-розробки

Останні роботи

  • Розробка сайту компанії B2B ADVANCE
    Розробка сайту компанії B2B ADVANCE
    1542
  • Розробка веб-додатків для компанії FEEDME
    Розробка веб-додатків для компанії FEEDME
    1393
  • Розробка веб-сайту для компанії БЕЛФІНГРУП
    Розробка веб-сайту для компанії БЕЛФІНГРУП
    1081
  • Розробка інтернет магазину для компанії FURNORO
    Розробка інтернет магазину для компанії FURNORO
    1368
  • Розробка логотипу компанії B2B Advance
    Розробка логотипу компанії B2B Advance
    815
  • Розробка веб-додатків для компанії Enviok
    Розробка веб-додатків для компанії Enviok
    1139