Slide 1

Slide 1 text

2024 | © Commune Inc. All rights reserved Kokoro Higuchi / PyCon JP 2024 2024/09/27 Pythonによるネットワーク分析の基礎と コミュニティサクセスへの応 用

Slide 2

Slide 2 text

©2023 Wantedly, Inc. 2024 | © Commune Inc. All rights reserved ネットワーク分析の基礎 コミュニティサクセスの ためのネットワーク分析 • ネットワーク分析の基本概念やアプローチの紹介 • PythonのNetworkXライブラリを 用 いたネットワークの操作 • 身 近なデータをネットワーク分析 用 のデータセットにする 方 法 • 成 長 しているコミュニティの要因分析 • コミュニティサクセスへの 示 唆 本 日 のお話しすること

Slide 3

Slide 3 text

©2023 Wantedly, Inc. 2024 | © Commune Inc. All rights reserved ネットワーク分析の基礎がわかった!と思ってもらう 本 日 の発表のゴール🏁 コミュニティ×ネットワーク分析って 面白 そう!と 思ってもらう

Slide 4

Slide 4 text

2024 | © Commune Inc. All rights reserved 樋 口 心 (X: @zerebom_ 3 ) • Communeのデータサイエンティスト • 2024/01に 入 社 • Product & Dataチームに所属 • プロダクトのデータ分析やLLMやMLを 用 いた 新規機能 ・ プロダクトの開発 • 前職では推薦システムの改善 ・ 開発など 自 己 紹介 ↑資料はXに掲載

Slide 5

Slide 5 text

2024 | © Commune Inc. All rights reserved Part1 • サービスの紹介 背景: Communeについて アジェンダ • ネットワーク分析の基本概念 • ネットワーク分析のアプローチの紹介 ネットワーク分析の基礎 Part2 Part3 • NetworkXの基本操作の紹介 Pythonでのネットワークの操作 Part4 • 成 長 するコミュニティの特徴分析 コミュニティサクセスのための ネットワーク分析 Part5 • slackのスレッドデータの変換 ネットワーク分析 用 の データセットの作成

Slide 6

Slide 6 text

2024 | © Commune Inc. All rights reserved あらゆる 組織とひとが 融け合う未来をつくる Our Vision

Slide 7

Slide 7 text

2024 | © Commune Inc. All rights reserved

Slide 8

Slide 8 text

2024 | © Commune Inc. All rights reserved 立 ち上げ、成功できるコミュニティプラットフォーム

Slide 9

Slide 9 text

2024 | © Commune Inc. All rights reserved 食 品サービス ファンが商品に対して感想を 投稿したり製品の提案をする ITサービス ユーザーが機能の活 用 方 法を シェアしたり疑問解決する コミュニティで得られる事業インパクトの例 教育サービス ユーザー同 士 が励まし合い 学習モチベーションを上がる

Slide 10

Slide 10 text

2024 | © Commune Inc. All rights reserved 食 品サービス ユーザーの要望 ・ 感想が沢 山 集まる ITサービス 活 用 方 法や疑問点のシェアで サポート 工 数が減る コミューンでネットワーク分析するモチベーション 教育サービス 学習モチベーションの向上で 継続率が改善する コミュニティが正しく盛り上がるほど、事業成 長 につながる コミュニティで特に 大 事な、 人 のコミュニケーション(ネットワーク)から、 盛り上がるコミュニティの共通点を探したい!

Slide 11

Slide 11 text

2024 | © Commune Inc. All rights reserved Part1 • サービスの紹介 背景: Communeについて アジェンダ • ネットワーク分析の基本概念 • ネットワーク分析のアプローチの紹介 • 実世界での活 用 事例 ネットワーク分析の基礎 Part2 Part3 • NetworkXの基本操作の紹介 Pythonでのネットワークの操作 Part4 • 成 長 するコミュニティの特徴分析 コミュニティサクセスのための ネットワーク分析 Part5 • slackのスレッドデータの変換 ネットワーク分析 用 の データセットの作成

Slide 12

Slide 12 text

