APP下载

基于CoSENT的航空装备领域问句相似度匹配算法*

2023-12-11翟一琛顾佼佼姜文志

舰船电子工程 2023年9期

翟一琛 顾佼佼 刘 涛 姜文志

(海军航空大学 烟台 264001)

1 引言

随着军事装备信息化的高速发展,装备配套相关技术保障文档大量增加,战场形势瞬息万变,如何高效地利用这些非结构化文本,快速检索到需要的信息,对提升装备使用和维护效率、掌握战场主动权具有重要意义。传统的信息检索通常采取基于关键词匹配的方式,这种方式没有考虑到用户语义表述的多样性,常常无法准确地理解用户意图[1]。近年来,基于深度学习的自然语言处理技术快速发展,通过使用深度学习模型考虑文字的上下文信息,产生向量化的语义表示,可以更加准确地表示文本语义。

基于文本语义表示的文本匹配技术是实现智能问答的关键技术[2],这类方法通常使用文本对作为知识来源,通过文本相似度匹配将用户输入的检索项与知识库中存储的文本进行匹配,是目前工业界实现智能问答系统的主要方式之一[3~4]。随着深度学习的发展,使用深度学习模型进行文本相似度匹配是当前的主流研究方向,主要分为特征式和交互式两类方式[5~6]。特征式指输入的两个句子分别通过编码器获得句向量表示再进行相似度匹配,文献[7]提出的InferSent 模型是典型的特征式模型,文中验证了将两路句向量进行拼接等操作后作为输入分类器的特征可以有效提升文本匹配模型的性能。文献[8]提出Sentence-BERT 模型,验证了使用BERT(Bidirectional Encoder Representation from Transformers)[9]预训练模型作为特征抽取器可以有效提升模型性能。交互式指将两个句子进行拼接后再输入模型,这种方式使得文本在模型内可以进行更多的交互,模型性能一般较特征式更好,缺点是无法提前存储计算好的缓存向量,在检索场景下的效率较差。文献[10]提出交互式文本匹配模型ESIM,表明了通过构建匹配矩阵进行句子间交互的有效性。文献[11]借鉴卷积神经网络(Convolutional Neural Networks,CNN)处理图像的原理,提出MatchPyramid 模型,通过CNN 提取句子间的相似度矩阵特征,达到融合特征表示,提升模型性能的目的。

将知识库问答技术应用到垂直领域面临诸多困难,在数据集构建方面,现有研究大多基于社区问答数据自动构建[12~14]。对于垂直领域下非结构化文本内容的问句对构建,通常需要组织行业专家针对文档内容人工提出问题,在问答系统启动初期,人工标注工作量大。为此,本文提出一种面向航空装备领域技术文档的问句对构建方法。首先,针对文档行文特点,对文档内各级标题采取规则模板和SimBERT[15]生成模型进行问句生成,然后使用语义相似的关键词替换方法扩充数据集,调整数据集正负比例,减轻人工标注工作量。

考虑特征式模型在检索场景下的优点和数据集规模小的问题,使用基于预训练BERT 的特征式文本相似度匹配模型CoSENT 作为基准模型。通过关键词注意力机制引入外部领域词典知识指导模型训练;同时针对特征式模型缺乏句对间交互的问题,加入交互机制进一步提升模型性能。

2 命名实体识别模型

2.1 CoSENT模型

BERT 是一种基于多层双向Transformer 编码器的预训练语言模型,可以生成融合上下文信息的句子表征。通常采取预训练加微调的训练方式,首先在大量无监督数据上进行掩码语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction,NSP)训练,之后结合具体的任务在少量标注数据上进行微调,这种训练方式使得BERT 具有较强的泛化能力,即使在小数据集上进行训练也能取得良好的性能。

SBERT(Sentence-BERT)模型将BERT 引入到孪生网络结构中,利用BERT 生成更有效的句子嵌入用于文本相似性度量任务,模型结构如图1所示。基于SBERT 模型改进的CoSENT 模型[16]主要针对原模型训练与预测不一致的问题,对模型的损失优化部分进行了改进,由原来先特征拼接再连接Softmax 分类器输出类别,优化分类损失的方式,改为直接优化句子对间的余弦距离,模型结构如图2所示,损失计算公式为

图1 Sentence-BERT模型结构图

图2 CoSENT模型结构图

其中(i'j)∈Ωpos,(k'l)∈Ωneg,Ωpos为正样本集合,Ωneg为负样本集合,uk、ul、ui、uj分别为正样本对和负样本对的句向量表示,λ为超参数。

2.2 SimBERT模型

