TADE: LLMによる階層トピックモデル手法の紹介
この記事は「ビギナーズ Advent Calendar 2025」の23日目の記事です。
はじめに
こんにちは!株式会社NTTデータグループで生成AI関連の業務に携わっている大貫 豪です。
本記事ではLLMによるトピックモデル手法の中でもTopic-Activated Document Exploration (TADE) という手法を提案した論文について主に解説します。
想定読者
- トピックモデル手法に興味がある方
- 生成AIを用いたトピックモデル手法の最新手法に興味がある方
この記事の目的
この記事を通じて紹介する内容は以下です。
- トピックモデルに関する背景
- 従来のトピックモデル手法の紹介
- LLMによる階層化されたトピックモデル手法であるTADEの紹介
背景
トピックモデルは、大量のテキストからトピックを学習・推定するモデルです。
例えば以下のような新聞記事のテキストには、以下のようなトピックが含まれていると考えられます。
- 「大谷翔平選手がホームランを打った」→スポーツのトピック
- 「東京競馬場ではジャパンカップが行われた」→競馬のトピック
- 「トランプ大統領による関税政策」→政治のトピック
このようなトピックを大量のテキストから分析したい場面が考えられますが、人手では限界があります。そこでトピック分析を機械的に実現する手法として、トピックモデルがあります。
従来のトピックモデル
LDA
代表的な手法がLDA(Latent Dirichlet Allocation)というベイズ確率を用いたモデルで、以下の手順で大まかにトピック分析を行います。
- 各文書はいくつかのトピックの混合でできていると仮定します。
- 各トピックは単語の確率分布で表されます。
- 文書中の単語から以下をベイズ推論で推定します。
- 文書ごとのトピック分布
- トピックごとの単語分布
LDAは計算が軽量かつ適用範囲も広いため今も業務で広く使われています。
一方で実務では以下のような課題によく直面します。
1. トピックの解釈が難しい
LDAで推定されたトピック分布を人間が解釈する場合、そのトピックが付与されているテキスト群から重要度が高い単語をランキングした上位N件の特徴語から、意味を読み取ります。
例えば以下のようなトピックの特徴語があります。
- トピック1の特徴語リスト:
["大谷翔平", "ホームラン", "ピッチャー", "ドジャース", ...] - トピック2の特徴語リスト:
["トランプ", "大統領", "関税", "日米", ...]
ここからトピックタイトルを付けるとすると以下のようになります。
- トピック1→野球
- トピック2→政治
一方で、実際には複雑で専門性の高いテキストから学習されたトピックであるケースが多く、そのような場合に人手でトピックの解釈をすることは困難です。
また人手でトピックの解釈を行う場合、担当者の主観で大きくトピックの解釈が変わるため、トピックタイトルの命名もばらつきが出てしまいます。
2. トピック数などハイパーパラメータの決定が難しい
LDAを学習する際にはトピック数Kはハイパーパラメータとして事前に決める必要がありますが、トピック数の調整は難しく、以下のようなケースが良く起こります。
- K が小さすぎる場合:
1つのトピックに複数の話題が無理やり押し込められる。 - K を大きくしすぎる場合:
ノイズに近い細かいトピックが大量発生する。
また、現実のテキストでは
- 大きな話題(例:人事評価制度)
- その中の特定の観点(例:フィードバックの頻度)
- さらに具体的なストーリー(例:上司Aからのフィードバックが年1回しかない)
のように、話題が自然に階層構造を持つことが多いのですが、LDAではフラットなトピックしか定義することができずこの階層性をうまく表現しきれません。
BERTopic
BERTopicは、BERT 系の文埋め込みを使うトピックモデルです。
トピックを分布として定義していたLDAとは異なり、トピックをBERTでテキストを埋め込んだ特徴量空間上のクラスタとして扱うことで、近年主流となっているTransformer系モデルによる自然言語の表現能力を獲得しています。
先ほどのLDAではbag of words(各単語のテキスト中の出現頻度を数えたもの)でテキストを表現していたため、単語の前後関係を捉えることができず、テキスト中の文脈を考慮することができませんでしたが、BERTopicではテキストをBERTにそのまま入力できるので、より文脈を理解する力が向上したトピック分析が可能です。
大まかな処理としては以下のようになっています。
- 各テキストをBERTに入力し、埋め込みベクトルに変換
- 埋め込みベクトルをHDBSCANなどでクラスタリング
- 各クラスタをトピックとみなし、代表単語を抽出
TopicGPT
最近ではLLMを使って一連のトピック分析のほとんどをLLMで行う、TopicGPT と呼ばれる手法も提案されています。
具体的にはLLMを用いて以下のトピック作成・付与の手順を一貫して実行することができます。
- 文献からトピックを作成する。
- 作成したトピックの解釈を行い、トピックのラベリングを行う。
- 各文献に関連するトピックの付与を行う。
先ほどのLDAやBERTopicと比べると以下の違いがあり、一般的により高品質なトピックを作成できることがわかっています。
- トピックを確率分布やクラスタではなく、自然言語のラベル・説明文としてトピックを定義する。
- トピックの付与は確率値ではなく、LLMのプロンプトで直接行われる。
- トピックの解釈を各トピックの特徴語を用いてLLMで行う。
先行研究における課題
1. 文書全体にトピック確率を割り当てるモデルの限界
LDAなど確率的トピックモデル手法では、各文書に対してトピックの確率分布を割り当てます。
一方でTADEの論文中では以下の問題が指摘されています。
- 現実のデータではトピックの候補はほぼ無限にあり、しかも意味が重なり合う。
- 有限個の確率分布に押し込むのは、モデルの都合による切り捨てでしかない。
- 特に1文書あたりのトピック確率を正規化することにあまり意味はなく、むしろどのトピックが活性化されているかだけ見ればよい。
そこでTADEでは、トピック確率を推定すること自体をやめ、その代わりにTopic Activationという考え方を導入しています。
2. LLMベーストピックモデルにおける根拠・再現性の不足
TopicGPTでは、LLMに対して以下のような指示を行い、トピックの作成を行っています。
- この文書を読んで、トピックを考えてください。
- このトピックの特徴語から、トピックタイトルと解説文を考えてください。
これにより、従来のLDAなどトピック分布を仮定する手法と比べて、トピックの解釈性は上がる一方で、以下のような課題が残っています。
- 判断根拠:
- トピックの解釈性は上がったものの、どういう根拠でそのトピックと判断したのかがわからない。
- 再現性
- LLMによる文章は確率的に生成されるため、プロンプトや入力をわずかに変えたら出力が変わってしまう可能性がある。
3. フラットなトピック構造の限界
大規模なドキュメントコーパスにトピックを付けていくときに、
単純にフラットなトピックを100個並べるよりも、
- マクロトピック(大分類)
- サブトピック(具体化)
- より詳細なサブトピック
- ...
- より詳細なサブトピック
- サブトピック(具体化)
といった階層構造の方が人間にとっては見やすく、特定のトピックを見つける際も大分類から探索していけばいいので使いやすいです。
一方で従来手法でも階層化されたトピックモデル手法も存在していましたが、利用シーンが以下のような理由で限られていました。
- LDAを階層化したHierarchical LDAでは実装が複雑かつ運用は煩雑。
- LLMベースのTopicGPTも階層化は明確に扱っていない。
TADEのアプローチ
TADEでは1-3の課題をそれぞれ以下のように解決しています。
1. トピックに確率分布を仮定しない
TADEでは、各テキストにトピックをLLMで割り当てていく際に、ドキュメントがそのトピックから生成される確率を考えません。
その代わりに、Topic Activationという考え方を導入しています。
Topic Activationでは、LLMでトピックリストからテキストにトピックを割り当てていく際に、どのテキスト中の文章に割り当てられているのかを確認し、segmentとしてテキストの一部を切り出して保存しています。
これにより、同一テキスト中に複数のトピックの共存を許容しています。
2. トピック付与の根拠・説明を残す
TADEでは、各テキストにトピックをLLMで割り当てていく際に以下を同時に作成することで、再現性・説明性の高いトピック付与を実現しています。
- 付与するトピック
- トピック付与の根拠となるテキスト中の断片(segment)
- なぜそのトピックを付与したのかの説明文(explanation)
- 信頼度スコア(confidence score)
3. トピックの階層化
TADEでは、2で作成したsegmentを集めて各トピックごとのサブコーパスを作り、
このサブコーパスから再度サブトピックの作成・付与を繰り返し行っていくことで、
階層化されたトピック構造の作成を実現しています。
TADEの詳細なアルゴリズム

