Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library

Шахрайські дії серйозно впливають на багато галузей, наприклад електронну комерцію, соціальні мережі та фінансові послуги. Шахрайство може завдати значних збитків підприємствам і споживачам. Американські споживачі повідомили про втрату понад 5.8 мільярда доларів через шахрайство у 2021 році, що на 70% більше, ніж у 2020 році.. Для виявлення шахраїв було використано багато методів — наприклад, фільтри на основі правил, виявлення аномалій і моделі машинного навчання (ML).

У даних реального світу сутності часто пов’язані з іншими сутностями. Така структура графа може надати цінну інформацію для виявлення аномалій. Наприклад, на наступному малюнку користувачі підключаються через спільні сутності, такі як ідентифікатори Wi-Fi, фізичне місцезнаходження та номери телефонів. Через велику кількість унікальних значень цих сутностей, як-от номерів телефонів, їх важко використовувати в традиційних моделях на основі функцій — наприклад, одноразове кодування всіх телефонних номерів буде неможливим. Але такі зв’язки можуть допомогти передбачити, чи є користувач шахраєм. Якщо користувач поділився кількома об’єктами з відомим шахраєм, швидше за все, він є шахраєм.

Останнім часом графова нейронна мережа (GNN) стала популярним методом виявлення шахрайства. Моделі GNN можуть поєднувати як структуру графа, так і атрибути вузлів або ребер, наприклад користувачів або транзакцій, щоб вивчати значущі представлення, щоб відрізняти зловмисних користувачів і події від законних. Ця здатність має вирішальне значення для виявлення випадків шахрайства, коли шахраї змовляються, щоб приховати свої аномальні особливості, але залишають певні сліди стосунків.

Поточні рішення GNN в основному покладаються на офлайн-пакетне навчання та режим висновків, які виявляють шахраїв після зловмисних подій і втрат. Однак вилов шахрайських користувачів і дій у режимі реального часу має вирішальне значення для запобігання втратам. Це особливо вірно в бізнес-випадках, коли є лише один шанс запобігти шахрайству. Наприклад, на деяких платформах електронної комерції реєстрація облікового запису є широко відкритою. Шахраї можуть зловмисно поводитися з обліковим записом лише один раз і більше ніколи не використовувати той самий обліковий запис.

Важливо передбачити шахраїв у реальному часі. Однак розробка такого рішення є складною. Оскільки GNN все ще є новинкою для галузі, існують обмежені онлайн-ресурси щодо перетворення моделей GNN із пакетного обслуговування в режим реального часу. Крім того, складно побудувати конвеєр потокових даних, який може передавати вхідні події API обслуговування в реальному часі GNN. Наскільки відомо авторам, на момент написання цієї статті не було доступних еталонних архітектур і прикладів для рішень логічного висновку в реальному часі на основі GNN.

Щоб допомогти розробникам застосовувати GNN для виявлення шахрайства в реальному часі, у цій публікації показано, як це використовувати Амазонка Нептун, Amazon SageMaker, А Бібліотека глибоких графів (DGL), серед інших сервісів AWS, для створення наскрізного рішення для виявлення шахрайства в реальному часі за допомогою моделей GNN.

Ми зосереджуємося на чотирьох завданнях:

  • Обробка табличного набору даних транзакцій у гетерогенний набір даних графіка
  • Навчання моделі GNN за допомогою SageMaker
  • Розгортання навчених моделей GNN як кінцевої точки SageMaker
  • Демонстрація висновків у реальному часі для вхідних транзакцій

Ця публікація продовжує попередню роботу в Виявлення шахрайства в різнорідних мережах за допомогою Amazon SageMaker і Deep Graph Library, яка зосереджена на перших двох завданнях. Ви можете звернутися до цієї публікації, щоб отримати докладнішу інформацію про гетерогенні графи, GNN та напівкероване навчання GNN.

Компанії, яким потрібен повністю керований сервіс AWS AI для виявлення шахрайства, також можуть використовувати Детектор шахрайства Amazon, що полегшує виявлення потенційно шахрайських дій в Інтернеті, таких як створення підроблених облікових записів або шахрайство з онлайн-платежами.

Огляд рішення

Це рішення складається з двох основних частин.

