Language

LatentDirichletAllocationEstimator クラス

定義

LDA 変換は、潜在ディリクレ割り当ての最先端の実装である LightLDA を実装します。

public sealed class LatentDirichletAllocationEstimator : Microsoft.ML.IEstimator<Microsoft.ML.Transforms.Text.LatentDirichletAllocationTransformer>
type LatentDirichletAllocationEstimator = class
    interface IEstimator<LatentDirichletAllocationTransformer>
Public NotInheritable Class LatentDirichletAllocationEstimator
Implements IEstimator(Of LatentDirichletAllocationTransformer)
継承
LatentDirichletAllocationEstimator
実装

注釈

エスティメーターの特性

この推定器は、パラメーターをトレーニングするためにデータを確認する必要がありますか? Yes
入力列のデータ型 Single のベクトル
出力列のデータ型 Single のベクトル
ONNX にエクスポート可能 No

潜在的な Dirichlet 割り当ては、テキスト データからセマンティック構造を推測する既知の トピック モデリング アルゴリズムであり、最終的には"このドキュメントとは何か" に関する質問に答えるのに役立ちます。 任意のテキスト フィールドを低次元の局所ベクトルとして特徴付けるために使用できます。 LightLDA は、多数の最適化手法を組み込んだ LDA の非常に効率的な実装です。 LDA 変換により、ML.NET ユーザーはトピック モデルをトレーニングして、10 億個のトークン ドキュメントセットに対して 100 万語のボキャブラリを含む 100 万個のトピックを数時間で 1 台作成できます (通常、この規模の LDA には数日かかり、大規模なクラスターが必要です)。 最も重要なイノベーションは、超効率的な$O(1)$ です。 Metropolis-Hastings サンプリング アルゴリズムは、実行コストがモデル サイズに依存しないため、他の Gibbs サンプラーよりもほぼ 1 桁速く収束できます。

ML.NET パイプラインでは、この推定器には、入力として何らかの前処理の出力が必要です。 テキストで動作する一般的なパイプラインでは、テキストの正規化、トークン化、LDA 推定に提供する n グラムの生成が必要になります。 使用候補については、「関連項目」セクションの使用例を参照してください。

次の 3 つのテキストの例をデータ ポイントとして使用し、トピックの数を 3 に設定して LDA 変換を使用すると、次の表に結果が表示されます。 ドキュメントの例:

  • バナナを食べるのが好きです。
  • 毎日バナナを食べます。
  • 1970年に初めて祝われるアースデーには、193以上の国/地域のイベントが含まれるようになり、現在は地球の日ネットワークによって世界的に調整されています。

1 行目と 2 行目の値が 3 行目と比較して類似していることに注目し、それらの値がテキストの 2 つの (小さい) 本文間の類似性を示す方法を確認します。

Topic1 Topic2 トピック 3
0.5714 0.0000 0.4286
0.5714 0.0000 0.4286
0.2400 0.3200 0.4400

技術的な詳細については、次の資料を参照してください。

使用例へのリンクについては、「関連項目」セクションを参照してください。

メソッド

名前 説明
Fit(IDataView)

LatentDirichletAllocationTransformerをトレーニングして返します。

GetOutputSchema(SchemaShape)

トランスフォーマーによって生成されるスキーマの SchemaShape を返します。 パイプラインでのスキーマの伝達と検証に使用されます。

拡張メソッド

名前 説明
AppendCacheCheckpoint<TTrans>(IEstimator<TTrans>, IHostEnvironment)

推定チェーンに "キャッシュ チェックポイント" を追加します。 これにより、ダウンストリーム推定器がキャッシュされたデータに対してトレーニングされるようになります。 複数のデータを受け取るトレーナーの前にキャッシュ チェックポイントを設定すると便利です。

WithOnFitDelegate<TTransformer>(IEstimator<TTransformer>, Action<TTransformer>)

推定器が指定された場合は、 Fit(IDataView) が呼び出されるとデリゲートを呼び出すラップ オブジェクトを返します。 多くの場合、推定器が適合した内容に関する情報を返すことが重要です。そのため、 Fit(IDataView) メソッドは一般的な ITransformerではなく、明示的に型指定されたオブジェクトを返します。 ただし、同時に、 IEstimator<TTransformer> は多くのオブジェクトを含むパイプラインに形成されることが多いため、トランスフォーマーを取得する推定器がこのチェーンのどこかに埋もれている EstimatorChain<TLastTransformer> を使用して、推定器のチェーンを構築する必要がある場合があります。 このシナリオでは、このメソッドを使用して、fit が呼び出されると呼び出されるデリゲートをアタッチできます。

適用対象

こちらもご覧ください