【要約】数千件の自由記述フィードバックを自動で階層化する — K-means × Ward法による2段階クラスタリングの設計と実装 [Zenn_Python] | Summary by TechDistill
> Source: Zenn_Python
Execute Primary Source
// Problem
組織のサーベイ運用担当者が、大量の自由記述を分類する際に直面する課題。
- ・人手による分類は、膨大な工数がかかり現実的ではない。
- ・LLMへの全件投入は、コストと遅延の観点から規模拡大時に破綻する。
- ・単一のクラスタリングでは、経営層向けの概要と現場向けの詳細という異なる粒度を同時に提供できない。
// Approach
古典的機械学習による構造決定と、LLMによる意味付与を分離するハイブリッド構成を採用。
- ・Step 1:
multilingual-e5-largeを用い、正規化を施したベクトル化を行う。 - ・Step 2: K-meansで詳細層(leaf)を生成し、クラスタ中心を算出する。
- ・Step 3: クラスタ中心に対しWard法を適用し、計算量を抑えつつ概要層(root)を構築する。
- ・Step 4: 生成されたクラスタに対し、LLMを用いてタイトルと要約を付与する。
// Result
大規模なテキストデータに対し、低コストかつ高速な階層的分類を実現した。
- ・LLMの呼び出し回数を、データ件数ではなくクラスタ数(約1/5〜1/10)に圧縮した。
- ・Ward法をクラスタ中心に適用し、階層化の計算量を劇的に削減した。
- ・4指標のアンサンブルにより、データに依存しない最適なクラスタ数を自動選定した。
Senior Engineer Insight
> 非常に実戦的な設計である。計算量の重い処理の前に、クラスタ中心で情報を圧縮する判断は、大規模システムにおける定石だ。また、LLMを「構造決定」ではなく「意味付け」に限定した点は、コストと精度のトレードオフを極めて高いレベルで解決している。チェックポイントの実装など、運用時のイテレーション速度を考慮した設計も高く評価できる。