【论文阅读】BERTopic:采用一个基于类的TF-IDF流程进行神经网络的主题建模

摘要

  • 主题模型对于在文档的集合中发现潜在的主题非常有用。近期的研究已经展示了主题建模方法作为一个聚类任务的可行性。
  • 本文展示了BERTopic,它是一个话题模型,它通过对一个基于类的TF-IDF的变体的开发,抽取一致的话题表示。
  • 具体来说,BERTopic采用预训练的基于transformer的语言模型来产生文档的嵌入,对这些文档嵌入进行聚类,并最后利用基于类的TF-IDF过程来产生话题的表示
  • BERTopic 产生一致的话题,并且在有关的经典模型,以及最近的聚类方法的多种多样的基准中,保持竞争力。

引言/研究动机

  • 为了揭示文本中的共同主题和隐含故事,主题模型已经被证实是一个有力的无监督工具。传统模型,像潜在狄利克雷分配(LDA)和非负矩阵因数分解,将每个文档作为一个词袋,并且将每个文档模型化为一些潜在话题的混合。
  • 这些模型的局限性是,通过词袋表示,它们忽视了词之间的语义关系。由于这些表示不能解释句子中的词的上下文,词袋输入很可能不能准确得表示文档。
  • BERT和它的变体早产生上下文词和句子的向量表示时,已经展示了很好的结果。这些向量表示的语义属性使得文本的意义被编码进去,在该方式下相似的文本在向量空间中能更接近。
  • Sia等人采用基于中心的技术,与传统方法(像LDA)来表示话题相比较,证明了聚类嵌入的可行性。从这些聚类了的嵌入中,话题表示被从嵌入词中提取,并且找到那些与聚类中心接近的。相似得,Top2Vec使用Doc2Vec的词和文档表示来共同地学习嵌入话题,嵌入文档和嵌入词向量。与Sia等人的方法比较,文档被聚类,并且通过找到接近于话题中心的词来创建话题表示。有趣的是,尽管话题的表示是从一个基于中心的视角抽取的,簇是从一个基于密度的视角来产生的,采取的是HDBSCAN。
  • 上述的话题建模技术假设:距离簇的中心近的词最可能能代表那个簇,也就是话题。实际上,一个簇并不总是呈现一个围绕中心的球形分布。这样一来,这个假设不能够对所有的文档的簇以及这些簇的表示都成立,所以话题也会被误导。经过Sia等人尝试克服它通过基于簇中词的频率对主题词进行重新排序,最初的候选名单仍然是从一个基于中心的视角选择的。
  • 本文引入BERTopic,一个主题模型,利用聚类技术和一个基于类的TF-IDF变体来产生一致的主题表示。更细致的说,我们首先使用一个预训练的语言模型创建了文档嵌入来获取文档级别的信息。其次,我们第一次降低文档嵌入的维度,在创建文档的语义相似的簇之前。第三,为了克服基于中心的视角,我们开发了一个基于类的TF-IDF版本来抽取每个主题的主题表示。这三个独立的步骤能够使得主题模型非常的灵活,可以被用于不同的使用场景下,比如动态主题建模。

BERTopic

1.文档嵌入

  • 假设有着相同主题的文档语义上非常相似。为了执行嵌入步骤,BERTopic使用 Sentence-BERT(SBERT)的架构。这个架构可以使得使用者将句子和段落采取预训练语言模型转换成密度向量表示。它在多个句子嵌入任务上都实现了SOTA的性能。
  • 这些嵌入,主要是用来对语义相似的文档进行聚类,并不是直接被用来产生主题。

2.文档聚类

  • 由于数据的维度不断提升,到最近的数据点的距离已经接近于到最远的数据点的距离。结果导致,在高维的空间中,空间位置的概念的定义很弱,距离的度量相差很小。
  • UMAP能够在更低的维度下,保持更多高维数据的局部和全局的特征。而且,由于它对于嵌入的维度没有计算限制,UMAP能够被在具有不同维度空间的语言模型之间中使用。本文使用UMAP来减少文档嵌入的维度。
  • 然后,降低维度的嵌入会被用HDBSCAN来进行聚类。它是DBSCAN的扩展,能够通过将DBSCAN转换成层级的聚类算法,来找到不同密度的簇。HDBSCAN模型使用一个软聚类(soft-clustering)的方法,从而使得噪声被建模成离群值。这能够防止无关的文档被分配到任何一个簇中,并提升主题的表示。

3.主题表示

  • 对每个主题,我们想知道,基于它在簇内的词的分布与其他的不同,怎么得到一个主题。
  • TF-IDF是一个表示一个文档中的一个词的重要度的方法,我们修改它,这样它就能够表示一个术语(term)对一个主题的重要性。
  • 经典的TF-IDF过程结合了两个统计量,词频和逆文档频:
    W t , d = t f t , d ⋅ l o g ( N d f t ) W_{t,d}=tf_{t,d}\cdot log(\frac{N}{df_{t}}) Wt,d=tft,dlog(dftN)
    逆文档频度量了一个词提供给一篇文档的信息,它的计算是 语料库中的总的文档数 N N N 除以 包含词 t t t 的总的文档数。
  • 我们将这一过程迁移到文档的簇中。首先,我们一个簇中的所有文档作为一个单一的文档,通过简单得将文档进行拼接。之后,TF-IDF被调整通过将文档转换成簇,来得到这一表示。
    W t , c = t f t , c ⋅ l o g ( 1 + A t f t ) W_{t,c}=tf_{t,c}\cdot log(1+\frac{A}{tf_{t}}) Wt,c=tft,clog(1+tftA)
    逆文档频被转换成逆类频,被用来度量一个词提供了多少信息给一个类别。它的计算是每个类别的平均词数 A A A ,除以词 t t t 在所有类别中的数目。为了只输出正值,我们增加了一在对数运算内。
  • 这样一来,这个基于类别的TF-IDF过程就建模了词在每个簇中的重要性,这使得我们能够产生每个簇的 主题词的分布。
  • 最后,通过迭代得合并最不普遍的话题的 c-TF-IDF 表示,我们可以将主题的数量减少到一个使用者特定的值。

