NTTドコモR&Dの技術ブログです。

インターン体験記:イーサリアムの取引データから詐欺アカウントを検出してみた

こんにちは!NTTドコモ サービスイノベーション部の九島です。

NTTドコモでは、8/26 ~ 9/6に現場受け入れ型インターンシップを実施しました。 本インターンシップはリモートと現地のハイブリッドの実施となり、参加者はチームに配属された後、2週間の業務体験をしていただきました。

以下、インターン生の郷田さんによる取り組み内容の報告です。

はじめに

8/26 ~ 9/6の現場受け入れ型インターンシップに参加させていただいた郷田 陸です。 大学では、グラフ構造のデータを対象とした機械学習の基礎研究に取り組んでいます。 この記事では、インターンシップに取り組んだ「Web3トークングラフを用いた大規模ユーザ理解・レコメンド等のAI技術開発」の体験談について記載したいと思います。

参加目的

私がインターンシップに参加したいと考えた理由は二つあります。

  1. 企業での研究開発と大学での研究活動との違い

私は機械学習についての研究に取り組んでおり、研究開発の業務につきたいと考えておりました。 しかし、大学での研究開発と企業での研究開発ではどのような違いがあるのかを体感したく、インターンシップに応募させていただきました。 インターンシップ前に考えていた違いは、扱うデータが実際のデータなのか否かということでした。 インターンシップでは、そのような違いがあったことも体験することができました。 さらに、企業での研究開発はサービスに繋げられることを重要視しているということを重要視していることを新しく知ることができました。

  1. 実際に働くイメージを掴むこと

企業説明会などでは感じることのできない、企業の雰囲気や人柄を知りたいと考えました。 本インターンシップで現場受け入れ型ということで、実際に社員の方々の中に混じって業務を体験することができます。 そのような体験を通じて、ドコモの社風や社員の方々の人柄、働き方などを知ることができました。

インターンシップでの業務内容

「Web3トークングラフを用いた大規模ユーザ理解・レコメンド等のAI技術開発」というテーマの業務に取り組みました。 具体的には、イーサリアムの取引データを表現したグラフ構造のデータを用いて詐欺アカウントの検出を行うAI技術開発に取り組みました。

初めに、扱うデータであるweb3トークングラフと、グラフ構造に対するニューラルネットワーク技術であるGraph Neural Network(GNN) について説明し、業務内容、今後の課題と紹介します。

1. 研究背景

近年、ブロックチェーン技術の発展が盛んであり注目を浴びています。 特に、分散型のインターネットであるweb3に注目が集まっています。 これらの情報からユーザの特定の属性を見つけ出すことは重要であり、レコメンドや詐欺アカウントの検出などに活用することができます。

web3の情報はグラフ構造で表現することができます。 このことに注目し、グラフ構造を対象とした機械学習手法であるGNNを用いたweb3トークングラフのデータ分析を試みます。

1.1. web3トークングラフについて

web3トークングラフとは、ブロックチェーン技術に基づいて構築された分散型のネットワークで、Web3環境におけるトークンの関係性を表すグラフである。このグラフはトークンの所有者、取引、交換といった情報を表すことができます。

1.2. Graph Neural Network(GNN)

Graph Neural Network とはノードとエッジで構成されるグラフ構造を対象としたニューラルネットワークです。 この手法は、ノードの特性を分類する問題であるクラス分類や、ノード間の繋がりを予測するエッジの接続予測などに用いることができます。

2. 業務内容

イーサリアムの取引データから詐欺アカウントの検出を目標とした分析をしました。 イーサリアムとは、分散型のブロックチェーンプラットフォームです。

論文「Ethereum Fraud Detection with Heterogeneous Graph Neural Networks[H. Kanezashi, 2022]」を元にして研究開発に取り組みました。 この論文では、大きく分けて2つの手法でのアプローチをとっていて、同種GNNと異種GNNです。 同種GNNはグラフを構成するノードタイプが1つである同種グラフを対象としたGNN手法で、異種GNNはノードタイプが複数種類ある異種グラフに対するGNN手法です。 本インターンシップで扱うデータは、イーサリアムの取引データなので異種グラフで表現できるのですが、 データセットの中にノードタイプの情報がなく、データセットとは別の情報源からノードタイプの情報を集めることが必要であったので、本インターンでは同種GNN手法での分析を試みました。 まず、論文に記載のある手法での分析方法を実装し、動作を確認し結果を評価しました。

GNN手法である、Graph Convolutional Network(GCN)、Graph Attention Netwrork(GAT)、GraphSAGEの3手法での実装・評価を行ないました。

この中では、GraphSAGEでの分析が詐欺アカウントの検出結果が1番良いことが確認できました。 しかし、すべての手法において検出率が低いことも確認できました。

また、分類モデルの性能を評価するため、混合行列を算出し、比較しました。 算出した混合行列内の各要素は以下で構成されています。

True Positive(TP): 一般アカウントを一般アカウントと正解できた数
False Positive(FP): 一般アカウントを詐欺アカウントと間違えてしまった数
False Negative(FN): 詐欺アカウントを一般アカウントと間違えてしまった数
True Negative(TN): 詐欺アカウントを詐欺アカウントと正解できた数

次に、検出率の向上を目的とした新しい手法の導入を試みました。 上記で述べたように、扱うデータはイーサリアムの取引データです。 エッジが取引の情報として取引金額や取引時刻といった情報を持っていることに注目しました。 しかし、論文で実装されていた3手法ではこれらの情報を活用できていないことに気づきました。 そこで、GraphSAGEの拡張手法である E-GraphSAGE という手法を用いて分析を実装・評価しました。 E-GraphSAGEとは、GraphSAGEでの学習アルゴリズムにエッジが持つ特徴を加えるといった手法になっています。

この結果、上記の3手法に比べ詐欺アカウントの検出率の向上を達成しました。

3. 今後の課題

今回のインターンシップでは、イーサリアムの取引データから詐欺アカウントの検出に取り組みました。

目標としていた詐欺アカウントの検出率の向上は達成しましたが、まだ検出率が6割程度で向上の余地があります。 そして、検出率の向上にはどの情報が重要なのか、どのようなアカウントが重要なのか、という分析も行うことができませんでした。

GNNの学習でどの情報が重要であるのか可視化をし、学習に与える情報を洗練することで、詐欺アカウントの検出率の向上を目指したいです。

インターンシップを振り返って

参加した感想

2週間という期間がとても短いと感じるような充実した体験をすることができました。

特に、インターンシップを通じて業務内容に関する報告などといったコミュニケーションの大切さとスケジュールの管理の大切さを学びました。 毎日、複数回のミーティングを設定していただき、自身の考えを伝えることで新たな気づきやアドバイスを得ることができ、円滑に進めることができました。

参加目的の達成度

私は参加目的として、大学と企業での研究開発の違いを体感することができ、よりサービスに近い形での研究開発を楽しむことができました。 また、実際に現場で働くことで社風や人柄を深く知ることができました。 参加目的を達成できたとともに、多くの知識やスキルを得られた素晴らしい機会だったと感じております。

最後に

手厚くサポートしてくださった社員の方々に深く感謝申し上げます。
とても充実した2週間を過ごすことができました。
ありがとうございました。
現場受け入れ型インターンシップは、ドコモや興味のある部署について学べる最適な機会で、参加できてよかったと感じております。