Когда дело доходит до машинного обучения, большинство продуктов предназначены для пакетной работы, то есть они обрабатывают данные через фиксированные промежутки времени, а не в режиме реального времени. Этим подходом зачастую проще управлять, и во многих случаях он отвечает потребностям бизнеса. Однако существуют ситуации, когда машинное обучение в реальном времени имеет важное значение. В этой статье мы разберемся, почему.
Чтобы понять, почему машинное обучение в реальном времени важно, полезно сначала понять различные парадигмы развертывания решений машинного обучения.
Пакетные прогнозы
По данным Databricks, пакетное развертывание — наиболее распространенный способ развертывания моделей машинного обучения, на который приходится примерно 80–90 % всех развертываний. Это означает выполнение прогнозов на основе модели и сохранение их для последующего использования. При показе в реальном времени результаты сохраняются в базе данных с низкой задержкой, которая обслуживает прогнозы быстро. Альтернативно, прогнозы могут храниться в менее производительных хранилищах данных.
На этом этапе все прогнозы предварительно вычисляются периодически (например, ежедневно), прежде чем возникает запрос на прогноз. Системы пакетной обработки, такие как Spark или MapReduce, используются для эффективной обработки больших объемов данных. Кэшируя заранее рассчитанные прогнозы, мы также отделяем вычисления от обслуживания.
Типичные случаи использования пакетного прогнозирования включают прогнозирование оттока клиентов, сегментацию клиентов и прогнозирование продаж. Эти варианты использования обычно не требуют данных в реальном времени.
Онлайн прогнозы
Хотя развертывания в режиме реального времени занимают меньшую часть среды развертывания, они часто включают в себя важные задачи, которые обеспечивают значительную ценность для бизнеса. При развертывании в реальном времени можно использовать либо функции пакетной обработки, либо функции потоковой передачи. Важно отметить, что хотя функции при развертывании в реальном времени могут обрабатываться онлайн, обучение моделей машинного обучения обычно выполняется в пакетном режиме. Это также следует отличать от другой области, называемой Online ML, где не только данные вывода, но и данные обучения поступают в онлайн-режиме, а специализированные версии алгоритмов ML обучаются непрерывно. Однако последний случай выходит за рамки данной статьи.
Пакетные (статические) функции – это фрагменты информации, которые редко или никогда не меняются, например демографические данные клиента (дата рождения, пол, доход) или атрибуты продукта (цвет, размер, категория продукта и изображения).
С другой стороны, функции потоковой передачи (онлайн) рассчитываются на основе потоковых данных и основаны на событиях в реальном времени. Примеры включают совокупные потоковые события (например, показы, клики, лайки или покупки), данные социальных сетей (например, анализ настроений или актуальные темы) или данные датчиков с устройств IoT.
Вот несколько примеров приложений машинного обучения в реальном времени:
- Обнаружение мошенничества
В банковской сфере модели машинного обучения можно использовать для прогнозирования мошеннических транзакций в режиме реального времени путем анализа закономерностей и выявления аномалий. Этот пример подробно описан в главе ниже. - Рекомендации по продуктам
В индустрии электронной коммерции рекомендации по продуктам в режиме реального времени чрезвычайно полезны, поскольку они могут адаптироваться к изменениям в поведении и предпочтениях пользователей с течением времени. Если пользователь, просматривающий веб-сайт, указывает на внезапный интерес к определенной категории продуктов, мы можем обновить наши рекомендации, чтобы отразить этот новый интерес. - динамическое ценообразование
В транспортной отрасли модели машинного обучения могут динамически корректировать цены на основе факторов реального времени, таких как спрос, погода или условия дорожного движения. Когда спрос необычайно высок, цена соответственно вырастет. - Прогнозное обслуживание
В обрабатывающей промышленности компании могут использовать данные датчиков и оборудования в режиме реального времени, чтобы прогнозировать необходимость технического обслуживания, сокращая время простоев и повышая эффективность. Если датчик регистрирует показания, выходящие за пределы нормального диапазона, работникам могут быть отправлены предупреждения для проверки производственных трубопроводов.
Онлайн-прогнозы с пакетными функциями
Хотя пакетные прогнозы полезны и достаточны для большинства случаев использования, они имеют множество ограничений. Например, рассмотрим веб-сайт электронной торговли, который хочет спрогнозировать оптимальную скидку для пользователя на основе продуктов в его корзине. Число возможных комбинаций различных продуктов невозможно предварительно вычислить. Другим примером является чат-бот, поскольку ему можно задавать бесконечное количество вопросов, часто со смешанным порядком слов. Комбинации и перестановки слов и фраз практически бесконечны.
Даже в тех случаях, когда все прогнозы можно сгенерировать заранее, это может быть крайне расточительно. В качестве примера рассмотрим систему рекомендаций, предназначенную для прогнозирования товаров для клиентов. Периодическое создание огромного количества записей не только было бы дорогостоящим с точки зрения вычислений и использования ресурсов, но также потребовало бы много времени для создания миллионов прогнозов. Зачем генерировать все прогнозы заранее, если вы можете генерировать каждый прогноз по мере необходимости?
Именно здесь на помощь приходят онлайн-прогнозы с пакетными функциями. Вместо предварительного расчета всех возможных прогнозов до поступления запросов онлайн-прогнозы выполняются как только запросы поступают. Это также известно как прогнозирование по требованию. Онлайн-обслуживание может помочь предотвратить избыточность. Например, генерируя прогнозы только для пользователей, посещающих ваш сайт.
Очень распространенными пакетными функциями, используемыми для онлайн-обслуживания, являются встраивания. В машинном обучении внедрения — это способ представления данных в виде векторов или низкоразмерных числовых представлений, которые отражают ключевые особенности данных. Эти числовые представления часто изучаются с помощью нейронных сетей и могут использоваться для представления различных типов данных, таких как слова, изображения или даже целые документы. Благодаря внедрению модели машинного обучения могут легче обрабатывать и понимать сложные данные, что приводит к повышению производительности в таких задачах, как классификация, кластеризация и системы рекомендаций.
Однако перевод ваших моделей из автономного режима в онлайн сопряжен с некоторыми проблемами, первая из которых — задержка вывода. Несколько исследований показывают, что повышение скорости веб-сайта может существенно повлиять на бизнес-показатели, такие как коэффициенты конверсии или средняя стоимость заказа. Поэтому нам нужны модели, которые могут генерировать прогнозы с разумной скоростью. Существует несколько способов снизить задержку, включая выбор только наиболее информативных функций, функции предварительного вычисления, использование более простых или меньших моделей, использование большего количества вычислительных ресурсов и использование квантования модели. Другая проблема – обеспечение достаточной пропускной способности и доступности. После развертывания модели она всегда должна быть доступна и иметь хорошее время безотказной работы.
Как видите, онлайн-развертывание может быть одним из наиболее сложных способов развертывания моделей.
Онлайн-прогнозы с функциями потоковой передачи
Статические функции также имеют ограничения, поскольку они делают ваши модели менее чувствительными к изменяющейся среде. Переключение на онлайн-прогнозы с помощью функций потоковой передачи позволяет использовать динамические функции для составления более релевантных прогнозов. Для решения многих задач вам нужны как потоковая передача, так и пакетные функции, которые можно объединить в единый конвейер данных и передать в ваши модели машинного обучения.
Функции потоковой передачи особенно полезны в контексте конкретных задач, когда пользователи посещают ваше приложение с уже существующей целью. Предоставление им нужного контента или функций в режиме реального времени имеет решающее значение для поддержания их вовлеченности и предотвращения перехода к конкурентам.
Допустим, вы бронируете отель для следующего отпуска. Ранее вы посещали определенную страну, и сайт запоминает эту информацию, рекомендуя отели на основе вашего предыдущего пункта назначения. Однако вы хотите, чтобы ваши рекомендации обновлялись с учетом текущего контекста и любых изменений в ваших туристических предпочтениях или интересах со времени вашей последней поездки. Рекомендации могут быть не столь актуальными и полезными, если веб-сайт опирается только на статические функции, такие как ваша предыдущая история путешествий. В этом случае было бы полезно включить динамические функции, которые учитывают данные в реальном времени, такие как ваше текущее местоположение, историю поиска и недавние взаимодействия с веб-сайтом. Благодаря этому веб-сайт сможет предоставлять более персонализированные и актуальные рекомендации, которые лучше отражают ваши текущие предпочтения в отношении путешествий.
Тем не менее, включение потоковых данных существенно увеличивает сложность ваших приложений. Было бы полезно, если бы у вас были соответствующие конвейеры реального времени, позволяющие в полной мере использовать прогнозы в реальном времени из потоковой передачи данных. Такие технологии, как Apache Flink или Apache Kafka, позволяют вычислять функции потоковой передачи. Однако потоковая обработка создает уникальные проблемы из-за неограниченного объема данных, поступающих с переменными скоростями.
Более того, онлайн-прогнозы предназначены для принятия решений в режиме реального времени, а это означает, что они могут немедленно повлиять на систему или приложение, которые они поддерживают. Это означает, что мониторинг модели на наличие ошибок или циклов отрицательной обратной связи имеет решающее значение для предотвращения быстрого обострения проблем и причинения дальнейшего ущерба.
Хотя обработка в реальном времени может показаться привлекательной, она не всегда проста и может повлечь за собой дополнительные затраты и сложности. Для многих распространенных случаев пакетная обработка является отличным подходом, поскольку она высокоэффективна. Напротив, потоковая обработка выполняется быстро, поскольку позволяет обрабатывать данные сразу по их поступлению. Однако важно тщательно взвесить все возможные компромиссы, прежде чем переходить на настоящую потоковую передачу в реальном времени. Делайте это только после определения варианта использования в бизнесе, который оправдывает дополнительную сложность и затраты по сравнению с пакетной обработкой.
Как вы можете использовать машинное обучение в реальном времени для обнаружения мошенничества? Тематическое исследование
Начнем с определений. Что на самом деле представляет собой обнаружение мошенничества?
Обнаружение мошенничества — это процесс выявления и предотвращения мошеннической деятельности внутри системы, организации или сети. Мошенничество может принимать различные формы, например:
- мошенничество с кредитными картами,
- страховое мошенничество
- кража личных данных,
- фишинг,
- киберпреступность.
Мошеннические действия могут привести к значительным финансовым потерям, репутационному ущербу и юридическим последствиям для частных лиц и организаций. Обнаружение мошенничества предполагает использование различных методов и технологий для обнаружения и предотвращения мошеннической деятельности в режиме реального времени, включая системы на основе правил и алгоритмы машинного обучения. Целью обнаружения мошенничества является выявление и предотвращение мошеннических действий прежде, чем они смогут причинить вред, а также обеспечение целостности и безопасности систем и организаций.
Мы сосредоточимся на мошенничестве с кредитными картами, поскольку это наиболее распространенная форма мошенничества в отрасли.
Мошенничество с кредитными картами — это вид финансового мошенничества, который предполагает несанкционированное использование кредитной карты для совершения покупок или снятия наличных. Вот как это обычно работает, шаг за шагом:
- Получение данных кредитной карты.
Мошенник сначала получает данные кредитной карты, такие как номер карты, срок действия и код безопасности. Это можно сделать различными способами, такими как кража физической карты, фишинговые атаки или атаки вредоносного ПО на систему торговых точек. - Проверка карты.
Мошенник может затем проверить карту, чтобы убедиться, что она работает, совершив небольшие покупки или онлайн-транзакции, чтобы проверить, активна ли карта и не была ли она зарегистрирована как украденная. - Совершение мошеннических покупок.
Как только будет подтверждено, что карта работает, мошенник может использовать ее для совершения более крупных покупок или снятия наличных. Они могут использовать карту для покупки товаров или услуг онлайн, по телефону или лично в розничном магазине или ресторане. - Сокрытие мошенничества.
Чтобы скрыть мошенничество, мошенник может использовать различные методы, такие как изменение платежного адреса или адреса доставки, выполнение нескольких небольших транзакций или использование разных карт или счетов для совершения покупки.
Примеры мошенничества с кредитными картами могут включать в себя:
- информация о магнитной полосе карты получается путем взлома, когда карта используется в банкомате в торговом центре, а затем в течение короткого периода времени используется из географически удаленного места
- во время онлайн-транзакции информация о кредитной карте украдена, и впоследствии по прошествии определенного периода времени происходят нерегулярные транзакции с разными суммами или в необычное время суток.
- кредитная карта физически украдена из ресторана. Небольшая транзакция инициируется вскоре после кражи для проверки возможности использования карты, за которой следует значительно более крупная транзакция позже.
- по кредитной карте была совершена слишком крупная покупка
- транзакция была совершена из места, которое полностью отличается от предыдущих
В результате с клиентов будет взиматься плата за товары, которые они не покупали. Важно отметить, что мошенничество с кредитными картами может иметь серьезные последствия как для держателя карты, так и для ее эмитента. Мошенничество с кредитными картами может иметь серьезные последствия, включая, помимо прочего:
- финансовые потери как для держателя карты, так и для финансового учреждения
- потеря доверия и доверия к финансовой системе со стороны потребителей
- снижение кредитного рейтинга в результате необнаруженной мошеннической деятельности в течение длительного периода
- юридические последствия для держателя карты, такие как уголовные обвинения и штрафы, а также для финансового учреждения, которое может столкнуться с судебными исками со стороны затронутых клиентов или регулирующих органов.
Если обнаруживается мошенническая деятельность, владелец карты обычно уведомляется, а мошеннические транзакции отменяются. Эмитент карты также может заблокировать карту и выдать держателю карты новую. Крайне важно защитить данные кредитной карты и как можно скорее сообщать о любой подозрительной деятельности.
Если обнаруживается мошенническая деятельность, владелец карты обычно уведомляется, и мошеннические транзакции отменяются. Эмитент карты также может принять меры по блокировке карты и выдаче новой держателю карты. Важно принять меры для защиты данных кредитной карты и сообщать о любых подозрительных действиях как можно скорее.
Почему машинное обучение в реальном времени?
В современном мире транзакции обрабатываются практически мгновенно, обеспечивая клиентам удобство работы. Однако такая скорость обработки также оставляет банкам и платежным системам более короткие сроки для выявления и предотвращения мошенничества. В случае онлайн-мошенничества вор может выполнить несколько транзакций, что приведет к значительным финансовым потерям. Поэтому очень важно, чтобы обнаружение мошенничества происходило практически в режиме реального времени. Откладывание обнаружения мошенничества до следующего дня может затруднить возврат денег клиента.
Обнаружение мошенничества в режиме реального времени имеет решающее значение, поскольку оно позволяет компаниям быстро реагировать на угрозы в реальном времени, предотвращая финансовые потери. Без обнаружения в режиме реального времени мошенничество можно обнаружить только после того, как уже произошли финансовые потери. Поэтому крайне важно обнаруживать угрозы в реальном времени и реагировать на них по мере их возникновения.
Обнаружение мошенничества, как и кибербезопасность, представляет собой постоянную битву между злоумышленниками (мошенниками) и защитниками (системами обнаружения мошенничества). Мошенники постоянно ищут новые способы получения прибыли от своей вредоносной деятельности, а системам обнаружения мошенничества постоянно приходится оставаться на шаг впереди них.
Алгоритмы машинного обучения могут обеспечить динамическое обнаружение мошеннических транзакций путем анализа больших объемов данных для выявления аномальных закономерностей, связанных с мошеннической деятельностью. Включение в эти модели функций потоковой передачи может повысить их реагируемость на изменения. Это означает, что финансовые учреждения и держатели карт могут быть немедленно уведомлены о подозрительных транзакциях, что позволяет им быстро принять меры для предотвращения дальнейшей мошеннической деятельности.
В 2020 году эмитенты кредитных карт, продавцы и потребители понесли в общей сложности 28,58 миллиардов долларов США убытков от мошенничества с кредитными картами.
Функции реального времени могут значительно повысить производительность нашей модели, что может оказать существенное влияние на предотвращение мошенничества с кредитными картами. Даже небольшое повышение точности может привести к существенной экономии, исчисляемой миллионами долларов! Кроме того, функции, связанные с обнаружением мошенничества, требуют обработки с низкой задержкой из источников данных в реальном времени, чтобы гарантировать, что значения функций остаются свежими и актуальными.
Вот некоторые функции реального времени, которые мы можем рассмотреть для улучшения наших моделей машинного обучения:
- количество транзакций за X часов
- внезапный скачок количества транзакций за короткий период может быть признаком скоординированной атаки или мошеннической деятельности (когда мошенник получает несанкционированный доступ к кредитной карте, обычно он пытается выполнить как можно больше транзакций за кратчайший срок). время; они надеются получить столько же, пока защитники не заметят ненормальное поведение)
- количество транзакций в одном и том же месте за Х часов
- когда кто-то совершает несколько покупок в одном и том же магазине в течение короткого периода времени (отслеживание количества транзакций в этом месте с течением времени может помочь нам обнаружить аномальное поведение)
- количество различных геолокаций за последние X часов
- количество уникальных географических местоположений, связанных с набором транзакций (это помогает нам идентифицировать транзакции, которые невозможно выполнить для человека; например, вы не можете купить в магазине в Лондоне и через 15 минут в Токио)
- разница во времени между последней транзакцией
- соотношение неудачных транзакций за последние X дней или количество неудачных сделок подряд (более высокий процент неудачных транзакций также может указывать на более высокую вероятность кражи кредитной карты)
- запросы на увеличение лимита кредитной карты за последний час
- факт увеличения лимита кредитной карты (часто кредитные карты выпускаются с низкими лимитами, поэтому мошенники могут попытаться увеличить лимит кредитной карты на украденной карте, чтобы совершать более крупные покупки или переводить больше средств)
- количество транзакций в конкретном месте
- внезапный всплеск транзакций в определенном месте, который может быть предупредительным признаком мошеннической деятельности, поскольку мошенники могут попытаться использовать определенное место для выполнения своих мошеннических транзакций; эта функция может быть полезна для выявления случаев организованной преступности или мошенничества, когда группа мошенников может координировать свою деятельность в определенном месте или районе.
- факт, значительно ли текущая транзакция превышает среднее значение предыдущих транзакций
Архитектура
Это пример того, как может выглядеть система обнаружения мошенничества в режиме реального времени.
Это будет работать следующим образом:
- когда пользователь совершает транзакцию с использованием своей кредитной карты, информация о транзакции отправляется в серверную часть транзакции.
- оттуда информация передается обоим:
системе обнаружения мошенничества;
технологии потоковой передачи. - Система обнаружения мошенничества запрашивает функции как из онлайнового (потокового) источника данных, так и из автономного (пакетного) источника данных.
- потоковая база данных с малой задержкой содержит функции реального времени
- автономная база данных содержит статические функции, такие как информация о магазине и пользователе.
- после получения необходимых функций система обнаружения мошенничества отправляет запрос к REST API модели машинного обучения, который использует обученную модель для прогнозирования, является ли транзакция мошеннической или нет.
- затем прогноз возвращается в систему обнаружения мошенничества, которая передает результаты в серверную часть транзакции.
Инфраструктура программного обеспечения должна быть рассчитана на обработку большого объема транзакций. Система также должна быть отказоустойчивой и масштабируемой, чтобы обеспечить возможность обработки возросшего трафика. Кроме того, крайне важно иметь надлежащие системы мониторинга и оповещения для выявления и решения любых проблем, которые могут возникнуть.
Краткое содержание
В целом, обнаружение в режиме реального времени имеет решающее значение для предотвращения мошенничества с кредитными картами, поскольку оно позволяет частным лицам и предприятиям быстро реагировать на мошенническую деятельность, ограничивать финансовые потери и предотвращать несанкционированный доступ к средствам. Это может помочь предотвратить дополнительную мошенническую деятельность, ограничить финансовые потери и повысить шансы на возврат потерянных средств.
Имеет ли ML в реальном времени решающее значение для вашей компании? Наша компания специализируется на развертывании моделей машинного обучения в режиме реального времени и может помочь вам создавать, обучать и развертывать собственные модели машинного обучения, адаптированные к потребностям вашего бизнеса. Запишитесь на бесплатную консультацию сегодня, чтобы узнать больше о том, как мы можем помочь вам развернуть модели машинного обучения в реальном времени, отвечающие потребностям вашего бизнеса.
Автор блога: Михал Мадей — Data Scientist
Оригинально опубликовано на https://getindata.com.