一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种政府采购品目层次分类模型的构建方法与流程

2022-02-20 20:20:49 来源:中国专利 TAG:


1.本发明涉及具有标签层级结构的文本分类方法领域,更具体地,涉及一种政府采购品目层次分类模型的构建方法。


背景技术:

2.随着信息化时代的来临,蓬勃发展的招投标行业迎来了全新的机遇和挑战。政府采购包括货物、工程和服务,采购人主体是各级国家机关、事业单位和团体组织。政府采购中,采购品目是一个非常有效的研究变量,它能从不同的维度和层面刻画各个类目的采购情况、项目预算和资金等情况,为采买决策提供一定的有效信息。同时采购品目种类繁多,不易区分,如果通过采购项目信息对合适的类目进行关联,则会为按层级检索带来便利。对采购品目进行层级管理,可以为采买负责人员节约大量的时间和精力,优化办公流程。因此,通过主流的自然语言处理技术,使用采购项目中的文本信息来预测对应的采购品目具有重大意义。它不仅能够填补品目信息,为后续的统计分析提供完整数据,还能简化政府采购人员的办公流程、提高办公效率。
3.在多标签分类问题中,将多标签分类问题转化为多个单标签二分类问题是常见的方法,但是当标签种类过多时会导致模型效果降低。所以对于多标签分类而言,主要有两种方式表示标签之间的关系。一种是将多标签展平,即全局化,所有标签都属于同一层级。一种是建立层次标签,即局部化,标签自顶向下存在层级关系。在大部分情况下,把标签展平是常用的方法,例如决策树和朴素贝叶斯方法,直接对最后一层标签进行预测。然而在数据量较大的情况下,将层次标签展平后会使得类别数目剧增,增加稀疏性,导致预测效果不佳。所以,充分利用文本的语义关系和标签之间的层级结构以及标签和文本的相关性是目前本领域技术人员需要解决的技术问题。
4.sun and lim在2001年提出了自顶向下的支持向量机svm分类法。venset al提出了clus-hmcl模型,基于决策树对层次标签进行预测。liu et al在2017年提出了解决标签类别极端不平衡的方法,使用动态最大池化、二元交叉熵损失和隐藏层来提高整体性能。wehrman提出的层次标签分类网络有效融合了标签局部化和标签总体化。通常来说,上层标签的种类较少,区分度较大,如果能够把从上层标签学习的信息运用到下层标签的分类,将会提高预测效率。所以在后续的研究中,人们致力于将层次标签之间的关联关系发挥到最好,大多引入了注意力机制来捕获文本的语义关系和标签之间的层级结构以及标签和文本的相关性。zichao yang提出了使用层次注意力来捕获词语之间的关联和句子之间的关联。irsan提出使用cnn(convolutional neural networks)网络构建顶层分类器,通过计算词向量的平均值和统计词频来结合词汇与语义,提高模型效果。kshimura提出了hft-cnn模型,以卷积神经网络cnn为基础分类器,构建标签层次体系,将上层标签的参数传递给下层标签,再进行微调,可以有效地利用上层标签和下层标签之间的相关性。s lai提出循环卷积神经网络rcnn模型,使用循环结构尽可能的学习上下文信息。以往的研究比较少考虑到文本和标签之间的关联,wehrmann等人构建了多输出的神经网络模型,用来优化层次标签
分类的全局和局部结构。该模型的每个层级都会有一个局部输出,并且有一个局部损失函数作用于对应的层次的梯度反向传播,全局输出则负责表示整个网络的累积结果,并在所有层级中进行梯度反向传播。基于此前的研究,wei huang提出了harnn模型,以自上而下的方式建模层级结构中不同层级之间的依赖关系,接着使用注意力机制来捕捉文本与层次结构之间的关系。母亦翔发明了一种基于获取层级分类器以及文本分类的方法及装置,该方法包括建立了层级分类器的层级类别结构;依据层级类别结构对训练样本进行标注;提取训练样本的特征信息;在各树干节点,通过分类器训练器利用相应树干节点的标注数据与训练样本的特征信息进行训练并获取相应树干节点的分类器模型,并与各树干节点相应的分类器模型形成具有层级类别结构的层级分类器。杨瀚等人发明了一种基于层级结构多标签体系的新闻文本分类模型的构建方法,该方法能够自适应确定各个词语的权重,增加了不同层级类别的置信度,降低了人工标注不准确造成的不利影响。


技术实现要素:

