グラフの活用事例17選 (#1)

# はじめに
この記事は[17 Use Cases for Graph Databases and Graph Analytics](https://www.oracle.com/a/ocom/docs/graph-database-use-cases-ebook.pdf)の一部翻訳記事となっています。

グラフを活用する場面について、分野ごとに紹介していく記事になっています。今回の記事は第一弾として、概要、および金融、製造セクターでの活用例を確認していきます。

[第二弾はこちら](https://qiita.com/hashiyu7/items/933a695d4c9eb1901352)

-------------------------------------------------------

## グラフとは?
グラフには、プロパティグラフとRDFグラフの2種類が存在しています。
プロパティグラフは解析とクエリに重点を置き、RDFグラフはデータ統合に重点を置いています。
どちらのタイプのグラフも、ノード（頂点）の集まりと、それらのノード間の接続(エッジ)で構成されています。


プロパティグラフは、データ間の関係をモデル化するために使用され、その関係に基づいてクエリやデータ分析を行うことが可能です。

以下の例では、Melli、Jean、Johnをノードとし、"collaborates with "と "feud with "を辺としてグラフで表しています。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/80a1ee8f-b39f-4211-eb1e-80128e8037cf.png)
各ノードにはさらに多くの情報を入れることが可能で、Melli、Jean、Johnについて、住んでいる場所や好きなものなど、より詳しい情報を追加できます。プロパティグラフは汎用性が高いため、金融、製造、公共安全、小売など、幅広い業種・分野で活用されています。

RDFグラフ（RDFはResource Description Frameworkの略）はステートメントを表現するために設計されたものです。文を表現するために設計されており、複雑なメタデータを表現するのに適しています。領域における複雑な概念を表現したり、データに対して豊富な意味付けや推論を必要とする状況でよく使われています。

RDFモデルでは、文は3つの要素で表現されます。エッジで接続された2つの頂点という3つの要素です。

すべての頂点と辺は、URI(Unique Resource Identifier）で一意に識別されます。

RDFモデルは、明確に定義されたセマンティクスを持つ標準的なフォーマットでデータを公開する方法を提供し、情報交換を可能にします。
政府統計局、製薬会社、ヘルスケア企業等様々な種類の組織がRDFグラフを採用しています。

## 金融業の事例

金融犯罪者は、どんなに努力しても、他の犯罪者との関係や、場所や、関係で結ばれています。
具体的には他の犯罪者との関係、場所、銀行口座です。グラフテクノロジーは、この事実を利用することで金融サービスの世界に新たな可能性をもたらします。

### マネーロンダリング

マネーロンダリングは概念的にはシンプルです。不正な資金を流通させ正当な資金と混ぜ合わせ、金融資産に変えることです。これはパナマ文書の分析で使われたようなプロセスです。

より具体的には、循環型送金は、犯罪者が多額の不正な資金を自分の口座に送るため、複雑な長い、普通の口座を利用して送金を行うことを指します。ここで利用される普通の口座は、合成アイデンティティという流出した情報から作成される架空の身元が用いられています。
盗まれたIDから作成されたものであるため、ある種の類似した情報を共有しており、このような関連情報は、グラフ解析に適しています。そのため、グラフ解析は、これらのアカウントの不正な出所を明らかにするのに非常に適しています。

グラフを用いた分析手法
不正検知をより簡単にするために、ユーザーは、エンティティ間のトランザクションと、メールアドレスやパスワード、住所など何らかを共有するエンティティからグラフを作成することができます。そして一度グラフが作成されれば、シンプルなクエリを実行することで、同じような情報を持っている顧客や、どの口座が相互に資金を送金しているのかなどの情報を明らかにすることが可能です。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/a470c3a3-6b76-340c-563f-ae22e759d3d3.png)

### マネー・ミュールおよびミュール詐欺の検出
ミュール詐欺は、マネー・ミュールと呼ばれる人が、不正な商品を移動させることです。これには薬物等が関係することもありますが、金融業界に関して言えば通常、金銭が関与します。マネー・ミュールは資金を自分の口座に送金し、その後、他の国にいる詐欺師に送られます。
従来は、ルールベースのモデルでアラートを作成し、不審なアカウントは人間の操作でフラグを立てられていました。機械学習は人間の判断を予測するために利用されます。しかし、口座自体の情報は限られているため、機械学習モデルを改善することが困難な場合もあります。

グラフを用いた分析手法
グラフの技術を使えば、ユーザーは取引情報を辺とし、取引情報をエッジとして、その周辺の関係や取引に基づき口座の特徴を生成することができます。グラフの中心性スコアを使用することで、ユーザーは、ある口座が既知のミュール口座にどれだけ近いかを判断することができます。

また、これらの偽アカウントは、住所や電話番号など、登録に必要な情報が共通していることが多く、犯罪者は多くのIDを保有しています。
グラフを利用したクエリを利用することで、類似した関係を持つアカウントや、流通などのパターンに関係するアカウントを素早く発見し、フラグを立てることができます。この方法により、グラフ技術は、マネー・ミュールやミュール詐欺を発見するために訓練された機械学習モデルを強化することができます。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/ba04c673-1f73-39cd-6b3b-d96d89abc141.png)

### リアルタイム不正検知
現代社会では、消費者はサービスや送金をすぐに利用することを求めますが、それは犯罪者にとってはチャンスとなります。例えば、決済サービスアプリは、有効なユーザーにできるだけ早くお金を届けると同時に、不正な目的で送金されたり、遠回りな経路で送金されて本当の受取人が隠されたりしないようにしようとします。そのため、リアルタイムで不正を検知する必要があります。

グラフを用いた分析手法
グラフはクエリに対する回答を高速に生成することができ、またデータへのアクセスも拡大することからデータへのアクセスを拡大できるため、リアルタイム不正検知の分野で一般的な技術になりました。グラフ技術で取引を調査する場合、グラフでモデル化できるのは取引だけではありません。グラフは非常に柔軟性が高いので、周囲の異質な情報もモデル化することが可能です。例えば、クライアントのIPアドレス、ATMの位置、カード番号、口座IDなどをグラフのノードとし、そのつながりをエッジとしてあらわすことが可能です。

プロパティグラフはデータセットに基づいて不正を検出するためのルールを設計することが可能なため、特にオンラインバンキングやATMの位置情報解析に利用されています。例えば、以下のような検出ルールを設定することができます。

- 異なる場所で登録した複数のカードでログインしているIP
- 遠距離にある異なる場所で使用されているカード
- 他のアカウントからワンタイムでインバウンドトランザクションを受信するさまざまな場所で登録されたアカウント

これらのルールは、オラクルのグラフ技術の下記のような特徴により、リアルタイムに適用することが可能です。
- グラフは常に更新され、元のリレーショナルテーブルと同期される
- 高性能なクエリやアルゴリズムの実行

## 製造業
製造業では、関係性と依存関係が重要になっています。グラフテクノロジーは、より多くの情報をスピーディに発見するのに適しています。

### BOM(Bill of materials)
自動車には3万個の部品があります。では、部品が変わるとどのような影響があるのでしょうか。また 一度に数個の部品を変えたらどうなるのか？このような解析は、自動車では非常に複雑になります。自動車では、それぞれの部品が何千もの依存関係を持つ可能性があり、このような分析は非常に複雑です。このような分析のためのクエリには、多段階のテーブル結合が必要なため、かつてはかなりの時間がかかりました。

グラフを用いた分析手法
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/ce504dc6-c5c8-cea4-27a2-bd18f7a91651.png)


