Amazon Web Services ブログ

Amazon NeptuneとTom Sawyer Perspectivesを活用した金融取引における不正検知

この記事は、Tom Sawyer SoftwareのシニアプロダクトマネージャーであるJanet M. Sixが書いたゲストポストです。

不正や汚職は、企業や個人の財務の健全性に影響を与えることで、何百万人もの人々の生活に影響を及ぼします。不正は通常、複数の関係者によって行われ、その性質上、人目につかないように実行されます。そのため、様々な業界で不正検知ソリューションが採用されています。個人情報の盗難や企業や政府のネットワークへの侵入などの不正行為は、近年、急増しています。金融・銀行、政府、法執行機関、保険、医療、税制などの業界において、不正行為の検知はガバナンスに欠かせないものとなっています。

グラフデータベースとグラフの可視化および分析を組み合わせることで、不正を検出することができます。ソーシャルネットワーク分析により、組織は不正行為に参加している可能性の高い個人を特定し、影響力のある人物や首謀者を追跡し、これらのネットワークを撲滅することができます。アナリストは、個人が不正行為を行うプロセスを可視化し、不正行為間の関係を確認し、取引が発生する経路を表示し、過去の不正行為のパターンを確認して、予測分析と予防に向けた戦略立案に役立てることができます。これらの分析は、データをマイニングしてパターンを見つけ、そのインシデントを他のシステムやアナリストに知らせることができます。

この記事では、金融詐欺の発見における Amazon Neptune のグラフデータベースとしての機能と、Tom Sawyer Perspectives で構築されたグラフデータ向け分析・可視化アプリケーションが、アナリストによる詐欺の調査や分析について、どのように支援するかを説明します。

Amazon NeptuneとTom Sawyer Perspectivesで不正を検知する

グラフデータベースは、アカウント、顧客、ビジネス、取引、その他のネットワーク要素間の関係を素早く表示するため、不正行為の検出や分析に特に有効です。また、グラフデータベースでは、データ内の接続の経路をたどるために複雑な結合操作を行う必要がないため、リレーショナルデータベースと比べて、大量の結合データに対して効率良くアクセスすることが得意です。

Neptuneは、高速で信頼性が高く、フルマネージドなグラフデータベースサービスで、大量に結合されたデータに対して効率良くアクセスするアプリケーションを簡単に構築・実行することができます。Neptuneは、主要なグラフクエリ言語である、プロパティグラフ用のApache TinkerPop Gremlin、openCypher、およびRDF用のW3C SPARQLをサポートしています。

Tom Sawyer Perspectivesは、グラフデータベースと特に相性の良い、グラフ可視化および分析用ソフトウェア開発キット(SDK)です。統合されたデザインおよびプレビュー・インターフェースと広範なAPIライブラリにより、開発者はカスタムでプロダクション品質の可視化および分析アプリケーションを迅速に作成することができます。Perspectivesのマウスで操作可能なデザイナー・インターフェースにより、カスタム描画、地図、チャート、テーブル、ツリー、インスペクタ、およびタイムライン表示を備えたアプリケーションを設計および開発し、複数のソースから連携したデータから洞察を得ることができます。Perspectivesは、5つの自動レイアウト、スイムレーン(組織やグループごとに専用レーンで仕切る可視化表現)、階層表現、30種類の内蔵された分析機能を使用して、最高レベルのグラフ可視化、分析、ナビゲーションを提供し、複雑なデータを分析する強力なユーザー体験を実現します。また、Perspectivesには、スキーマ抽出によるデータの読み取りと更新の両方に最適化されたNeptuneインテグレータが含まれており、迅速なアプリケーション開発が可能です。Perspectivesで作成されたアプリケーションは、Neptune StreamsAWS Lambda を組み合わせることで、追加および更新されたグラフデータをリアルタイムで分析することも可能です。

作成されたPerspectivesアプリケーションは、オンプレミス、Amazon Elastic Compute Cloud(Amazon EC2)インスタンス、または AWS MarketplaceTom Sawyer Perspectives Deployment Container を契約して Amazon Elastic Container Service(Amazon ECS)、Amazon Elastic Kubernetes Service(Amazon EKS)、AWS Fargate を使って拡張可能なコンテナオーケストレーションを展開することができます。

