潜在狄利克雷分配 (LDA) 算法 - Amazon SageMaker
Amazon Web Services 文档中描述的 Amazon Web Services 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 Amazon Web Services 服务入门

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

潜在狄利克雷分配 (LDA) 算法

Amazon SageMaker 潜在狄利克雷分配 (LDA) 算法是一种自主学习算法,它尝试将一组观察描述为不同类别的组合。LDA 最常用于发现通过文本语料库中的文档共享的用户指定数量的主题。这里,每个观察都是一个文档,特征是每个单词的存在 (或出现次数计数),类别是主题。由于该方法是自主的,因此未预先指定主题,并且不能保证与人对文档进行自然分类的方式一致。以每个文档中单词的出现概率形式来学习主题。每个文档进而被描述为主题的混合。

具有类似主题混合的两个文档的确切内容将不相同。但总的来说,您希望这些文档更频繁地使用一个共享的单词子集,而不是与来自不同主题混合的文档进行比较。这将允许 LDA 发现这些单词组并使用它们来形成主题。举一个极其简单的例子,给定一组文档,其中出现的唯一单词是:eatsleepplaymeowbark,LDA 可能会生成类似下面内容的主题:

主题

eat sleep play meow bark
主题 1 0.1 0.3 0.2 0.4 0.0
主题 2 0.2 0.1 0.4 0.0 0.3

您可以推断出,更有可能归入主题 1 的文档与猫有关 (猫更有可能与 meowsleep 相关),归入主题 2 的文档与狗有关 (playbark 更适合描述狗)。即便单词狗和猫从未在任何文本中出现,也可以找到这些主题。

潜在狄利克雷分配 (LDA) 和神经主题模型 (NTM) 之间的选择

主题模型通常用于从主体生成主题,这些主题(1)相互封装语义含义,(2)对文档的描述很好。因此,专题模型旨在尽量减少困惑,最大限度地提高主题的一致性。

混淆是一种内在语言建模评估度量,用于测量检验数据中每个词几何均值似然的反。混乱分数越低表示概化性能更好。研究表明,每个词计算的可能性往往与人类判断不一致,可能完全不相关,因此引入了专题的一致性。从模型中推断的每个主题都由单词组成,并且主题一致性被计算为模型中该特定主题的前 N 个词。它通常被定义为该主题中单词的配对词-相似度分数的平均值或中位数,例如,点数互信 (PMI)。一个有前途的模型可以生成具有较高主题一致性的主题或主题。

虽然目标是培训一个能够最大限度地减少困惑并最大限度地提高主题一致性的主题模型,但通常会与 LDA 和 NTM 取舍。亚马逊,Dinget 等人,2018 年最近的研究表明,NTM 在实现高主题一致性方面有前景,但经过折叠 Gibbs 采样训练的 LDA 可以实现更好的混淆。在混淆和主题连贯性之间存在着权衡。从硬件和计算能力的实用性角度来看,SageMaker NTM 硬件比 LDA 更灵活,并且可以更好地扩展,因为 NTM 可以在 CPU 和 GPU 上运行,并且可以跨多个 GPU 实例并行化,而 LDA 仅支持单实例 CPU 培训。

DeepAR 算法的输入/输出接口

LDA 预期在训练渠道上提供数据,并 (可选) 支持一个测试渠道,该渠道由最终模型进行评分。LDA 支持 recordIO-wrapped-protobuf (密集和稀疏) 和 CSV 文件格式。对于 CSV,数据必须是密集的,并且维度等于记录数 * 词汇表大小。使用 recordIO 包装的 protobuf 时,LDA 可以在文件或管道模式下训练,但仅在文件模式下支持 CSV 格式。

对于推理,支持 text/csvapplication/jsonapplication/x-recordio-protobuf 内容类型。也可以为 application/jsonapplication/x-recordio-protobuf 传递稀疏数据。LDA 推理返回 application/jsonapplication/x-recordio-protobuf 预测,其中包括每个观察的 topic_mixture 向量。

有关训练和推理格式的更多详细信息,请参阅LDA 示例笔记本

LDA 算法的 EC2 实例建议

LDA 当前仅支持单实例 CPU 训练。建议使用 CPU 实例进行托管/推理。

LDA 示例笔记本

有关演示如何在数据集上训练 SageMaker 潜在狄利克雷分配算法的示例笔记本,然后如何部署训练模型以对输入文档中的主题混合进行推理。有关该示例笔记本的信息,请参阅SageMaker LDA 简介. 有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例. 在您创建笔记本实例并打开之后,请选择SageMaker End的示例选项卡以查看所有 SageMaker 示例的列表。使用 NTM 算法的主题建模示例笔记本位于 Amazon 算法简介部分中。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本)