Машинний пошук аномалій в поведінці інтернет-магазинів і покупців

<img src=«habrastorage.org/files/7d4/9e8/8b4/7d49e88b474c4a3a8661b24ef21a2837.jpg» alt=«image» alt text"/>
Якийсь час назад ми підключили модуль машинного навчання до системи, яка захищає платежі та перекази в Яндекс.Гроші від шахрайства. Тепер вона розуміє, коли відбувається щось підозріле, навіть без явних інструкцій у налаштуваннях.
У статті я розповім про методики і складнощі пошуку аномалій в поведінці покупців і магазинів, а також про те, як використовувати моделі машинного навчання, щоб все це злетіло.
Навіщо платежами ще одна перевірка
Поза залежності від типу авторизації будь-яка платіжна операція через Яндекс.Гроші проходить перевірку антифрод-системи. Ця процедура дозволяє захистити всіх учасників угоди:
  1. покупця – від прямих збитків через дії шахраїв;
  2. продавця і його банк-еквайєр – від проведення несанкціонованої оплати, після якої кошти доведеться повертати;
  3. Яндекс.Гроші від штрафів і невдоволення користувачів.
    <img src=«habrastorage.org/files/57f/2c1/06a/57f2c106a25947db9fdd0fdf45c4ef21.jpg» alt=«image» alt text"/>
Загальна схема процесу для оплати інтернет-магазину.
Антифрод встановлений в ядрі платіжної інфраструктури Яндекс.Грошей, і до нього приходять на перевірку будь-які операції оплати переказів. Якщо є якісь підозри, антифрод може рекомендувати провести додаткову ідентифікацію або визначити ризик як високий.
<img src=«habrastorage.org/files/6d7/00b/c0e/6d700bc0e0f842cdb6b3b6890b4981ad.jpg» alt=«image» alt text"/>
Спочатку антифрод працював тільки на основі статичних правил (транзакція з одними параметрами – добре, а з іншими – погано), але одні тільки статичні правила не дозволяють підтримувати стабільно низький рівень помилкових спрацьовувань. В них складно враховувати, наприклад, раптові сплески продажів або органічні зміни поведінки користувачів. Саме тому до антифроду підключили модуль машинного навчання, який працює спільно зі статичними правилами для більш точної оцінки ризиків.
Як роботи приймають рішення
Для роботи з методами машинного навчання Яндекс.Гроші використовують одну з популярних систем аналізу, в якій будуються моделі машинного навчання – умовно назвемо її ML. Розглянемо на прикладі, як все це працює.
Принципово процес ділиться на дві фази:
  1. Навчання. В ході навчання виявляються параметри моделі і значущі ознаки;
  2. Застосування результатів, тобто класифікація нових операцій. У цій фазі визначається клас, до якого відноситься кожна нова транзакція – ризикова, шахрайська чи безпечна.
При відпрацюванні статичних правил алгоритм антифрода відправляє запит з певними атрибутами транзакції модулю машинного навчання для проведення класифікації. Модель машинного навчання аналізує їх і видає вердикт з імовірністю того, що операцію проводить шахрай. Тут самий тонкий момент полягає у виборі і формуванні таких атрибутів, але про це пізніше.
<img src=«habrastorage.org/files/af1/bba/91a/af1bba91aca74cf8afd4336d524a71ae.jpg» alt=«image» alt text"/>
Так виглядає схема процесу машинного навчання в ML.
Припустимо, від імені користувача Інокентія проводиться операція купівлі ігрової валюти для World of Tanks в п'ятницю ввечері:
  • сума операції – 15 000 рублів;
  • купівля здійснюється з Австралії;
  • користувач працює з браузером Safari в MacOS;
  • на годиннику 15:23;
  • ще десяток атрибутів.