金融業界では、不正を発見・阻止しようとするアナリストは、グラフデータベースや可視化、分析を次のような形で活用することができます。

  • グラフデータベース内におけるデータの関係性を探索する
  • 可視化およびデータドリブンな分析機能で不審な行動パターンを特定する
  • 関連する要素をさらに調査することで、自動アラートによる誤検知の数を減らす
  • 機械学習やその他データ分析機能によって前後関係を提供する

Perspectivesで構築したサンプルアプリケーションには、詐欺の疑いがある組織(Fraud Ring)を探索できる2つの方法が含まれています。Alertsモジュールは、自動クエリによって発見された潜在的なFraud Ringを可視化し、Explorerモジュールでは、興味のあるアカウントや取引を調べ、その起点となる地点からデータをインタラクティブに探索することができます。Alertsモジュールの可視化では、Gremlinクエリによるアラートによって発見された潜在的なFraud Ringを表示し、関連するNeptune要素の探索をサポートします。Explorerモジュールでは、選択したGremlinクエリの結果を表示し、関連する要素の読み込みとインタラクティブなフィルタリングによる探索をサポートします。この2つの不正検出方法を詳しく見てみましょう。

2つの技術を組み合わせ、不正行為を阻止する

アナリストは、自動アラートとユーザーによるNeptuneデータの探索を組み合わせることで、不正行為を阻止することができます。

図1:Perspectivesを使用すると、バックグラウンド分析を利用してアラートを作成するアプリケーションを作成することができます。これらのアラートの結果を可視化することで、アラートを検証し、誤検知を減らすことができます。

まず、不正の可能性を発見し、アラートを作成するために、分析プロセスがバックグラウンドで常に実行されています。次に、アラートは優先順位を付けられ、さらなる調査のためにアナリストに提示されます。アナリストは、豊富なグラフベースの可視化および分析を使用して、アラートを検証または却下することができます。アナリストは、これらのアラートの結果をアドホックな調査結果と組み合わせることで、さまざまな相互関係を持つ複数のFraud Ringにおける不正を発見し、阻止することができます。さらに、アナリストは調査結果のグラフデータに対して付加情報を加え、不正を阻止するための追加調査を開始することができます。

Neptuneが提供するサンプルデータセット

この投稿では、Building a Fraud Graph Application on Amazon Neptune で提供されているデータを使用して作成した、詐欺検出用のサンプルアプリケーションを紹介します。これらのデータは、実験とデモのためにAWSによって特別に作成され、GitHubに公開されています。これらのデータは架空のもので、個人を特定できる情報と誤って判断しないように一部マスキングも施しています。
次の表は、この不正検知アプリケーションのノードの一覧をまとめたものです。

Schema Node Description
Account Account number and associated name
Address Location for account
DateOfBirth Date of birth for account holder
EmailAddress Email address for account holder
FraudRing List of accounts suspected to be in a fraud ring
IPAddress IP address associated with account
Merchant Business that conducts credit card transactions
PhoneNumber Phone number associated with account
Transaction A transaction initiated with an account at a merchant

なお、上記表のノード名は、以降の文章で以下の通り記載します。

  • Account: アカウント
  • Address: 住所
  • DateOfBirth: 生年月日
  • EmailAddress: 電子メールアドレス
  • IPAddress: IPアドレス
  • Merchant: 企業
  • PhoneNumber: 電話番号
  • Transaction: 取引

次の表は、エッジの一覧をまとめたもとのです。

Schema Edge Source Node Target Node Description
ACCOUNT Account Transaction A transaction that happened on this account
MERCHANT Transaction Merchant A transaction that happened at this merchant

Perspectivesでは、グラフベースの視覚化によってスキーマと対話します。次の図は、上の表で示した不正検出アプリケーションのスキーマを表しています。プロパティグラフは、スキーマ要素を緑色のノードとオレンジ色の詳細な関係情報で表します。属性は、要素の値であったり、別のスキーマ要素の属性への参照であったりします。モデル要素は、同じオブジェクト・モデル・タイプであれば、1つまたは複数の既存のモデル要素タイプから属性を継承することができます。

