Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
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の データサイエンティストに 興味を持った 方 がいたら是 非 !