PyCon JP 2024

Pythonによるネットワーク分析の基礎とコミュニティサクセスへの応用
2024-09-27 , 20F Track2

ネットワーク分析は、人のコミュニケーション、画像、交通網など、様々な領域で見られる相互関係を解釈するために広く用いられる手法です。その自由度の高さと利用用途の広さから、とっかかりづらいと感じることも多いですが、非常に強力なツールです。

本セッションでは、グラフ理論の基礎から始まり、Pythonを用いたネットワークグラフの作成と操作方法、統計的指標を用いたネットワークの理解まで、基礎的な内容をすべてカバーします。

さらに、発表者の所属企業のプロダクト「Commune」における実践的なコミュニティサクセスのためのネットワーク分析の活用事例を紹介します。最後に、ご参加いただいてる皆様がネットワーク分析できるように、一般的なアクセスデータをネットワーク分析の入力データとして変換する方法についても解説します。

このセッションを通じて、ネットワーク分析の基礎から応用事例、データ収集方法までを広く紹介し、自身のプロジェクトに即座に適用できる知識と技術を提供します。


1. 自己紹介, 発表の全体像の紹介(3分)

2. ネットワーク分析の基礎(7分)

ネットワーク分析の基本概念を紹介します。

  • 数学的な表現方法や基礎概念の紹介
    • 頂点(ノード)と辺(エッジ)の説明
    • 隣接行列と次数分布、辺リストなど
  • ネットワークの分析の多様なアプローチの紹介
    • 森(全体俯瞰):
      • ネットワーク可視化したり、クラスタ係数などの特徴量の計算
    • 林(中間レベル):
      • クラスタリングを行ったり、経路上のボトルネックを特定し、ネットワーク内の特徴となる経路やグループの発見
    • 木(個別の特徴):
      • 将来の友人関係の予測や口コミ情報の伝搬促進・抑制を行ったり、ネットワークの中で中心的な存在となる頂点を同定するなど
  • 実世界の事例の説明

3. Pythonでのネットワークグラフの作成と操作(6分)

PythonのNetworkXライブラリを用いて、ネットワークグラフを作成し、操作する方法をデモンストレーションします。

  • NetworkXの基本:
    • グラフの作成方法、頂点と辺の追加方法
    • 基本操作(ノードやエッジの削除、属性の追加)
  • 基本的な分析:
    • 次数中心性、媒介中心性、コミュニティの計算方法と理論の簡単な説明

4. ネットワーク分析の応用(8分)

「Commune」のデータセットを用いた、ネットワーク分析の応用事例を紹介し、コミュニティサクセスにどのように活用できるかを説明します。

  • コミュニティの全体像を理解する:
    • クラスター係数、次数分布とべき則のフィッティングを用いてネットワークを評価
    • ネットワークの可視化方法と手法の解説
  • 具体的な応用例:
    • リンク予測による引き合わせたい人のペアの発見
    • 中心性指標を用いた中心人物の特定
    • ネットワーク上のコミュニケーションのボトルネック(ブリッジの欠如や中心性の偏り)の評価

5. データの取得方法(3分)

ネットワーク分析に必要なデータをどのように取得するかについて具体例を紹介します。

  • データソース:メール、Slackのユーザーアクティビティログなど、日常的に使用するツールからのデータ収集方法を解説します。
  • データの前処理方法:収集したデータをネットワークデータに変換する方法を説明し、二頂点間をつなぐ辺と重みに変換する方法を示します。

6. まとめとQ&A(3分)


Why did you choose this topic?:

私が初めてネットワーク分析を学んだときは専門的かつ、利用用途がイメージできないと感じていましたが、実際には非常に広い適応範囲を持ち、実用的な手法であることを知りました。

私が所属するコミューンでは、コミュニティサクセスプラットフォームの開発を行っており、実際にプロダクトのデータを活用してネットワーク分析に触れることでユーザー体験を改善するための多くのアイデアが思い浮かびました。

また、ネットワーク分析のような表形式ではない複雑なデータ構造を扱う分析手法に関する記事や事例がもっとあれば活用する人も増えるのではと感じました。

ネットワーク分析が怖くないものであり、データ分析のアプローチの幅を広げ、新たな視点を提供できることを多くの人に知ってもらいたいと思い、この題材を選びました。

Knowledges and know-how the audience can get from your talk:

本セッションでは、オーディエンスはネットワーク分析の基礎から応用までを学ぶことができます。

具体的には、ネットワークを構成する頂点(ノード)と辺(エッジ)の概念、隣接行列や次数分布などの数学的表現、そしてPythonのNetworkXライブラリを使ったネットワークグラフの作成・操作方法を学びます。
また、クラスター係数や中心性指標の計算、pyvisを使ったネットワークの可視化手法についても理解を深めます。

さらに、リンク予測や中心性分析を通じてコミュニティ内の重要な人物や新たなつながりを発見する方法、ネットワークの脆弱性を評価する方法も紹介します。

最後に、日常的なツール(メール、Slack)からデータを収集し、ネットワーク分析の入力データとして変換する方法を学ぶことで、参加者は自身のプロジェクトに即座に適用できる実践的な知識とスキルを持ち帰ることができます。

Prior knowledges speakers assume the audience to have:

Pythonの基本的なプログラミング知識とデータ分析の基礎的な概念があると理解が深まります。

Audience experiment:

Intermediate

Language of presentation:

日本語

Language of presentation material:

日本語

See also: Pythonによるネットワーク分析の基礎とコミュニティサクセスへの応用
  • 樋口 心(Higuchi Kokoro)
  • 1997年01月13日生まれ

コミューン株式会社でデータサイエンティストとして推薦システムの設計・グロース施策の分析業務などを担当しています。

GitHub: https://github.com/zerebom
Twitter: https://twitter.com/zerebom_3