5.本发明提供一种政府采购品目层次分类模型的构建方法,该方法计算效率在合理范围内,简化政府采购人员的办公流程、提高办公效率。
6.为了达到上述技术效果,本发明的技术方案如下:
7.一种政府采购品目层次分类模型的构建方法,包括以下步骤:
8.s1:构建政府采购品目层次标签的树形结构,并对标签进行编码;
9.s2:对所述政府采购项目名称进行文本清洗和分词处理,获取分词后文本词向量,拼接所述词向量,得到词向量矩阵;
10.s3:设计普通注意力模型和层级注意力模型,将所述文本的编码表示和标签的编码表示分别带入所述普通注意力模型和所述层级注意力模型进行分类,得到局部分类结果和全局分类结果。
11.进一步地,所述步骤s2中,对政府采购项目名称进行文本清洗和分词处理,获取分词后文本词向量,包括以下步骤:
12.1)、将文本划分成合理的词语序列;
13.2)、对所述分词结果进行词嵌入和文本编码表示,将序列映射成一个固定长度的向量;所述向量能很好的表示该序列的特征;
14.3)、使用bert模型对所述分词结果进行词嵌入,bert以双向transformer编码器为基础,使用随机遮蔽词语法实现预训练的深度双向表示,并且通过训练百科中的语料,获取字符级别的词向量以及模型参数。
15.进一步地,所述步骤s3中,所述层级注意力模型具有三层结构:文档编码层,层次注意力循环网络层和混合预测层;所述文档编码层用嵌入层分别对文本和层次类别结构进行编码,接着使用bi-lstm模型或者bi-gru模型对文本的语义关系做进一步的增强;所述层次注意力循环网络层是通过自上而下的方式利用层次结构逐步对不同层次之间的依赖关系进行建模;在每个类别层级上,重复层次注意力记忆单元,捕捉文本和类别之间的关联。
16.进一步地,所述步骤s3中,用嵌入层分别对文本和层次类别结构进行编码,接着使用bi-lstm模型或者bi-gru模型对文本的语义关系做进一步的增强,包括以下步骤:
17.所述bi-lstm是正向lstm和反向lstm相结合;lstm学习和利用数据的序列依赖性,
通过控制输入门、遗忘门和输出门的输出,选择记忆和遗忘一些信息;bi-lstm学习更长的序列信息,还可以融合前后上下文的信息;
18.所述bi-gru的原理和所述bi-lstm的原理相同,使用方向相反的gru网络进行文本特征提取,再进行拼接;gru通过控制重置门和更新门的输出,选择记忆和遗忘某些信息;
19.通过所述bi-lstm或者所述bi-cru获得所述文本的语义增强矩阵,对每一层的标签进行嵌入,随机生成初始嵌入矩阵,然后将获得的所述语义增强矩阵和所述初始嵌入矩阵输入到所述层次注意力循环网络层。
20.进一步地,所述层次注意力记忆单元包含三个模块,分别是文本-标签注意力模块,分类预测模块和层级依赖模块;
21.所述文本-标签注意力模块用于捕捉文本和层次类别之间的相关性,并且获得层次类别标签与文本之间的关系表示和层次类别标签与文本之间的注意力矩阵;
22.所述分类预测模块用于整合原始文本的语义表示和融合了前一层次信息的文本类别表示,为每一层次生成统一的表示并进行类别预测;
23.所述层级依赖模块用于通过为每一层级都保留层次信息从而对不同层级进行依赖关系建模。
24.进一步地,对第h层的类别标签,不同的类别对预测结果有不同的贡献度,从而能够修正注意力矩阵:
25.对于层次类别结构的第h层,文本-标签注意力模块的输入为,全文本表示v,对应的层级表示sh,以及上一层级传递的权重参数w
h-1

