用 LDA 和 LSA 两种方法来降维和做 Topic 建模

本文为 AI 研习社编译的技术博客,原标题 2 latent methods for dimension reduction and topic modeling,作者为 Edward Ma。
翻译 | dudubear、机智的工人       校对 | 余杭       审核 | 余杭

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

图片链接: https://pixabay.com/en/golden-gate-bridge-women-back-1030999/

在优秀的词嵌入方法出现之前,潜在语义分析模型(LSA)和文档主题生成模型(LDA)都是解决自然语言问题的好方法。LSA模型和LDA模型有相同矩阵形式的词袋表示输入。不过,LSA模型专注于降维,而LDA模型专注于解决主题建模问题。

由于有很多资料介绍这两个模型的数学细节,本篇文章就不深入介绍了。如果感兴趣,请自行阅读参考资料。为了让大家更好地理解,我不会做去停用词这样的预处理操作。但这是在使用LSA、LSI和LDA模型时非常关键的部分。阅读以下文章,你会了解以下内容:

  • 潜在语义分析模型(LSA)

  • 文档主题生成模型(LDA)

  • 主旨概要

潜在语义分析(LSA)

2005年Jerome Bellegarda将LSA模型引入自然语言处理任务。LSA模型的目的是对分类任务降维。其主要思想是具有相似语义的词会出现在相似的文本片段中。在自然语言处理领域,我们经常用潜在语义索引(LSI)作为其别名。

首先,我们用m个文档和n个词作为模型的输入。这样我们就能构建一个以文档为行、以词为列的m*n矩阵。我们可以使用计数或TF-IDF得分。然而,用TF-IDF得分比计数更好,因为大部分情况下高频并不意味着更好的分类。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

  图片来源: http://mropengate.blogspot.com/2016/04/tf-idf-in-r-language.html

TF-IDF的主要思想是高频的词有可能不代表着很多的信息。换句话说,就是出现频率小的词在模型中有更高的权重。字词的重要性与它在同一文件中出现的次数成正比,但同时与其在语料库中出现的次数成反比。更详细的内容,请参考此博客(https://towardsdatascience.com/3-basic-approaches-in-bag-of-words-which-are-better-than-word-embeddings-c2cbc7398016)。

该模型的挑战是矩阵很稀疏(或维数很高),同时有噪声(包括许多高频词)。因此,使用分解 SVD 来降维。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

SVD 的思想在于找到最有价值的信息并使用低维的t来表达这一信息。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

输出

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

可以看到维度从 130 K 降到了  50

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

输出

用 LDA 和 LSA 两种方法来降维和做 Topic 建模


文档主题生成模型(LDA)

2003年,David Blei, Andrew Ng和Michael O. Jordan提出了LDA模型。这属于无监督学习,而主题模型是其个中典型。它建立的假设在于每份文档都使用多个主题混合生成,同样每个主题也是由多个单词混合生成。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

  不同话题下的不同词汇

显然,你可以想象出两层聚合。第一层是类别的分布。打个比方,类似我们有金融新闻、天气新闻和政治新闻。第二层则是类中的单词分布。比如,我们可以在天气新闻中找到类似“晴朗的”和“云”这样的单词,在金融新闻中找到“钱”和“股票”这样的单词。

然而,"a","with","can"这样的单词对主题建模问题没有帮助。这样的单词存在于各个文档,并且在类别之间概率大致相同。因此,想要得到更好的效果,消除停用词是关键一步。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

对特定的文档d,我们得到了其主题分布θ。则主题t可以根据这个分布(θ)从ϕ中选出相应的单词。

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

输出

用 LDA 和 LSA 两种方法来降维和做 Topic 建模

主旨概要

要获取完整代码,请访问我的github仓库

……

想要继续阅读,请移步至我们的AI研习社社区:https://club.leiphone.com/page/TextTranslation/841

更多精彩内容尽在 AI 研习社。

不同领域包括计算机视觉,语音语义,区块链,自动驾驶,数据挖掘,智能控制,编程语言等每日更新。

雷锋网雷锋网(公众号:雷锋网)(公众号:雷锋网)


用 LDA 和 LSA 两种方法来降维和做 Topic 建模

原创文章,作者:ItWorker,如若转载,请注明出处:https://blog.ytso.com/134413.html

(0)
上一篇 2021年9月1日
下一篇 2021年9月1日

相关推荐

发表回复

登录后才能评论