我很难理解 BERT 的全部功能是什么:可以对文本进行主题建模,就像我们可以用 LDA 实现的那样?
BERT:可以将它用于主题建模吗?
不,大多数人使用https://radimrehurek.com/gensim/models/ldamodel.html进行主题建模,使用https://github.com/bmabey/pyLDAvis进行可视化。
因此,总体而言,问题在于理解 BERT 架构以及它是否可以用于主题建模。我想为了回答这个问题,我将简要概述 BERT 架构及其训练方式。
总体而言,BERT 本质上是一个由多个 Transformer 层组成的深度神经网络。BERT 模型是预先训练的,其中一个大型语料库可以有效地在语料库上开发语言模型。语言模型正是它在锡上所说的,它为给定语料库的语言建模。因此,语言模型本质上可以告诉您(或另一个模型,例如)给定句子在特定语言中的可能性有多大(即基本上衡量给定句子的流畅度)。(关于 BERT 的精彩视频系列:https ://www.youtube.com/watch?v=FKlPCK1uFrc )
另一方面,主题建模侧重于将文本分类为特定主题。对于这个任务,可以说使用语言模型是任意的,因为主题建模更多地关注文本的分类,而不是这些文本的流畅性。
考虑一下,除了上面给出的建议之外,您还可以开发单独的语言模型,例如,一个在主题 A 中的文本上训练,在主题 B 中的另一个文本上进行训练,等等。然后您可以通过输出概率对文本进行分类主题分布。
因此,在这种情况下,您可以进行迁移学习,即采用预训练的 BERT 模型,添加任何额外的层,包括最终输出的 softmax 层,该层会产生主题的概率分布。要重新训练模型,您基本上冻结了 BERT 模型本身的参数,并且只训练您添加的附加层。
一年后,我刚刚发现了这个项目,这正是你的问题 https://towardsdatascience.com/topic-modeling-with-bert-779f7db187e6
我不认为你可以使用 BERT 开箱即用地进行主题建模。您可以使用 BERT 嵌入通过余弦距离对文本进行聚类,并在每个聚类上使用 Gensim 或其他包进行主题建模。