2024 | © Commune Inc. All rights reserved ネットワーク分析って何? 物事の関係を頂点と辺で記述するデータ構造を使った分析

Slide 13

Slide 13 text

2024 | © Commune Inc. All rights reserved ネットワークを構成している要素 頂点(ノード ・ Node) • ネットワーク内の要素を表す • 分析対象の「もの」「 人 」に相当 • ex) SNSのユーザー 辺(エッジ ・ Edge) • 頂点間のつながりや関係を表す • 頂点と頂点を結ぶ線 • ex)SNSのフォロー関係

Slide 14

Slide 14 text

2024 | © Commune Inc. All rights reserved SNSユーザーのクラスタリング ネットワーク分析の例 通信の最短経路の算出 https://networkx.org/nx-guides/content/algorithms/ fl ow/dinitz_alg.html https://networkx.org/nx-guides/content/exploratory_notebooks/ facebook_notebook.html

Slide 15

Slide 15 text

2024 | © Commune Inc. All rights reserved 森(全体俯瞰) • ネットワーク可視化や、 クラスタ係数など ネットワーク全体の 特徴量の計算 ネットワークのどこに着 目 するかを変えることで、 さまざまな分析が可能 ネットワーク分析にはどんなアプローチがあるのか? 林(中間レベル) • クラスタリングや経路上の ボトルネック特定 • ネットワーク内の特徴と なる経路やグループの発 見 木 (頂点や辺の特徴) • 将来の友 人 関係の予測や ネットワークの中 心人 物の 同定など

Slide 16

Slide 16 text

2024 | © Commune Inc. All rights reserved ネットワークの各要素に着 目 した分析( 木 ) • ネットワークで中 心 的な 人 物の特定 • ある頂点と頂点までの最短経路の計算 • 頂点間のつながりや相互作 用 の調査

Slide 17

Slide 17 text

2024 | © Commune Inc. All rights reserved ネットワークのある部分に着 目 した分析(林) • ネットワークを複数のクラスターに分割 • ブリッジやハブなど、特定の役割を果たす構造の発 見 • 情報伝達でボトルネックになっている経路の発 見

Slide 18

Slide 18 text

2024 | © Commune Inc. All rights reserved ネットワークの全体俯瞰(森) • ネットワーク全体の可視化 • ネットワーク全体がどれくらい密あるいは疎に連結か • ネットワーク全体に共通する構造の識別

Slide 19

Slide 19 text

2024 | © Commune Inc. All rights reserved ネットワーク分析はどんなところで便利か? 相互作 用 や構造を分析するのに向いている 特徴 表データの分析 ネットワーク分析 データ構造 行 と列で構成された表 頂点と辺で構成されたグラフ 主な焦点 個々のエンティティとその属性 エンティティ間の関係と構造 適した問題 個々の要素の特性や傾向を理解する 構造や相互作 用 を理解し、関係性や流れを分析する データの相互依存性 低い(独 立 した観測) 高 い(相互接続された観測)

Slide 20

Slide 20 text

2024 | © Commune Inc. All rights reserved ネットワーク分析の基本概念 G = (V, E) グラフ: V: 頂点の集合, E: 辺の集合 deg(v) = |{u ∈ V|(u, v) ∈ E}| 次数: ある頂点から隣接している頂点の数 グラフと次数 次数: 2 次数: 3

Slide 21

Slide 21 text

2024 | © Commune Inc. All rights reserved ネットワーク分析の基本概念 D = 2|E| |V|(|V| − 1) 密度の低いグラフ 密度の 高 いグラフ(密度1) 密度: 頂点同 士 がどれくらい隣接しているか[0,1]

Slide 22

Slide 22 text

2024 | © Commune Inc. All rights reserved ネットワーク分析の基本概念 クラスター係数の 高 いグラフ クラスター係数の低いグラフ クラスター係数:あるノードが近傍のノードとどれくらい密接に結びついているか

Slide 23

Slide 23 text

