

本文属于机器翻译版本。若本译文内容与英语原文存在差异，则一律以英文原文为准。

# LDA 工作原理
<a name="lda-how-it-works"></a>

Amazon SageMaker AI LDA 是一种无监督学习算法，它尝试将一组观察数据描述为不同类别的组合。这些类别本身就是关于特征的概率分布。LDA 是一个生成概率模型，这意味着它尝试为基于潜在变量的输出和输入的分布提供一个模型。这与判别模型相反，这些模型尝试学习输入如何映射到输出。

您可以使用 LDA 执行各种任务，从根据产品购买对客户进行聚类分析到音乐中的自动和声分析。但是，它最常与文本语料库中的主题建模相关联。观察被称为文档。特性集被称为词汇表。特性被称为单词。生成的类别被称为主题。

**注意**  
词形还原显著提高了算法的性能和准确性。考虑预先处理任何输入文本数据。有关更多信息，请参阅[词干和词形还原](https://nlp.stanford.edu/IR-book/html/htmledition/stemming-and-lemmatization-1.html)。

一个 LDA 模型由两个参数定义：
+ α - 对主题概率的预先估计 (换句话说，给定文档中每个主题出现的平均频率)。
+ β - 一个 k 主题集合，在文档语料库中使用的词汇表中为每个主题提供一个概率分布，也称为“主题-单词分布”。

LDA 是一个“单词袋”模型，这意味着单词的顺序无关紧要。LDA 是一个生成模型，其中通过选择主题混合 θ ∼ Dirichlet(α) 来逐词生成每个文档。

 对于文档中的每个单词：
+  选择主题 z ∼ Multinomial(θ) 
+  选择相应的主题-单词分布 β\$1z。
+  绘制单词 w ∼ Multinomial(β\$1z)。

在训练模型时，目标是找到参数 α 和 β，这两个参数可最大化模型生成的文本语料库的概率。

估计 LDA 模型的最常用方法是使用 Gibbs 抽样或期望最大化 (EM) 技术。Amazon SageMaker AI LDA 使用张量谱分解。这提供了几个优势：
+  **理论保证结果**。标准 EM 方法保证仅收敛到局部最优，通常质量较差。
+  **尴尬平行**。就输入文档而言，可在训练和推理方面对工作进行划分。EM 方法和 Gibbs 采样方法可以并行化，但这并不容易。
+  **速度快**。虽然 EM 方法的迭代成本较低，但其收敛速度较慢。Gibbs 采样也受到缓慢收敛速度的影响，而且还需要大量样本。

在较高级别，张量分解算法遵循此过程：

1.  目标是计算 **V** x **V** x **V** 张量的谱分解，这将总结语料库中的文档矩量。**V** 是词汇表大小 (换句话说，所有文档中不同单词的数目)。此张量的谱分量是 LDA 参数 α 和 β，这将最大化文档语料库的总体可能性。但是，由于词汇表比较大，因此该 **V** x **V** x **V** 张量过大，无法存储在内存中。

1.  相反，它使用 **V** x **V** 矩量矩阵 (步骤 1 中的张量的二维类比) 来查找维度 **V** x **k** 的白化矩阵。此矩阵可用于将 **V** x **V** 矩量矩阵转换为 **k** x **k** 单位矩阵。**k** 是模型中的主题数。

1.  之后，相同的白化矩阵可用于查找更小的 **k** x **k** x **k** 张量。在进行谱分析时，此张量具有与 **V** x **V** x **V** 张量的分量有简单关系的分量。

1.  *交替最小二乘*用于分解较小的 **k** x *k* x **k** 张量。这将大大减少内存消耗并加快速度。可以通过在谱分解中“取消白化”这些输出来查找参数 α 和 β。

在找到 LDA 模型的参数后，您可以查找每个文档的主题混合。您使用随机梯度下降法来最大化观察与这些数据相对应的给定主题混合的似然函数。

可以通过增加在训练中查找的主题数，然后筛选出质量较差的主题来改善主题质量。实际上，这是在 SageMaker AI LDA 中自动完成的：另外计算 25% 的主题，并且仅返回具有最大关联的狄利克雷先验的主题。要执行进一步的主题筛选和分析，您可以增加主题计数并修改生成的 LDA 模型，如下所示：

```
> import mxnet as mx
> alpha, beta = mx.ndarray.load(‘model.tar.gz’)
> # modify alpha and beta
> mx.nd.save(‘new_model.tar.gz’, [new_alpha, new_beta])
> # upload to S3 and create new SageMaker model using the console
```

有关 LDA 和 SageMaker AI 实施的算法的更多信息，请参阅以下内容：
+ Animashree Anandkumar、Rong Ge、Daniel Hsu、Sham M Kakade 和 Matus Telgarsky。*学习潜在变量模型的张量分解 (Tensor Decompositions for Learning Latent Variable Models)*，机器学习研究杂志 (Journal of Machine Learning Research)，15:2773–2832，2014。
+  David M Blei、Andrew Y Ng 和 Michael I Jordan。*潜在狄利克雷分配*。机器学习研究杂志 (Journal of Machine Learning Research)，3(Jan):993–1022，2003。
+  Thomas L Griffiths 和 Mark Steyvers。*发现科学主题 (Finding Scientific Topics)*。美国国家科学院院刊 (Proceedings of the National Academy of Sciences)，101(suppl 1):5228–5235，2004。
+  Tamara G Kolda 和 Brett W Bader。*张量分解和应用程序 (Tensor Decompositions and Applications)*。SIAM Review，51(3):455–500，2009。