APP下载

基于深度学习和主题模型的短文本分类方法

2022-08-04王青松聂振业周芳晔

关键词:知识库语义向量

王青松,聂振业,周芳晔

(辽宁大学 信息学院,辽宁 沈阳 110036)

0 引言

近年来,随着社交网络的飞速发展,例如微博和电影评论等类型的短文本数量在不断攀升.与传统的长文本相比,基于社交网络的短文本长度较短更易处理.因短文本实时性强、格式不标准等特点使其成为研究热点.但短文本在自然语言处理领域中仍然是一个难点问题.传统的机器学习分类算法如朴素贝叶斯、支持向量机在解决短文本分类问题仍然存在不足.

随着技术的发展,深度学习也应用到自然语言处理中,特别是应用到文本分类.文献[4]通过使用Word2vec将文本转化为词向量放入LSTM(长短期记忆人工神经网络)训练获取句子的语义信息和句法结构进行分类,但是没有考虑到特征词的重要性.文献[5]通过引用Attention机制将深度学习推到高潮,选用Self Attention捕获同一个句子中单词之间的一些句法特征或者语义特征,从而更容易获取句子中长距离的相互依赖.以上方法并没有考虑到短文本特征的稀疏性.

现在语义增强应用是通过知识库对句子进行扩增.文献[6]通过KBs(知识库)中存在的isA、isPropertyOf等重要语义关系,这些信息对理解短文本有很多帮助.文献[7]将深度神经网络和知识库的先验知识整合到一起,充分对短文本进行理解,提高了短文本分类的准确性.知识库带来了新的先验知识,也带来了很多无关的知识向量,为短文本分类增加了负担.

本文针对上述短文本分类的算法不足,综合考虑词频、语义和先验知识等特征,利用BTM主题模型、深度学习和知识库多维特征进行融合,从而准确地将多方面特征联系在一起,通过词向量相似度筛选出相似的文本特征,通过全连接网络操作结合BTM主题模型的主题概率分布,最终得到更加准确的分类结果.

1 各个模块的计算

1.1 局部特征计算

局部特征计算是为了提取短文本语义的计算,在众多的分类算法中,有很多算法只是考虑词频和关键词出现的概率,并没考虑到短文本语义的影响,为了提高本模型的分类准确性,本文选用文献[8]深度学习中的双向长短记忆网络(BiLSTM).

(1)

(2)

H=(h1,h2,…,hn)

(3)

然后,使用一种新型的注意力机制,这种机制来源于文献[9].使用这种注意力机制的目的在于学习特征词和短文本句子之间的依赖性并且捕获短文本的结构.给定一个n个查询向量的矩阵Q∈Rn×2u,键为K∈Rn×2u,值为V∈Rn×2u,此注意力机制的计算公式为

(4)

1.2 外部特征计算

外部特征计算也叫知识编码,本模块的目标是从CN-DBpedia知识库[10]中检索相关知识来扩充短文本内容,从CN-DBpedia知识库等外部资源获取的先验知识可以提供更丰富的信息,帮助确定给定的短文本的类标签.本文以isA关系为例,isPropertyof等其他语义关系也可以以类似的方式应用.具体来说,给出一个简短的文本s,希望找到一个与它相关的概念集C.通过2个主要步骤实现这个目标:实体链接和概念化.实体链接就是短文本中的某些字符映射到知识库中对应的实体上.概念化就是根据当前上下文动态识别出实体对应的上位概念.文献[11]的实体链接是自然语言处理中的一项重要任务,用于识别短文中提到的实体.文献[12]通过利用现有的实体链接解决方案,获得了一个包含短文本分词的实体集E.然后,对于每个实体e∈E,从已有的CN-DBpedia知识库中获取概念信息,举个例子:林丹和刘翔出生于中国.通过实体链接得到实体集E={林丹,刘翔,中国},然后对实体刘翔进行概念化,并从CN-DBpedia中获得其概念setC={中国人,运动员,田径世锦赛冠军,110 m栏}等.

1.3 全局特征计算

全局特征计算称作主题特征计算,是针对文档进行的,主要是通过使用BTM主题模型进行计算的.LDA主题模型也可以进行全局特征计算,但是考虑到短文本分类和文本稀疏的原因,BTM主题模型更适用于本文的模型计算.BTM模型的核心思想是在整个语料库中使用biterm聚合模式,在短文本上学习的模型,此模式解决了单个文档的文本稀疏问题[13].

全局特征计算的过程如公式(5)~(7)所示:

(5)

(6)

(7)

