Журнал "Information Security/ Информационная безопасность" #5, 2020
тельно на основании данных о графе ищут оптимальное представление в про- странстве меньшей размерности (embed- ding), а не полагаются на заранее задан- ные эвристики. Graph Representation Learning можно разделить на два класса – unsupervised и supervised (semi-supervised). Цель пер- вых методов – выучить представление low-dimensional с сохранением структуры начального графа, вторых – получить представление low-dimensional, но только для определенной последующей задачи классификации, например классифика- ции вершин графов или самих графов. В supervised-методах помимо самого графа передается дополнительная информация, описывающая вершины (так называемая Node Features). Формулировка задачи и особенности графа Сбербанка Для оценки эффекта от использования GRL-методов было принято решение взять несколько real-time-моделей, осуществ- ляющих проверки переводов между кли- ентами банка или на сторонние реквизиты, дополнить их признаками по результатам работы GRL-моделей и оценить прирост эффективности. При этом использовались текущие промышленные модели, в кото- рых приводились некоторые графовые метрики (наличие прямых связей, общие соседи). Это было сделано для того, чтобы оценить добавочный эффект, который могут дать GRL-методы в дополнение к базовым графовым эвристикам. Тут важно отметить, что далеко не все GRL-методы хорошо масштабируют- ся на большие графы (свыше нескольких сотен тысяч вершин). В экспериментах мы использовали граф из 250 млн вер- шин и 2,2 млрд ребер. Большинство разработанных GRL-методов не в состоя- нии обработать такой граф. Для решения задачи нами был проанализирован и ото- бран ряд решений, которые по своей временной сложности и архитектуре разрабатывались именно для задачи работы на гигантских графах. По результатам анализа мы выбирали из решений Open Source GraphSAGE, SEAL, Pytorch BigGraph и решили оста- новиться на последнем решении, о при- чинах – ниже. Pytorch BigGraph (PBG) Pytorch BigGraph – решение Open Source от компании Facebook. PBG – это распределенная система для полу- чения embedding для очень больших графов (по информации от разработчи- ков, до миллиардов вершин и триллио- нов ребер), что достигается за счет некоторых функций, а именно: l партиционирования графа (позволяет обучать модели без необходимости загрузки всего графа в оперативную память); l многопоточных вычислений; l поддержки распределенного парал- лельного обучения на множестве машин на разных частях партиционированного графа; l реализации пакетной обработки для операции негативного сэмплирования ребер (существенно ускоряет процесс обучения). При этом все вычисления работают с использованием ресурсов исключитель- но CPU и не требуют специализирован- ных GPU-серверов (для GraphSAGE и SEAL требуются GPU, поскольку в их основе лежат графовые сверточные сети), хотя возможность использовать GPU для обучения в последнем релизе также появилась. Решение относится к unsupervised классу GRL (тогда как SEAL и Graph- SAGE относятся к supervised). Соот- ветственно, для получения embedding представления графа не требуется никаких дополнительных данных, опи- сывающих вершины, что позволяет быстрее провести эксперименты и оце- нить результаты. PBG поддерживает работу с мульти- сущностными и мультиреляционными графами, то есть позволяет обрабаты- вать графы, в которых представлены вершины разных типов и разные типы связей, например граф связей физиче- ских и юридических лиц (разные типы сущностей), а связи – финансовые тран- закции и факт владения юридическим лицом. Решение является законченным, стабильным, и оно было неоднократно опробовано на больших графах в сотни миллионов вершин как разработчиками, так и сообществом. Оно показало хоро- шие результаты по скорости работы и качеству результата. Имплементации GraphSAGE и SEAL присутствуют в виде библиотек или как часть более общих фреймворков для работы с графами (например, Pytorch Geometric), но все- таки это незаконченные продукты, и для их использования придется дополни- тельно реализовать часть функционала по обработке графа. В результате мы решили для первых экспериментов с GRL остановиться на решении Pytorch BigGraph. Данные для эксперимента и подход к оценке эффекта от GRL В Сбербанке уже давно реализован и активно используется для противо- действия мошенничеству граф связей, содержащий более 800 млн вершин и более 3 млрд ребер, а также свыше 30 различных типов связей. При этом граф обновляется на ежедневной основе, а исторические слепки графов с задан- ным шагом хранятся в Hadoop-кластере, что очень важно для разработки моделей и получения корректных оценок эффек- тивности. Для нашей задачи на первом этапе мы отобрали в графе только тип связи "переводы" и вершины, соответствую- щие клиентам банка и сторонним рек- визитам (карты, счета в других бан- ках). Глубину транзакций ограничили одним годом. Таким образом мы полу- чили граф G (V, E), где V – это множе- ство вершин, а E – множество ребер. Ребро между вершиной i и j существу- ет, если в отобранном временном про- межутке проводилась хотя бы одна подходящая транзакция. На этом этапе мы не стали фильтровать ребра ни по суммам, ни по количеству переводов, хотя такая возможность присутствует. Общее число вершин в получившемся графе – свыше 250 млн, а ребер – свыше 2,2 млрд. Оценку эффекта решено было про- вести на основных real-time-моделях • 43 ТЕХНОЛОГИИ www.itsec.ru Рис. 2. Основные компоненты решения PyTorch BigGraph, использующиеся для распределенного обучения 2 2 https://arxiv.org/pdf/1903.12287.pdf
Made with FlippingBook
RkJQdWJsaXNoZXIy Mzk4NzYw