グラフクエリを利用することで、応答時間を数秒に短縮することができます。リアルタイムでのインタラクティブな分析が現実的なものになりました。 グラフは、すべての部品の相互関係を明確にし、欠点や負の依存関係も明らかにすることが可能です。
部品表分析にグラフを使うことで製品情報と 依存関係を分析するモデルを作成することができます。
また 製品に関するベンダー、エンジニア、サプライヤー、材料、材料の経過年数等、詳細な情報を追加することも可能です。これにより、部品の信頼性、ベンダーの信頼性、サプライヤーの選択等を検定すること等が可能になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/63270ae2-1e21-edc5-9be3-acad820fa99a.png)

### トレーサビリティ
トレーサビリティは、製造業の世界では非常に重要な意味を持ちます。ある自動車メーカーが、ある車種に、ある工場から限られた期間に生産された部品があるとして、リコールを発令しなければならないことがあります。その場合、原因となる部品を追跡し、その工場から市場に出ている車や道路を走っている車を探し出さなければなりません。これは非常に大変なことです。

多くの企業では、製品のロット情報を管理する生産用データベースを持っています。しかし生産用とは別の小売データベースを持ち、また、販売データベースや出荷データベースも別に用意されていることが多いです。問題のある車がどこに出荷され、誰に販売されたのか、関連する情報をすべて発見するのは複雑です。