公式(5)~(7)由吉布斯(Gibbs)抽样推理得出[14],其中α和β是给定的先验数,nz是主题z的biterm b出现的次数,nw|z是单词w分配给主题z的次数,一旦一个 biterm b被分配给主题z,关键词wi,wj将同时被分配给主题.|B|代表的是biterm模式的总数量,对公式(5)~(7)进行Gibbs抽样,更新每个词对应的topic,重复操作,直到Gibbs sampling 收敛得到完整的模型.

算法1BTM吉布斯采样算法

输入文本向量化,偏置b1、b2、b3,超参数,主题模型参数1,主题模型参数2,主题数量,迭代次数,δ,α,β,K,Niter;

输出分类概率值;

1 BEGIN

2 FOR iter=1 toNiter//迭代器进行试验迭代

3 FORi=1 tondo:

5 UPDATEW1//更新卷积核

7 UPDATEW2//更新卷积核

8 Wight(λi,ηi) //相似度计算

10pi=Softmax(Ak) //得到语义模型概率

11 UPDATEnz,nw|z//更新主题模型参数

13qi=P(z|Zb,α,β,φw|z,θz) //得到主题模型概率

14Pi=δpi+(1-δ)qi//得到最终概率分布

15 END FOR

16 END FOR

17 END

2 基于语义和主题概率分布的短文本分类模型

2.1 语义模型

如图1所示,语义模型的部分为深度学习提取短文本语义特征词,同时短文本经过文本处理,停用词去除和使用Jieba分词,将关键词输入到知识库中进行文本扩充.扩充得到的实体或者属性与LSTM模型训练完的语义特征向量进行相似度计算,在知识库扩充的时候产生大量的噪音词会影响模型的准确性,所以将扩充的知识向量与通过LSTM训练得到的特征向量进行相似度计算,留下相似度较高和特征向量进行拼接.

图1 LABTM语义模型部分

为了减少KBs生成的一些不良、不当的歧义概念,作者提出用公式(8)对知识向量与语义特征向量进行相似度计算.

(8)

式中的λi表示第i个特征词对短文本的重视程度.得到的更大的λi意味着第i个特征词在语义上更接近短文本特征.f(·)是一个非线性激活函数如tanh函数,Softmax是用来标准每个特征的注意权重.W1∈Rda×(2u+d)是一个权重矩阵,w1∈Rda是一个权重向量,da是一个参数,b1是一个偏置.q为短文本经过LSTM训练之后得到的短文本语义向量.

通过公式(9)将KBs得到的概念转化成概念向量:

(9)

式中ηj是KBs得到的概念词向量表示形式.其中mj表示每个KBs得到的概念词向量,w2∈Rda是权重向量,其中da是参数,W2∈Rdb×d是一个权重矩阵,b2是偏置.

值得注意的是通过卷积层进行卷积之后,2个特征词向量在同一个维度.接下来要对2个向量进行相似度计算,如公式(10)所示:

(10)

式中向量ηj和向量λi得到的wight越高说明2个词向量的相似度越高,在本文算法中挑选相似度高的作为拼接对象,不设置特殊的阈值作为参考.如果0≤wight≤1,表明在正常范围内,否则说明向量ηj和向量λi没有任何相似关系.

然后,得到最高相似度的向量进行向量拼接,如公式(11)所示:

(11)

2.2 模型总架构

图2是引入BTM主题概率模型之后的模型总架构.当语义向量进入到最终的输出层进行Softmax归一化之后会得到一个分类比例,如图3所示.

图2 LABTM模型总架构

图3 分类结果图

因为语义特征向量与知识向量进行相似度计算不能得到最终的分类结果,故还需要通过带有BTM主题模型的分类池进行分类,最终才能得到每个主题的概率分布.接下来进行最后一步计算,如公式(12)所示:

Pi=δpi+(1-δ)qi

(12)

式中pi、qi分别是通过语义模型得到的分类类型概率和主题模型分类得到的类型概率.Pi为最终的分类类型概率.最后通过统计得出Max(Pi)为短文本的类型.δ为调节权重的系数,取值为δ∈[0,1].设置系数δ主要是因为受不同模型结果的影响会产生一系列偏差,若主题模型有损,语义模型赋予强系数.设置系数δ有很多方式,最简单是通过手动调节的方式,把δ当作超参数来获得更加准确的分类效果.

算法2LABTM模型分类算法

输入 短文本向量ηj,偏置b1、b3,超参数δ

输出 分类概率值p1~n

1.BEGIN

2.FOR iter=1 toNiter//迭代器进行实验迭代

