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

# はじめに

この記事は[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/0db7f8c4940a7d2564f4)

------------------------------------------
# 政府機関
犯罪行為から連絡先の追跡まで、政府関連の多くの問題にグラフ技術を活用できます。

## 脱税
**問題点**

多くの政府にとって、税金詐欺はますます深刻な問題となっています。政府は資源に乏しくなる一方で、犯罪者はより巧妙になってきています。さらに、現代のテクノロジーはアジャイル的ではない政府に多くの課題をもたらすとともに、国境を越えて資金を簡単に移動させる方法を提供しているため、より犯罪者のインセンティブが大きくなる状況です。

現在、犯罪者はペーパーカンパニーを設立し、その企業を合法的な企業のように見せかけることができます。資金は複数の口座を経由し、行ったり来たりして、意図的に素早く錯綜した経路をたどり、最終的には政府の資金が犯罪者の手に渡ってしまう場合もあります。

**グラフを用いた分析手法**
このような複雑なパスを紐解くことは、データの奥深くに何層もの関係が隠されており、簡単なことではありません。各層の関係のパスを追跡することは困難な作業ですが、グラフデータベースは、ペーパーカンパニーの構造を理解し、手作業による調査に役立つ可視化ツールを提供しています。これにより、複数のホップにおける疑わしいパターンを発見し、蛇行して最終的に1人の汚職者または組織に戻るパスを発見することができます。

また、別のケースとして、グラフテクノロジーは、人々が隠そうとする財産や賃金を発見することも可能です。例えば、ある個人が複数の企業から給与を受け取り、そのうちのいくつかを隠そうとすることがあります。また、開示されていない投資資産がある場合もあり、賃貸物件、ロイヤリティ、パートナーシップ、遺産、信託など、複数の源泉からの収入がある場合、そのすべてを追跡し、正しい税金の支払いを確認するのは難しいものです。グラフテクノロジーは、これらの資産と関係者の関係を整理し、支払うべき金額を明確にすることができます。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/85878222-eaba-a038-6eff-a169d358f9b6.png)

# 犯罪捜査

**問題点**

グラフデータベースは、犯罪活動の分析に新たな知見をもたらしています。犯罪の中には、小規模で日和見的に起こるものもあります。しかし、警察が協力して追跡し、取り締まるような犯罪は、多くの人々、ギャング、企業、さらには場所が相互に関連した大規模なものであることが多く、つまり、サイロ的に発生することはあまりありません。

**グラフを用いた分析手法**

データをグラフ化することで、犯罪ネットワークを特定し、パターンを探すための自然で効率的な方法を利用することができます。

PageRankや中心性などのグラフベースのアルゴリズムを適用することで、グラフ内の要援護者を探したり、場所に関するより多くの洞察を得たり、さらには重要人物や犯罪組織の可能性を探したりすることが容易になります。

例えば、中心性（betweenness centrality）を適用すると、グラフが依存している頂点を意味する重要なハブを見つけることができます。その頂点を取り除くと、グラフ全体が崩れる可能性があります。つまり、犯罪組織の要を見つけたことになります。

## 接触確認
**問題点**
疾病の接触者追跡は、世界的に重要な活動になっています。感染力の強い新しい病気にかかった人が、普段通りの生活を続け、映画館や満員のスポーツジム、混雑した結婚式、合唱団の練習などを訪れ、行く先々でその病気を広めている状況もあります。感染者が出た場合、その感染者と接触した人全員を探し出し、隔離してもらうという、時間との戦いになります。コンタクト・トレーシングは、感染の拡大を食い止めるために、できるだけ早くその役割を果たさなければなりません。

**グラフを用いた分析手法**

グラフデータベースは、関係性に重点を置いているため、病気のパターンの分析に適しています。病気の患者、その家族や友人、訪れた場所などの情報を入力し、ホットスポットやつながりを迅速に特定することが可能です。このようにして、分析者はより迅速に病人を隔離し、さらなる病気の発生を防ぐことができます。

グラフを使ったコンタクトトレースには、3つのレベルがあります。
まず、人々の関係、コミュニティ、訪問先などを把握する必要があるが、十分なモバイルデータがあれば、グラフで明らかにすることができます。

第二に、グラフは拡散の可能性を見出す必要があります。
つまり、病気を拡大させる可能性のある人々の関連性を調べることです。
その人はバスで移動したのか？バスに乗った人を全員特定できるか？等の関連性を発見する必要があります。