Перша частина — це конвеєр, який обробляє дані, навчає моделі GNN і розгортає навчені моделі. Це використовує Клей AWS для обробки даних транзакції та зберігає оброблені дані в обох Амазонка Нептун та Служба простого зберігання Amazon (Amazon S3). Потім запускається навчальне завдання SageMaker для навчання моделі GNN на даних, збережених в Amazon S3, щоб передбачити, чи є транзакція шахрайством. Навчена модель разом з іншими ресурсами зберігається в Amazon S3 після завершення навчального завдання. Нарешті, збережена модель розгортається як кінцева точка SageMaker. Трубопровід організований Функції кроку AWS, як показано на наступному малюнку.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Друга частина рішення реалізує виявлення шахрайських транзакцій у реальному часі. Він починається з RESTful API, який запитує базу даних графів у Neptune, щоб отримати підграф, пов’язаний із вхідною транзакцією. Він також має веб-портал, який може імітувати бізнес-діяльність, генеруючи онлайн-транзакції як з шахрайськими, так і з законними. Веб-портал забезпечує оперативну візуалізацію виявлення шахрайства. Ця частина використовує Amazon CloudFront, AWS Amplify, AWS AppSync, API -шлюз Amazon, Покрокові функції та Amazon DocumentDB для швидкого створення веб-додатку. Наступна діаграма ілюструє процес висновку в реальному часі та веб-портал.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Реалізація цього рішення разом із ан AWS CloudFormation Шаблон, який може запустити архітектуру у вашому обліковому записі AWS, є загальнодоступним за допомогою наступного GitHub репо.

Обробка даних

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

Це рішення використовує той самий набір даних Набір даних про шахрайство IEEE-CIS, як і попередній пост Виявлення шахрайства в різнорідних мережах за допомогою Amazon SageMaker і Deep Graph Library. Тому основний принцип обробки даних той самий. Коротше кажучи, набір даних про шахрайство включає таблицю транзакцій і таблицю ідентифікацій, що містить майже 500,000 XNUMX анонімних записів транзакцій разом із контекстною інформацією (наприклад, пристрої, що використовуються в транзакціях). Деякі транзакції мають двійкову мітку, яка вказує на те, чи є транзакція шахрайською. Наше завдання — передбачити, які транзакції без міток є шахрайськими, а які законними.

Наступний малюнок ілюструє загальний процес перетворення таблиць IEEE на неоднорідний графік. Спочатку витягуємо два стовпці з кожної таблиці. Один стовпець завжди є стовпцем ідентифікатора транзакції, де ми встановлюємо кожен унікальний ідентифікатор транзакції як один вузол. Інший стовпець вибирається з категорійних стовпців, таких як ProductCD та id_03, де кожна унікальна категорія була встановлена ​​як вузол. Якщо TransactionID і унікальна категорія з’являються в одному рядку, ми з’єднуємо їх одним краєм. Таким чином ми перетворюємо два стовпці в таблиці в один дводольний. Потім ми об’єднуємо ці дві сторони разом із вузлами TransactionID, де ті самі вузли TransactionID об’єднуються в один унікальний вузол. Після цього кроку ми маємо неоднорідний граф, побудований із дводольних частин.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Для решти стовпців, які не використовуються для побудови графіка, ми об’єднуємо їх як функцію вузлів TransactionID. Значення TransactionID, які мають значення isFraud, використовуються як мітка для навчання моделі. На основі цього неоднорідного графа наше завдання стає завданням класифікації вузлів вузлів TransactionID. Додаткову інформацію про підготовку даних графіка для навчання GNN див Видобуток функції та Побудова графіка розділи попередньої публікації блогу.

Код, використаний у цьому рішенні, доступний у src/scripts/glue-etl.py. Ви також можете експериментувати з обробкою даних через блокнот Jupyter src/sagemaker/01.FD_SL_Process_IEEE-CIS_Dataset.ipynb.

Замість ручної обробки даних, як це було зроблено в попередній публікації, це рішення використовує повністю автоматичний конвеєр, організований Step Functions і AWS Glue, який підтримує паралельну обробку величезних наборів даних через Apache Spark. Написано робочий процес крокових функцій Набір хмарних розробок AWS (AWS CDK). Нижче наведено a фрагмент коду щоб створити цей робочий процес:

