第11章 ConceptMap-Text — モデル構築とクラスタリング
11.1 ステップ4:特徴設定(Feature Settings)
各次元の重み(影響力)を調整するステップです。特定の分析軸を強調したり、ノイズの多い次元を弱めたりできます。
操作
各次元に対応するスライダーが表示されます:
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| 次元の重み | 0.0〜2.0 | 1.0 | 各次元がモデル構築に与える影響力 |
- スライダーを右に移動(>1.0): その次元を重視。その軸の差異が拡大されます
- スライダーを左に移動(<1.0): その次元を軽視。その軸の差異が縮小されます
- 0.0: その次元を完全に無視
操作手順:
- 必要に応じてスライダーを調整
- 通常はデフォルト(全て1.0)のままで十分です
- 「全てリセット」ボタンで全次元を1.0に戻せます
- 「重みを保存」ボタンで設定を確定
活用例:
- 「理論 ↔ 実践」の次元を重視したい → その次元の重みを1.5に
- ノイズが多く意味のなさそうな次元がある → その次元の重みを0.3に
- 全次元を均等に扱いたい → デフォルトのまま
11.2 ステップ5:モデル構築(Model Building)
GNG(Growing Neural Gas)アルゴリズムで概念ネットワークを学習します。GNG はデータの分布に適応的にノード(概念の代表点)を配置するニューラルネットワークアルゴリズムです。
パラメータ一覧
基本パラメータ:
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| Max Nodes(最大ノード数) | 10〜500 | データ量×0.6 | GNG が配置するノードの最大数。多いほど細かいモデルになるが、ノイズも増える |
| Max Iterations(最大反復数) | 100〜50,000 | 4,000 | 学習の反復回数。多いほど収束するが、処理時間が増える |
| Lambda | 1〜200 | 20 | 新しいノードを挿入する間隔。小さい値→ノード挿入が頻繁→より多くのノード |
| Max Age(最大エッジ年齢) | 5〜200 | 50 | 使われないエッジが削除されるまでの閾値。小さい値→エッジが積極的に剪定→スパースなネットワーク |
アルゴリズム選択:
| アルゴリズム | 説明 | 推奨用途 |
|---|---|---|
| Default(GNG) | 標準的なGNG。ハードアサインメント(各データは最も近い1つのノードに割り当て) | 通常使用(推奨) |
| Fuzzy | ファジーメンバーシップ。各データが複数のノードに確率的に所属 | 境界が曖昧なデータ |
| Enhanced Fuzzy | 反発力とマージ機能を追加した拡張版 | 高度な分析 |
Fuzzy 追加パラメータ:
| パラメータ | 範囲 | デフォルト | 説明 |
|---|---|---|---|
| Temperature | 0.1〜2.0 | 0.5 | ファジー度。高いほどメンバーシップが均等に分散 |
Enhanced Fuzzy 追加パラメータ:
| パラメータ | 説明 |
|---|---|
| Temperature End | 学習終盤のTemperature値 |
| Fuzzifier | ファジーメンバーシップ関数のパラメータ |
| Repulsion Beta | ノード間の反発力の強さ |
| Merge Epsilon | 近すぎるノードのマージ閾値 |
| Inertia Alpha | ノード移動の慣性 |
操作手順
- パラメータを設定します(通常はデフォルトで十分です)
- 「モデルを構築」ボタンをクリック
- 構築中のプログレスバーが表示されます
- 完了後、構築されたネットワークの2Dプレビューが表示されます
2Dプレビューの見方:
- 各丸がGNG ノード。大きいノードはより多くのデータが割り当てられています
- ノード間の線がMST(最小全域木)のエッジ
- ドロップダウンでX軸・Y軸の次元を切り替えて、異なる角度からネットワークを確認できます
パラメータ調整のガイドライン:
- ノードが多すぎて粗い → Max Nodesを減らす
- ノードが少なすぎて大まか → Max Nodesを増やす
- 目安:データ行数の50%〜70%をMax Nodesに設定
- 50行のデータ → Max Nodes 25〜35
- 200行のデータ → Max Nodes 100〜140
クレジット消費: モデル構築に20クレジット(自前APIキー使用時は10クレジット)
11.3 ステップ6:クラスタリング
構築されたGNG ノードをテーマ別のグループ(クラスター)に分類します。
クラスタリング方式
| 方式 | 説明 | 特徴 |
|---|---|---|
| Ward | 階層的凝集型。クラスター内の分散を最小化 | MST構造を考慮。最も安定。推奨 |
| K-Means | 中心点ベースのクラスタリング | 高速。球状のクラスターに適する |
| HDBSCAN | 密度ベース。クラスター数を自動検出 | 不規則な形状のクラスターに適する |
| Hierarchical | 一般的な階層的クラスタリング | 樹形図的な分析に適する |
| DBSCAN | 密度ベース。ノイズ検出可能 | 外れ値の多いデータに適する |
設定項目
| 設定 | 説明 |
|---|---|
| クラスター数 | ドロップダウンで指定。自動推奨値も表示される |
| Strict Connectivity | チェックすると、MSTのエッジで接続されたノードのみが同じクラスターに所属可能(Wardのみ) |
| Min Cluster Size | クラスターの最小ノード数(HDBSCAN / DBSCANの場合) |
| EPS | 密度の閾値(DBSCANの場合) |
クラスター数の目安:
- 30ノード以下 → 3〜5クラスター
- 30〜100ノード → 5〜8クラスター
- 100ノード以上 → 7〜12クラスター
操作手順
- クラスタリング方式を選択
- クラスター数を指定(または自動推奨値を使用)
- 「クラスタリング実行」ボタンをクリック
- 結果のクラスターが色分けされてプレビューに反映されます
クラスターのラベル付け
自動ラベル付け:
- 「自動ラベル付け」ボタンをクリック
- AIが各クラスターのノードに割り当てられたデータを分析し、テーマ名を提案します
- 提案されたラベルが各クラスターの入力欄に自動入力されます
手動ラベル付け:
- 各クラスターの入力欄にカスタム名を直接入力
ラベルの例:
- 「技術革新と実装課題」
- 「ユーザー中心設計」
- 「組織文化と変革マネジメント」
- 「市場動向とビジネスモデル」
11.4 トラブルシューティング
| 問題 | 原因と対処法 |
|---|---|
| ノードが多すぎて見づらい | ステップ5のMax Nodesを減らして再構築してください |
| クラスターの分け方が直感に合わない | クラスター数を変更して再実行してください。Ward以外の方式(K-Means, HDBSCAN)も試してみてください |
| 自動ラベルが的外れ | AIの提案は参考程度です。データの内容を踏まえて手動で修正してください |
| 「モデル構築」に時間がかかる | Max Iterationsが大きすぎる可能性があります。4000程度で十分な場合がほとんどです |
| ステップを戻って再実行すると後続ステップが消える | 仕様です。次元削減からやり直すと、特徴設定以降のデータがリセットされます。重要な結果は事前に「保存」してください |
11.5 モデル構築のヒント — パイプラインの理解と最適化
ConceptMap-Textのモデル構築は、以下のパイプラインで処理されます。各ステップの役割と影響を理解することで、より良いモデルを構築できます。
パイプライン全体像
テキストデータ
↓ OpenAI Embedding(1536〜3072次元)
↓ UMAP次元削減(3〜8次元)
↓ GNG学習(次元削減後の空間上でノードを配置)
↓ MST接続(ノード間を最小全域木で接続)
↓ クラスタリング(ノードをグループに分類)
重要なのは、GNG-MSTが学習するのはUMAPで次元削減された多次元空間(3〜8次元)であるという点です。探索画面の3Dグラフは表示のために3次元を選択して描画していますが、モデル自体はより多くの次元で構築されています。
UMAPの役割と影響
UMAPは単なる前処理ではなく、GNGが学習する空間の構造そのものを決定する重要なステップです。UMAPのパラメータを変更すると:
- 概念間の距離関係が変わる → GNGのノード配置が変わる
- クラスターの分離度が変わる → クラスタリング結果が変わる
つまり、同じデータでもUMAPの設定によって異なるモデルが構築されます。
UMAPパラメータの実践的な調整指針:
| 目的 | n_neighbors | min_dist | 効果 |
|---|---|---|---|
| デフォルト | 15 | 0.1 | 多くのケースで良好 |
| クラスターを明確に分離 | 5〜10 | 0.01〜0.05 | 局所構造を重視。小さな概念グループが分かれやすい |
| 均等な分布にする | 20〜30 | 0.3〜0.5 | GNGノードが空間全体に均等に広がる |
| 大域構造を重視 | 30〜50 | 0.3〜0.5 | 全体的な傾向を把握。概念の大きな流れが見える |
均等な分布にする理由: デフォルト設定では、意味的に異質な概念が極端に引き離されることがあります。その結果、GNGのノードが密集部分に偏り、離れた領域がカバーされにくくなります。min_distやn_neighborsを大きくすると、空間がより均等になり、GNGがデータ全体をバランスよくカバーできます。
ノード数の考え方
GNGのMax Nodes(最大ノード数)の設定は、モデルの「粒度」を決定します。
少ないノード(データ数の1/3程度)の場合:
- 知識の「大きな構造」が把握しやすい
- 類似した概念が1つのノードにまとまり、「要約的な」モデルになる
- クラスター間の関係性を俯瞰しやすい
- Mindwareとして公開する場合に適している(チャットで対話する際、概念の粒度が粗い方が自然な会話になる)
多いノード(データ数に近い、またはそれ以上)の場合:
- 細かい概念の違いを区別できる
- 研究用途でニュアンスの差を見逃したくない場合に有効
- ただし、ノード同士の差が小さくなり、解釈が難しくなる
SOM(自己組織化マップ)との違い: SOMではデータポイントより多いノードを設定しても、マップ上でノードが均等に広がり、空ノードの値もきれいなグラデーションを形成します。しかしGNG-MSTでは、データが存在する場所にノードが集まります。これはGNGの正しい挙動であり、「データが語っている構造」をそのまま反映しています。MSTで可視化するとノードが局所的に集まって見えますが、各ノードの値はそれぞれ異なっています。
良いモデルの判断基準
理論的に「最適なノード数」を導く公式はありません。代わりに、以下の実用的な判断基準を使ってください:
> 探索画面でクラスターを見たときに、各クラスターの意味が直感的に理解でき、クラスター同士の違いが明確に説明できるなら、そのモデルは適切です。
具体的なチェックポイント:
- クラスターの解釈性: 各クラスターに自然なテーマ名を付けられるか
- クラスター間の区別: 隣接するクラスター同士が異なるテーマを持っているか
- ノードの代表性: 各ノードに割り当てられたデータが、そのノードの位置(次元値)と整合しているか
- 全体の網羅性: 元のデータに含まれる重要なテーマがモデルに反映されているか
反復的な改善プロセス
最適なモデルは1回で得られるとは限りません。以下のような反復プロセスを推奨します:
- まずデフォルト設定で構築 — 全体像を把握
- クラスタリングして探索 — モデルの粒度と構造を確認
- 必要に応じて調整:
- クラスターが大きすぎる → ノード数を増やすか、UMAPのn_neighborsを小さくする
- ノードが多すぎて解釈が難しい → ノード数を減らす
- 特定の概念群が分離しない → UMAPのmin_distを小さくする
- 「保存」で結果を保持 — 異なる設定の結果を保存して比較
重要な結果は必ず「保存」してからパラメータを変更してください。ステップを戻って再実行すると、以降のステップがリセットされます。