神经主题模型 (NTM) 算法 - Amazon SageMaker
AWS 文档中描述的 AWS 服务或功能可能因区域而异。要查看适用于中国区域的差异,请参阅中国的 AWS 服务入门

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

神经主题模型 (NTM) 算法

Amazon SageMaker NTM 是一种自主型学习算法,用于将文档语料库组织成主题,其中包含基于统计分布的单词分组。例如,如果文档包含诸如“自行车”、“汽车”、“火车”、“里程”和“速度”之类的频繁出现的单词,则文档可能共享关于“运输”的主题。主题建模可用于基于检测到的主题对文档进行分类或汇总,或者基于主题相似性检索信息或推荐内容。来自 NTM 学习的文档的主题被表征为潜在表示,因为主题是从语料库中观察到的单词分布推断出来的。主题的语义通常通过检查它们包含的最高排名词来推断。因为该方法是自主型的,所以只有主题的数量,而不是主题本身是预设的。此外,这些主题不能保证与人类自然地对文档进行分类的方式一致。

主题建模提供了一种根据所学主题可视化大型文档语料库内容的方法。与每个主题相关的文档可以根据其软主题标签进行索引或搜索。文档的潜在表示还可用于在主题空间中查找类似的文档。您还可以将主题模型学习的文档的潜在表示用于另一受监督算法 (如文档分类器) 的输入。因为预计文档的潜在表示会捕获底层文档的语义,所以部分基于这些表示的算法预计比仅基于词汇特征的算法表现更好。

虽然您可以同时使用 Amazon SageMaker NTM 和 LDA 算法进行主题建模,但它们是不同的算法,可能会在相同的输入数据上产生不同的结果。

有关 NTM 背后的数学的更多信息,请参阅文本处理的神经变分推理

NTM 算法的输入/输出接口

Amazon SageMaker 神经主题模型支持四种数据通道:训练、验证、测试和辅助。验证、测试和辅助数据通道是可选的。如果您指定任何这些可选通道,请将这些通道的 S3DataDistributionType 参数的值设置为 FullyReplicated。 如果您提供验证数据,则会在每个纪元记录此数据的损失,一旦检测到验证损失没有改善,模型就会停止训练。如果您不提供验证数据,算法将根据训练数据提早停止,但这可能会降低效率。如果您提供测试数据,则该算法将从最终模型中报告测试损失。

NTM 的训练、验证和测试数据通道同时支持 recordIO-wrapped-protobuf(密集和稀疏)和 CSV 文件格式。如果是 CSV 格式,对于不存在于相应文档中的单词,必须以零计数密集地表示每行,并且每行必须具有等于 (记录数) * (词汇表大小) 的维度。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobufCSV 的数据训练模型。 辅助通道用于提供包含词汇表的文本文件。通过提供词汇表文件,用户可以查看日志中输出的每个主题的顶级单词,而不是整数 IDs。 使用词汇表文件,还允许 NTM 计算单词嵌入主题一致性 (WETC) 分数,这是一个在日志中显示的新指标,可以有效地捕获每个主题中顶级单词之间的相似性。辅助通道的 ContentTypetext/plain,每行只包含一个单词,其顺序对应于数据中提供的整数 IDs。词汇表文件必须命名为 vocab.txt,目前仅支持 UTF-8 编码。

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

有关使用辅助通道和 WETC 分数的更多详细信息,请参阅博客帖子和配套的笔记本。有关如何计算 WETC 分数的更多信息,请参阅相干感知神经主题建模。我们对 Amazon SageMaker 神经主题模型使用本文中描述的成对 WETC。

有关输入和输出文件格式的更多信息,请参阅NTM 响应格式(对于推理)和NTM 示例笔记本

NTM 算法的 EC2 实例建议

NTM 训练支持 GPU 和 CPU 实例类型。我们推荐 GPU 实例,但是对于某些工作负载,CPU 实例可能会使训练成本降低。CPU 实例应足以进行推理。

NTM 示例笔记本

示例笔记本使用 SageMaker NTM 算法从已知主题分布的合成数据源中的文档内发现主题,有关该示例笔记本,请参阅 NTM 基本功能简介。有关如何创建和访问可用于在 SageMaker 中运行示例的 Jupyter 笔记本实例的说明,请参阅使用 Amazon SageMaker 笔记本实例。创建笔记本实例并打开该实例后,选择 SageMaker Examples (CloudWatch 示例) 选项卡以查看所有 SageMaker 示例的列表。使用 NTM 算法的主题建模示例笔记本位于 Amazon 算法简介部分中。要打开笔记本,请单击其 Use (使用) 选项卡,然后选择 Create copy (创建副本)