図2:Perspectives Schema Editorを使用すると、Neptuneのノードとエッジがどのように関連しているかの概要を確認することができます。

自動アラートでFraud Ringを発見する

アナリストは、自動分析およびアラートを使用することで、より迅速に不正を発見することができます。しかし、アラートによって、実際には不正ではない誤検知が生じることもあります。自動化されたアラートを発生させたデータの周辺をさらに調査することで、誤検知を減らし、その対応コストを削減することができます。このアプリケーションの例では、AlertsモジュールはGremlinクエリによるアラートを使用して、住所、電話番号、電子メールアドレスなど、同じ特徴を持つアカウントのグループを探索することによって、Neptuneデータベース内でFraud Ringを発見します。次の可視化では、10個のアカウントが関与するFraud Ringが示されています。スイムレーンでFraud Ringの要素を分類しているため、IPアドレス、電話番号、電子メールアドレス、生年月日、住所がどの程度一意のものが使用されているかをすぐに確認することができます。

図3:スイムレーンを利用することで、グラフの要素が素早く分類し、可視化したデータを確認することができる。

多くの潜在的なFraud Ringが怪しく見えますが、6つの特徴を共有するこの10個のアカウントを例として、さらに調査してみましょう。以下の可視化では、7つのアカウントで使用されている電話番号に着目しています。

図4:階層レイアウトを適用することで、1つの電話番号を使用する7つのアカウントに焦点を当てることができます。

両者には多くの共通点があるため、以下の可視化では、それぞれのアカウントを右クリックし、メニューから不正を意味する「Fraudulent」を選択することで、不正なアカウントとしてマークしています。

図5:ノードを選択し、右クリックでコンテキストメニューを開くことで、特定のアカウントを不正とみなすことができます。

次に、アカウントの1つである 「Lei Ai****」 に焦点を当てます。以下の可視化にスイムレーンを追加すると、このアカウントに関連するすべての不正な取引を即座に確認することができます。スイムレーンは、情報を分類して可視化するだけでなく、これらの情報から示唆を与えてくれます。この例の場合、問題のアカウントに関連する直近の取引、および関連するIPアドレスを迅速に確認することができます。

図6:ノードを選択し、右クリックでコンテキストメニューを開くと、追加の要素をロードして、不正なアカウントからの追加の取引を探索することができます。さらに、スイムレーンを適用して、データの分類を追加することができます。

このアカウントでの多数の活動や他の疑わしいアカウントとの関係から、ノードを選択して関連する要素をロードすることで、次の可視化に追加のNeptuneデータをロードし、不正行為がどこまで続いている可能性を特定することができます。次の可視化では、多くの疑わしいアカウントの近隣にあるものをインタラクティブにロードした結果、多くのアカウントや企業がこのFraud Ringに影響を受けている可能性があることを確認できます。これら情報を、可視化、検索、リスト化することにより、インタラクティブに探索することができます。そして、媒介中心性(betweenness centrality)分析、あるいは次数中心性(degree centrality)分析によって、特に高いアクティビティを示す領域に導いてくれます。

図7:ノード群を選択し、右クリックでコンテキストメニューを開くことで、選択したノードに関連する追加要素を読み込み、Fraud Ring付近のデータを探索することができます。

Gremlinの不正検知用クエリによって、当初疑われたFraud Ringだけでなく別の不正の可能性のある関連要素も含めてハイレベルに把握することができれば、Fraud Ringの最も中心的な参加者に関する洞察を得ることができます。また、異なるFraud Ringとの関係性も理解することができます。

ナビゲーションによって不正を検知する

アナリストが自動分析とは異なる独自の調査を行う場合は、不正を特定するためにNeptuneデータのアドホックな探索を採用する必要があります。今回作成したサンプルアプリケーションでは、Explorerモジュールにおいて、特定のアカウントや企業を検索し、関連する要素を探索することで、このような調査をサポートします。例えば、Gremlinの不正検知用クエリがアラートを出していなくても、ある企業が不正行為に関与しているか疑ったり、外部からの証拠を得たりすることがあります。次の図では、Gremlinクエリを実行することで、アナリストが関心を持った企業の直近の取引をロードしています。