import { LambdaInvoke, GlueStartJobRun } from 'aws-cdk-lib/aws-stepfunctions-tasks';
    
    const parametersNormalizeTask = new LambdaInvoke(this, 'Parameters normalize', {
      lambdaFunction: parametersNormalizeFn,
      integrationPattern: IntegrationPattern.REQUEST_RESPONSE,
    });
    
    ...
    
    const dataProcessTask = new GlueStartJobRun(this, 'Data Process', {
      integrationPattern: IntegrationPattern.RUN_JOB,
      glueJobName: etlConstruct.jobName,
      timeout: Duration.hours(5),
      resultPath: '$.dataProcessOutput',
    });
    
    ...    
    
    const definition = parametersNormalizeTask
      .next(dataIngestTask)
      .next(dataCatalogCrawlerTask)
      .next(dataProcessTask)
      .next(hyperParaTask)
      .next(trainingJobTask)
      .next(runLoadGraphDataTask)
      .next(modelRepackagingTask)
      .next(createModelTask)
      .next(createEndpointConfigTask)
      .next(checkEndpointTask)
      .next(endpointChoice);

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

from neptune_python_utils.endpoints import Endpoints
from neptune_python_utils.bulkload import BulkLoad

...

bulkload = BulkLoad(
        source=targetDataPath,
        endpoints=endpoints,
        role=args.neptune_iam_role_arn,
        region=args.region,
        update_single_cardinality_properties=True,
        fail_on_error=True)
        
load_status = bulkload.load_async()
status, json = load_status.status(details=True, errors=True)
load_status.wait()

Навчання моделі GNN

Після збереження даних графіка для навчання моделі в Amazon S3, a Навчальна робота SageMaker, який стягується лише під час виконання навчального завдання, запускається для запуску процесу навчання моделі GNN у режимі Bring Your Own Container (BYOC). Він дозволяє вам запакувати ваші сценарії навчання моделі та залежності в образ Docker, який він використовує для створення екземплярів навчання SageMaker. Метод BYOC міг би заощадити значні зусилля при створенні навчального середовища. в src/sagemaker/02.FD_SL_Build_Training_Container_Test_Local.ipynb, ви можете знайти деталі навчання моделі GNN.

Зображення Docker

Перша частина файлу блокнота Jupyter — це генерація навчального зображення Docker (перегляньте наступний фрагмент коду):

*!* aws ecr get-login-password --region us-east-1 | docker login --username AWS --password-stdin 763104351884.dkr.ecr.us-east-1.amazonaws.com
image_name *=* 'fraud-detection-with-gnn-on-dgl/training'
*!* docker build -t $image_name ./FD_SL_DGL/gnn_fraud_detection_dgl

Для навчання моделі ми використовували зображення на основі PyTorch. Бібліотека глибоких графів (DGL) та інші залежності встановлюються під час створення образу Docker. Код моделі GNN у src/sagemaker/FD_SL_DGL/gnn_fraud_detection_dgl папка також копіюється до зображення.

Оскільки ми обробляємо дані транзакцій у різнорідний графік, у цьому рішенні ми вибираємо Реляційна графова згортка (RGCN), яка спеціально розроблена для різнорідних графів. Наша модель RGCN може навчати вбудовування для вузлів у гетерогенних графах. Потім вивчені вбудовування використовуються як вхідні дані повністю підключеного рівня для прогнозування міток вузлів.

Гіперпараметри

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

edges *=* ","*.*join(map(*lambda* x: x*.*split("/")[*-*1], [file *for* file *in* processed_files *if* "relation" *in* file]))

params *=* {'nodes' : 'features.csv',
          'edges': edges,
          'labels': 'tags.csv',
          'embedding-size': 64,
          'n-layers': 2,
          'n-epochs': 10,
          'optimizer': 'adam',
          'lr': 1e-2}

Додаткову інформацію про всі гіперпараметри та їхні значення за замовчуванням див estimator_fns.py в src/sagemaker/FD_SL_DGL/gnn_fraud_detection_dgl папку.

Навчання моделі за допомогою SageMaker

Після створення налаштованого образу Docker контейнера ми використовуємо попередньо оброблені дані для навчання нашої моделі GNN із визначеними гіперпараметрами. Навчальна робота використовує DGL із PyTorch як базовою структурою глибокого навчання для створення та навчання GNN. SageMaker полегшує навчання моделей GNN за допомогою налаштованого зображення Docker, яке є вхідним аргументом оцінювача SageMaker. Додаткову інформацію про навчання GNN за допомогою DGL на SageMaker див Навчання мережі Deep Graph.