第三に、接触者追跡は「スーパースプレッダー」を見つけ、まずその人たちを隔離することを急がなければなりません。これには、広く濃密なコンタクトを持ち、多くの異なるコミュニティとつながりを持ちそうな人々を見つけることが必要です。
これには、中心性と中間性という概念でグラフを探索し、つながりの強い人々を見つけることが必要です。

# データ規制とプライバシー

データの価値が高まるにつれ、企業はより積極的にデータを収集し、販売し、活用するようになりました。同時に、データをめぐる法律、規制、基準も大幅に増加しています。しかし、データの量が増え続けると、そのデータを管理し、データのプライバシーと規制を確保することは、これまで以上に複雑になってきます。

## GDPR

**問題点**
データ管理の専門家は、どこでもGDPRへの対応という問題にまだ取り組んでいます。人々のプライバシーを維持し、データアクセス要求に応え、忘れ去られる権利の要求を満たすなど、さまざまな問題をどのように解決し続けることができるのでしょうか。

大きな困難の一つは、各データベースに何が保存されているかを発見することにあります。データは移動されたり、変換されたり、ユーザーや他のプロセスによって消費されたりすることがあります。そして、これらすべてのデータで何が起こったかを追跡することは、非常に困難な場合があります。

しかし、問題はそれだけではありません。元々、データはテーブルに保存されていたかもしれません。しかし、そのデータからレポートが作成されます。レポートには情報が含まれており、アクセスルールも設定されています。もし、誰かが忘れられる権利を行使しようとする場合、データがどこに保存され、どこにコピーされ、どこでテーブルやレポートに使用されたかを電子的に追跡することは、非常に複雑な作業となってしまいます。そのため、GDPRの要件を満たすことは、非常に困難な作業です。

**グラフを用いた分析手法**
データリネージを追跡することは、グラフととても相性がいいです。グラフとデータライフサイクルの様々なステップを、エッジを追跡することにより、ノードそれぞれについてナビゲートすることが可能です。グラフを用いることで、パスを検索し、どこでオリジナルの情報が保存されていて、いつコピーされ、いつ利用されたのか等をすべて確認することが可能です。GDPRの要件をどう満たすか、いつも準拠しているかを担当者の方は
グラフですべての情報が展開されることにより、よりシンプルに管理することが可能になります。

## データプライバシー
**問題点**
組織は、データへのアクセスを制限する必要があります。
例えば、特定のパソコンに特定のファイルを開くことだけを許可したい場合や、特定のチーム、部署、プロジェクトが特定のデータにアクセスできるようにするなど、制限を行う必要があります。どのチームがアクセス権を持ち、どのチームがアクセス権を持たないべきか、どのチームが業務遂行のためにより良いアクセス権を必要としているか等を考慮する必要があり、アクセス権の管理や可視化は複雑になることが多いです。

多くの場合、このデータ構造は流動的である必要があり、階層構造を動的に変化させる必要があります。しかし、これをシームレスに行うことは難しく、また、何がどのように変更されたかを完璧に理解することも困難です。

**グラフを用いた分析手法**
グラフはこのような階層構造を非常にダイナミックにすることができ、グラフクエリは変化するデータアクセスの応答時間を向上させることができます。複雑で大きな変化をともなうアクセス管理プロセスにより、アプリケーションは特定のマテリアルに対する権限を毎回確認する必要があります。グラフクエリを利用することにより、ネットワークを効率的に検索することで、アプリケーションはリアルタイムでより効率的にパーミッションを確認することが可能になります。



## サイバーセキュリティ
**問題点**
クラウド環境では、セキュリティはとても重要な観点になります。これには、不正なトラフィックの検出、サイバー脅威の発見、マルウェアの検出など、複雑な領域が含まれます。これらの課題に対する解決策の一つが、グラフ技術を用いたサイバーセキュリティの強化です。


**グラフを用いた分析手法**
グラフ技術により、ITネットワーク上でコンピュータがどのように接続されているか等の、データエンティティ同士のつながりを把握することが可能です。グラフから得られる、付随的な信号を活用し、異常検知を行うことが可能です。インタラクティブでセキュリティデータを視覚的に探索することにより、サイバー脅威の検出を強化することができます。これにより、サイバー脅威を発見するための理想的な環境を構築することができます。

ある例では、オラクルは SaaS のセキュリティチームと連携して、脅威インテリジェンスシステムを強化しました。このシステムは、アプリケーションの実行を監視し、疑わしい活動を検出してインシデントアラートを生成し、調査すべき問題を割り当てます。しばしば、これらの問題はリソースの非効率的な使用となる可能性がある、手作業で調査されます。