2024 | © Commune Inc. All rights reserved ネットワーク分析の基本概念 頂点の 大 きさ = 媒介中 心 性の 大 きさとしたグラフ 媒介中 心 性: CB (v) = ∑ s≠v≠t σst (v) σst σst : 頂点s→tへの最短経路 σst (v): vを通る頂点s→tへの最短経路 中 心 性: 各頂点がグラフ内でどれくらい中 心 的な存在か

Slide 24

Slide 24 text

2024 | © Commune Inc. All rights reserved 更に詳しく学びたい 方 は… 下記の書籍がおすすめ! 複雑ネットワーク―基礎から応 用 まで 増 田 直紀 (著), 今野 紀雄 (著) https://amzn.asia/d/ 0 gJ 4 Sso Pythonで学ぶネットワーク分析: ColaboratoryとNetworkXを使った実践 入門 村 田 剛志 (著) https://amzn.asia/ 0 QWYd 5 R

Slide 25

Slide 25 text

2024 | © Commune Inc. All rights reserved Part1 • サービスの紹介 背景: Communeについて アジェンダ • ネットワーク分析の基本概念 • ネットワーク分析のアプローチの紹介 ネットワーク分析の基礎 Part2 Part3 • NetworkXの基本操作の紹介 Pythonでのネットワークの操作 Part4 • 成 長 するコミュニティの特徴分析 コミュニティサクセスのための ネットワーク分析 Part5 • slackのスレッドデータの変換 ネットワーク分析 用 の データセットの作成

Slide 26

Slide 26 text

2024 | © Commune Inc. All rights reserved NetworkX 複雑なネットワーク構造の作成・操作 ・ 分析のためのPythonライブラリ • 様々な種類のグラフの作成/分析/可視化 が可能 • NumPy、SciPyなどのライブラリとの連携も容易 https://github.com/networkx/networkx

Slide 27

Slide 27 text

2024 | © Commune Inc. All rights reserved ネットワークの作成と可視化 • 頂点に要素を 足 すことや、辺に重みづけることもできる Graphオブジェクトに頂点や辺を登録する

Slide 28

Slide 28 text

2024 | © Commune Inc. All rights reserved ネットワークの分析 ・ 統計量の算出 頂点と辺を登録したネットワークに対してメソッドを呼び出す • グラフ内の頂点 ・ 辺の数 ・ 最短経路などを簡単に算出できる

Slide 29

Slide 29 text

2024 | © Commune Inc. All rights reserved 更に詳しく学びたい 方 は… 公式のチュートリアル”nx-guides”がおすすめ! • ネットワーク分析の背景知識から 丁寧に掘り下げて説明 • Facebookのデータセットを活 用 した 実践的なチュートリアルも収録 https://networkx.org/nx-guides/index.html

Slide 30

Slide 30 text

2024 | © Commune Inc. All rights reserved Part1 • サービスの紹介 背景: Communeについて アジェンダ • ネットワーク分析の基本概念 • ネットワーク分析のアプローチの紹介 ネットワーク分析の基礎 Part2 Part3 • NetworkXの基本操作の紹介 Pythonでのネットワークの操作 Part4 • 成 長 するコミュニティの特徴分析 コミュニティサクセスのための ネットワーク分析 Part5 • slackのスレッドデータの変換 ネットワーク分析 用 の データセットの作成

Slide 31

Slide 31 text

2024 | © Commune Inc. All rights reserved (再掲)ネットワーク分析はどんなところで便利か? 相互作 用 や構造を分析するのに向いている 特徴 表データの分析 ネットワーク分析 データ構造 行 と列で構成された表 頂点と辺で構成されたグラフ 主な焦点 個々のエンティティとその属性 エンティティ間の関係と構造 適した問題 個々の要素の特性や傾向を理解する 構造や相互作 用 を理解し、関係性や流れを分析する データの相互依存性 低い(独 立 した観測) 高 い(相互接続された観測)

Slide 32

Slide 32 text

2024 | © Commune Inc. All rights reserved ネットワーク分析でわかるコミュニティの状況 コミュニティは 人 を頂点、関係性を辺としたネットワークと 見 なせる • インフルエンサーは誰か?(ネットワークの中 心 となる頂点の抽出) • どの 人 たち同 士 が仲が良いのか? (ネットワーク内のサブクラスターの検出) • どんな 風 に情報が流通しているのか?(ネットワークの可視化)