TADEのアルゴリズム概要(TADE論文中より引用)
TADEのアルゴリズムは上図のようになります。
- Input:文書コーパス
D - 例:レビュー・議事録・問い合わせログなどのテキスト文書の集合。
- Output:階層構造を持ったトピック集合
H - 例:マクロトピック → サブトピック → サブサブトピック…と続く木構造。
- 各トピックには、根拠となったテキストを抽出したsegmentも紐づいています。
処理の流れを大まかに日本語に直すと以下になります。
Stage 1: Generate Initial Topics(初期トピック生成):
コーパスからサンプリングした文献について初期トピックを作成する。
Stage 2: Refine Topics(トピック洗練)
初期トピックをある程度までマージし、最上位階層のトピックをT個作成する。
Stage 3: Assign Topics and Extract Components(トピック付与とコンポーネント抽出)
3-1: 各文献についてトピックを付与とコンポーネント抽出を同時に行い、以下のペアを作成する。
- (付与するトピック, 根拠となる文献の引用, 説明, 信頼度スコア)
3-2: 各トピックtごとに付与されたsegmentのみを集めたサブコーパスDtをそれぞれ作成する
Stage 4: Hierarchical Subtopic Discovery (Iterative)(反復による階層サブトピックの探索)
各サブコーパスDtから、サブトピックを作成する
for t in range(T):
サブコーパスDtについてStage 1, Stage 2と同様の処理を行い、サブトピックをM個作成する。
for m in range(M):
サブサブコーパスDmについてStage 1, Stage 2と同様の処理を行い、サブトピックmの子となるサブサブトピックがO個できる
for o in range(O):
...(階層化をどこまでするかは任意で止められる。)
以下、各処理について大まかに解説していきます。
Stage 1:Generate Initial Topics(初期トピック生成)
コーパスの文書から一部の文書をサンプリングし、その文書をもとに初期トピックの候補を作成します。
Stage 2:Refine Topics(トピック精錬)
得られた初期トピック集合
- 初期トピック集合
をLLMに入力し、以下の手順でRefine Topicsを実施します。T - 類似したトピックをマージします。
- 出現頻度が低いトピックを削除します。
- 各トピックが互いに重複しないように抽象度・粒度を調整します。
- LLMの出力結果から、マクロトピック集合
を得ます。T^*
Stage 3: Assign Topics and Extract Components(トピック付与とコンポーネント抽出)
以下をコーパス中の すべての文書
-
文書
とマクロトピック集合d を LLM に渡します。T -
各トピック
についてLLMで以下を同時に実行します。t \in T^* - この文書
にトピックd が関連するかどうか考えます。t - 関連するのであれば根拠となる文(segment)を抜き出します。
- 判断根拠としてexplanationを出力します。
- トピック付与の信頼度としてconfidence scoreを出します。
- この文書
-
結果、以下のリストを集めた集合
を得ます。A(d) (t, \text{segment}, \text{explanation}, \text{confidence score})
Stage 4: Hierarchical Subtopic Discovery (Iterative)(反復による階層サブトピックの探索)
- 各マクロトピックについて、そのトピックに対応するコンポーネントのみを集めたサブコーパスを作り、サブコーパスについてStage1, Stage2と同様の処理を行うことでサブトピックを作成します。
- その後、サブトピックについてStage3と同様の処理を行うことで、サブトピックに対応するコンポーネントも抽出します。
- 1-2を再帰的に実施していくことで、任意の深さの階層を持つトピック構造を作成することができます。
検証設定
論文では、TADE の有効性を確認するために、古典的なニュースグループデータセットを使っています。
データセット: 20 Newsgroups
- 約2万件のニュース記事を含むデータセット。
- 20 カテゴリに分類されている。
- ランダムに2000文書をサンプリングし使用した。
- 前処理は全文字を小文字に修正後、特殊文字の削除を行った。
LLMのモデル設定
論文では実験にgpt-4o-mini を使用しています。
比較対象モデル:
- LDA
- トピック数は20 Newsgroups に合わせて20に設定しました。
- BERTopic
- 事前学習済のBERTを使用しました。
評価方法
定量評価
トピックモデルの評価指標として一般的な以下の3つを使用しており、全ての指標において1に近づくほど高い評価値となります。
- Coherence(NPMI)(トピックの一貫性)
- 各トピックの特徴語がどれだけ一貫した内容になっているのかを評価する指標です。
- Diversity(トピックの多様性)
- 各トピックが重複していないかを表す指標です。特徴語が各トピック同士で重複していないほど高い値となります。
- Entropy(トピックの使われのバランスの良さ)
- コーパス全体に渡って、各トピックがどれくらい均等に使われているかを表します。
定性評価
LLM as a judge(LLMによる定性評価)を用いて、どの手法によるトピックが最も品質が高いか以下の設定で100回の評価を実施しました。
- Newsgroups データセットから 500 サンプルを gpt-4o-mini に提示
- LDA / BERTopic / TADEの結果をランダムに#1, #2, #3の匿名な並び匿名で評価
- 評価にあたっては以下のプロンプトを使用しています。(日本語訳したものを記載しています。)
この3つの中で、データセットを理解するにあたって
最も一貫性があり(coherent)、代表性が高く(representative)、
有用(useful)だと思う手法を選び、その理由を説明してください。
実験結果
定量評価結果