4.UPDATEW//更新卷积核

5.END FOR

7.pi=Softmax(ak)//得到语义模型概率pi

8.qi=P(z|Z-b,α,β)//得到主题模型概率qi

9.Pi=δpi+(1-δ)qi//得到最终概率分布

10.END

3 实验过程结果与分析

3.1 实验环境与任务

实验使用Python语言3.7版本,实现基于深度学习和主题模型的短文本分类模型,在Pytorch运行环境下,采用Jieba组件进行文本分词,使用word2vec模型训练词向量.在中国微博情感分析数据集[15]、产品评价数据集[16]、中文新闻标题数据集[17]和通过借鉴Sogou新闻数据集建立的短文本新闻数据集上进行文本分类实验.4个数据集都包含标签,如表1所示.

表1 实验数据集的细节

3.2 实验参数设置

对于所有的模型,使用Adam优化算法进行学习,学习率为0.01.批量大小设置为64.训练正向传递和反向传递设置为20回.LABTM模型在搜狗新闻数据集上预先训练的50维度概念词向量,如果一个词是未知的,将随机初始化它的概念词向量.LABTM模型50维度的概念词向量,这些概念词向量也随机初始化.使用宽度为[2,3,4]大小为50层的1D CNN滤波一共150个.

超参数的设置可基于验证集进行估计,并用于最终测试集:u=64,da=70,db=35.为了不给算法增加负担和经济损失,本文没有采用自动学习,而是通过手动调节参数δ,在接下来实验中选取若干代表性值,这些值不影响提高模型分类准确性.

由表2可知超参数δ的值不同,短文本分类的准确率也不同,所以在下面的实验中根据表2来设置超系数δ,以便得到更高的文本分类准确率.

表2 超参数δ对于文本准确率的影响

3.3 结果对比分析

将提出的LABTM模型与以下方法进行对比:

•TextCNN[18]:该模型是文本分类的经典基准.它使用基于预训练单词嵌入的卷积神经网络(CNN).

•TextRNN[19]:该方法使用递归卷积神经网络进行文本分类.它应用循环神经网络(RNN)捕捉上下文信息,并用CNN去捕捉短文本关键词.

•TextRNN_Att[20]:是TextRNN的强化方法,增加注意力机制来提高分类水平.

•BiLSTM-MP[21]:该模型是为序列短文本分类而提出的.通过使用最大池来获得句子表示,然后使用多层感知器来输出分类结果.

•KPCNN[22]:该模型是短文本分类的最新方法.它利用CNN根据短文本和概念的单词和字符级别信息进行分类.

由图4可知,LABTM模型与5个模型相比,各方面不一定都优于它们,比如在中国微博情感分析数据库中就不是让人很满意.可能的原因是微博存在一些网络语或者表情等因素造成的准确性不是很强,但是整体的分类准确率高于传统没有使用知识库和主题模型的深度神经网络,包括TextCNN、TextRNN、TextRNN_Att、BiLSTM-MP和KPCNN.主要原因是LABTM模型借助于KBs丰富了短文本信息,并通过全局主题分布,以及深度神经网络提取语义特征,这对短文本分类有很大的贡献.与传统的神经网络相比,LABTM模型更像是一个人,“他”有内在的能力来处理基于观察(即神经网络和主题模型)以及自身现有的知识.此外LABTM模型也比BiLSTM-MP模型表现得好,因为LABTM模型在深度学习的模型中加入了注意力机制,能够更关注特征词的重要性.最后通过在不同数据集上取得不同值得到更高效的分类准确度.综上所述,LABTM模型在短文本分类中得到了好的效果.

图4 不同数据集上比较模型的准确性

4 结束语

本文研究短文本分类,综合考虑了局部和全局以及外部知识的特征.分别从主题概率分布、语义和外部知识进行分类.利用了BTM主题模型、深度学习、知识库知识增益等方法,提高了分类的准确性.实验结果表明,相比传统单一方法进行分类,本文的综合性分类方法准确性更高些.在实验中还发现知识库的实体概念缺乏,下一步将研究知识库的语义消歧和多方面增加注意力机制,并补充知识库的不完全性,以及对于一些网络语言和聊天工具中的微表情进行向量转化,通过分类使其模型得到更高的准确率.

猜你喜欢

知识库语义向量
真实场景水下语义分割方法及数据集
向量的分解
汉语近义词辨析知识库构建研究
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
汉语依凭介词的语义范畴
我国联合虚拟参考咨询系统知识库现状研究*
——基于与QuestionPoint的对比
位置与方向测试题