Slide 33

Slide 33 text

2024 | © Commune Inc. All rights reserved 今回の問い: 成 長 / 停滞するコミュニティのネットワークの特徴はなにか? 成 長 するコミュニティの特徴を特定し、成 長 に再現性を持たせたい 定性的な社内の知 見 に基づく仮説 • 立 ち上げ初期に 大 量の 人 を呼んでしまうと失敗する • 情報伝達がハブ型からメッシュ型に徐々に変形していくとうまくいく • ユーザー同 士 の交流があることで、強固なコミュニティになっていく

Slide 34

Slide 34 text

2024 | © Commune Inc. All rights reserved コミューンにおけるネットワーク 様々なオンラインコミュニケーションからネットワークは定義出来る • ユーザー同 士 のフォロー機能 • DMの送信 • 投稿に対するいいね ・ リアクション • 投稿に対するコメント

Slide 35

Slide 35 text

2024 | © Commune Inc. All rights reserved 今回はコメントをソースとしてネットワークを構築して分析する データ量が多く、関係性をよく表しているコメントを採 用 • ユーザー同 士 のフォロー機能 • DMの送信 • 投稿に対するいいね ・ リアクション • 投稿に対するコメント

Slide 36

Slide 36 text

2024 | © Commune Inc. All rights reserved 今回の実験で使うネットワークの定義 コメントのやりとりをネットワークに変換 • 投稿にコメントしたとき、投稿者とコメントした 人 の間にエッジを張る ◦ コメント回数をエッジの重みとする ◦ 簡単にするために無向グラフとして定義する ◦ のちの分析のために管理者とユーザーを分ける

Slide 37

Slide 37 text

2024 | © Commune Inc. All rights reserved 実験に 用 いるネットワークの 母 集団 ユーザー数の増加量から成 長 / 停滞コミュニティを定義する ◦ コミュニティ開設からユーザー数の増加が特に多い ・ 少ない コミュニティをピックアップし、成 長 / 停滞グループ に分割する ◦ ( = 週ごとのユーザー数を線形回帰し、傾きの値が特に 大 きい ・小 さいコミュニティ) ◦ コミュニティ開設から1 - 12ヶ 月 のデータを利 用 ◦ 開設から12ヶ 月 未満 or コメントが極端に多い ・ 少ないコミュニティは除外 ◦ → 両グループ20コミュニティ前後

Slide 38

Slide 38 text

2024 | © Commune Inc. All rights reserved 実験に 用 いるネットワークの 母 集団 月 ごとのユーザー数の増加量から成 長 / 停滞コミュニティを定義する 経過 月 数 経過 月 数 月 次ユーザ数 月 次ユーザ数 成 長 コミュニティ 停滞コミュニティ

Slide 39

Slide 39 text

2024 | © Commune Inc. All rights reserved 実験1: 月 ごとのネットワークの可視化 ネットワークの形から、成 長 / 停滞の原因を探る ◦ 各コミュニティの、開始n ~ n+ 1 ヶ 月 の間のコメントで作られた ネットワークの形を時系列に確認する ◦ 管理者を 赤 、ユーザーを 青 と識別可能にする ◦ 2者間のコメント数が多いほど辺を太くする

Slide 40

Slide 40 text

2024 | © Commune Inc. All rights reserved 実験1: 月 ごとのネットワークの可視化の実装 ネットワーク 可視化 方 法を定義 # エッジの 大 きさを正規化するための関数

Slide 41

Slide 41 text

2024 | © Commune Inc. All rights reserved 実験1: 月 ごとのネットワークの可視化の実装 ネットワークを 時系列に可視化

Slide 42

Slide 42 text

2024 | © Commune Inc. All rights reserved ネットワーク可視化の結果

Slide 43

Slide 43 text

成 長 コミュニティの可視化例 (管理者: 赤 , ユーザー: 青 )

Slide 44

Slide 44 text

停滞コミュニティの可視化例 (管理者: 赤 , ユーザー: 青 )

Slide 45