Seq2Seq[17]指的是给模型输入一段文本后,模型会输出另一段文本,Seq2Seq 模型一般采用编码器-解码器结构,编码器将输入文本编码为固定大小的向量,解码器将这个向量以自回归的方式进行解码,生成对应的文本。BERT 模型在提出时用于进行自然语言理解任务,其核心Transformer[18]编码器采用双向自注意力机制,对于输入的句子,句子中每个词之间都是可见的,无法用于自然语言生成任务。微软提出通过构建如图3所示的特殊的注意力掩码矩阵,将BERT 模型改造为可以进行自然语言生成任务的统一预训练语言模型(Unified Language Model,UniLM)[19]。

图3 UniLM模型的注意力掩码矩阵

SimBERT 是一种以BERT 模型为基础的融合检索与生成于一体的模型,与BERT 模型相比,其具有文本生成能力的核心就是使用了UniLM 中的Seq2Seq 训练方式。训练SimBERT 生成相似问句首先需要收集大量的相似问句对,同一相似问句对在输入模型时通过[SEP]进行分割,之后对输入语句使用特殊的注意力掩码矩阵,这种形式的注意力掩码矩阵使得[SEP]之前的字符之间实现了双向注意力,[SEP]之后的字符之间实现了单向注意力,从而使得模型具有递归的预测后半句的能力。

2.3 关键词注意力机制

与交互式模型相比,特征式模型由于缺乏对句子间的特征融合,模型无法更加有效地关注文本中的关键信息,本文借鉴文献[20]提出的关键词自注意力机制,利用外部领域关键词知识指导模型训练。自注意力机制可以计算句子内部字符之间的相关性,本文首先通过对文本输入X=[x1'...'xn]使用领域词典W进行关键词识别,之后构建关键词掩码矩阵作用在关键词掩码自注意力层上,强制模型关注句子中的关键词。其表达形式如下:

改进后的模型整体结构如图4所示,句子1、2通过的网络均共享权重。首先,句子按字符粒度输入到BERT 模型中,BERT 模型输出包含上下文信息的语义表示,其中[CLS]向量作为句子原始的整体信息直接送入特征拼接层,其余每个字符的输出向量送入关键词掩码自注意力层。在关键词掩码矩阵的作用下,句子内的关键词进行注意力交互,之后输出向量至池化层进行特征的进一步提取,两路池化层的输出向量之间进行特征拼接与交互,与Sentence-BERT、InferSent等特征式模型不同,CoSENT模型直接对句子表示的余弦相似度进行优化,所以在进行特征拼接和交互后,特征向量仍应保持句子表示的相对独立性,即拼接后的特征向量仍然可以表示该输入语句的语义信息。

图4 融合关键词注意力机制的CoSENT模型

3 实验验证

3.1 数据集构建

自建数据集来源于航空行业IETM相关技术手册中的PDF 文档,根据文档文本的行文特点,首先使用PDF 文本抽取技术和正则表达式匹配的方法提取文档内所有的标题,根据标题的层级关系,建立常见问句模板将标题关键词扩充成句,然后使用在2200万个问句对数据集上预训练的SimBERT模型自动生成大量相似问句,生成示例如表1所示。人工挑选出表达通顺的句子并判断相似或不相似,根据此方法标注数据集共2463条。

表1 文本生成示例

利用SimBERT 生成的相似问句多数与原句语义相似,数据集会出现正负比例不均衡的现象。通过随机替换、随机删除等方法生成的负例与真实标注相差较大,使得数据集噪声过大,训练效果差。本文使用领域词典对句子中的关键词进行识别,并在与关键词同类型的词语中选择字面不同但语义相关的词语进行替换,通过此方法生成的负样例更难区分,更接近真实负例,有助于模型训练。语义相似度使用在所有语料上训练的Word2Vec[21]模型进行计算,本文选取相似度大于0.8但小于0.9的词语进行相似词替换,生成负样本示例如表1所示。

在非结构化文本数据上,通过这种方式生成数据集不需要人工生成问句,只需要进行选择,减轻了人工标注的工作量。最终得到4000 对相似问句对数据集,数据集平均文本长度为17,最大文本长度为42,问句对正负比例为1.25∶1,按6∶2∶2 划分为训练集、验证集和测试集。

讯飞文本相似度数据集来自讯飞中文问题相似度挑战赛,为通用领域下的相似问句对数据集。本文使用可供下载的5000 对问句对进行实验,数据集平均文本长度为21,最大文本长度为83,问句对正负比例为1.37∶1,在数据集规模、文本长度和正负比例上与本文自建数据集相近,按6∶2∶2 划分为训练集,验证集和测试集。

