Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Pythonで構築する人口移動ナレッジグラフ:NetworkXとGraphRAGによる意味的...
Search
negi111111
August 21, 2026
Technology
98
1
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Pythonで構築する人口移動ナレッジグラフ: NetworkXとGraphRAGによる意味的地域検索
negi111111
August 21, 2026
More Decks by negi111111
See All by negi111111
Pythonで構築する全国市町村ナレッジグラフ: GraphRAGを用いた意味的地域検索への応用
negi111111
9
5.5k
そのグラフに「魂」は宿っているか? ~生成AI全盛期におけるデータ可視化手法とライブラリ比較~
negi111111
1
1.9k
PandasAI is All You Need: Experience Interactive Data Analysis
negi111111
0
160
ノーコードデータ分析ツールで体験する時系列データ分析超入門
negi111111
1
1.2k
Re:PandasAI:生成AIがデータ分析業務にもたらすパラダイムシフト【増補改訂版】
negi111111
3
2.6k
大規模言語モデルを活用したノーコードツールによるAI人材育成での学習体験の向上
negi111111
1
300
PandasAI:生成AIがデータ分析業務にもたらすパラダイムシフト
negi111111
5
3.7k
Other Decks in Technology
See All in Technology
VLMで2.3万枚のPyCon JP写真を検索!
terapyon
1
510
コミュニティから始まった農業IoTとの7年間 ——人との関わりが教えてくれたこと
peacemaker07
0
110
暗号化?某ファイルストレージはどうなるの!? 3rd Partyとうまく付き合う秘密度ラベル設計
kasada
0
200
英語が話せなくてもKubeConスタッフに参加した話
yusuke427
2
1.1k
電話に出る Python のログの話
shinnosuke_kishida
0
220
AI時代のデータ基盤を考える問い
pacocat
0
670
AI駆動開発はどこまで来たのか? ファインディの最新実態調査で読み解く現在地 Devin Con Tokyo
akiratom
1
1k
markdown-poster Introduction
kazamori
0
160
dbt in Microsoft Fabric
ryomaru0825
0
260
巨大気象データと戦う ― サロゲートモデル学習を高速化する圧縮技術
gpuunite_official
0
270
三人寄ればチューリング完全
puhitaku
6
3.2k
Contract One Engineering Unit 紹介資料
sansan33
PRO
0
20k
Featured
See All Featured
Public Speaking Without Barfing On Your Shoes - THAT 2023
reverentgeek
1
550
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.6k
Statistics for Hackers
jakevdp
799
230k
jQuery: Nuts, Bolts and Bling
dougneiner
66
8.6k
sira's awesome portfolio website redesign presentation
elsirapls
0
340
Navigating Algorithm Shifts & AI Overviews - #SMXNext
aleyda
1
1.6k
Amusing Abliteration
ianozsvald
1
260
Ruling the World: When Life Gets Gamed
codingconduct
0
310
The World Runs on Bad Software
bkeepers
PRO
72
12k
Speed Design
sergeychernyshev
33
2k
Bash Introduction
62gerente
615
220k
Put a Button on it: Removing Barriers to Going Fast.
kastner
60
4.5k
Transcript
レベル: 初級 カテゴリ: データエンジニアリング・分析 Pythonで構築する人口移動ナレッジグラフ: NetworkXとGraphRAGによる意味的地域検索 資料はここから 丹野 良介 NTTドコモビジネス株式会社
イノベーションセンター 2026/8/22(土) 広島国際会議場@広島 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現
• 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 3
本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現
• 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 4
本発表の概要 レベル: 初級 カテゴリ: データエンジニアリング・分析 本発表では、公開統計・人口移動データを用いて都市間の関係性を知識グラフとして構築し、NetworkXに よる分析とLLMを組み合わせた自然言語地域探索システムの構築方法を紹介する。具体的には、 • 全国市区町村の教育・医療・福祉などの統計情報と、国勢調査の通勤・通学ODデータによる都市間の人 の流れを組み合わせ、都市の特徴と関係性をグラフとして表現
• 都市をノード、人流や交通アクセスをリンクとして表現することで、「都市特性が似ている都市」「県境 を越えた生活圏」など、関係性に基づいた分析 • 構築した知識グラフとNetworkXによる分析結果をLLMと組み合わせ、自然言語から地域を探索できるア プリケーションを実装 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 5
ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの
回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 6
ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの
回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 7
ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの
回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 8
ざっくり何が分かるようになるのか? 生成AIに質問するだけではなく、自分自身で構築した知識グラフをLLMと組み合わせることで、「なぜその 答えになるのか」を説明できる地域探索システムを構築する • 一般的なLLMは、学習済みの知識から自然な回答を生成できる一方、回答根拠となるデータや関係性を明 示することは難しい • 本発表では、公開データから都市・人流・交通の関係性を持つ知識グラフを自分自身で構築する • 構築した知識グラフから導き出した事実と、LLMが持つ一般的な知識を組み合わせることで、根拠付きの
回答を生成する • 例えば「広島市と似た都市は?」「福岡市のように空港アクセスが良い都市は?」といった問いを、デー タに基づいて探索可能にする 広島市に対して、医療分野の 知識グラフ (KG) 指標のみを使って類似度を比 広島と教育・医 較した結果、比較には、人口 療・福祉のレベ ルで似た市町村 事実:統計・人流・交通 1万人あたりの診療所・歯科 はどこだろう (データに基づく) 診療所・歯科医師・医師・病 …? 院・薬剤師に関する6項目を 補足情報:一般的な都市情報 用い、医療資源の構成パター ンが、広島市に最も近い自治 体は福岡市(らしい) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 9
本日のゴールと話すこと 都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた地 域探索を実現する。本発表では、以下の流れを理解することを目標とする • 表形式データをグラフ構造へ変換する考え方 • 都市ノードや人流リンクをどのように設計するか • NetworkXを利用したグラフ分析の方法 (→ここは昨今、LLMでほぼ細かい知識無く実装可能)
• 構築した知識グラフをどのように育てていくか • LLMをどの部分に利用し、どの部分をデータ分析で担保するか © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 12
本日のゴールと話すこと 都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた地 域探索を実現する。本発表では、以下の流れを理解することを目標とする • 表形式データをグラフ構造へ変換する考え方 • 都市ノードや人流リンクをどのように設計するか • NetworkXを利用したグラフ分析の方法 (→ここは昨今、LLMでほぼ細かい知識無く実装可能)
• 構築した知識グラフをどのように育てていくか • LLMをどの部分に利用し、どの部分をデータ分析で担保するか なによりグラフデータについて興味を持って頂けることを大事にします この機会に一緒に入門してみましょう! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 13
逆に話さないこと 今回構築した知識グラフの細かい実装手順やNetworkX等によるPython実装の詳細 • 話さない代わりに再現可能なレポジトリを公開しておくので、お手元のAIエージェントを活用して動かし てみてください(※正しく動かすには Azure OpenAI等のキーが必要ですが、キーが無くても動きます) negi111111/pyconjp2026-municipal-mobility-graph: PyCon JP
2026の発表 「Pythonで構築する人口移動ナレッジグラフ:NetworkXとGraphRAGによる意味的 地域検索」で使用する公開リポジトリ © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 参考:GitHub:QR 14
(動作確認)知識グラフとLLMのビューワー © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 15
グラフ・ネットワークって? © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 17
© NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 18
知識グラフとは(知識グラフ: KG) データを「主体」「関係」「対象」の組み合わせとして表現し、複雑な情報の探索を可能にする • 知識グラフでは、単なる値ではなく、データ同士の関係性を保持する • 例えば「広島市は広島県に属する」「広島市から岩国市へ通勤する」といった関係を表現できる • 関係性を保持することで、新しい検索やネットワーク分析へ発展できる 事実はグラフノードと,その間の関係からなるトリプル構造(s,
r, to)で表現される • 主体(Subject)→ 関係(relation)→ 対象(Object) • 例: (Python, 関連する, プログラミング言語)、(PyConJP2026, 開催する, 広島県) 属する ・有名な観光地 ・名物・・・ 引用:広島県は見どころいっぱいのおすすめの観光名所がたくさん!歴史や文化を感じられる広島でも有数な人気スポット宮島の厳島神 社、平和記念公園も絶対に外せない! - 地域PR|クールジャパンビデオ|日本の観光・旅行・グルメ・面白情報をまとめた動画キュレー ションサイト「COOL JAPAN VIDEOS」 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 19
知識グラフの例1/3 「モナ・リザ」「ルーヴル美術館」「パリ」といった情報を保存するのではなく、それらがどう関係してい るかまでデータとして表現している • この構造にする最大のメリットは、直接登録されていない関係まで、グラフをたどって探索できること • 「ダ・ヴィンチがモナ・リザを描いた」 • 「モナ・リザはルーヴル美術館にある」 •
「ルーヴル美術館はパリにある」 「Jamesが訪れた美術館がある都市は?」 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 図引用:¿Qué es el 知識グラフ de Google? - Komunicando 20
知識グラフの例1/3 「モナ・リザ」「ルーヴル美術館」「パリ」といった情報を保存するのではなく、それらがどう関係してい るかまでデータとして表現している • この構造にする最大のメリットは、直接登録されていない関係まで、グラフをたどって探索できること • 「ダ・ヴィンチがモナ・リザを描いた」 • 「モナ・リザはルーヴル美術館にある」 •
「ルーヴル美術館はパリにある」 「Jamesが訪れた美術館がある都市は?」 ・James → has visited → Louvre → is located in → Paris © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 図引用:¿Qué es el 知識グラフ de Google? - Komunicando 21
知識グラフの例1/3 「モナ・リザ」「ルーヴル美術館」「パリ」といった情報を保存するのではなく、それらがどう関係してい るかまでデータとして表現している • この構造にする最大のメリットは、直接登録されていない関係まで、グラフをたどって探索できること • 「ダ・ヴィンチがモナ・リザを描いた」 • 「モナ・リザはルーヴル美術館にある」 •
「ルーヴル美術館はパリにある」 「Jamesが訪れた美術館がある都市は?」 ・James → has visited → Louvre → is located in → Paris 表形式では値としてバラバラに存在する情報を、 知識グラフでは「何と何がどう関係しているか」として保持できる © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 図引用:¿Qué es el 知識グラフ de Google? - Komunicando 22
知識グラフの例2/3 身近にあふれる魅力的な知識グラフ! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
図引用:海外メディアが警鐘:NVIDIAの「循環取引」問題を会計士が解説|藤後 友弘@海外起業会計士 23
知識グラフの例3/3 身近にあふれる魅力的な知識グラフ! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved.
Nvidia, Microsoft, and OpenAI: This Chart Captures AI’s ‘Circular Financing.’ - Barron's 24
参考:世間は狭いよ現象 現実の社会的ネットワークでは、比較的少数の人を介して誰ともつながれることが知られている (※「スモールワールド」として知られている) • 社会心理学者スタンレー・ミルグラムが1967年に行ったスモールワールド実験で検証 • 「六次の隔たり」というフレーズが生まれた • 全ての人や物事は6ステップ以内で繋がっているという、仮説 •
友達の友達…を介して世界中の人々と間接的な知り合いになることができる 開始 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. ターゲット 25
参考:スケールフリー・ネットワーク • 確率に支配されるようなランダム・無秩序な事象は正規分布に従う • 一方、そこから秩序が生まれると(秩序の創発、相転移とも呼ばれる)、ベキ法則に従うようになる • 現実のネットワークは、全く無秩序な状態ではなく、ベキ法則に従うことが多いとされる 「ハブ」 が存在する ©
NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 26
参考:オススメの書籍 • 増田直紀先生の以下の2冊は読んでて面白かったです • まず新書を読んで、背景にあるネットワーク理論を知りたくなったら右の書籍 • 日常生活に溢れる「つながり」をネットワーク理論に基づいて科学的に解説してある • 労働時間と人間関係、閉鎖的なコミュニティ、なぜコミュニティを作りたがる?、頑健な組織とは Amazon.co.jp:
私たちはどうつながっている のか ネットワークの科学を応用する (中公新 書) 電子書籍: 増田直紀: Kindleストア © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 複雑ネットワーク : 基礎から応用まで | 増田 直紀, 今野 紀雄 | 数学 | Kindleストア | Amazon 27
今回構築する全体像 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 28
今回構築する知識グラフ 都市そのものの特徴、人の移動、交通アクセスを異なるデータレイヤとして表現し、地域探索可能なグラフ を構築する ユーザ層 広島と教育・医療・福祉の レベルで似た市町村は? データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報)
データ2:都市間の関係性情報 ・国勢調査ODデータ 山口 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 岡山 広島 ※本来は全市区町村に関する巨大な知識グラフ 29
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ • 国勢調査ODデータ 3.交通アクセス情報
• 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 30
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ • 国勢調査ODデータ 3.交通アクセス情報
• 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 31
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ ノード情報の付与 • 国勢調査ODデータ
3.交通アクセス情報 • 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 32
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ • 国勢調査ODデータ 3.交通アクセス情報
リンク情報の付与 • 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 33
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ • 国勢調査ODデータ 3.交通アクセス情報
• 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. ノード情報の追加付与 34
利用データ1:SSDSE SSDSEは都市そのものの特徴を表現するデータとして利用し、都市ノードの属性情報を構築する • SSDSE(教育用標準データセット:Standardized Statistical Data Set for Education) の略
• 市区町村単位の人口、経済、教育、医療、福祉などの統計情報が含まれる • 本システムでは、都市の特徴量として類似度分析や条件検索に利用する • 統計値だけでは関係性を表現できないため、人流データと組み合わせて利用する 名称 SSDSE-市区町村 (SSDSE-A) SSDSE-県別推移 (SSDSE-B) SSDSE-家計消費 (SSDSE-C) SSDSE-社会生活 (SSDSE-D) SSDSE-基本素材 (SSDSE-E) SSDSE-気候値 (SSDSE-F) 内容 1741市区町村×多分野125項目 全国の全市区町村の、人口、経済、教育、労働、医療、福祉など、様々な分野の統計データを 収録しています 47都道府県×12年次×多分野109項目 人口、経済、教育、労働、医療、福祉など、様々な分野の統計データを、12年分の時系列で 収録しています 全国・47都道府県庁所在市×家計消費226項目 1世帯当たりの食料の年間支出金額(消費額)を、魚介、肉、野菜、果物、菓子、飲料などに 分類し、それぞれ詳細な品目別にデータを収録しています 全国・47都道府県×男女別×社会生活121項目 男女別に、スポーツ、趣味・娯楽、ボランティアなどの詳細な活動データや、1日の睡眠、食 事、学業、家事、仕事、趣味・娯楽などの時間配分データを収録しています 全国・47都道府県×多分野93項目 人口、経済、教育、文化、医療、福祉など、様々な分野の統計データを収録し、初学者にも扱 いやすいデータセットです 47都道府県庁所在市×月・年×気象42項目 気温、気圧、風速、日照、降水、降雪など、様々な気象データについて、月・年別の平年値を 収録しています © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 丁寧な解説書もある! 参考:SSDSE(教育用標準データセット) | 独立行政法人 統計センター 35
利用データ2:国勢調査ODデータ 都市間の関係性を表現するため、通勤・通学による人の移動をリンク情報として利用する • ODはOrigin-Destination(起点・終点)の略 • ODデータは、どの地域からどの地域へ人が移動しているかを表現する • 移動人数をリンクの重みとして利用することで、人流ネットワークを構築する • このネットワークから、人流ハブや生活圏などの分析が可能になる
中国地方のリンク情報 東海地方のリンク情報 県 市 空港 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 参考:国勢調査 令和2年国勢調査 従業地・通学地による人口・就業状態等集計 | 政府統計の総合窓口 36
ハブとして集中しているノード3つは何県でしょう? 沖縄! 東京 大阪 名古屋 © NTT DOCOMO BUSINESS, Inc.
All Rights Reserved. 37
利用データ3:交通アクセス情報(国土数値情報) 都市の生活利便性を評価するため、空港や新幹線など広域交通へのアクセス情報を追加する • 都市から空港や新幹線駅までの距離を計算し、交通条件として利用する • 交通情報は都市間ネットワークとは別の情報として保持する • 質問内容に応じて必要な条件だけを検索条件として利用する 空港アクセス ©
NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 新幹線アクセス 参考:国土数値情報 | 空港データ、国土数値情報 | 鉄道データ 38
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) 2.国勢調査の通勤・通学ODデータ • 国勢調査ODデータ 3.交通アクセス情報
• 国土数値情報(航空・鉄道) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 39
利用するデータセットについて 「都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた 地域探索を実現する」ために今回は以下のオープンデータを利用した 1.全国市区町村の教育・医療・福祉などの統計情報 • SSDSE(教育用標準データセット) データ量的には決して多くはない・・・・・ 2.国勢調査の通勤・通学ODデータ たかだかExcelで開ける程度・・・・・ •
国勢調査ODデータ 3.交通アクセス情報 • 国土数値情報(航空・鉄道) 皆さんは今の時代、何でデータを確認しますか? © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 40
突然ですが、当てはまるものに hands up (手を上げる)にしてください! 初手、ざっとデータを確認したい時ってどうしますか? © NTT DOCOMO BUSINESS, Inc.
All Rights Reserved. 41
中身をざっと確認してみる…Pandas使う? 表形式のデータ構造(=構造化データ)に関して効率的にデータ操作を行うことができる • csvとかExcelとかで扱える様なデータならまずは初手 df: pd.DataFrame = pd.read_csv(“hoge.csv”) • DataFrame
オブジェクトを介して高速で効率的なデータ操作 内部でMatplotlib の機能を使用して散布図、棒グラ フ、箱ひげ図,...などを .plot() だけで実現 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 特定の行や列を選択またはフィルタリングなども抽 出は直感的に記述可能 age_sex = titanic[["Age", "Sex"]] 出典:https://pandas.pydata.org/docs/getting_started/index.html#getting-started 42
中身をざっと確認してみる…いいや生成AIだね 1741市区町村×多分野125項目のデータが格納されている(人口、経済、教育、労働、医療、福祉など…) どんなデータなのか確認したいだけならスプレッドシートが一番便利!(Geminiが便利すぎる) めっちゃ外れ値! 核家族世帯数が非常に多い地域 (名古屋市など)では、婚姻件 数も突出して多く、他の地域と は異なる傾向 © NTT
DOCOMO BUSINESS, Inc. All Rights Reserved. 43
グラフ構造を楽に扱うには?: Net Net r r An l sis in th
n NetworkXは、ノードとリンクからなるグラフをPython上で構築・探索・分析するためのライブラリであ り、複雑な関係性を少ないコードで扱える • ノードとリンクをPythonオブジェクトとして表現し、接続関係や属性を自由に保持できる • 「どことつながっているか」「どの経路で到達できるか」「どこが中心か」といったグラフ特有の処理を 利用できる • 本発表では、都市間人流の表現や中心性分析など、地域ネットワークの構築・分析にNetworkXを利用す る © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 引用:DAG - Topological Layout — NetworkX 3.6.1 documentation 44
わざわざ使って何が嬉しいの?ねぇ Net Net r r An l sis in th
n 処理フローをグラフとして表現すると、ある処理を実行するために必要な前処理や、影響を受ける後続処理 をグラフ探索として求められる データは上から下に依存 関係があるとして • 分析フローでは、各カードをノード、カード間の データ依存関係をリンクとして表現できる • 途中のカードを実行する場合、必要な上流ノードを 逆方向に探索することで、実行すべき処理範囲を 自動的に特定できる • NetworkXの探索・部分グラフ・トポロジカルソート を利用することで、依存関係を自前で一から実装 する必要がなくなる 自前で実装するなら? 楽に実装するなら? このカード以降を実行したい! • 接続先を調べる • グラフとして登録 • さらにその接続先を調べる • 必要なノードを探索 • 重複を除く • 依存順に並べる • topological_sort:依存関係を • 循環を確認する 守った実行 • 実行順を決める • ・・・? ネットワーク・グラフを扱うのに便利 なアルゴリズム実装が豊富にあるので 巨匠に載っかって楽ができる © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 45
(再掲)今回構築する知識グラフ 都市そのものの特徴、人の移動、交通アクセスを異なるデータレイヤとして表現し、地域探索可能なグラフ を構築する ユーザ層 広島と教育・医療・福祉の レベルで似た市町村は? データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報)
データ2:都市間の関係性情報 ・国勢調査ODデータ 山口 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 岡山 広島 ※本来は全市区町村に関する巨大な知識グラフ 46
再掲(動作確認)知識グラフとLLMのビューワー © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 47
(再掲)逆に話さないこと 今回構築した知識グラフの細かい実装手順やNetworkX等によるPython実装の詳細 • 話さない代わりに再現可能なレポジトリを公開しておくので、お手元のAIエージェントを活用して動かし てみてください(※正しく動かすには Azure OpenAI等のキーが必要ですが、キーが無くても動きます) negi111111/pyconjp2026-municipal-mobility-graph: PyCon JP
2026の発表 「Pythonで構築する人口移動ナレッジグラフ:NetworkXとGraphRAGによる意味的 地域検索」で使用する公開リポジトリ © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 参考:GitHub:QR 48
実装上の注意点と考え方 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 49
グラフを育てる際の注意点 知識グラフは、単純にデータを追加するだけでは価値が高まらない。何をノード・リンクとして表現するか を設計し、意味のある関係性として管理することが重要である • ノードには何を表現する対象なのかを明確に定義し、必要な属性情報を付与する必要がある • リンクにはどのような関係なのか、方向や重みを持つのかを定義し、分析可能な形で保持する • 行政所属、人流、交通など異なる意味を持つリンクを混在させると、ネットワーク分析結果の解釈が難し くなる
• データを追加する際には、どのような問いに答えるための情報なのかを意識して設計することが大事 広島と教育・医 療・福祉のレベ ルで似た市町村 はどこだろう …? ノード設計 都市・属性 答えたい問い グラフ設計 リンク設計 人流・交通 知識グラフ (KG) メタ情報 出典・期間 グラフを大きくすること、が目的ではなく、答えたい問いに合わせてグラフを育てること、が重要 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 50
実は公開レポジトリ上でもフェーズ毎に拡張してる • フェーズ1:広島周辺20都市基準経路 • フェーズ2:全国1,719自治体に拡大 • フェーズ3:交通アクセス情報を追加・・・ ユーザ層 広島と教育・医療・福祉の レベルで似た市町村は?
データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報) データ2:都市間の関係性情報 ・国勢調査ODデータ 山口 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 岡山 広島 51
LLMには何を担当させるか LLMにすべての処理を任せるのではなく、質問理解や説明生成を担当させ、構造化した知識グラフと分析処 理によって根拠となる情報を生成する。 • LLMは自然言語からユーザーの意図や検索条件を理解し、適切な分析処理へつなげる役割を担う • 類似度計算、人流ランキング、距離計算などの処理はPythonやNetworkXで実行する • 計算結果を構造化された結果として保持することで、回答の根拠を追跡可能にする •
LLMは分析結果を人間が理解しやすい文章へ変換し、必要に応じて一般的な背景情報を補足する LLM質問理解 分析条件生成 Python / pandas NetworkX 構造化結果 LLM説明生成 広島と教育・医療・ 福祉のレベルで似た 市町村はどこだろう …? データベース (知識グラフ) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 52
データによる事実と一般知識を分離する 生成AIを実務で利用するためには、データから導き出した事実と、LLMが持つ一般的な知識を区別し、回答 根拠を明確にすることが重要である • 事実データは、公開データや分析処理によって得られる再現可能な情報である • 事実データには、人口、医療指標、人流量、、、などが含まれる • 一般知識は、LLMが持つ一般的な背景情報や説明情報である •
今回は、ランキングや判断には事実データを利用し、一般知識は説明を補助する目的で利用する • データに存在しない条件については、LLMの推測で補完せず「評価できない」と判断できる設計とする LLM質問理解 分析条件生成 Python / pandas NetworkX 広島と教育・医療・ 福祉のレベルで似た 市町村はどこだろう …? データベース (知識グラフ) © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 構造化結果 LLM説明生成 データ1:都市ノードの属性情報 ・全国の全市区町村統計データ データ2:都市間の関係性情報 ・国勢調査ODデータ データ3:都市ノードの追加情報 ・交通アクセス情報(国土数値情報) 53
(まとめ)本日のゴールと話したこと 都市の人口・統計情報だけではなく、人流や交通などの関係性を組み合わせることで、データに基づいた地 域探索を実現する。本発表では、以下の流れを理解することを目標とする • 表形式データをグラフ構造へ変換する考え方 • 都市ノードや人流リンクをどのように設計するか • NetworkXを利用したグラフ分析の方法 (→ここは昨今、LLMでほぼ細かい知識無く実装可能)
• 構築した知識グラフをどのように育てていくか • LLMをどの部分に利用し、どの部分をデータ分析で担保するか なによりグラフデータについて興味を持って頂けることを大事にします この機会に一緒に入門してみましょう! © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 54
© NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 55
Appendix © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 56
これから構築する全体アーキテクチャ • グラフ構造のままLLMで検索するには? →GraphRAGを用いて、ユーザのクエリからグラフ情報を 検索できるようにする! {"地域コード": "R24203", "都道府県": "三重県", "市区町村":
"伊勢市", "2020_総人口": 122765, "2020_総人口(男)": 58161, "2020_総人口(女)": 64604, "2020_日本人人口": 120782, "2020_日本人人口(男)": 57182, "2020_日本人人口(女)": 63600, "2020_15歳未満人口": 14205, "2023_幼稚園数": 8, "2023_幼稚園在園者数": 406, "2023_小学校数": 22,… ユーザ層 名古屋と教育・医療・ 福祉のレベルで似た市 町村は? ・全国の全市区町村統計データ ・wikipedia ステップ1:データ整形 ステップ3:GraphRAG化 三重 ステップ2:データ補強 {"summary_text": "伊勢市(いせし)は、三重県南東部(南勢・伊勢志摩地 域)にある市。日本でも有数の観光地の一つで伊勢志摩地域の拠点都市であ る。”} © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 愛知 静岡 ※本来は全市区町村に関する巨大な知識グラフ 57
これから構築する全体アーキテクチャ • グラフ構造のままLLMで検索するには? →GraphRAGを用いて、ユーザのクエリからグラフ情報を 検索できるようにする! {"地域コード": "R24203", "都道府県": "三重県", "市区町村":
"伊勢市", "2020_総人口": 122765, "2020_総人口(男)": 58161, "2020_総人口(女)": 64604, "2020_日本人人口": 120782, "2020_日本人人口(男)": 57182, "2020_日本人人口(女)": 63600, "2020_15歳未満人口": 14205, "2023_幼稚園数": 8, "2023_幼稚園在園者数": 406, "2023_小学校数": 22,… ユーザ層 名古屋と教育・医療・ 福祉のレベルで似た市 町村は? ・全国の全市区町村統計データ ・wikipedia ステップ1:データ整形 ステップ3:GraphRAG化 三重 ステップ2:データ補強 {"summary_text": "伊勢市(いせし)は、三重県南東部(南勢・伊勢志摩地 域)にある市。日本でも有数の観光地の一つで伊勢志摩地域の拠点都市であ る。”} © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 愛知 静岡 ※本来は全市区町村に関する巨大な知識グラフ 58
そもそもRAGとは • 検索拡張生成(Retrieval-Augmented Generation:RAG) • 入力クエリに関連する補助情報を与えることで、 事前学習済みのLLMの性能を向上させることが可能 • LLMはあくまで学習されたデータに基づいて回答を作る •
→学習外の情報には回答できない≒ハルシネーションがある • →補助情報として用いることで性能向上ができる(生成AI標準技術) • 特定のドメインに特化した情報を要求するクエリや最 新の情報を必要とする場合に、より正確な出力を提供 Step2:関連 ❖ Step1: ベクトルストア構築 ➢ 補助知識に含まれる各文章に対して埋め込み表現 を生成し、ベクトルストアに格納 c ➢ 補助知識には以下の2つのデータセットを用意 ➢ 1741市区町村×多分野125項目(SSDSE) ➢ 各市町村の概要(Wikipedia) ❖ Step2: 関連文章の検索 c ➢ クエリに関連する文章群をベクトルストアから検索 ➢ 類似する関連文章の候補を作成 ❖ Step3: クエリの更新とモデルの応答 c ➢ 関連文章の候補を元のクエリと結合 ➢ 結合したクエリをLLMの入力とする © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 59
GraphRAGとは • RAGでは知識を独立したテキストの断片(チャンク)としてしか扱えない • つまり、構造関係に基づいた回答が生成できない (以下の例は一般的なことなので、答えられるはずですが…) R A G 名古屋と経済的に
最も繋がりの強い 都市は? RAG GraphRAG DBに『名古屋市の概要』 『名古屋』『経済』 『豊田市の概要』『名古 『繋がり』という単 屋から豊田への移動デー 語を含むテキスト片 タ』がバラバラに保存 を探すだけ →データが本来持っている『都市と都市の関係性』や 『データの構造』が、検索の際に失われてしまう • GraphRAGを用いることで、関係性を保持しながら構造を 考慮した理解した回答を返せるようにする グ ラ フ R A G 名古屋と経済的に 最も繋がりの強い 都市は? テキスト検索に加えて、 構造と文脈に基づい グラフの構造を検索 た回答の生成 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. GraphRAG: Practical Guide to Supercharge RAG with 知識グラフs 60
テーブルデータから知識グラフの構造へ テーブルデータから各ノードとリンクの関係性をパースし、 networkXで扱える構造に変換 © NTT DOCOMO BUSINESS, Inc. All Rights
Reserved. 61
GraphRAG用のデータに変換 • 定義されているスキーマに先程のJSONファイルをパース • あとは graphrag index コマンドに csv ファイルを渡せばインデックスDBを作ってくれる
• 詳細はマイクロソフトの公式チュートリアルなどを参照:Inputs – GraphRAG • ※公式チュートリアルでもそこそこお金がかかるので注意 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 62
もしコードを動かす場合の注意点 • GitHubにはGraphRAG用のインデックスDBも含まれています • SSDSEの市町村データは全都市のものを利用して作っているのでめちゃめちゃ巨大です • 構築に9時間ぐらいかかった気がします • GraphRAGを使って問い合わせしてレスが返ってくるまで時間がかかります •
巨大なグラフ構造を探索するので・・・ • 特に、最適化に関する改善は施していません • また、DBを作る際にLLMに問い合わせしているので、お金が結構かかっています(数千円) • マイクロソフトの公式チュートリアルもお金がそこそこかかりますので注意 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. Getting Started - GraphRAG 63
生成までに時間がかかる理由 • 「全体階層インデックス(global opt)」を使い、クエリ時に • エンティティ/コミュニティ埋め込み検索 • 関連コミュニティ(階層)展開 • 各コミュニティ/エンティティ/関係レポートの再要約やスコア統合
• 最終回答生成 を行うため、対象がグラフ全域に及び計算(+ LLM 呼び出し)コストが大きい。 • クエリ中に直接ヒットしたエンティティ近傍(半径/階層制限)のサブグラフだけを扱い、集約レポート 利用範囲が小さいため高速な local オプションがある。 © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 64
ネットワークのクラスター的現実 「新しい仕事を見つける力になってくれたのは親しい友人ではなく、ちょっとした知り合いであること」 (社会学者マーク・グラノヴェッター(1969年)) • 「弱い社会的絆(弱い紐帯)の重要性」として報告され、社会学における重要な知見となる • 親しい友人はでは知りうる情報が似ていて新しい情報が得られない • 一方、単なる知り合いの方が異なる情報を持っているため、 新しい仕事を見つけるのには有用なことがある
© NTT DOCOMO BUSINESS, Inc. All Rights Reserved. つながりは弱いほうがメリットが多い?!【トレンド図解】『弱い紐帯』 - 図解で読み解く方程式 65
「ネットワークの成長」と「ハブの優先的選択」 複雑ネットワークは、頂点どうしがスケールフリーのベキ法則に従う分布によって連結しているというモデ ルを初めて提唱する。(Barabási-Albertモデル, 1999年)複雑ネットワークは、 • ①新しい頂点を追加していくことによってネットワークが成長する(成長) • ②新しい頂点はもともと枝が多かった頂点に優先的に接続される(優先的選択) • e.g.
インフルエンサーがSNSを開設すると即100万人達成! という2つの普遍的な特徴を持っている © NTT DOCOMO BUSINESS, Inc. All Rights Reserved. 『モデリング・シミュレーション入門』 井庭 崇 第10回 成長するネットワークのシミュレーション 66