g.V().hasLabel('Merchant').has('name','Star_Aviation').inE('MERCHANT').limit(10)

図8:ノードをクリックすると、アプリケーションの左下隅にあるインスペクタでその要素の詳細を見ることができ、疑わしい取引に焦点を当てることができます。

その取引を右クリックして関連する要素を読み込むことで、994ドルの取引を調べることができます。次の図は、その取引に関連するアカウントと IPアドレスを示しています。

図9:ノードを選択し、右クリックでコンテキストメニューを開くことで、疑わしい取引に関連するアカウントとIPアドレスを読み込むことができます。

下図では、このIPアドレスに関連する取引を右クリックし、「Load Neighbors」を選択することで、追加の取引をロードすることができます。

図10:疑わしい取引のあるIPアドレスを選択し、右クリックでコンテキストメニューを開くことで、そのIPアドレスに関連する取引を読み込むことができます。

このIPアドレスは、直近において多くの取引と関連しています。次の図では、Timelineビューでこれらの取引の発生日時について確認しています。

図11:Timelineビューを使用すると、疑わしいIPアドレスからどれだけの取引がいつ発生したかを調べることができます。

この可視化では、短時間に多くの大きな取引が行われていることがわかり、不正行為の可能性があります。次の図では、945ドルの取引に関連する情報を表示するために、さらにNeptuneの要素をロードしています。

図12:テーブルビューを使用して、複数の要素の情報を一度に見ることができ、また、テーブル内の項目を選択すると、その項目に関連する詳細の情報を確認することができます。

次の図では、このIPアドレスに関連する取引をより深く理解するために、Neptune内の要素をさらにロードしています。

図13:アプリケーションの同期ビューを使用すると、グラフ可視化、ツリービュー、テーブルビューで疑わしい取引を同時に調べることができます。

このIPアドレスから4件の取引が航空業界に関連しており、このアカウントが航空業界をターゲットにした詐欺に関連している可能性があることを示唆しています。これらの疑わしい活動領域を見つけた後、さらに調査して潜在的な詐欺を阻止することができます。

まとめ

Neptuneのグラフデータベースとしての機能とTom Sawyer Perspectivesの可視化、ナビゲーション、分析の機能を組み合わせることで、Fraud Ring、その関連要素、取引システム全体を調査し、体系的に不正を発見して阻止するアプリケーションを構築することができます。これらの取り組みにより、Gremlinクエリで作成された不正検出アラートの詳細を理解し、アラートで検知しきれない要素についてもインタラクティブに調査を行うことができます。

このように、自動的なリアルタイム検知と対話型の調査を組み合わせることで、金融機関の不正行為の早期発見をサポートしています。

Neptuneの詳細については、ユーザーガイド を参照してください。金融詐欺のサンプルアプリケーションを見るには、Tom Sawyer Software をご覧ください。Tom Sawyer Perspectives を使用して金融取引における不正を検知するアプリケーションを構築する準備はできていますか?我々はそのアプリケーション構築を開始するお手伝いを行います。製品ドキュメントとともに、当社のソフトウェアをお使い頂けます。また、コンサルティングやトレーニングも行っており、スムーズな構築が可能です。グラフデータベースの世界に足を踏み入れたばかりですか?Neptuneと Tom Sawyer Graph Database Browser をお試し頂き、グラフデータベースによってビジネスの価値を生み出す領域についてご理解頂けると幸いです。

本記事は 2022/08/30に投稿された Uncover financial fraud with Amazon Neptune and Tom Sawyer Perspectives を翻訳した記事です。翻訳はデータベーススペシャリストソリューションアーキテクトの木村 達也が行いました。

著者について

Janet M. Sixは、Tom Sawyer Softwareのシニアプロダクトマネージャーです。技術、ビジネス、デザインの様々な分野で活躍し、最先端のデータ可視化・分析製品に求められる複雑なニーズをまとめ上げることに貢献している。グラフの可視化、分析、人工知能に興味を持っている。