しかし、ある種の事件は必ずパターンがあるものです。グラフベースの視覚的な脅威調査を追加して、情報パケットがどこから来て、どのように転送されるかのパターンを追跡することで、これらの一貫したパターンを自動的に特定することができます。情報パケットがどこから来て、どのように転送されるかを追跡するグラフベースの視覚的な脅威調査を追加することで、これらの一貫したパターンを自動的に特定し、阻止することができます。これにより、手動で調査する手間を少なくすることで、時間や従業員のリソースを節約することが可能になります。

# マーケティング

マーケティングは、関係性が重要なポイントで、マーケティング担当者は顧客、顧客同士の関係、製品、異なる製品間の関係などを理解し、顧客が求めるものを効果的に提供しなければなりません。

## 顧客360度分析
**問題点**
昨今、企業は顧客に関する下記のような情報をより多く持っています。

- マスターデータ: 名前、年齢、ジェンダー、住所
- トランザクション: 購入、購入した商品情報、購入時間
- ビックデータ: コールセンターのログ、トラフィックライン、ウェブクリックストリーム、SNSのアクティビティ
- 予測: 分類、興味の傾向(これらは異なるモデルから作成されることが多いです。)

しかし、多くの企業はこれらの情報を包括的に、理想的な状態で活用できていることは稀です。真に正確な分析を作成することは難易度が高いです。

**グラフを用いた分析手法**
上記のようなマーケティングデータがすべて収集され、物理的なプラットフォームに統合されると、通常、すべてのデータを分析するのは大変困難です。ですが、論理的にグラフに統合されることにより、一つのエンティティのすべての関連情報(ここでは顧客)を簡単に確認することが可能になります。これにより、マーケターの方は顧客同士の関係や、購入した商品間の関係など、より包括的な顧客の情報を得ることが可能になります。さらに、グラフのアルゴリズムを活用することで、より詳細な顧客の情報を発見することも可能になります。

特定の顧客のすべての情報を分析することは顧客理解、顧客360度分析でどの予測が正確で、その理由等を解明するために、重要になります。
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/705252cf-567f-aa3f-922b-9e46beae72c1.png)


## 商品レコメンデーション

**問題点**
グラフ以外の技術でレコメンデーションエンジンをサポートすることは可能ですが、グラフを活用したほうがTtV(価値実現までの時間)を早くすることができます。グラフのデータは顧客とその人が好む製品の関係を既に適切に配置しているので、アルゴリズムを実行して、おすすめを発見することは簡単で迅速になります。さらに、リアルタイムレコメンデーションが重要になる時代背景と、複雑な多種多様のデータを関連づけるのはかなり大変な作業になります。分析に活用するデータは製品情報と関連付けられる、顧客のカートや、過去の行動データ、現在のサプライヤーの情報、物流や、ユーザーの興味を持った広告やSNSで検索された製品情報等多岐にわたり、ある種のデータベースではそのすべてを活用してリアルタイム分析を行うことはかなり難しくなります。

**グラフを用いた分析手法**
上記のようなデータをすべて集めて、関係性を構築し、すぐに顧客ニーズと製品トレンドの知見を得られ。さらにリアルタイムのレコメンデーションを行える技術がグラフデータベースです。多くの大企業が実際に、グラフの分析と商品レコメンドのためにグラフ技術を活用しています。グラフの特性である関係性が既に配置されていて、予測を行うための関係性の分析がとても速く行える点がグラフが活用されている背景にあります。

![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/f7fc34e1-a63e-8e55-2c6a-57b3bcf23e2e.png)


## ソーシャルメディア

**問題点**
ソーシャルメディアが台頭してきた現在、関係性はとても重要になっています。ソーシャルメディアの世界ではソックパペットと呼ばれる、多重アカウントの存在が争点になります。ここでの定義では、ソックパペットはボット運用されたフェイクのアカウントです。ソックパペットはある特定の話題やキーワードをより重要に見せるためにリンクやシェアを活用して、トレンドに見せかけるように動きます。


これは、無害なものもありますが、ときには小売業者や顧客を欺くものでもあります。例えば、Instagramのインフルエンサーが、フォロワーや「いいね！」を購入することで、自分をより人気者に見せようとするケースを考えてみましょう。しかし、ある時は非常に深刻な事態になることもあります。ボットを使用して、他国の政府を不安定にさせるような話題を提供することもあります。

**グラフを用いた分析手法**
グラフデータベースは、ソーシャルネットワークとその関連データを非常に高速に処理することができるため、Facebook、LinkedIn、Twitterなどのソーシャルメディア企業は、自社のプラットフォームで何らかのグラフ処理を活用し、世界中の友人や家族を特定することができます。先ほどの例で、商品のリコメンデーションについて触れました。同じようなプロセスで、ユーザー、画像、製品などを推薦することができます。また、不正行為やソックパペット・アカウントの検出にも利用できます。