4.动态主题建模

  • 传统的主题建模技术本质上是静态的,并且不允许序列性组织的文档来被建模。动态主题建模技术,作为LDA的扩展,它克服了这个缺点,通过建模主题如何随着时间进行演化。
  • 在BERTopic中,我们假设主题暂时的性质,并不影响全局的主题的产生。相同的主题可能在不同的时间出现,虽然很可能表示的不一样。BERTopic首次产生了一个主题的全局表示,不考虑它们的时序属性,在产生局部表示之前。
  • BERTopic首次被应用于整个语料库上,仿佛数据没有时序方面,以创建一个主题的全局表示。之后,我们能够创建一个每个主题的局部表示,通过简单得将时间步长 i i i 的词频和之前预先计算好的全局 IDF值进行相乘。
    W t , c , i = t f t , c , i ⋅ l o g ( 1 + A t f t ) W_{t,c,i}=tf_{t,c,i}\cdot log(1+\frac{A}{tf_{t}}) Wt,c,i=tft,c,ilog(1+tftA)

平滑

  • 对于每个主题和时间步长,c-TF-IDF向量被归一化,通过将向量除以L1范数。当比较向量时,这个归一化的过程防止文档大小造成的不均衡。
  • 对每个在时间步长 t t t的主题和表示,我们简单得算得在步长 t t t 和步长 t − 1 t-1 t1 的平均。

5.实验设置

评估

  • 主题一致性(topic coherence),采用标准化的逐点互信息(NPMI),这项一致性指标的公平性能已经能够赶得上人类的判断,取值范围[-1,1]。
  • 主题多样性(topic diversity),通过所有主题的唯一词的百分比进行定义,取值范围[0,1],0表示主题冗余,1表示更加多样的主题。

6.结果

性能

在这里插入图片描述

语言模型

在这里插入图片描述

动态主题建模

在这里插入图片描述

运行时间在这里插入图片描述

7.讨论

优势

  • 由于无论使用什么语言模型,BERTopic都可以保持竞争力,所以它的性能还有可能随着语言模型领域的新的发展而提升。
  • 通过将文档嵌入和主题表示两个过程分开,使得模型在使用和微调时更具有灵活性。

弱势

  • BERTopic假设每篇文档只包含一个单一主题,而事实可能包含多个主题。
  • 3
    点赞
  • 42
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
特征提取(FeatureExtraction)在NLP项目中可能包含以下子: 1. 词袋模型(Bag-of-Words Model Class):将文本表示为词汇表中每个词的出现频率或计数。可以使用不同的计数方法,例如二进制计数、词频(Term Frequency)、逆文档频率(Inverse Document Frequency)等。 2. TF-IDF(Term Frequency-Inverse Document Frequency Class):将文本表示为每个词的TF-IDF值,该值考虑了词频和逆文档频率。TF-IDF可以用于衡量词语在文本中的重要程度。 3. 词嵌入(Word Embedding Class):将文本中的词语映射为低维度的实数向量,以捕捉词语之间的语义相似性。常见的词嵌入方法包括Word2Vec、GloVe和FastText等。 4. N-gram模型(N-gram Model Class):将文本表示为连续的n个词语序列。N-gram模型可以捕捉到n个连续词语之间的关系,常用于语言建模和文本分等任务。 5. 文本统计特征(Text Statistical Features Class):提取文本的统计特征,例如句子长度、平均词长、标点符号个数等。这些特征可以用于文本分和情感分析等任务。 6. 句法特征(Syntactic Features Class):提取文本中的句法特征,例如词性标签、依存关系等。这些特征可以帮助理解句子结构和语法信息。 7. 主题模型(Topic Modeling Class):根据文本中的词语分布,推断文档的主题分布。主题模型可以用于文本聚类、文本摘要和推荐系统等任务。 8. 神经网络特征提取(Neural Network Feature Extraction Class):使用预训练的神经网络模型(如CNN、RNN或Transformer)从文本中提取高级语义特征。这些特征可以用于各种下游NLP任务。 9. 图特征提取(Graph Feature Extraction Class):将文本表示为图结构,并提取图结构中的节点和边的特征。这些特征可以用于基于图的文本分和关系抽取等任务。 10. 基于知识图谱的特征提取(Knowledge Graph-based Feature Extraction Class):利用外部知识图谱,将文本中的实体映射到知识图谱中的概念,并提取与之相关的特征。这些特征可以用于实体识别、关系抽取和问答系统等任务。 以上是特征提取可能包含的一些子,具体在项目中的使用与需求相关,你可以根据具体任务的要求选择适合的子进行特征提取。
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值