本发明属于深度学习、自然语言处理、数据挖掘、文本分析,尤其涉及一种结合btm和bi_lstm模型的主题建模和文本预测方法。
背景技术:
1、主题模型(topic model)是一种统计模型,用于发现文档集合中的抽象主题。它有无监督、半监督和有监督模型三种分类,主要用于自然语言处理领域。主题模型可以从大量的文本数据中发掘出潜在的语义结构,从而更好地理解文本内容,这有助于文档分类、聚类和信息检索。相比于半监督和有监督的主题模型,无监督的主题模型无需标注数据,具有灵活性、探索性和广泛适用性的优势,十分适用于数据探索和初步分析。
2、传统的无监督主题模型方法主要分为概率生成模型(probabilistic generativemodels)和确定性模型(deterministic models)等方法,主要区别在于它们的建模方式。概率生成模型基于概率论,假设数据是由潜在的随机过程生成的。这类模型通常定义一个生成过程,描述如何从潜在的变量产生观测数据。典型的隐含狄利克雷分布(latentdirichlet allocation)和概率潜在语义分析(probabilistic latent semanticanalysis)就是概率生成模型。如,北京理工大学团队于2022年提出了一种基于条件扩散概率生成模型的异常检测方法。通过预处理历史时序数据,他们构建了离线条件扩散概率生成模型,并利用该模型进行实时异常检测,减少迭代次数,实现更好的异常检测效果。确定性模型不依赖于概率框架,而是通过直接的数学函数或规则来描述数据之间的关系。这类模型通常是解析的,不涉及随机性。如非负矩阵分解(non-negative matrixfactorization)是一种用于文本数据降维的技术,它将文档-单词矩阵分解为两个非负矩阵的乘积。其中,一个矩阵表示文档的主题分布,另一个矩阵表示主题的单词分布。nmf通过迭代优化算法来寻找这两个矩阵。相比于确定性模型,概率生成模型具有良好的理论基础,能够处理复杂的分布,并且可以生成新的数据实例。在处理具有不确定性的数据时,概率生成模型能够提供一种自然的方式来描述和推理不确定性。
3、但是,无论是确定性模型还是概率生成模型都是无监督学习方法,它们都是通过分析文本数据来揭示文档中的主题结构,均忽略了文本之外的其他相关信息,包括文档的标签、分类、评分、发布时间、地理位置等信息。例如,在一个社交媒体评论分析任务中,伴随评论发布的评分是一个重要的上下文信息,高评分文档倾向于正面情感,低评分文档倾向于负面情感,这可以帮助模型更准确地识别和分析评论的主题。但无监督学习方法只能分析评论文本信息,忽略了评分等文本之外的相关信息。虽然有监督的主题模型可以利用标签数据提升模型精度,但需要大量的标注数据,这在实际应用中可能难以满足。另外,由于深度学习模型在处理文本数据时面临缺乏解释性、处理长距离依赖关系困难性、层次化特征提取挑战性以及数据稀疏性等问题,难以直接从原始文本中有效地提取出高层次的结构化信息,如文档的主题结构。因此,本发明选择将无监督主题模型与有监督的深度模型结合起来,以弥补单一模型的不足。本发明将无监督主题模型学习得到的主题信息作为先验知识,帮助有监督的深度学习模型更快地收敛,减少对大量标注数据的依赖。该混合模型增强了整体的主题建模效果。同时,利用由主题模型分析出的主题词分布还可以提升深度学习模型的文本预测精度。
4、深度学习模型可分为:1)前馈神经网络(feedforward neural networks),指一种信息单向传递的神经网络结构。它通过逐层传递的方式,将输入信息转化为输出结果。这种网络结构简单,易于实现,被广泛应用于图像识别、语音识别等领域。在文本预测方面,前馈神经网络可以用于文本分类任务,如情感分析、主题分类等。通过将文本数据转换为向量表示,然后输入到前馈神经网络中,模型可以学习到文本数据中的复杂特征,并输出预测结果。如,华南农业大学数学与信息学院和国家知识产权局专利局专利审查协作广东中心于2022年提出了融合lstm与逻辑回归的中文专利关键词抽取。该发明构建了一种基于lstm和逻辑回归模型的新方法来提取中文专利的关键词。实验结果表明,该方法在所有关键词、低频关键词、长尾关键词、低频长尾关键词的抽取准确率比其他方法分别提高了5%、24%、11%和26%。2)生成模型(generative models),指一类能够生成新数据实例的概率模型。与判别模型不同,生成模型不仅能够对数据进行分类,还能够生成新的数据。其中,最著名的生成模型当属变分自编码器(variational autoencoder,vae)和生成对抗网络(generative adversarial network,gan)。在文本预测方面,生成模型可以用于文本生成任务,如自动写作、诗歌生成等。通过学习大量的文本数据,生成模型可以学习到文本的潜在分布并根据给定的部分文本预测接下来的内容。但是,与前馈神经网络相比,生成模型在文本预测上存在一些不足。生成模型需要学习数据的高维潜在分布,导致其需要更多的数据和计算资源。因此,它的训练过程通常更加复杂和耗时。其次,生成模型在生成文本时可能面临模式坍塌的问题,导致生成的文本缺乏多样性和创造性。此外,生成模型在处理长文本序列时可能会遇到困难。由于生成模型需要保持对整个序列的分布建模,这在计算上是非常具有挑战性的。3)注意力机制(attention mechanisms),指一种允许模型根据上下文信息动态关注重要部分的机制。它的核心思想是,对于输入序列中的每个元素,模型都会根据当前上下文为其分配一个权重,以表示其在当前任务中的重要性。这样,模型就能够更加灵活地处理不同长度的输入序列,提高模型的泛化能力。在文本预测方面,注意力机制可以用于机器翻译任务。通过动态关注源语言和目标语言中的重要部分,提高翻译的准确性。但是,与前馈神经网络相比,注意力机制在文本预测方面也存在明显的劣势。首先,注意力机制的引入增加了模型的计算负担。它需要在每个时间步计算和更新注意力权重,这对于长序列尤其耗时。其次,虽然注意力机制提高了模型对上下文信息的捕捉能力,但这也使得模型变得更加复杂,导致模型的解释性不如前馈神经网络那样直观。此外,注意力机制可能会使得模型对训练数据中的噪声更加敏感,有时会导致模型在预测时过分关注不重要的信息,从而影响预测的准确性。综上所述,与前馈神经网络相比,生成模型在文本预测上的不足主要体现在训练难度大、生成文本的多样性和创造性有限,以及处理长文本序列时的困难。注意力机制在文本预测上的不足包括更高的计算复杂度、较低的模型解释性,以及对数据噪声的敏感性。
5、双向长短期记忆网络(bidirectional long short-term memory,bi_lstm)是前馈神经网络的一种特殊结构,它通过独特的双向结构和强大的序列建模能力,在处理需要深入理解上下文和长期依赖关系的任务时发挥着重要作用。然而,bi_lstm在序列任务中对重要信息的关注能力存在不足。为了解决这个问题,本发明设计了一个主题注意力层(attention layers),该层将无监督的btm(biterm topic model)和有监督的bi_lstm集成,以实现相互补充。具体而言,主题注意力层通过注意力机制,将bi_lstm学习到的序列信息和btm提取出的主题信息融合在一起。这种融合使得模型在处理文本时不仅能够考虑到词语的序列依赖关系,还能考虑到文本中的主题分布。同时,注意力机制允许模型根据不同的任务和上下文动态调整权重,这意味着模型可以在不同的情境下自动选择最相关的信息,从而提高模型的泛化能力和性能。通过这种方式,主题注意力层使bi_lstm和btm以一种相互补充的方式工作。这不仅增强了模型对文本序列的建模能力,还提高了对文本主题的识别能力。综上,最终文档的隐藏状态既包括顺序信息,又包括主题信息,提升了模型整体的主题建模效果以及文本预测精度。
6、在文本数据分析领域,传统的无监督主题建模方法主要依赖于文本内容本身,而忽略了文本以外的数据,例如标签、分类等信息。这限制了模型在实际应用中的准确性和泛化能力,可能无法准确识别出文本中的主题和变量,导致对后续的实证分析产生影响。此外,这些模型生成的主题可能过于抽象,难以解释,使得用户难以理解每个主题的具体含义。有监督的主题模型虽然可以利用标签数据提高建模效果,但其依赖于大量的标注数据,这在实际应用中可能难以满足。过多学习标注数据可能导致模型过拟合,泛化能力受限。
7、另一方面,虽然传统的有监督深度学习模型在预测分析时能够利用标签和词向量数据,但它们在文本数据的潜在主题结构建模方面存在一定的局限性。首先,这些模型在捕捉远距离依赖上仍面临困难,难以有效整合文档中远距离出现的相关词语的信息,导致对文档整体主题的理解不足。其次,它们通常将文本作为词袋模型处理,忽略了文本中更高层次的结构,如段落、句子或主题,导致丢失了重要的语义信息。第三,这些模型主要关注局部的序列依赖关系,难以捕捉到跨越多个句子的主题一致性。
技术实现思路
1、为解决上述问题,本发明提供一种结合btm和bi_lstm模型的主题建模和文本预测方法,既能够深入理解文本上下文,又能够有效利用主题分布数据,大大提高主题建模的准确性和文本预测的精度。
2、一种结合btm和bi_lstm模型的主题建模和文本预测方法,包括以下步骤:
3、s1:采用btm模型获取待处理文档d包含的各个主题词概率分布,并采用word2vec模型将各主题词概率分布分别转换为主题词嵌入向量,由主题词嵌入向量形成主题词嵌入矩阵v;
4、s2:采用word2vec模型直接将待处理文档d转换为词嵌入序列,由词嵌入序列形成词嵌入矩阵j;
5、s3:采用bi_lstm模型对词嵌入矩阵j中的各词嵌入序列进行编码,得到编码后的文档表示h(d)=[h1,h2,...,ht,…,hm],其中,ht为bi_lstm模型中第t个时间步的文档隐藏状态,其中,ht=[ht(e1),ht(e2),…,ht(en),…,ht(en)],ht(en)为词嵌入矩阵j中的第n个词嵌入序列en在第t个时间步的编码表示,m为时间步的总数;
6、s4:基于注意力机制获取主题词嵌入矩阵v中每个主题在各时间步下的注意力权重:
7、at,k=softmax([tanh(wtht+bt)]t·vk)
8、其中,at,k为第k个主题在第t个时间步的注意力权重,vk为第k个主题的主题词嵌入向量,wt为ht对应的权重,bt为ht对应的偏置;k=1,2,…,k,k为主题总数;
9、s5:将第t个时间步下所有主题对应的at,k的和值作为待处理文档d在第t个时间步下的主题相关性αt;
10、s6:将所有时间步的主题相关性αt与ht对应相乘并求和,得到待处理文档d的最终文档表示s;
11、s7:将最终文档表示s输入训练好的mlp模型进行文本预测或者输入训练好的btm模型进行主题建模。
12、进一步地,步骤s1中采用btm模型获取待处理文档d包含的各个主题词概率分布的方法具体为:
13、s11:从待处理文档d中提取所有不重复的词作为词对,所有词对构成btm模型的训练数据集合b;
14、s12:从dirichlet分布中获取待处理文档d中每个主题的词概率分布φz和每个主题的概率分布θ;其中,φz表示主题z中每个单词出现的概率;
15、s13:在处理训练数据集合b中的每个词对biterm(wi,wj)时,首先从主题的概率分布θ中为该biterm(wi,wj)采样一个主题z,表示为z~multi(θ);然后,从词概率分布φz中分别采样得到wi和wj,表示为wi,wj~mulit(φz),其中,wi和wj分别代表词对biterm中的两个词,mulit是多项分布函数的缩写,每个biterm(wi,wj)的联合概率p(b)的计算方法如下:
16、
17、其中,θz表示主题z在整个语料库中出现的概率,φi|z为单词wi在主题z中的条件概率,φj|z为单词wj在主题z中的条件概率;b为词对biterm(wi,wj)的简写;
18、s14:通过对所有词对biterm和所有可能的主题进行求和得到训练数据集合b的似然函数p(b):
19、
20、s15:获取各词对的条件概率p(z|z-b,b,α,β)如下:
21、
22、其中,z-b表示除了词对biterm(wi,wj)之外的所有词对biterm的主题赋值,nz为词对biterm(wi,wj)被分配给主题z的次数,nw|z是语料库中的任意一个单词w被分配给主题z的次数,是biterm(wi,wj)中的词wi被分配到主题z的次数,是biterm(wi,wj)中的词wj被分配到主题z的次数;q表示词表大小;α和β分别为概率分布θ和词概率分布φz的狄利克雷先验;
23、s16:获取任一主题词向量的分布如下:
24、
25、其中,φw|z为语料库中的任意一个单词w在主题z中的条件概率。
26、进一步地,步骤s1中采用word2vec模型将各主题词概率分布分别转换为主题词嵌入向量v(ttopic)具体为:
27、
28、其中,l为主题ttopic中的词的总数,v(wl)为词wl输入word2vec模型后输出的向量表示,p(wl|ttopic)为主题ttopic中的词wl对应的权重。
29、进一步地,文档表示h(d)=[h1,h2,...,ht,…,hm]的获取方法为:
30、将词嵌入矩阵j中的任意一个词嵌入序列en代入如下bi_lstm模型进行m次迭代,各次迭代后输出的结果即为编码结果ht(en):
31、ft=σ(wf·[ht-1,en]+bf)
32、it=σ(wi·[ht-1,en]+bi)
33、ot=σ(wo·[ht-1,en]+bo)
34、
35、其中,ft为第t个时间步的遗忘门输出,it为第t个时间步的输入门输出,ot为第t个时间步的输出门输出,ct为第t个时间步的细胞状态更新,wf为遗忘门对应的权重,bf为遗忘门对应的偏置向量,wi为输入门对应的权重,bi为输入门对应的偏置向量,wo为输出门对应的权重,bo为输出门对应的偏置向量,wc为细胞状态更新对应的权重,bc为细胞状态更新对应的偏置向量,ct-1为第t-1个时间步的细胞状态更新,ht-1为词嵌入序列en在第t-1个时间步的隐藏状态,ht为词嵌入序列en在第t个时间步的隐藏状态,σ是sigmoid函数,tanh是双曲正切函数,°表示逐元素乘法;
36、将各词嵌入序列en编码结果ht(en)进行组合和拼接,得到文档表示h(d)=[h1,h2,...,ht,…,hm]。
37、进一步地,训练好的mlp模型的输入层接收最终文档表示s,其中,如果预测任务是二分类或者多分类,则mlp模型的输出层使用sigmoid函数将输出转换为概率分布;如果预测任务是回归,则mlp模型的输出层使用线性激活函数输出预测值。
38、进一步地,训练好的btm模型的输入层接收最终文档表示s,输出层输出主题建模的结果。
39、有益效果:
40、1、本发明提供一种结合btm和bi_lstm模型的主题建模和文本预测方法,利用主题注意力模型融合了bi_lstm和btm模型,通过主题注意力层的注意力机制,将bi_lstm学习到的序列信息和btm提取出的主题信息融合在一起,根据当前的输入信息和任务目标,自动调整主题嵌入(at,k,αt)和bi_lstm隐藏状态(ht)之间的注意力权重,从而选择最相关的信息进行融合;这种动态权重的分配使得模型在处理文本时不仅能够考虑到词语的序列依赖关系,还能考虑到文本中的主题分布,克服了单一的btm模型在理解文本深层含义和长期依赖关系方面的局限性和单一bi_lstm模型在捕捉文本中的主题结构方面的局限性;由此可见,本发明能够从文本中学习到潜在的主题分布,有助于更好地理解文档的整体内容和语义,增强对文本数据的潜在主题结构建模能力,捕捉到文本中更复杂和细微的主题结构;无论是需要进行文档分类、情感分析、信息检索,还是需要对大规模文本数据进行主题挖掘和趋势分析,本发明都能够提供更加准确和全面的结果。
41、2、本发明提供一种结合btm和bi_lstm模型的主题建模和文本预测方法,利用btm生成的主题词分布生成主题词嵌入向量,将每个主题下的词分布视为一个高维空间中的向量,其中向量的每个维度对应于词库中的一个词,而该维度的值则对应于该词在主题中的权重;通过这种方式,为每个主题生成一个词嵌入向量,主题词嵌入向量为文本数据提供了一个低维的、稠密的向量表示,不仅有助于更好地理解和分析文本数据,还可以提高文本数据的处理效率。
42、3、本发明提供一种结合btm和bi_lstm模型的主题建模和文本预测方法,无需大量人工标注数据,提高文本分析的效率。
1.一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,包括以下步骤:
2.如权利要求1所述的一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,步骤s1中采用btm模型获取待处理文档d包含的各个主题词概率分布的方法具体为:
3.如权利要求1所述的一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,步骤s1中采用word2vec模型将各主题词概率分布分别转换为主题词嵌入向量v(ttopic)具体为:
4.如权利要求1所述的一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,文档表示h(d)=[h1,h2,...,ht,…,hm]的获取方法为:
5.如权利要求1所述的一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,训练好的mlp模型的输入层接收最终文档表示s,其中,如果预测任务是二分类或者多分类,则mlp模型的输出层使用sigmoid函数将输出转换为概率分布;如果预测任务是回归,则mlp模型的输出层使用线性激活函数输出预测值。
6.如权利要求1所述的一种结合btm和bi_lstm模型的主题建模和文本预测方法,其特征在于,训练好的btm模型的输入层接收最终文档表示s,输出层输出主题建模的结果。