[0026][0027][0028][0029][0030]
使用平均池化操作得到n个词语的平均嵌入使用平均池化操作得到n个词语的平均嵌入是在h层类别标签与文本之间的关系表示,是在h层类别标签与文本之间的注意力矩阵,是第h层的类别预测输出向量,由于根结点即第0层不包含任何信息,所以用元素1来初始化第0层的权重参数w0。
[0031]
进一步地,文本-标签注意力模块的目标是捕捉文本和层次类别之间的相关性,并且输出层次类别标签与文本之间的关系表示和层次类别标签与文本之间的注意力矩阵上一层级的权重参数将其与文本表示v进行点乘,得到:
[0032]vh
=w
h-1
.v
[0033]vh
融合了上一层级的层次信息的文本表示,因为在文本中的不同词语往往会表达不同的意义,所以对第h层标签,我们需要numh维度的向量来表示整个文本的语义关系,使用h层标签的嵌入矩阵sh来计算对应类别的注意力:
[0034][0035][0036]
是随机生成的权重矩阵,oh表示使用tanh函数激活后的vh。wih
表示第h层第i个类别的归一化后的文本注意力得分,向量中的每个元素表示对应位置的单词对第i个类别的贡献度;将注意力矩阵与文本表示vh相乘,得到将mh进行行平均得到
[0037][0038]
分类预测模块旨在整合原始文本的语义表示和融合了前一层次信息的文本类别表示,为每一层次生成统一的表示并进行类别预测,使用作为第h层的表示,是随机初始化的权重矩阵,是对应的误差向量,表示非线性激活函数;是权重矩阵,是对应的误差向量,σ是sigmoid函数。
[0039]
进一步地,层级依赖模块通过为每一层级都保留层次信息从而对不同层级进行依赖关系建模。对第h层的类别标签,不同的类别对预测结果有不同的贡献度,从而能够修正注意力矩阵:
[0040][0041][0042]
代表修正后的注意力矩阵,broadcast函数表示将向量按一定维度平铺。对进行行平均,得到了加权后的注意力向量对进行平铺,得到文本与第h层标签的关联权重矩阵wh:
[0043][0044][0044]
表示第i个词语和层次信息的关联权重。wh也将作为输入传入下一层级的注意力记忆单元;经过每一层的分类预测模块,可以得到对应的层次表示向量和预测概率向量对于层次标签分类来说,预测局部的标签和全局的标签都是重要的;构建了混合预测层,即使用局部和全局信息来进行最终的输出,将每一层的层次表示向量聚合,得到聚合,得到然后对a
l
进行行平均得到令pg表示全局预测的概率输出:
[0045][0046]
pg=σ(wm·ag
bm)
[0047]bg
和bm均为对应维度的误差向量。pg是一个连续型的向量,第i个位置的元素pg(i)=p(ci|x),表示属于标签集合中第i个标签的条件概率;整合局部预测和全局预测的条件概率,得到最终的预测输出pf:
[0048][0049]
α是一个参数,决定全局信息和局部信息的占比,可以根据实际预测情况进行调
整;经过了文档编码层,层次注意力循环网络层,混合预测层,得到最终的模型结构:
[0050]
定义损失函数为局部损失和全局损失之和,在模型的训练阶段,对每个文档,局部分类损失和全局分类损失的计算方式为:
[0051]
yg是包含层次结构内所有标签的二进制向量,是仅包含h层所有标签的二进制向量,yg和表示标签类别的真实值,ε(.,.)=yilog(p(yi)) (1

yi)log(1-p(yi))表示二元交叉熵函数,模型的优化目标为最小化全局损失和局部损失之和:
[0052][0053]
θ表示模型的全部参数,λ
θ
为正则化参数,使用adam优化算法进行的最小化运算。
[0054]
进一步地,所述普通注意力模型的构建过程是:
[0055]
d={w1,w2,

,wn}表示完成词嵌入后的文本:
[0056][0057][0058][0059]
考虑到词语对句子的影响程度是不一样的,增加了词语注意力机制,对每个词语进行注意力打分,得到注意力加权后的句向量:
[0060]
ui=tanh(w
ohi
bo)
[0061][0062][0063]
最终的预测向量为:
[0064]
p=softmax(wcs bc)
[0065]
使用样本对应的正确标签的负对数似然作为训练损失:
[0066][0067]
与现有技术相比,本发明技术方案的有益效果是:
[0068]
本发明方法首先为采购品目构建层级结构并进行编码,然后对采购项目名称进行文本清洗和分词,使用连续词袋模型模型训练语料获得词向量或者使用bert中文预训练模型直接获取词向量,得到初始的文本表示。最后将文本表示和标签表示带入模型进行训练。ha-bigru模型中包含的三层网络能够有效的解决上述问题。以bigru网络为编码器的文本编码层能够进一步提取上下文的语义信息,层次注意力循环网络层能够对层次之间的依赖关系进行建模,并且通过文本-标签注意力模块来增强文本与标签之间的关联,混合预测层综合了层次标签的局部损失和全局损失,通过减小总损失来优化模型。通过实验证明,本发明在各项评价指标上均取得了不错的表现。
附图说明
[0069]
图1为本发明的层次结构编码示意图;
[0070]
图2为本发明的bert词向量学习网络图;
[0071]
图3为本发明的层级注意力模型ha-birnn整体结构图;
[0072]
图4为本发明的层级注意力模型文档表示层网络示意图;
[0073]
图5为本发明的层级注意力模型层次注意循环网络层层次注意力记忆单元示意图;
[0074]
图6为本发明的层级注意力模型层次注意循环网络层层次注意力记忆单元详解图;
[0075]
图7为本发明的普通注意力对比模型a-birnn整体结构图;
[0076]
图8为本发明优选实例实验流程图。
具体实施方式
[0077]
附图仅用于示例性说明,不能理解为对本专利的限制;
[0078]
为了更好说明本实施例,附图某些部件会有省略、放大或缩小,并不代表实际产品的尺寸;
[0079]
对于本领域技术人员来说,附图中某些公知结构及其说明可能省略是可以理解的。
[0080]
下面结合附图和实施例对本发明的技术方案做进一步的说明:
[0081]
本发明提出了一种基于层级注意力的文本分类模型的构建方法,使用政府采购项目名称来对采购品目进行分类。普通注意力模型直接使用bi-lstm模型或者bi-gru模型对文本矩阵进行编码和特征提取,增加词语间的注意力机制,通过模型的解码输出多标签分类的结果。而层级注意力模型则是使用bi-lstm模型或者bi-gru模型对文本矩阵做进一步的语义提取,增加了文本-层级注意力模块,通过优化局部分类损失和全局分类损失来提升模型效果。其主要包括以下步骤:
[0082]
s101、对政府采购项目名称进行文本清洗和分词处理,使用cbow模型或者bert中文预训练模型获取词向量,拼接词向量得到每个文本的词向量矩阵。
[0083]
在层次标签结构中,每一层品目的类型都由其父品目的类型决定。层次标签类别之间结构可以使用树形结构或者有向无环图(dag)结构,本发明中使用的是树形结构。
[0084]
多标签分类是指一个样本属于的标签种类不止一个,例如自然科学可以包含数学、物理和化学等类目。层次标签分类是带有层级结构的多标签分类。层次结构编码可视化参见附图1,定义层次结构的高度为h,即一共有h层标签。标签结构为c1代表第一层次的标签,ch代表最后一层的标签。为第i层标签集合,其中numi表示第i层标签的类别总数。定义num
all
为全部标签的类别总数。在结构c的基础上定义层次类别结构,包含偏序集合(c,<)。
[0085]
文档及其对应的标签层次结构分别用d(document)和t(tree)来表示,输入集合为x=(d1,t1),(d2,t2),