SageMaker Python SDK використовує Оцінювач для інкапсуляції навчання на SageMaker, який запускає SageMaker-сумісні призначені для користувача контейнери Docker, що дозволяє вам запускати власні алгоритми ML за допомогою SageMaker Python SDK. У наведеному нижче фрагменті коду показано навчання моделі за допомогою SageMaker (у локальному середовищі чи хмарі):

from sagemaker.estimator import Estimator
from time import strftime, gmtime
from sagemaker.local import LocalSession

localSageMakerSession = LocalSession(boto_session=boto3.session.Session(region_name=current_region))
estimator = Estimator(image_uri=image_name,
                      role=sagemaker_exec_role,
                      instance_count=1,
                      instance_type='local',
                      hyperparameters=params,
                      output_path=output_path,
                      sagemaker_session=localSageMakerSession)

training_job_name = "{}-{}".format('GNN-FD-SL-DGL-Train', strftime("%Y-%m-%d-%H-%M-%S", gmtime()))
print(training_job_name)

estimator.fit({'train': processed_data}, job_name=training_job_name)

Після навчання продуктивність моделі GNN на тестовому наборі відображається як наведені нижче результати. Модель RGCN зазвичай може досягти близько 0.87 AUC і понад 95% точності. Для порівняння моделі RGCN з іншими моделями ML див результати розділ попередньої публікації в блозі, щоб дізнатися більше.

Epoch 00099 | Time(s) 7.9413 | Loss 0.1023 | f1 0.3745
Metrics
Confusion Matrix:
                        labels positive labels negative
    predicted positive  4343            576
    predicted negative  13494           454019

    f1: 0.3817, precision: 0.8829, recall: 0.2435, acc: 0.9702, roc: 0.8704, pr: 0.4782, ap: 0.4782

Finished Model training

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

Розгортання моделі GNN

SageMaker спрощує розгортання навчених моделей машинного навчання. На цьому етапі ми використовуємо клас SageMaker PyTorchModel для розгортання навченої моделі, оскільки наша модель DGL залежить від PyTorch як базової системи. Ви можете знайти код розгортання в src/sagemaker/03.FD_SL_Endpoint_Deployment.ipynb файлу.

Окрім файлу навченої моделі та ресурсів, SageMaker вимагає файл точки входу для розгортання налаштованої моделі. Файл точки входу запускається та зберігається в пам’яті екземпляра кінцевої точки висновку для відповіді на запит висновку. У нашому випадку файлом точки входу є fd_sl_deployment_entry_point.py файл у файлі src/sagemaker/FD_SL_DGL/code папка, яка виконує чотири основні функції:

  • Отримувати запити та аналізувати вміст запитів, щоб отримати передбачувані вузли та пов’язані з ними дані
  • Перетворіть дані на неоднорідний граф DGL як вхідні дані для моделі RGCN
  • Виконайте висновок у реальному часі за допомогою навченої моделі RGCN
  • Повернути результати передбачення запитувачу

Відповідно до конвенцій SageMaker, перші дві функції реалізовано в input_fn метод. Дивіться наступний код (для простоти ми видаляємо деякий код коментаря):

def input_fn(request_body, request_content_type='application/json'):

    # --------------------- receive request ------------------------------------------------ #
    input_data = json.loads(request_body)

    subgraph_dict = input_data['graph']
    n_feats = input_data['n_feats']
    target_id = input_data['target_id']

    graph, new_n_feats, new_pred_target_id = recreate_graph_data(subgraph_dict, n_feats, target_id)

    return (graph, new_n_feats, new_pred_target_id)

Побудований графік DGL і функції потім передаються в predict_fn метод для виконання третьої функції. predict_fn приймає два вхідних аргументи: виходи input_fn і навчена модель. Перегляньте наступний код:

def predict_fn(input_data, model):

    # ---------------------  Inference ------------------------------------------------ #
    graph, new_n_feats, new_pred_target_id = input_data

    with th.no_grad():
        logits = model(graph, new_n_feats)
        res = logits[new_pred_target_id].cpu().detach().numpy()

    return res[1]

Модель, яка використовується в perdict_fn створюється model_fn метод, коли кінцева точка викликається вперше. Функція model_fn завантажує збережений файл моделі та пов’язані ресурси з model_dir аргумент і папку моделі SageMaker. Перегляньте наступний код:

def model_fn(model_dir):

    # ------------------ Loading model -------------------
    ntype_dict, etypes, in_size, hidden_size, out_size, n_layers, embedding_size = 
    initialize_arguments(os.path.join(BASE_PATH, 'metadata.pkl'))

    rgcn_model = HeteroRGCN(ntype_dict, etypes, in_size, hidden_size, out_size, n_layers, embedding_size)

    stat_dict = th.load('model.pth')

    rgcn_model.load_state_dict(stat_dict)

    return rgcn_model

Вихідні дані predict_fn метод — це список із двох чисел, що вказують логіти для класу 0 і класу 1, де 0 означає законний, а 1 означає шахрайський. SageMaker бере цей список і передає його внутрішньому методу під назвою output_fn щоб виконати остаточну функцію.

Щоб розгорнути нашу модель GNN, ми спочатку обгортаємо модель GNN у клас SageMaker PyTorchModel із файлом точки входу та іншими параметрами (шлях до збереженого ZIP-файлу, версія фреймворку PyTorch, версія Python тощо). Потім ми викликаємо його метод розгортання з налаштуваннями екземпляра. Перегляньте наступний код:

env = {
    'SAGEMAKER_MODEL_SERVER_WORKERS': '1'
}

print(f'Use model {repackged_model_path}')

sagemakerSession = sm.session.Session(boto3.session.Session(region_name=current_region))
fd_sl_model = PyTorchModel(model_data=repackged_model_path, 
                           role=sagemaker_exec_role,
                           entry_point='./FD_SL_DGL/code/fd_sl_deployment_entry_point.py',
                           framework_version='1.6.0',
                           py_version='py3',
                           predictor_cls=JSONPredictor,
                           env=env,
                           sagemaker_session=sagemakerSession)
                           
fd_sl_predictor *=* fd_sl_model*.*deploy(instance_type*=*'ml.c5.4xlarge',
                                     initial_instance_count*=*1,)

Попередні процедури та фрагменти коду демонструють, як розгорнути вашу модель GNN як кінцеву точку онлайн-виводу з блокнота Jupyter. Однак для виробництва ми рекомендуємо використовувати раніше згаданий конвеєр MLOps, організований Step Functions для всього робочого процесу, включаючи обробку даних, навчання моделі та розгортання кінцевої точки висновку. Весь конвеєр реалізований AWS CDK додатку, який можна легко відтворити в різних регіонах і облікових записах.

Висновок у реальному часі

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

  1. Вставка вузлів і ребер – Витягніть інформацію транзакції, таку як TransactionID і ProductCD, як вузли та ребра, і вставте нові вузли в існуючі дані графіка, що зберігаються в базі даних Neptune.
  2. Вилучення підграфа – Встановіть передбачуваний вузол транзакції як центральний вузол і витягніть підграф n-hop відповідно до вхідних вимог моделі GNN.
  3. Видобуток функції – Для вузлів і ребер у підграфі витягніть пов’язані з ними функції.
  4. Виклик кінцевої точки висновку – Упакуйте підграф і функції у вміст запиту, а потім надішліть запит до кінцевої точки висновку.

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

Для передбачення в реальному часі перші три кроки потребують меншої затримки. Таким чином, база даних графів є оптимальним вибором для цих завдань, зокрема для вилучення підграфів, чого можна ефективно досягти за допомогою запитів бази даних графів. Функції підкреслення, які підтримують псевдокод, засновані на запитах gremlin Neptune.

def handler(event, context):
    
    graph_input = GraphModelClient(endpoints)
    
    # Step 1: node and edge insertion
    trans_dict, identity_dict, target_id, transaction_value_cols, union_li_cols = 
        load_data_from_event(event, transactions_id_cols, transactions_cat_cols, dummied_col)
    graph_input.insert_new_transaction_vertex_and_edge(trans_dict, identity_dict , target_id, vertex_type = 'Transaction')
    
    
    # Setp 2: subgraph extraction
    subgraph_dict, transaction_embed_value_dict = 
        graph_input.query_target_subgraph(target_id, trans_dict, transaction_value_cols, union_li_cols, dummied_col)
    

    # Step 3 & 4: feature extraction & call the inference endpoint
    transaction_id = int(target_id[(target_id.find('-')+1):])
    pred_prob = invoke_endpoint_with_idx(endpointname = ENDPOINT_NAME, target_id = transaction_id, subgraph_dict = subgraph_dict, n_feats = transaction_embed_value_dict)
       
    function_res = {
                    'id': event['transaction_data'][0]['TransactionID'],
                    'flag': pred_prob > MODEL_BTW,
                    'pred_prob': pred_prob
                    }
       
    return function_res