3.2 实验配置

1)实验设置

实验环境为处理器Inter(R)Xeon(R)Gold 5218R、操作系统Ubuntu 18.04.2LTS、显卡RTX 3090,开发环境为Python3.7,使用Pytorch1.8.0 框架。

模型参数设置如下:BERT 输入的最大序列长度为64,批处理大小为128,向量维度为768,使用AdamW优化器,学习率设置为2e-5,超参数λ=5。

2)评价指标

在检索场景下,更关注预测分数的顺序,Spearman 相关系数定义为两个变量的秩统计量间的Pearson 相关系数,其值与两组变量的具体值无关,仅与值之间的大小关系有关。首先将模型输出的相似度与真实标签值分别进行排序(同时为升序或降序),得到集合x和y后其计算公式如下:

其中两个集合的元素个数均为N,、分别表示两集合平均位次的值。

3.3 实验结果及分析

本文选取了ESIM,InferSent,Sentence-BERT,BERT,CoSENT共五种主流的文本匹配模型进行对比实验,其中InferSent 和ESIM 模型均采用CNN 进行特征抽取,表2 展示了选取的几种基准模型在自建数据集和讯飞文本相似度数据集上的实验结果。实验结果表明,不论是交互式模型还是特征式模型,在使用预训练BERT 模型后,模型性能均得到较大提升。选择同样的特征抽取模型时,交互式模型的表现明显优于特征式模型。由于交互式模型不能离线获得文本的向量表示,检索场景下效率较低,本文选取特征式模型中表现最优的CoSENT作为基准模型。

表2 模型对比实验

为加强文本中关键信息在模型训练过程中的重要性,使用词典识别输入文本中的名词、动词和动名词,构建关键词掩码矩阵,并作用在CoSENT模型向量输出部分的关键词自注意力层上,对该层的输出向量进行三种池化策略的实验,实验结果如表3所示,在自建数据集上,直接取关键词自注意力层的CLS向量与CoSENT模型的CLS输出向量进行拼接时,Spearman 相关系数由0.791 提升到了0.806;在讯飞文本相似度数据集上对关键词自注意力层使用平均池化策略输出的向量与CoSENT模型的CLS输出向量进行拼接时,Spearman相关系数由0.749 提升到了0.763。同时注意到,不论使用何种形式的关键词注意力机制,模型性能都会稳定提升,验证了本文提出方法的有效性。

表3 关键词注意力机制实验

图5 为CoSENT 模型加入关键词自注意力层前后的损失函数曲线图,从图中可以看出加入关键词注意力机制可以有效帮助模型收敛,使得模型性能更加稳定。

图5 损失函数曲线图

在使用关键词注意力机制的基础上,对特征交互阶段的向量拼接策略进行实验,表4 中列出了特征拼接时选择三种池化策略时各自最好的实验结果。对于本文使用的两个数据集而言,选择平均池化策略和最大池化策略的效果都要优于直接使用CLS向量,两个数据集的Spearman相关系数分别达到了0.814 和0.766。另外,在表4 中还分别展示了在自建数据集和讯飞文本相似度数据集下分别使用平均池化策略和最大池化策略进行特征拼接的实验结果,ucls'表示当前输入句子BERT 层的CLS输出向量,u,v分别表示两句子的输出向量。实验结果显示,在自建数据集和讯飞文本相似度数据集上,特征交互阶段分别使用(ucls''u'u-v) 和(ucls''u'|u-v|) 拼接策略时模型性能最好,代表在CoSENT 模型中,表示两句子间差异信息的u-v和|u-v|向量可以为相似性度量提供更多的特征信息。同时,使用u*v向量作为交互特征均会降低模型性能。

表4 特征向量拼接实验

4 结语

首先针对航空维修领域技术手册中非结构化文本问句对数据集构建困难的问题,提出一种面向该领域技术手册的数据集构建方法,结合文本行文特点,利用规则模板、Word2Vec 模型、深度学习生成模型等手段自动生成有实际意义的问句对,减轻人工标注的工作量,构建了一个数据量大小为4000对的航空维修领域问句相似对数据集。

对主流的文本相似度匹配模型进行实验,选取检索场景下效率更高的特征式模型CoSENT 作为基准模型,使用外部词典知识通过关键词注意力机制指导模型训练,同时针对特征式模型文本交互不够充分的特点加入特征交互机制,并对关键词注意力机制和特征融合方式在自建数据集和讯飞文本相似度数据集上进行实验,结果表明本文提出的方法可以有效提升CoSENT模型的文本匹配性能。