,(dm,tm)。每个文档由一定长度的词序列组成,表示为di={w1,w2,

,wn},每个层次结构表示为ti={l1,l2,

,lh},其中li∈ci,即标签li属于第i层结构。
[0086]
第i层标签结构为ci,类目总数为numi,该层的标签向量由独热编码构造,长度为类目总数,总标签向量采取同样的方式编码,总标签向量采取同样的方式编码,层次标签向量v
label
={v
l1
,v
l2
,

,v
lh
,v
lall
}。该向量最终用于分类损失的计算和分类效果的评估。
[0087]
使用jieba分词器将文本划分成合理的词语序列,在分词前,使用正则匹配方法,过滤掉文本中的数字和标点符号。固定每个文档的长度为n,wi表示文本序列中的第i个词语,文档di={w1,w2,

,wn}。如果文本序列长度小于n,则将其长度填充至n。如果文本序列长度大于n,则在第n个词处进行截尾。
[0088]
本发明使用两种方法进行词嵌入。一种是使用cbow模型对语料进行训练,获得的词向量包含一定的采购名称数据的上下文信息。第二种是直接使用bert中文预训练模型获取词向量,作为初始的词嵌入。
[0089]
词袋模型是一个简单的神经网络模型。设定词表的大小为s,隐藏层的大小为u,连接方式为全连接。模型的输入为词语按照词表的独热编码,{x1,x2,

,xs},只有词语对应位置的值为1,其余值为0。
[0090]
通过cbow模型将词语映射到几何空间中,使用几何关系来反应词语间的语义联系。与独热编码不同,cbow模型会从语料中学习信息,使词嵌入更加符合我们的目标任务。文档di={w1,w2,

,wn},经过词向量转换后得到文本的矩阵表示,假设词向量的维度是u,cbow模型基于局部语料训练模型,优化效率高。
[0091]
bert词向量学习网络参见附图2。bert模型以transformer为基础,利用了大规模的无标注语料进行训练。通过预训练,获得包含丰富语义信息的文本的语义表示。
[0092]
transformer整体上是一个编码-解码(encoder-decoder)结构。编码器包含6个相同的层,每层包含两个子层,第一层是multi-head自注意力层,第二层是全连接层。每个子层进行残差连接,每一层输出的维度为512。解码器也包含6个相同的层,相比编码器增加了一个multi-head注意力层,用来处理编码器的输出。
[0093]
自注意力机制用来确定上下文对输入词语的影响。首先根据编码器的输入向量生成三个向量,分别是query向量,一个key向量和一个value向量,对三个向量做映射从而得到输出。输入的querys和所有keys的维度是dk,values的维度是dv,query和所有keys做点积,除以经过一个softmax得到所有values的权重。transformer能够更好的捕捉语句中的双向关系。
[0094][0095]
bert以双向transformer编码器为基础,使用随机遮蔽词语法实现预训练的深度双向表示,并且通过训练百科中的语料,获取了字符级别的词向量以及模型参数。bert的输入包含字符编码、句子编码和位置编码。
[0096]
s102、设计普通注意力模型a-birnn和层级注意力模型ha-birnn。将文本的编码表示和标签的编码表示分别带入普通注意力模型和层次注意力模型进行分类,得到局部分类结果和全局分类结果,使用相关评价指标来评估模型的效果。
[0097]
本发明模型的整体框架参见附图3,主要包含了文档编码层、层次注意力循环网络层、混合预测层三个部分。本发明在网络结构上使用轻量级的bi-gru网络来替代bi-lstm网
络,减少网络参数和降低过拟合。
[0098]
本发明的层级注意力模型文档表示层网络参见附图4,首先应用文档嵌入层分别对文本和层次类别结构进行编码。分词后的文本通过词嵌入得到向量d={w1,w2,

,wn},接着使用bi-lstm模型或者bi-gru模型对文本的语义关系做进一步的增强。
[0099]
lstm可以学习和利用数据的序列依赖性,通过控制输入门、遗忘门和输出门的输出,选择记忆和遗忘某些信息。每个结点的输出取决于输入序列中最近的上下文,而不是最初进入网络的输入。通过bi-lstm可以更好的学习到上下文双向的语义依赖。
[0100]
用input表示输入门,forget表示遗忘门,output表示输出门;c表示细胞状态,h为当前细胞状态的输出,是更新后的细胞状态。σ表示sigmoid函数,细胞状态随着网络的向前不断更新,模型的参数依靠误差反向传播不断更新。
[0101]
forget
t
=σ(w
forget
·
[h
t-1
,x
t
] b
forget
)
[0102]
input
t
=σ(w
input
·
[h
t-1
,x
t
] b
input
)
[0103][0104][0105]
output
t
=σ(w
output
·
[h
t-1
,x
t
] b
output
)
[0106]ht
=output
t
*tanh(c
t
)
[0107]
bi-lstm是正向的lstm和反向的lstm相结合,不仅可以学习更长的序列信息,还可以融合前后上下文的信息。以一个文档为例,bi-lstm网络的原始输入为d={w1,w2,

,wn},网络的隐藏层向量的计算方式如下:
[0108][0109][0110][0111]
与分别是第n个词语在前向lstm和反向lstm的隐藏层输出,是二者的结合,u是单向lstm的隐藏结点的个数。文档最终的表示形式为
[0112]
gru是lstm的简化版本,也称门控循环单元结构,包含重置门和更新门。更新门决定选取多少上一隐藏层的信息进入当前隐藏层。xt和ht-1分别表示模型的输入和上一隐藏层的输出,wu是更新门的参数,wr是重置门的参数。c表示细胞状态,h为当前细胞状态的输出,是更新后的细胞状态。σ表示sigmoid函数。gru使用sigmoid函数来更新和过滤信息。通过sigmoid函数抛弃无效的信息,保留重要的信息。重置门决定对历史信息的遗忘程度,即判断上一隐藏层的输出的重要程度。
[0113]gu
=σ(wu·
[h
t-1
,x
t
] bu)
[0114]gr
=σ(wr·
[h
t-1
,x
t
] b
t
)
[0115][0116]
[0117]hr
=c
t
[0118]
gru的模型结构比lstm少,训练参数也大大较少,能够减少过拟合,提高模型效率。bi-gru的原理和bi-lstm的原理相同,使用方向相反的gru网络进行文本特征提取,再进行拼接。
[0119][0120][0121][0122]
与分别是第n个词语在前向gru和反向gru的隐藏层输出,是二者的结合,u是单向gru的隐藏结点的个数。文档最终的表示形式为
[0123]
通过bi-lstm或者bi-cru获得文本的语义增强矩阵v={h1,h2,

,hn},对每一层的标签都进行嵌入,随机生成初始嵌入矩阵s={s1,s2,

,sh},其中da为第i层标签的嵌入矩阵维度。将v和s作输入,进入基于层次注意力的循环网络层,输出最终的预测结果。
[0124]
本发明的层级注意力模型层次注意循环网络层层次注意力记忆单元参见附图5,本发明的层级注意力模型层次注意循环网络层层次注意力记忆单元详解参见附图6,它是通过自上而下的方式利用层次结构逐步对不同层次之间的依赖关系进行建模。在每个类别层级上,重复层次注意力记忆单元,捕捉文本和类别之间的关联。同时,该网络可以将相应的层次语义信息传递到下一层,符合人们由浅层到深层的阅读习惯。
[0125]
层次注意力记忆单元包含三个模块,分别是文本-标签注意力模块,分类预测模块和层级依赖模块。文本-标签注意力模块计算文本与层级标签之间的关联值,分类预测模块生成对应层级类别的统一表示和预测,层级依赖模块对不同层级类别间的依赖关系进行建模。使用tca(text-category attention)表示文本-标签注意力模块,cpm(class prediction module)表示分类预测模块,cdm(class dependency module)表示层级依赖模块。
[0126]
对于层次类别结构的第h层,文本-标签注意力模块的输入为,全文本表示v,对应的层级表示sh,以及上一层级传递的权重参数w
h-1