Одне застереження щодо виявлення шахрайства в реальному часі за допомогою GNN – це режим висновку GNN. Щоб виконати висновок у реальному часі, нам потрібно перетворити висновок моделі GNN із трансдуктивного режиму в індуктивний. Моделі GNN у трансдуктивному режимі висновку не можуть робити прогнози для щойно з’явлених вузлів і ребер, тоді як в індуктивному режимі моделі GNN можуть обробляти нові вузли та ребра. Демонстрація різниці між трансдуктивним та індуктивним режимами показана на наступному малюнку.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

У трансдуктивному режимі прогнозовані вузли та ребра співіснують із позначеними вузлами та ребрами під час навчання. Моделі ідентифікують їх до висновку, і вони можуть бути виведені під час навчання. Моделі в індуктивному режимі навчаються на навчальному графіку, але їм потрібно передбачити невидимі вузли (ті, що в червоних пунктирних колах праворуч) із їхніми пов’язаними сусідами, які можуть бути новими вузлами, як-от сірий трикутник праворуч.

Наша модель RGCN навчена та перевірена в трансдуктивному режимі. Він має доступ до всіх вузлів під час навчання, а також навчив вбудовування для кожного безфункціонального вузла, наприклад IP-адреси та типів карток. На етапі тестування модель RGCN використовує ці вбудовування як характеристики вузлів для прогнозування вузлів у тестовому наборі. Однак, коли ми робимо висновок у реальному часі, деякі з нещодавно доданих безфункціональних вузлів не мають таких вбудовувань, оскільки їх немає в навчальному графі. Один із способів вирішення цієї проблеми — призначити новим вузлам середнє значення всіх вбудовувань у той самий тип вузла. У цьому рішенні ми використовуємо цей метод.

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

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.

Прибирати

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

Висновок

У цій публікації ми показали, як створити рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою SageMaker, Neptune та DGL. Це рішення має три основні переваги:

  • Він має хороші показники щодо точності прогнозування та показників AUC
  • Він може виконувати висновок у реальному часі через потоковий конвеєр MLOps і кінцеві точки SageMaker
  • Він автоматизує весь процес розгортання за допомогою наданого шаблону CloudFormation, щоб зацікавлені розробники могли легко протестувати це рішення за допомогою спеціальних даних у своїх облікових записах

Додаткову інформацію про рішення див GitHub репо.

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


Про авторів

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Цзянь Чжан є прикладним науковцем, який використовує методи машинного навчання, щоб допомогти клієнтам вирішити різні проблеми, такі як виявлення шахрайства, створення декоративних зображень тощо. Він успішно розробив рішення для машинного навчання на основі графів, зокрема графової нейронної мережі, для клієнтів у Китаї, США та Сінгапурі. Як просвітитель графових можливостей AWS, Чжан виступав із багатьма публічними презентаціями про GNN, Deep Graph Library (DGL), Amazon Neptune та інші служби AWS.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Менсінь Чжу є менеджером архітекторів рішень в AWS, зосередженим на проектуванні та розробці багаторазових рішень AWS. Він багато років займався розробкою програмного забезпечення та відповідав за кілька команд стартапів різного розміру. Він також є прихильником програмного забезпечення з відкритим кодом і був комітером Eclipse.

Створіть рішення для виявлення шахрайства в реальному часі на основі GNN за допомогою Amazon SageMaker, Amazon Neptune і Deep Graph Library PlatoBlockchain Data Intelligence. Вертикальний пошук. Ai.Хаочжу Ван є вченим-дослідником в Amazon ML Solutions Lab, де він є одним із керівників Reinforcement Learning Vertical. Він допомагає клієнтам створювати передові рішення для машинного навчання завдяки останнім дослідженням вивчення графів, обробки природної мови, навчання з підкріпленням і AutoML. Хаочжу отримав ступінь доктора філософії з електротехніки та комп’ютерної інженерії в Мічиганському університеті.

Часова мітка:

Більше від AWS Машинне навчання