Slide 45 text

2024 | © Commune Inc. All rights reserved ネットワーク可視化の考察

Slide 46

Slide 46 text

成 長 コミュニティの可視化 初期からユーザー同 士 の 交流が盛んになされている (管理者: 赤 , ユーザー: 青 )

Slide 47

Slide 47 text

成 長 コミュニティの可視化 複数クラスターで形成された メッシュ状のネットワークになっている 辺の数や配置に管理者とユーザーの 非 対称性がない (管理者: 赤 , ユーザー: 青 )

Slide 48

Slide 48 text

停滞コミュニティの可視化 辺が特定の頂点に集まっており、 ハブ型のネットワークになっている (管理者: 赤 , ユーザー: 青 )

Slide 49

Slide 49 text

停滞コミュニティの可視化 管理者がネットワークの中 心 で、 ユーザー同 士 の交流が少ない (管理者: 赤 , ユーザー: 青 )

Slide 50

Slide 50 text

2024 | © Commune Inc. All rights reserved 成 長 ・ 停滞コミュニティのネットワーク構造の差違 コメントの量的な差だけでなく、ネットワーク形状にも差違が存在する 特徴 停滞コミュニティ 成 長 コミュニティ ネットワークの構造 特定ユーザーを中 心 としたハブ型 全体的なコミュニケーションがあるメッシュ型 ユーザー同 士 の交流 少ない 多い 管理者とユーザーの 配置 管理者が中 心 的 ユーザー ・ 管理者どちらも中 心 にくることがある

Slide 51

Slide 51 text

2024 | © Commune Inc. All rights reserved 実験2: ネットワークごとの統計量の算出 各コミュニティの可視化で得られた仮説をグループ全体でいえるのか確認する ◦ コミュニティごとに1年間のコメントからネットワーク統計量を計算する ◦ 成 長 / 停滞コミュニティごとに統計量の分布を確認する ◦ ネットワーク可視化の数サンプルで得られた仮説が、両グループ全体に 言 えることなのか確認する

Slide 52

Slide 52 text

2024 | © Commune Inc. All rights reserved 実験2-1: 成 長 コミュニティの 方 がユーザー同 士 の交流が多い? ユーザー同 士 の交流の多さを、クラスター係数の平均値で算出する クラスター係数: あるノードがその近傍のノードとどれくらい密接に結びついているか クラスター係数 大 クラスター係数 小

Slide 53

Slide 53 text

2024 | © Commune Inc. All rights reserved 実験2-1: 成 長 コミュニティの 方 がユーザー同 士 の交流が多い? 成 長 コミュニティの 方 がクラスター係数の平均値が 高 い 成 長 コミュニティの 方 がクラスター係数の平均値が 高 い つまり成 長 コミュニティはあるユーザーの知 人 同 士 が知 人 であるような、ユーザー間の交流が多いコミュニティ の 方 が多い 成 長 停滞

Slide 54

Slide 54 text

2024 | © Commune Inc. All rights reserved 実験2-2: 成 長 コミュニティはユーザーが中 心 的な位置にいる? 管理者の中 心 度合いを次数の割合と、媒介中 心 性の平均値で確認する 媒介中 心 性:あるノードが他のノード間の最短経路に現れる頻度 → あるノードが他のノード間の情報の流れをどれだけ 支 えているかを表す 次数: ある頂点から隣接している頂点の数 deg(v) = |{u ∈ V|(u, v) ∈ E}|

Slide 55

Slide 55 text

2024 | © Commune Inc. All rights reserved 実験2-2: 成 長 コミュニティはユーザーが中 心 的な位置にいる? 成 長 コミュニティのほうが管理者の次数割合は 小 さく、媒介中 心 性も低い 管理者の次数割合は 小 さく、 媒介中 心 性も低い つまり成 長 コミュニティはユーザーが コミュニケーションの中 心 に存在する コミュニティの 方 が多い ※ただし、両郡にユーザ数の差がある点に考慮 する必要がある 停滞 停滞 成 長 成 長

Slide 56

Slide 56 text