実験の評価結果(TADE論文中より引用)
上記は実験の評価結果となっています。
Coherence(トピックの一貫性)
TADEで作成したマクロトピックの0.533が最も高い評価結果でした。他手法のBERTopic の 0.300、LDA の 0.286 を大きく上回りました。
これから、TADEでは他手法よりもより意味的なまとまりのあるトピックを作成できていることがわかります。
Diversity(トピックの多様性)
BERTopicの0.993が最も高い評価結果でした。
その次にTADEのマクロトピックが0.946と高い評価結果でした。
一方で、TADEのサブトピックでは0.724とLDAと同程度の評価結果となっていました。
これから、TADEのマクロトピックでは各トピック間が明確に分けられている一方で、各マクロトピックの子にあたるサブトピック同士ではある程度の意味的な重複があるとわかります。これはトピックの階層化がうまく働いているためだと考えられます。
Entropy(トピックの使われのバランスの良さ)
TADEのマクロトピックは0.811とLDAの0.867に近いEntropyを示していました。
これから、TADEのマクロトピックがバランスよく使用されていることがわかります。
また、TADEのサブトピックでは0.979と最も高い評価結果でした。これはTADEのサブトピックは他手法と比べて非常にトピックの特化度合いが高く、多くの場合1~3文書にしか割り当てられないような細かいトピックになっているためだと考えられます。
定性評価結果
llm as a judgeによる評価では、100回中すべてでTADEが選ばれました。
今後の課題
TADEは従来のトピックモデル手法と比べて高い評価結果を示しているものの、
以下の制約が存在します。
LLMの計算コスト
まずLDAやBERTopicと比べると計算負荷が大きく、コスト面が高くなりやすい。
特にトピックモデルが対象とする大規模な文献によるデータセットを扱う場合、従来手法よりもかなり高額なコストがかかる恐れがあります。
LLMによるバイアス
作成されるトピックはLLMの学習データに含まれるバイアスを当然反映してしまうため、特定の領域によっては偏ったトピックが作成・付与されてしまう恐れがあります。
実務への応用可能性
TopicGPTやTADEをはじめとするLLMによるトピックモデル手法では従来の手法ではトピックの解釈が難しかった専門性の高い文献に対しても有効なアプローチだと考えられます。
論文では、特に臨床文書や法律文書のように、トピック付与の根拠説明が重要な領域での応用可能性が議論されています。また、LLM を用いることで多言語の文献に対しても一貫したトピック分析を行いやすい点も触れられています。
一方で筆者としては、その他にも科学論文や特許文献などの領域でも、適切な評価指標と専門家によるレビューを組み合わせられれば、トピックの作成・付与を通じてラベリングの支援が可能になると期待しています。
おわりに
本記事ではLLMを用いたトピックモデル手法として、Topic-Activated Document Exploration(TADE)をご紹介しました。
これはLLMを活用してテキストの文脈を考慮しつつ、階層的なトピックの作成と付与を行う手法です。従来手法の課題であったトピックの解釈を LLM で行い、かつその根拠も残すことで、より優れたトピック分析を可能にしようとしています。
一方で、現時点では大規模な文献に対しては LLM のコストが課題となります。筆者としては、今後さらに LLM の低コスト化や効率的な推論手法が進むことで、TADE のような手法がより一般的なトピックモデル手法として広く利用されていくと考えています。
本記事がLLMによるトピックモデル手法を学ぶ人の助けになれば幸いです。
参考資料
-
LDA(Latent Dirichlet Allocation)
https://jmlr.csail.mit.edu/papers/v3/blei03a.html -
BERTopic
https://arxiv.org/abs/2203.05794 -
TopicGPT
https://arxiv.org/abs/2311.01449 -
TADE(Topic-Activated Document Exploration)
https://openreview.net/forum?id=2ee5nI3G3l -
20 Newsgroups データセット
http://qwone.com/~jason/20Newsgroups/
NTT DATA公式アカウントです。 技術を愛するNTT DATAの技術者が、気軽に楽しく発信していきます。 当社のサービスなどについてのお問い合わせは、 お問い合わせフォーム nttdata.com/jp/ja/contact-us/ へお願いします。