[0127][0128][0129][0130][0131]
使用平均池化操作得到n个词语的平均嵌入使用平均池化操作得到n个词语的平均嵌入是在h层类别标签与文本之间的关系表示,是在h层类别标签与文本之间的注意力矩阵。是第h层的类别预测输出向量。由于根结点即第0层不包含任何信息,所以用元素1来初始化第0层的权重参数w0。
[0132]
文本-标签注意力模块的目标是捕捉文本和层次类别之间的相关性,并且输出层
次类别标签与文本之间的关系表示和层次类别标签与文本之间的注意力矩阵上一层级的权重参数将其与文本表示v进行点乘,得到:
[0133]vh
=w
h-1
.v
[0134]vh
融合了上一层级的层次信息的文本表示。因为在文本中的不同词语往往会表达不同的意义,所以对第h层标签,我们需要numh维度的向量来表示整个文本的语义关系。使用h层标签的嵌入矩阵sh来计算对应类别的注意力。
[0135][0136][0137]
是随机生成的权重矩阵,oh表示使用tanh函数激活后的vh。w
ih
表示第h层第i个类别的归一化后的文本注意力得分,向量中的每个元素表示对应位置的单词对第i个类别的贡献度。
[0138]
将注意力矩阵与文本表示vh相乘,得到将mh进行行平均得到
[0139][0140][0141]
分类预测模块旨在整合原始文本的语义表示和融合了前一层次信息的文本类别表示,为每一层次生成统一的表示并进行类别预测。使用作为第h层的表示,
[0142]
是随机初始化的权重矩阵,是对应的误差向量,表示非线性激活函数。
[0143]
是权重矩阵,是对应的误差向量,σ是sigmoid函数。
[0144]
层级依赖模块通过为每一层级都保留层次信息从而对不同层级进行依赖关系建模。对第h层的类别标签,不同的类别对预测结果有不同的贡献度,从而能够修正注意力矩阵。
[0145][0146][0147]
代表修正后的注意力矩阵,broadcast函数表示将向量按一定维度平铺。对进行行平均,得到了加权后的注意力向量
[0148]
对进行平铺,得到文本与第h层标签的关联权重矩阵wh[0149][0150][0150]
表示第i个词语和层次信息的关联权重。wh也将作为输入传入下一层级的注意力记忆单元。
[0151]
经过每一层的分类预测模块,可以得到对应的层次表示向量和预测概率向量对于层次标签分类来说,预测局部的标签和全局的标签都是重要的。所以我们构建了混合预测层,即使用局部和全局信息来进行最终的输出。将每一层的层次表示向量聚合,得到然后对a
l
进行行平均得到令pg表示全局预测的概率输出,
[0152][0153]
pg=σ(wm·ag
bm)
[0154]bg
和bm均为对应维度的误差向量。pg是一个连续型的向量,第i个位置的元素pg(i)=p(ci|x),表示属于标签集合中第i个标签的条件概率。
[0155]
整合局部预测和全局预测的条件概率,得到最终的预测输出pf[0156][0157]
α是一个参数,决定全局信息和局部信息的占比,可以根据实际预测情况进行调整。
[0158]
经过了文档编码层,层次注意力循环网络层,混合预测层,得到最终的模型结构。
[0159]
定义本发明的损失函数为局部损失和全局损失之和,在模型的训练阶段,对每个文档,局部分类损失和全局分类损失的计算方式为:
[0160][0161][0162]
yg是包含层次结构内所有标签的二进制向量,是仅包含h层所有标签的二进制向量。yg和表示标签类别的真实值。ε(.,.)=yilog(p(yi)) (1

yi)log(1-p(yi))表示二元交叉熵函数。模型的优化目标为最小化全局损失和局部损失之和。
[0163][0164]
θ表示模型的全部参数,λ
θ
为正则化参数。使用adam优化算法进行的最小化运算。
[0165]
本发明的普通注意力对比模型a-birnn整体结构参见附图7。方便起见,本发明将bi-lstm和bi-gru都统称为birnn。本发明不考虑多标签的层级结构,构建了基于词语级别注意力的birnn模型,a-birnn。
[0166]
d={w1,w2,

,wn}表示完成词嵌入后的文本
[0167][0168][0169]
[0170]
考虑到词语对句子的影响程度是不一样的,本发明增加了词语注意力机制。对每个词语进行注意力打分,得到注意力加权后的句向量。
[0171]
ui=tanh(w
ohi
bo)
[0172][0173][0174]
最终的预测向量为:
[0175]
p=softmax(wcs bc)
[0176]
使用样本对应的正确标签的负对数似然作为训练损失:
[0177][0178]
本发明优选实例实验流程参见附图8。本实例选用了政府采购公示数据,来源于中国政府采购网(http://www.ccgp.gov.cn/)2018年到2019年全部政府采购公示数据。来源单一的采购项目会指明采购项目名称、采购来源、采购金额、中标供应商、报价明细、评审日期、评审意见以及联系事项等指标。而招标采购、有限竞争性采购以及竞争性谈判,则会指明供应商资格要求简要说明。
[0179]
经过正则匹配等文本清洗技术,本发明保留的数据特征是公告标题、采购项目名称、品目、采购单位、行政区域以及公告时间。
[0180]
本实验设定文本的固定长度为20,即n=20,文档表示d={w1,w2,

,wn}。使用两种方式将词语转化为词向量。第一种方法是使用cbow模型,以所有项目采购名称为语料进行训练。设置词频截断值为2,出现次数少于2次的单词不计入训练范围,上下文窗口大小为5,输出的词向量维度为300。第二种是使用bert中文预训练模型chinese
l-12
h-768
a-12,选取输出层的倒数第二层向量作为词向量,输出的词向量维度是768。
[0181]
本实验使用作为评价指标。在pr(precision recall)曲线中的混淆矩阵中,tp(true positive)表示正例被正确地分为正例,fn(false negative)表示把正例被错误地分为负例,tn(true negative)表示负例被错误地分为正例,fp(false positive)表示负例被正确的分为负例。
[0182][0183][0184]
由于本发明所要解决的问题是一个多标签分类问题,所以对于全部标签中的第i类标签,定义tpi,fpi,fni,tni来计算精确度和召回率
[0185]
[0186][0187]
micro-average f1 score也是评估多标签分类模型的一种方法,它能够有效的处理标签不平衡的问题。假设有m个样本,y
ij
=1表示真实的第j个样本属于第i类标签,否则y
ij
=-1。同样的,表示预测的第j个样本属于第i类标签,否则
[0188][0189]
所以micro-f1可以用micro-precision和micro-recall两个指标表示。
[0190][0191]
micro-precision,micro-recall和micro-f1这三个指标的值越大,表示模型的预测效果越好。前三个评估指标的值会随着threshold的调整而不断调整,所以pr曲线下的平均面积(area under the average pr curve)也是一个很好的指标,简称为该指标值越大,说明模型效果越好。
[0192]
本实验从三个方面比较模型的效果:
[0193]
第一,在词向量的获取方式上。本实验采取了两种方式获取词向量,第一种是使用cbow模型训练语料,第二种是直接使用bert中文预训练模型获取。我们关心这两种词嵌入方法(即词向量对语义表示的准确性)对模型的作用。使用bert中文预训练模型模型获取的词向量是否与经过语料训练获取的词向量具有相似的效果。
[0194]
第二,在bi-lstm和bi-gru编码方式上。bi-lstm和bi-gru都是循环神经网络rnn的衍生模型。二者各有优势,bi-lstm结构复杂,能够很好的处理长文本,bi-gru结构简单,计算效率高。本实验比较了两种文本编码网络的语义表示效果和计算复杂度,选取出更为适应数据量大的短文本的网络模型。
[0195]
第三,在层次注意力和普通注意力上。普通的注意力机制(attention)仅仅限于文本的词语或者句子之间,本发明在模型中提出了层次标签-文本注意力结构。所以设计了对照实验,一组是带有简单的词语间注意力的a-birnn模型,一组是具有层文本-标签层级注意力的ha-birnn模型。本发明通过本实验来证明层次注意力(hierarchical attention)对具有层级标签结构的文本分类任务效果提高显著。所以本实验8种模型下表:
[0196]
cbowberta-bilstm-cbowa-bilstm-berta-bigru-cbowa-bigru-bertha-bilstm-cbowha-bilstm-bertha-bigru-cbowha-bigru-bert
[0197]
本实验在a-birnn模型的参数设置上,bi-lstm和bi-gru的参数设置保持一致。对于使用cbow获得的向量,设置词向量的维度为300;对于使用cbow获得的向量,设置词向量
的维度为768。birnn隐藏层的维度是256,全连接层的维度是512,注意力层的维度为40。每个batch训练的数据量为256。
[0198]
本实验在ha-birnn模型的参数设置上,bi-lstm和bi-gru的参数设置保持一致。对于使用cbow获得的向量,设置词向量的维度为300;对于使用cbow获得的向量,设置词向量的维度为768。设置标签向量表示的维度da=200,birnn隐藏层的维度是256,全连接层的维度是512。全局信息保留率α=0.5。每个batch训练的数据量为256。本实验8种模型的实验结果下表:
[0199][0200][0201]
通过表中实验结果比对,得出以下结论:
[0202]
cbow词嵌入和bert预训练模型词嵌入效果近似。bert词嵌入和cbow词嵌入方法的最终预测结果接近,验证了bert中文预训练模型获取的词向量也能满足本实验要求。ha-bigru-bert和ha-bigru-cbow均在指标上达到最优取值0.708,同时在指标f1 score上拿到0.623的结果。ha-bilstm-cbow均在指标上达到取值0.707,同时在指标f1score上拿到0.625的结果。在abirnn模型中,a-bigru-bert模型在指标上达到取值0.697,在指标f1 score上达到取值0.590。a-bigru-cbow模型在指标上达到取值0.697,在指标f1score上达到取值0.599。同时a-bigru模型的效果均优于a-bilstm模型。
[0203]
层次注意力优于普通注意力。因为bert词嵌入和cbow词嵌入的效果相近,所以本实验使用cbow词嵌入的结果来进行展示分析。a-birnn模型中效果最好的为a-bigru-cbow,
指标为0.697,f1score为0.582。因此可以得出在和f1score这两个评价指标上,本发明的层次注意力模型ha-birnn的结果明显优越于普通注意力模型a-birnn。
[0204]
bi-gru结构优于bi-lstm结构。从各个模型的时间开销可以得出以gru网络为基础的模型时间开销都比以lstm网络为基础的模型时间开销小。ha-bilstm完成一个epoch的时间为3020秒,ha-bigru完成一个epoch的时间为1755秒,a-bilstm完成一个epoch的时间为1416秒,epoch的时间为631秒。ha-bigru模型在分类预测上取得的效果略优于ha-bilstm,但是能够减小一半的时间开销,所以本发明中选择bigru网络作为文本编码层是非常有意义的。
[0205]
相同或相似的标号对应相同或相似的部件;
[0206]
附图中描述位置关系的用于仅用于示例性说明,不能理解为对本专利的限制;
[0207]
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定。对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动。这里无需也无法对所有的实施方式予以穷举。凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明权利要求的保护范围之内。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献