グラフを用いた分析手法
グラフ技術がなければ、アナリストはこれらのデータベースをすべて組み合わせ、ある特定の車から生産ラインを管理している工場のデータベースまでトラバーサルクエリーを実行しなければなりません。グラフ・データベースですべての関係を結び、グラフ・アルゴリズムで接続と関連情報をハイライトしない限り、この作業は複雑なデータ・モデリングと多くの結合を必要としています。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/20a45875-79de-a085-c1ae-5d9d72a19d04.png)

### マスターデータマネジメント
多くの製造工場では、設計チームが部品に対してある名称を使うことがあります。しかし、生産部門は別の名称を使うかもしれません。また、他の部門も同じ品目に対して別の名称を使用することがあります。このような場合、問題が発生したとき、あるいは特定の品目について、どの部品がどのように使用されているかを確認したいとき、異なる名称のために、正しい品目と一致させることが難しく、どの部品が問題の部品であるかを確認することが困難になります。

グラフを用いた分析手法
RDFグラフは、さまざまな構成要素をモデル化し、それらが互いに持つ関係やつながりを利用するのに適しています。RDFグラフは、これらの情報をすべて使ってメタデータ層を作り、異なる名前が同じ項目を示しているかどうか、項目が関連しているかどうか、さらには類似性のために異なる項目が互換的に使用できるかどうかを判断するのに役立ちます。これは、医薬品の世界でも、異なる化学物質、医薬品、一般名を識別するために使われています。

RDFグラフがない場合、アプリケーションには通常、正しい項目を検索するためのロジックが組み込まれています。しかし、このロジックは、データベースごとに命名規則が異なるため、すべてのデータベースで常に動作するとは限りません。また、アプリケーションのロジックを作成したDBAが会社を辞めた場合、ロジックが失われることもよくあります。RDFグラフを使用して情報をメタデータ層に抽象化すると、このようなアプリケーションロジックへの依存がなくなるだけでなく、さらに有用な層を形成してくれます。RDFグラフは、異なる名前が同じ製造物を指しているかどうかを教えてくれるだけでなく、これらの品目が他の品目と持つ関係や依存関係も明らかにしてくれるので、他の関連品目を見つけやすくなり、暗黙の事実や関係を発見しやすくなります。

一言で言えば、RDFグラフは、コンテンツとセマンティクスを機械的に読みやすく、かつ使いやすい形で捉えた自己記述的なデータを持つ方法を得実現することが可能になります。さらに、アプリケーションのロジックを最新の状態に保つ必要がなく、RDFの内容と品質が向上するにつれて、アプリケーションも自動的に機能が向上していきます。

#  まとめ
今回の記事ではグラフの金融や製造で利用する場合のユースケースを確認できました。[第二弾](https://qiita.com/hashiyu7/items/933a695d4c9eb1901352)では政府活動や、マーケティング分野での活用例を確認していきます。