algorithm - Amazon Sagemaker for Topic Modeling 中的 LDA 和 NTM 有什么区别?
问题描述
我正在寻找 LDA 和 NTM 之间的区别。您将在哪些用例中使用 LDA over NTM?
根据 AWS 文档:
LDA:Amazon SageMaker 潜在狄利克雷分配 (LDA) 算法是一种无监督学习算法,它试图将一组观察描述为不同类别的混合。LDA 最常用于发现文本语料库中文档共享的用户指定数量的主题。
尽管您可以同时使用 Amazon SageMaker NTM 和 LDA 算法进行主题建模,但它们是不同的算法,预计会在相同的输入数据上产生不同的结果。
解决方案
LDA和NTM有不同的科学逻辑:
SageMaker LDA(潜在狄利克雷分配,不要与线性判别分析混淆)模型的工作原理是假设文档是通过从有限的主题集中采样单词形成的。它由 2 个移动部分组成:(1)每个主题的单词组成和(2)每个文档的主题组成
另一方面, SageMaker NTM并没有明确地学习每个主题的单词分布,它是一个神经网络,将文档通过瓶颈层并尝试重现输入文档(根据AWS 文档可能是变分自动编码器 (VAE) ) . 这意味着瓶颈层最终包含预测文档组成的所有必要信息,其系数可以被视为主题
以下是选择其中之一的注意事项:
- SageMaker NTM 等基于 VAE 的方法在识别相关主题方面可能比 LDA 做得更好,大概是因为它们可能具有更深层次的表达能力。这里的一个基准测试(具有可能与 SageMaker NTM 不同的 VAE-NTM)表明 NTM 在主题连贯性和困惑度这两个指标上都可以击败 LDA
- 到目前为止,关于 LDA 的社区知识似乎比 VAE、NTM 和 SageMaker NTM 更多。如果您使用 LDA,这意味着可能更容易学习和排除故障。事情变化很快,所以随着深度学习知识的增长,这一点可能越来越不重要
- SageMaker NTM 具有比 SageMaker LDA 更灵活的硬件选项,并且可以更好地扩展:SageMaker NTM 可以在 CPU、GPU、多 GPU 实例和多实例上下文上运行。例如,官方 NTM 演示使用 2 个
ml.c4.xlarge
实例的临时集群。SageMaker LDA 目前仅支持单实例 CPU 训练。
推荐阅读
- swift - Swift:水平设置 UICollectionView 的单元格左对齐
- node.js - Mongoose upsert 不删除现有字段
- javascript - 如何使用 Cypress 从 PC 上传文件或图像?
- javascript - Google 表格组织结构图中的自定义工具提示
- c++ - 如何使 Visual Studio (C++) 显示“包含在”链中?
- c# - 绑定 DataContext 松散的 DependencyProperty
- php - PHP 删除第二个记录组名
- java - 从oracle中的多个表中获取多个列的最有效方法是什么?
- excel - 合并excel中重复的行
- python - 如何在不序列化的情况下将带有日期的文本写入 JSON 文件