окремо ці атрибути не викликають ніяких підозр, тому що ніхто не заважає росіянину подорожувати і грати в ігри, а також користуватися системами, відмінними від Windows.
Але ми вже раніше зустрічалися з Інокентієм і знаємо, що в минулі місяці він купував переважно дрібну побутову техніку та одяг в Росії з середнім чеком 7 000 рублів. Тільки сьогодні вранці він поповнював проїзний в Москві, тому принципових змін у його поведінці бути не повинно.
Звичайно, якісь висновки можна зробити вже на підставі простого порівняння атрибутів з двох сусідніх операцій. Навряд чи наш герой винайшов спосіб дістатися з Москви до Австралії швидше літака. Така істотна різниця в географії вже сама по собі привертає увагу.
Але просте порівняння з сусідньої транзакцією у випадку з сумами вже буде малоефективно. В принципі, ніщо не заважає після придбання проїзного придбати щось більш велике. І тут застосовується наступний підхід. На підставі наявних даних про історію формується прогноз для кожного з атрибутів нової транзакції із зазначенням інтервалу можливих значень. Якщо кілька атрибутів раптом виходять за ці межі – очевидна аномалія, яку потрібно пильно розглянути.
Крім того, іноді цікаві не конкретні значення будь-яких атрибутів, а якісь засновані на них якісні характеристики. Тому, крім використання вже наявних у транзакції даних, система може сформувати додаткові атрибути операції. Наприклад, таким атрибутом може бути ознака "Сума більше N рублів" замість просто числового значення суми, або різниця між реальним значенням якогось базового атрибута та його прогнозом — трохи пізніше це питання розглянемо більш докладно.
Результат роботи машинного навчання зовсім не обов'язково буде визначальним – у правилах антифрода є безліч статичних критеріїв, за якими приймається рішення. Тим не менш, результати цієї додаткової перевірки дозволяють істотно підвищити точність виявлення шахрая.
Якщо по багатьом параметрам реальністьдуже відрізняється від прогнозу – це привід для підозр і, наприклад, додаткової верифікації.
Область пошуку аномалій
При купівлі в інтернет-магазині найбільший ризик, як правило, приймає на себе магазин, якому в разі проблем доведеться працювати з опротестованиями і поверненнями. Тож пошуку аномалій в користувальницькому поведінці в антифрод-системах приділяється найбільша увага.
Але аномальним може бути і поведінка магазину, який, як і звичайні користувачі, теж може стати об'єктом атаки шахраїв або перейти на бік зла. Тому важливо вчасно виявляти, коли з магазином відбувається щось не те. Помітити такі зміни можна за допомогою все того ж зміни характеру операцій і пов'язаних з ними атрибутів.
Складності аналізу
З набору відомих даних операції складається набір атрибутів, який марний без розуміння, які значення "хороші", а які «погані». Тобто потрібно провести межу, при виході за яку параметри операції стануть підозрілими для антифрод-системи – це і будуть аномальні значення для кожного атрибуту (в деяких випадках – їх комбінації). Тут-то і криється одна з найбільших складнощів.
Щоб побудувати довірчий інтервал для значень добросовісної транзакції, потрібно екстраполювати дані з історії операції конкретного користувача або магазину. Аномалія буде видно, якщо порівняти поточне значення параметрів операції з межами інтервалу. Іноді порівнювати треба не абсолютні, а нормовані значення. Рішенням такого роду питань займаються аналітики Яндекс.Грошей в ході підготовки і навчання моделей.
У процесі навчання застосовуються наступні методи:
  • імовірнісні – побудова всіляких розподілів для об'єктів класу;
  • метричні – обчислення відстаней між об'єктами;
  • кореляційні – визначення кількісних взаємозв'язків між кількома параметрами досліджуваної системи.
Крім того, базових атрибутів начебто товарної групи і суми замовлення буває недостатньо для пошуку закономірностей. Тому з наявних даних аналітики формують додаткові сложносоставные атрибути.
Будь-яка аномалія – це вибивається із загального ряду подія. Може здатися, що досить просто виконати нормування даних з історії операцій (відкинути надто низькі та надто високі значення), щоб отримати приблизний розкид "хороших" транзакцій. Але це не працює, так як існують денні сплески продажів, акції, розпродажі.
Тому в Яндекс.Гроші використовується, наприклад, такий алгоритм виявлення аномальних значень атрибутів:
  1. екстраполяція значень часового ряду по кожному з ознак;
  2. обчислення різниці між фактичним значенням ознаки та прогнозованим машиною;
  3. якщо різниця дуже велика, і такі аномальні події об'єднує щось спільне (IP, BIN карти, браузер) – швидше за все, з конкретною транзакцією справа нечиста.
