本文属于机器翻译版本。若本译文内容与英语原文存在差异,则一律以英文原文为准。
神经主题模型 (NTM) 算法
Amazon SageMaker NTM 是一种无监督学习算法,用于将文档语料库组织成包含基于统计分布的单词分组的主题。例如,如果文档包含诸如“自行车”、“汽车”、“火车”、“里程”和“速度”之类的频繁出现的单词,则文档可能共享关于“运输”的主题。主题建模可用于基于检测到的主题对文档进行分类或汇总,或者基于主题相似性检索信息或推荐内容。NTM学习文档中的主题被描述为潜在的表现形式,因为这些主题是从语料库中观察到的单词分布中推断出来的。主题的语义通常通过检查它们包含的最高排名词来推断。因为该方法是自主型的,所以只有主题的数量,而不是主题本身是预设的。此外,这些主题不能保证与人类自然地对文档进行分类的方式一致。
主题建模提供了一种根据所学主题可视化大型文档语料库内容的方法。与每个主题相关的文档可以根据其软主题标签进行索引或搜索。文档的潜在表示还可用于在主题空间中查找类似的文档。您还可以将主题模型学习的文档的潜在表示用于另一受监督算法 (如文档分类器) 的输入。因为预计文档的潜在表示会捕获底层文档的语义,所以部分基于这些表示的算法预计比仅基于词汇特征的算法表现更好。
尽管您可以同时使用 Amazon SageMaker NTM 和LDA算法进行主题建模,但它们是不同的算法,可以预期在相同的输入数据上产生不同的结果。
有关背后数学的更多信息NTM,请参阅文本处理的神经变分推理
算法的输入/输出接口 NTM
Amazon SageMaker 神经主题模型支持四个数据通道:训练、验证、测试和辅助通道。验证、测试和辅助数据通道是可选的。如果您指定这些可选通道中的任何一个,则将这些通道的 S3DataDistributionType
参数值设置为 FullyReplicated
。如果您提供验证数据,则会在每个纪元记录此数据的损失,一旦检测到验证损失未改善,模型就会停止训练。如果您不提供验证数据,算法将根据训练数据提早停止,但这可能会降低效率。如果您提供测试数据,则该算法将从最终模型中报告测试损失。
训练、验证和测试数据通道同时NTM支持recordIO-wrapped-protobuf
(密集和稀疏)和CSV
文件格式。如果是 CSV
格式,对于不存在于相应文档中的单词,必须以零计数密集地表示每行,并且每行必须具有等于 (记录数) * (词汇表大小) 的维度。您可以使用文件模式或管道模式,针对格式为 recordIO-wrapped-protobuf
或 CSV
的数据训练模型。辅助通道用于提供包含词汇表的文本文件。通过提供词汇文件,用户可以看到日志中打印的每个主题的热门单词,而不是它们的整数IDs。拥有词汇文件还允许NTM计算 Word Embedding Topic Coherence (WETC) 分数,这是日志中显示的一项新指标,可以有效地捕捉每个主题中热门单词之间的相似性。辅助通道ContentType
的顺序与数据中IDs提供的整数相对应,每行包含一个单词。text/plain
词汇文件必须命名vocab.txt
,目前仅支持 UTF -8 编码。
对于推理,支持 text/csv
、application/json
、application/jsonlines
和 application/x-recordio-protobuf
内容类型。也可以为 application/json
和 application/x-recordio-protobuf
传递稀疏数据。NTM推理返回application/json
或application/x-recordio-protobuf
预测,其中包括每个观测topic_weights
值的向量。
有关使用辅助频道和WETC乐谱的更多详细信息,请参阅博客文章
有关输入和输出文件格式的更多信息,请参阅NTM响应格式(对于推理)和NTM 示例笔记本。
EC2NTM算法的实例推荐
NTM训练同时支持GPU和CPU实例类型。我们建议使用GPU实例,但对于某些工作负载,CPU实例可能会降低培训成本。CPU实例应该足以进行推断。NTM训练支持 P2、P3、g4dn 和 G5 GPU 实例系列进行训练和推理。
NTM 示例笔记本
有关使用该 SageMaker NTM算法从已知主题分布的合成数据源中发现文档中的主题的示例笔记本,请参阅的基本NTM功能简介