下記の例では、アカウント間のリツイート数をエッジの重みとしたグラフを作成し、これらのアカウントが近隣のアカウントを何回リツイートしているのかを確認します。表示されているパターンでは、自然な人気のあるアカウントとかなり異なった特徴を持っていることが分かります。

自然な人気のアカウントの例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/976aae99-156b-13b3-d37b-48a8dac6625b.png)
リツイート数とユーザーの関係では、多くのユーザーはあまり多くのリツイートをせず、ごく一部の人が多くのリツイートを行っています。

不自然な人気のアカウントの例
![image.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/706384/bc6d4813-a127-88da-d607-7548a43a810f.png)
不自然なアカウントでは、多くのユーザーが多くのリツイートを行っています。

このように、不自然な動きを速やかに発見し、ボットやソックパペットのアカウントを除外することが可能になります。



# AIと機械学習
AIや機械学習はビジネスの成果を向上させ、新たなインパクトを生み出すことが期待される非常に注目されている分野です。
グラフは、データサイエンスを補強するために、いくつかの重要な方法で使用することができます。


## 特徴量生成

**問題点**
機械学習モデルはデータに依存します。このデータが優れていればいるほど、つまり、より豊かで、より深く、より完全なものであればあるほど、機械学習モデルはより優れたものになります。機械学習モデルを作るには、データをより豊かにするための特徴量生成という段階があります。例えば、データサイエンティストは、ある人物の自宅の住所と会社の住所を知っているかもしれませんが、機械学習モデルには距離を入力したほうがいい場合があります。データサイエンティストは、住所から距離を見つけて、機械学習モデルにとってより良いデータを作成するために、特徴量生成のステップを追加する必要があります。

しかしながら、ある種の特徴量生成は、データの関係性を前面に出して分析をしたい場合、もっと複雑な場合があります。こういったデータは多くの結合が必要になり、時間がかかって面倒です。

**グラフを用いた分析手法**
特徴量生成のステップは、グラフデータベースに読み込まれたデータセットに対してグラフアルゴリズムを実行し、機械学習に利用可能な豊かなデータを作成します。このプロセスにより、機械学習モデルにより利用可能なデータを与え、包括的にすることができます。

例えば、マシンラーニングのモデルが、生命保険に加入しようとしている新規顧客の人がどこに住んでいるか、どの車を所有しているかなどの情報を既に持っているかもしれません。モデルでは、既存の顧客を分類し、それに基づいて新しい顧客に対する予測を行うことができるかもしれません。

しかし、それだけではグラフのコンポーネントが欠けてしまいます。新規顧客には、すでに顧客になっている同僚がいるかもしれません。その顧客が実際に生命保険に加入するかどうかの重要な指標になりうることがあります。グラフから得られる特徴を取り入れることで、機械学習モデルはより強力でより正確にできることがあります。

もしくは、グラフアルゴリズムをデータに対して実行し、購入した商品から、似たようなお客さんの特徴を分類する等をして、新たな知見を得ることも可能です。


## グラフニューラルネットワーク

**問題点**
グラフがレコメンデーションに役立つことはすでに確認しましたが、予測レコメンデーションにはどうでしょうか？

例えば、オンラインショップが、顧客にレコメンデーションを送信する場合のタイミングは、顧客がその商品を使い切ると予測されるタイミングで送りたい場合はどうなるでしょうか。レコメンデーションに予測機能を追加することは、複雑ではありますが、利益を大きく伸ばすことができます。このようなアプローチは多くの企業にとって未開拓の領域であることが多いです。

**グラフを用いた分析手法**
グラフそのものを機械学習やニューラルネットワークの入力として捉えることができるグラフニューラルネットワークに多くのデータサイエンティストが興味を持ち始めています。グラフは、標準的な表よりもモデルが柔軟で、多くの情報を保持できる可能性があります。

グラフから取得した情報を用いた機械学習モデルは、しばしば表形式の入力に基づく機械学習よりも良い性能を発揮することがあります。このようなニューラルネットワークは、すでに様々な業界で評価されています。例えば金融詐欺の検出などで精度が向上している結果も出ています。このような技術を実行するためには、柔軟性のために、グラフフォーマットで元の情報を保持することが重要になり、それによって、グラフデータベースが最先端の機械学習のテクニックを活用するためのワークフローに重要な要素となってきます。