<img src=«habrastorage.org/files/99f/3bb/329/99f3bb32918942d18359868f4dc90469.jpg» alt=«image» alt text"/>
На графіку видно залежність аномальності події від лінійної комбінації ознак. Аномальність визначається відстанню між подіями.
Щоб не блокувати більшість нормальних платежів, потрібно правильно вибрати поріг спрацьовування для нового ознаки аномалії, тобто відхилення від нормальної картини, яку ми будемо вважати істотним і при якому будемо готові вжити заходів. Тут немає універсального ради щодо вибору конкретного значення, тому що цей поріг можна вважати ціною помилки для бізнесу. Для кого-то цілком нормальною ціною буде відхилення десяти хороших транзакцій в день, а хтось не готовий втратити навіть одну.
Хороша новина в тому, що для кожної моделі машинного навчання можна виставити свій поріг.
У всіх цих технологіях і складної математики важливо пам'ятати про користувача
Користувачі схильні з розумінням поставитись до незручностей, коли мова йде про додаткову безпеку їхніх грошей. Наприклад, застарілі нині одноразові коди на скретч-карті складно назвати зручними, але багато користувачів спокійно ставляться до цього маленькому злу в обмін на захист від зла великого – шахрайських операцій від свого імені. Тут важливо дотримуватися баланс зручності/швидкості і надійності, не допускаючи перегинів.
При будь-яких модифікаціях "мізках" Яндекс.Грошей ми особливо уважно стежимо за зміною часу обробки кожної операції. Навіть ідеальна захист не знайде розуміння у користувача, якщо йому доведеться чекати підтвердження за кілька хвилин. Зараз транзакції виконуються практично миттєво, якщо врахувати роботу антифрода в реальному часі.
Антифрод-система завжди впливала на проведення платежу в режимі онлайн, оцінюючи кожну транзакцію по статичних правил. Для нас вкрай важливо, щоб додавання оцінки ризику з допомогою машинного навчання не збільшувало час оброблення даних. Саме з цією метою був розроблений механізм, який дозволяв проводити класифікацію методами ML одночасно зі статичними правилами.
Але тут ми зіткнулися з новою проблемою – іноді статичні правила і машинне навчання можуть дати різні відповіді, і з них потрібно буде вибрати найбільш підходящий в конкретній ситуації. Для цих цілей був розроблений спеціальний модуль, який приймає остаточне рішення.
<img src=«habrastorage.org/files/ccb/352/b95/ccb352b9513e49cc800de06fef2bfd35.jpg» alt=«image» alt text"/>
Схема підключення антифрода, при якій перевірка виконується в реальному часі для всіх операцій.
за Результатами кожної перевірки за новою схемою є:
  • синхронний відповідь платіжної компоненті від системи правил і моделей машинного навчання;
  • відправка скорингового балу і даних про транзакції в базу історичної інформації для використання в перевірці майбутніх операцій.
Тепер у антифрод-системи з'явилася можливість додатково оцінювати небезпеку транзакції на основі статистики, а не натискати "червону кнопку" лише при збігу зі статичними правилами. Для користувача це означає додатковий рівень захисту і більш гнучку реакцію системи навіть у тих випадках, коли купівля вибивається своїми атрибутами із загальної маси.
Технології машинного навчання припускають роботу з величезними масивами даних для побудови правильних прогнозів, тому їх точкове впровадження не можна назвати простим завданням. У нашому випадку був ідеальний кандидат — антифрод, для якого додатковий рівень інтелекту критично важливий, а обсяг проходять даних відчиняє широкі можливості для аналізу.
Джерело: Хабрахабр

0 коментарів

Тільки зареєстровані та авторизовані користувачі можуть залишати коментарі.