潜在的ディリクレ配分 (LDA) アルゴリズム - Amazon SageMaker

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

潜在的ディリクレ配分 (LDA) アルゴリズム

Amazon SageMaker Latent Dirichlet Allocation (LDA) アルゴリズムは、一連の観測値を異なるカテゴリの混合として記述しようとする教師なし学習アルゴリズムです。LDA は、テキストコーパス内のドキュメントによって共有されるトピックの、ユーザー指定数を検出するために最もよく使用されます。ここで、各観測はドキュメントであり、特徴は各単語の存在 (または出現回数) であり、カテゴリはトピックです。このメソッドは管理されていないので、トピックは前もって指定されておらず、人間が自然にドキュメントを分類する方法とは必ずしも合致しません。トピックは、各ドキュメント内に出現する単語に対する確率分布として学習されます。各ドキュメントは、順次、トピックの混在として示されます。

類似したトピックが混在する 2 つの異なるドキュメントの正確な内容は同じではありません。しかし全体的にみると、これらのドキュメントでは、異なるトピックが混在するドキュメントと比較した場合よりも頻繁に単語の共有サブセットを使用されることが予期されます。これにより、LDA はこれらの単語グループを検出し、トピックを形成することができます。非常に単純な例として、食べる、寝る、遊ぶ、ニャー、吠えるという単語のみが出現するドキュメントのセットの場合、LDA によって生成される可能性のあるトピックは、次のようになります。

トピック

食べる 寝る play ニャー 吠える
トピック 1 0.1 0.3 0.2 0.4 0.0
トピック 2 0.2 0.1 0.4 0.0 0.3

トピック 1 に分類される可能性が高いドキュメントは猫 (ニャー寝る) に関するもの、トピック 2 に分類されるドキュメントは犬 (遊ぶ吠える) に関するものであると推測できます。これらのトピックは、犬と猫という言葉がいずれのテキストに全く出現しない場合でも見つかることがあります。

潜在的ディリクレ配分 (LDA) とニューラルトピックモデル (NTM) のいずれかを選択する

トピックモデルは、一般的に (1) 意味論的意味を一貫してカプセル化し、(2) ドキュメントを効果的に説明するコーパスからトピックを生成するために使用されます。そのため、トピックモデルは Perplexity を最小限に抑え、トピックコヒーレンスを最大化することを目的としています。

Perplexity は、テストデータ内で単語ごとの幾何平均の尤度の逆数を測定する固有言語モデリング評価メトリクスです。Perplexity スコアが低いほど、一般化パフォーマンスが向上します。研究により、単語ごとに計算される尤度は人間による判断と一致しないことが多く、完全に相関しない可能性があるため、トピックコヒーレンスが導入されています。モデルから推測される各トピックは単語で構成され、トピックコヒーレンスはモデルからその特定のトピックの上位 N 語に対して計算されます。これは多くの場合、そのトピック内の単語のペアワイズ単語の類似性スコア (点相互情報 (PMI) など) の平均値または中央値として定義されます。有望なモデルは、解釈しやすいトピック (トピックコヒーレンススコアが高いトピック) を生成します。

目的は、Perplexity を最小化してトピックコヒーレンスを最大化するトピックモデルをトレーニングすることですが、多くの場合、LDA と NTM 両方にトレードオフがあります。最近の研究 (Amazon, Dinget et al., 2018) により、NTM は高いトピックコヒーレンスの達成に対して有望ですが、崩れたギブスサンプリングでトレーニングされた LDA の Perplexity はより良好であることが示されています。Perplexity とトピックコヒーレンスの間にはトレードオフがあります。ハードウェアとコンピューティング能力に関する実用性の観点から見ると、 SageMaker NTM ハードウェアは LDA よりも柔軟性が高く、NTM は CPU と GPU で実行でき、複数の GPU インスタンス間で並列化できるため、より適切にスケールできますが、LDA は単一インスタンスの CPU トレーニングのみをサポートしています。

LDA アルゴリズムの入出力インターフェイス

LDA はトレーニングチャネルにデータが提供されることを期待しており、最終的なモデルで採点されたテストチャネルをオプションでサポートしています。LDA は、recordIO-wrapped-protobuf (密および疎) および CSV ファイル形式の両方をサポートしています。CSV の場合、データは密で、その次元はレコードの次元数 * 語彙のサイズと等しくなければなりません。recordIO でラップされた protobuf を使用する場合、LDA はファイルモードまたはパイプモードでトレーニングできますが、CSV 形式のファイルモードでのみトレーニングできます。

text/csvapplication/json、および application/x-recordio-protobuf コンテンツタイプが、推論のためにサポートされています。application/json および application/x-recordio-protobuf に疎データを渡すこともできます。LDA の推論は、application/json または application/x-recordio-protobuf 予測を返し、これには、各観測の topic_mixture ベクトルが含まれます。

トレーニングと推論形式の詳細については、LDA サンプルノートブックを参照してください。

LDA アルゴリズムの EC2 インスタンスに関する推奨事項

LDA は現在、単一インスタンスの CPU トレーニングのみをサポートしています。ホスティング/推論には CPU インスタンスをお勧めします。

LDA サンプルノートブック

データセットで SageMaker 潜在的ディリクレ配分アルゴリズムをトレーニングする方法と、トレーニング済みモデルをデプロイして入力ドキュメントのトピックの混合に関する推論を実行する方法を示すサンプルノートブックについては、「 SageMaker LDA の概要」を参照してください。でサンプルを実行するために使用できる Jupyter Notebook インスタンスを作成してアクセスする方法については SageMaker、「」を参照してくださいAmazon SageMaker ノートブックインスタンス。ノートブックインスタンスを作成して開いたら、SageMaker 「例」タブを選択して、すべての SageMaker サンプルのリストを表示します。NTM アルゴリズムを使用したトピックモデリングのサンプルノートブックは、[Introduction to Amazon algorithm (Amazon アルゴリズムの概要)] セクションにあります。ノートブックを開くには、その [Use (使用)] タブをクリックして [Create copy (コピーを作成)] を選択します。