2024 | © Commune Inc. All rights reserved コミュニティサクセスへの 示 唆 ネットワーク分析で得られた成 長 コミュニティの特徴を具体的な施策に落とす ◦ クラスター係数が 高 い → ユーザー同 士 が交流できるように体験設計する ◦ コアユーザーに依頼して、新規ユーザーに話しかけて貰う ◦ オフラインイベントでユーザー同 士 の交流を図る

Slide 57

Slide 57 text

2024 | © Commune Inc. All rights reserved コミュニティサクセスへの 示 唆 ネットワーク分析で得られた成 長 コミュニティの特徴を具体的な施策に落とす ◦ ユーザーが中 心 的な位置にいる → 管理者だけがコメントや投稿をしないようにする ◦ 管理者 自身 だけでなく、コアユーザーに投稿を促すような施策を打つ ◦ ただし、ユーザーに任せきりにもせず、運営とコアメンバーで役割分担 する

Slide 58

Slide 58 text

2024 | © Commune Inc. All rights reserved Part1 • サービスの紹介 背景: Communeについて アジェンダ • ネットワーク分析の基本概念 • ネットワーク分析のアプローチの紹介 ネットワーク分析の基礎 Part2 Part3 • NetworkXの基本操作の紹介 Pythonでのネットワークの操作 Part4 • 成 長 するコミュニティの特徴分析 コミュニティサクセスのための ネットワーク分析 Part5 • slackのスレッドデータの変換 ネットワーク分析 用 の データセットの作成

Slide 59

Slide 59 text

2024 | © Commune Inc. All rights reserved ネットワーク分析 用 のデータの作成 方 法の紹介 身 近なデータを使って、ネットワーク分析 用 のデータセットを作る ◦ コミュニティ運営をしていなくても、 身 近なデータセットで ネットワーク分析はできる ◦ メールやslack、discordのやりとりは 人 と関係性があるので、 ネットワークといえる ◦ 今回はslackのスレッドデータをテーマに紹介

Slide 60

Slide 60 text

2024 | © Commune Inc. All rights reserved ネットワーク分析 用 のデータを作成 手 順 slackのやりとりを無向重みありグラフに変換する

Slide 61

Slide 61 text

2024 | © Commune Inc. All rights reserved 例: slackからネットワーク分析 用 のデータを作成する https://gist.github.com/zerebom/ 07 2 b 64 cbe 2 b 2 7 cbfcd 1 47 a 5 e 8 fb 3 4 c 99 1 . slack sdkからメッセージデータを取得し、csvに保存する

Slide 62

Slide 62 text

2024 | © Commune Inc. All rights reserved slackからネットワーク分析 用 のデータを作成する 2. 辺リストのDataFrameに変換する slack͕ग़ྗͨ͠ܗࣜͷ DataFrame ลϦετͷDataFrame • 1 行 1メッセージ • スレッドでの返信の場合 thread_tsが親のts • 1 行 が投稿者と返信者のペア • 各ペアのやりとり回数が列に 格納されている PolarsͳͲͰม׵

Slide 63

Slide 63 text

2024 | © Commune Inc. All rights reserved slackからネットワーク分析 用 のデータを作成する 3 . DataFrameからNetworkXのグラフオブジェクトを作成する 辺リストのDataFrameをNetworkXのadd_edges_fromメソッドに渡すことで、 今回の実験で利 用 した無向重み付きグラフが完成する

Slide 64

Slide 64 text

2024 | © Commune Inc. All rights reserved まとめ • ネットワーク分析の基礎を解説した • 物事の関係を頂点と辺で記述するデータ構造を使った分析 • 相互作 用 や構造を分析するのに向いている • コミュニティサクセスのためのネットワーク分析を 行 った • 成 長 コミュニティはメッシュ型な傾向にある • 成 長 コミュニティはユーザー間の交流が盛んに 行 われてる傾向にある • メッセージ形式のデータをネットワーク分析に利 用 出来る変換処理を説明した • 1 行 が頂点のペアとなっている辺リストにすれば、NetworkXに格納できる ↑Communeの データサイエンティストに 興味を持った 方 がいたら是 非 !