1.本发明涉及一种基于对比学习的长文本语义相似度计算方法,属于人工智能、自然语言处理技术领域。
背景技术:2.语义相似度计算技术在工业界和学术界都有广泛的应用和研究,学术上的信息检索等技术的实现依赖于语义相似度计算实现,工业界上的搜索、推荐、召回等核心功能的实现都需要在语义上衡量文本相似度;以语义相似度计算为基础的核心任务可以细分为三类:短文本-短文本相似度计算,短文本-长文本相似度计算和长文本-长文本相似度计算;长文本相似度计算技术更是当前语义相似度计算研究的重点,目前语义相似度计算相关的任务主要依赖bert、roberta等基于预训练的语言模型,虽然其效果、准确率上远超之前的lstm模型,但是仍然没有很好的解决在有限算力资源下、有限标注数据资源下长文本间的高精度语义相似度计算;因此本发明采用了bigbird预训练语言模型,在扩大可接受输入长度的基础上,压缩整个模型的训练和推理时间,提升了语义相似度计算的准确性;
3.除长文本-长文本相似度计算的问题外,在专业的领域中进行文本相似度间计算还需要足够多的先验数据,在当前大模型的架构下,训练数据的需求量高达百万量级,但是完全靠人工标注实现是不现实的。因此本发明改进长文本匹配技术并增加人工校订的流程,可以通过人机交互来扩展领域数据库,进而实现小样本下的在线学习。
技术实现要素:4.本发明的目的是针对语义相似度计算领域有标注数据资源匮乏、标注质量低下,整篇文章采用长文本匹配耗时、硬件需求大且存在较多高频低价值信息干扰的问题,提出了一种基于对比学习的长文本语义相似度计算方法,用于篇章语义匹配任务。
5.本方法面向领域文本信息,使用机器学习技术和文档格式解析技术获取篇章结构信息,将文本特征拆解为多种特征来供模型学习,该模型还可辅助领域专业人员确定相关语句是否为领域数据,进而扩充领域知识库,实现模型在小样本下的在线学习,同时实现模型的高精度研判。满足不同领域、专业的用户对于语义相似度的需求。
6.本发明的目的是通过下述技术方案实现的。
7.一种基于对比学习的长文本语义相似度计算方法,包括如下步骤:
8.步骤1、对需要进行文本语义相似度计算的领域,分别建立领域数据库和通用数据库;
9.首先,建立领域数据库,该数据库表结构由领域主题字段、领域短语字段、领域标题字段构成;
10.其中领域数据库的构建由相关领域专业人员,根据自身领域知识以及行业需求,在该领域或单位、公司文档中挑选出和领域内容高度相关的文本信息,并根据主题、短语、文章段落标题等类别分别加入到数据库包含的数据表对应的字段中。
11.标题数据包括文章大标题、小标题以及在文本中突出显示的内容。主题数据是文章各个段落主题内容的汇聚,由领域专业人员根据自身特征进行总结归纳,短语数据由领域专业人员进行挑选;
12.其次,建立通用数据库,作为领域数据库的对比数据,通用数据要求包含少量的领域信息,同时在语义上又是与领域无关的数据。
13.其数据构建方法是通过爬虫技术从知乎、微博、裁判文书网上抓取文章信息,通过lda主题模型构建方法归纳段落主题信息,利用tf-idf、文本互信息方法来提取关键短语;根据所抓取文章的段落格式等信息获取标题内容;基于提取的关键词,剔除与当前领域毫不相关的文章,将剩余上述三种篇章结构信息作为主题字段、短语字段、标题字段加入通用数据库中;
14.步骤2、使用bigbird预训练语言模型,针对长文本信息采用多输入结构进行共享参数训练,包括以下步骤:
15.步骤2-1、基于通用数据库、领域数据库中的数据构建用于训练的句子对数据。数据包含短语、标题、主题等字段信息,具体包括如下子步骤:
16.步骤2-1-1、构建正样本,具体采用公示(1)构建:
17.[cls]领域数据库id=x对应的y字段[sep]领域数据库id!=x对应的y字段[sep];(1)
[0018]
其中x指领域数据库中的id字段值,y表示文章x对应id下的短语、标题、主题等字段信息;同一数据库中的数据构建句子对,作为训练数据的正样本;
[0019]
步骤2-1-2、构建负样本,具体采用公示(2)构建:
[0020]
[cls]领域数据库id=x对应的y字段[sep]通用数据库id=z对应的y字段[sep];(2)
[0021]
其中x指领域数据库中的id字段值,z指通用数据库中的id字段值,y表示文章x或文章z对应id下的短语、标题、主题等字段信息;不同数据库中的数据构建句子对,作为训练数据的负样本;
[0022]
其中,id=x在同一条正负样本中应该是相同的;
[0023]
步骤2-1-3、构建样本对,按照步骤2-1-1)中构建正样本的方式,由短语、主题、标题三种篇章结构信息形成了正样本的一条数据,同理、按照步骤2-1-2)中构建负样本的方式形成一条负样本数据,按照正样本标签为1,负样本标签为0,构建出一条句子对训练数据;
[0024]
步骤2-2、将句子对数据按照批次分别输入到bigbird预训练语言模型中进行训练,整个过程三种篇章结构信息同时输入到模型,并且在训练过程中共享模型参数,模型的损失公式由多部分构成,具体包括以下子步骤:
[0025]
步骤2-2-1、采用句子对任务进行训练,首先引入对比学习损失函数,具体采用公式(3)构建:
[0026][0027]
其中,n表示一次输入到模型的数据量,hi,表示正样本,表示领域数据库中的其
他正样本,表示通用数据库中的数据,作为负样本存在。
[0028]
步骤2-2-2、句子对任务,不仅引入对比学习损失函数,而且要从多维角度学习正负样本之间的差异,引入hinge loss作为第二损失,具体采用公式(4)构建:
[0029]
hinge=0.1+prob-‑
prob
+
ꢀꢀꢀ
(4)
[0030]
其中prob
+
指正样本经过模型得到的概率打分,该打分反映出样本在深层网络中得到的语义表示和领域内容的贴合程度;prob-指负样本经过模型得到的打分;hinge是模型需要反向传播的损失,模型需要融合该损失来更新网络参数;
[0031]
步骤2-2-3、由于数据分类为领域数据和通用数据,领域数据库的内容标签属性为1,相反通用数据库中的数据标签为0,具体采用公式(5)构建:
[0032]
y=targe
tag-prob
tag
ꢀꢀꢀ
(5)
[0033]
其中,tag为+或-,用来区分正样本和负样本,其中target
+
=1,target-=1;
[0034]
步骤2-2-4、通过步骤2-2-1)、步骤2-2-2)、步骤2-2-3)可以加权得到总损失,总损失是用来传递给模型更新网络参数的关键部分,具体采用公式(6)计算:
[0035]
total=f(i)*a+hinge+y*λ
ꢀꢀꢀ
(6)
[0036]
其中,a表示对比学习损失的加权值,经过试验a取30~36之间模型收敛效果最佳,λ表示分类损失,经过试验λ取值在0.9-0.12之间模型效果最佳;
[0037]
将训练数据输入bigbird预训练语言模型进行微调训练,并依据多任务损失反向传播更新模型参数,让模型更优的解决目标函数提出的问题;
[0038]
步骤3)使用步骤2)训练好的模型,针对待评价长文本进行预处理,输入模型之后获得和当前领域文本的领域相似度打分,包括以下子步骤:
[0039]
步骤3-1)预处理待评价文章,首先使用格式解析获取当前文本的标题信息、使用lda方法获取主题信息、使用tf-idf获取关键词信息;并按照步骤2-1-2)所示构建负样本的方式构建测试数据,其中待预测数据作为通用数据库中的数据存在,领域数据随机从领域数据库中选择;
[0040]
样本预测的输入格式是单样本形式,与训练输入样本对的结构不同;待评价文章转化为标准输入样本格式之后,进行如下步骤;
[0041]
步骤3-2、将数据输入步骤2训练后的模型,经过模型对文本信息分词转化,并在高维空间进行向量表示之后,通过模型的门控单元对短语、主题、标题等各个字段的权重信息进行拟合,门控单元采用transformer结构,对于多字段复杂的权重信息拟合效果更佳;输入样本经过门控单元之后获得了与领域文本的相似度打分;
[0042]
步骤3-3、步骤3)基于领域数据库中不同文章数据打分次数是否大于等于10次,若是,则求出打分的平均值,执行之后步骤;若不是则更换参与匹配的领域数据并转步骤3)继续执行;
[0043]
步骤4、专业领域人员校订和领域相关文章入库
[0044]
打分待评价文章时所用模型,是经过冷启动数据训练得到的模型,模型的拟合能力和打分评价效果受限于数据量,为实现长文本在线语义相似度计算,需要对已进行模型预测并获得打分的数据进行人工修正,将打分较高并且人工选中的数据对应的各个字段信息加入到领域数据库中,具体包括以下子步骤;
[0045]
步骤4-1、首先对于获得打分的文章判断其打分是否高于0.8,若是,则直接通过人
工进行去躁并将其对应的字段数据加入领域数据库,结束步骤4)并进入下一步骤,若小于等于0.8且大于0.6则进入如下步骤;
[0046]
步骤4-2、对于其他步骤中传来的数据,经过人工挑选阶段,经过人工再次确认当前文章是否属于领域数据;若是,则人工进行去躁并将其对应的字段数据加入领域数据库,否则直接将该数据完全遗弃,入库数据为空,并转如下步骤;
[0047]
步骤4-3、对于打分小于等于0.8且未经过步骤4-2)的数据,首先判断其打分是否大于0.5,若是则直接进行关键词过滤,将非领域信息直接移除,并转步骤4-2、进行处理;若打分小于等于0.5,则该文章经过模型和人工判断之后,不属于相关领域的文章,直接加入通用数据库,可以用来提升之后在线学习训练时样本的复杂度;
[0048]
步骤5、调用上代模型,持续学习,提升模型效果
[0049]
冷启动的高准确率领域数据是有限的,模型拟合效果也因此受限,因此需要根据可用领域数据量定期对模型进行训练;具体包括以下子步骤;
[0050]
步骤5-1、统计领域数据库中的数据量,若数据量小于之前的两倍,则停止,否则转如下步骤;
[0051]
步骤5-2、使用全新的领域数据,转步骤2)进行训练。
[0052]
有益效果
[0053]
本发明一种基于对比学习的长文本语义相似度计算方法,与现有技术相比,具有如下有益效果:
[0054]
1.所述方法能针对相关领域小样本问题进行极大的改善,使用训练好的模型对文章、长文本信息进行语义评价时,不仅可以获得当前文本和领域知识的相关性的打分,还可以作为领域人员研判当前文本是否属于该领域数据的依据,这一辅助过程极大的缩减领域专业人员的时间消耗,还可以增扩大领域数据库、通用数据库中训练数据量,之后该数据又可用来重新训练模型,提升模型的语义表示能力,实现小样本下的在线语义相似度计算;
[0055]
2.长文本间语义相似度计算不仅准确率低下,而且对模型和硬件本身都有着极高的需求,这一特征导致篇章级别的长文本间语义相似度计算很难落地实用,本方法所述融合篇章结构信息的方法很好的缓解了这一问题,通过把长文本按照主题、标题、核心短语等关键信息拆解进行共享参数训练,使模型多角度拟合文本语义,该方式不仅提升了文本间语义相似度计算的精度,还将长文本下模型的推理和训练速度提升一个新的高度,保证了模型在相关领域、产业上的实用性;
[0056]
3.基于对比学习的长文本语义相似度计算方式,充分利用句子对之间的语义差异,通过对比学习目标函数构建的损失充分优化了预训练语言模型的参数;进而提升了模型的推理能力,使得相似度计算打分更加精准高效。
附图说明
[0057]
图1是本发明方法系统架构;
[0058]
图2是本发明方法处理流程;
[0059]
图3是本方明方法步骤1以及实施例1的通用数据库构建流程图;
[0060]
图4是本方明方法步骤1以及实施例1的领域数据库构建流程图;
[0061]
图5是本方明方法步骤2以及实施例1的训练模型结构图;
[0062]
图6是本方明方法步骤3以及实施例1的预测模型结构图;
[0063]
图7是本方明方法步骤4以及实施例1的相关领域专业人员校订流程图。
具体实施方式
[0064]
为了使本发明的目的,技术方案及优点更加清楚明白,以下结合附图通过具体实施例,对本发明进一步详细说明。应当理解,此处所描述的具体实施例,仅仅用以解释本发明,并不用于限定本发明。
[0065]
实施例1
[0066]
本实施例描述了本发明所述一种基于对比学习的长文本语义相似度计算方法的具体实施。
[0067]
如图1所示,相似度计算模块依托于数据库构建模块和人工修正模块,该方法适合任何需要进行相似度计算的领域;以定密领域为例介绍该基于对比学习的语义相似度计算方法。
[0068]
表1领域数据表
[0069]
序号字段名类型说明1idint文章在领域数据库中的标识2theme_domainvarchar(4096)文章各段落主题3title_domainvarchar(1024)文章各标题4key_prases_domainvarchar(1024)文章核心短语
[0070]
表2通用数据表
[0071]
序号字段名类型说明1idint文章在通用数据库中的标识2theme_commonvarchar(4096)文章各段落主题3title_commonvarchar(1024)文章各标题4key_prases_commonvarchar(1024)文章核心短语
[0072]
其中数据库构建模块主要是构建领域数据库和通用数据库,领域数据库中的结构化数据表如表1所示,通用数据库中的结构化数据表如表2所示,分别由文章各段落主题、文章标题、文章关键短语三个字段组成;首先,通用数据库的构建通过网络爬虫从微博、中国裁判文书网、知乎爬取和定密领域相关的数据,由于保密的性质,其相关文本不会出现在开放网络,因此可将上述爬取的数据全部作为通用数据语料,通过步骤1)所述标题、短语、主题提取算法拆解篇章结构信息按照表2所述数据表结构存储在领域数据库中;至此通用领域数据库初始化构建完毕,领域数据库在当前选定的领域是指定密数据库,使用人员或单位可以将自身判定为涉密的文章作为领域数据库中的资源,并通过步骤1)所述标题、短语、主题提取算法拆解篇章结构信息按照表1所述数据表结构存储在领域数据库中,至此,定密数据库构建完毕;
[0073]
数据库构建完毕之后按照步骤2-1)所述分别构建等量正负样本,并将数据输入到如图5所示的训练模型结构图中,按照步骤2-2)所示的训练过程和公示更新模型参数,经过监督训练的模型其高纬度语义空间能更好的区分正样本和负样本,进而区分涉密文本和通用非涉密文本,至此,模型训练阶段结束。
[0074]
模型训练完毕之后其推理准确率得到的大幅的提升,对于需要定密的文章先经过文本预处理和数据清洗,并按照步骤3-1)所述得到文章的标题、主题、短语,再按照步骤3-2)和图6所示模型结构进行预测,获得当前文本和涉密文本的相似度打分,之后按照步骤3-3)执行上述过程,获得打分平均值作为当前文本的最终相似度打分。
[0075]
深度模型拟合文本的能力虽强,但是需要大量有标注且标注准确的数据作为训练数据才能充分发挥其效果,因此在获得相似度计算打分之后,需要进行步骤4),并按照图7所示流程对当前文本的涉密相关性分数进行评估和校订,并将确定的涉密文本重新加入涉密数据库,作为步骤5的数据源;为了近一步提升模型相似度计算的准确性和减少人工干预,按照步骤五所述,在一定时期或者定密数据库数据量达到一定阈值时,需要重新对模型进行训练,该方法保证了模型的泛化能力,使其达到了在线学习的效果。
[0076]
以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。
技术特征:1.一种基于对比学习的长文本语义相似度计算方法,其特征在于:包括如下步骤:步骤1、对需要进行文本语义评价的领域,分别建立领域数据库和通用数据库;首先将主题、短语、文章段落标题等类别分别加入到数据库包含的数据表对应的字段中;其次,建立通用数据库,作为领域数据库的对比数据,通用数据要求包含少量的领域信息,同时在语义上又是领域无关的数据;其数据构建方法是通过爬虫技术从知乎、微博、裁判文书网上抓取文章信息,将抓取且清洗后的三种篇章结构信息作为主题字段、短语字段、标题字段加入通用数据库中;步骤2、使用bigbird预训练语言模型,针对长文本信息采用多输入结构进行共享参数训练,包括以下步骤:步骤2-1、基于通用数据库、领域数据库中的数据构建用于训练的句子对数据。数据包含短语、标题、主题等字段信息,具体包括如下子步骤:步骤2-1-1、构建正样本,具体采用公示(1)构建:[cls]领域数据库id=x对应的y字段[sep]领域数据库id!=x对应的y字段[sep];(1)其中x指领域数据库中的id字段值,y表示文章x对应id下的短语、标题、主题等字段信息;同一数据库中的数据构建句子对,作为训练数据的正样本;步骤2-1-2、构建负样本,具体采用公示(2)构建:[cls]领域数据库id=x对应的y字段[sep]通用数据库id=z对应的y字段[sep];(2)其中x指领域数据库中的id字段值,z指通用数据库中的id字段值,y表示文章x或文章z对应id下的短语、标题、主题等字段信息;不同数据库中的数据构建句子对,作为训练数据的负样本;其中,id=x在同一条正负样本中应该是相同的;步骤2-1-3、构建样本对,按照步骤2-1-1)中构建正样本的方式,由短语、主题、标题三种篇章结构信息形成了正样本的一条数据,同理、按照步骤2-1-2) 中构建负样本的方式形成一条负样本数据,按照正样本标签为1,负样本标签为0,构建出一条句子对训练数据;步骤2-2、将句子对数据按照批次分别输入到bigbird预训练语言模型中进行训练,整个过程三种篇章结构信息同时输入到模型,并且在训练过程中共享模型参数,模型的损失公式由多部分构成,具体包括以下子步骤:步骤2-2-1、采用句子对任务进行训练,首先引入对比学习损失函数,具体采用公式(3)构建:其中,n表示一次输入到模型的数据量,h
i
,表示正样本,表示领域数据库中的其他正样本,表示通用数据库中的数据,作为负样本存在;步骤2-2-2、句子对任务,不仅引入对比学习损失函数,而且要从多维角度学习正负样本之间的差异,引入hinge loss作为第二损失,具体采用公式(4)构建:hinge=0.1+prob-‑
prob
+
ꢀꢀꢀꢀꢀ
(4)其中prob
+
指正样本经过模型得到的概率打分,该打分反映出样本在深层网络中得到的
语义表示和领域内容的贴合程度;prob-指负样本经过模型得到的打分;hinge是模型需要反向传播的损失,模型需要融合该损失来更新网络参数;步骤2-2-3、由于数据分类为领域数据和通用数据,领域数据库的内容标签属性为1,相反通用数据库中的数据标签为0,具体采用公式(5)构建:y=target
tag-prob
tag
ꢀꢀꢀꢀꢀꢀ
(5)其中,tag为+或-,用来区分正样本和负样本,其中target
+
=1,target-=1;步骤2-2-4、通过步骤2-2-1)、步骤2-2-2)、步骤2-2-3)可以加权得到总损失,总损失是用来传递给模型更新网络参数的关键部分,具体采用公式(6)计算:total=f(i)*a+hinge+y*λ
ꢀꢀꢀ
(6)其中,a表示对比学习损失的加权值,经过试验a取30~36之间模型收敛效果最佳,λ表示分类损失,经过试验λ取值在0.9-0.12之间模型效果最佳;将训练数据输入bigbird预训练语言模型进行微调训练,并依据多任务损失反向传播更新模型参数,让模型更优的解决目标函数提出的问题;步骤3)使用步骤2)训练好的模型,针对待评价长文本进行预处理,输入模型之后获得和当前领域文本的领域相似度打分,包括以下子步骤:步骤3-1)预处理待评价文章,首先使用格式解析获取当前文本的标题信息、使用lda方法获取主题信息、使用tf-idf获取关键词信息;并按照步骤2-1-2)所示构建负样本的方式构建测试数据,其中待预测数据作为通用数据库中的数据存在,领域数据随机从领域数据库中选择;样本预测的输入格式是单样本形式,与训练输入样本对的结构不同;待评价文章转化为标准输入样本格式之后,进行如下步骤;步骤3-2、将数据输入步骤2训练后的模型,经过模型对文本信息分词转化,并在高维空间进行向量表示之后,通过模型的门控单元对短语、主题、标题等各个字段的权重信息进行拟合,门控单元采用transformer结构,对于多字段复杂的权重信息拟合效果更佳;输入样本经过门控单元之后获得了与领域文本的相似度打分;步骤3-3、步骤3)基于领域数据库中不同文章数据打分次数是否大于等于10次,若是,则求出打分的平均值,执行之后步骤;若不是则更换参与匹配的领域数据并转步骤3)继续执行;步骤4、专业领域人员校订和领域相关文章入库为实现长文本在线语义相似度计算,需要对已进行模型预测并获得打分的数据进行人工修正,将打分较高并且人工选中的数据对应的各个字段信息加入到领域数据库中;步骤5、调用上代模型,持续学习,提升模型效果冷启动的高准确率领域数据是有限的,模型拟合效果也因此受限,因此需要根据可用领域数据量定期对模型进行训练。2.根据权利要求1所述的一种基于对比学习的长文本语义相似度计算方法,其特征在于:所述步骤4具体包括以下子步骤:步骤4-1、首先对于获得打分的文章判断其打分是否高于0.8,若是,则直接通过人工进行去躁并将其对应的字段数据加入领域数据库,结束步骤4)并进入下一步骤,若小于等于0.8且大于0.6则进入如下步骤;
步骤4-2、对于其他步骤中传来的数据,经过人工挑选阶段,经过人工再次确认当前文章是否属于领域数据;若是,则人工进行去躁并将其对应的字段数据加入领域数据库,否则直接将该数据完全遗弃,入库数据为空,并转如下步骤;步骤4-3、对于打分小于等于0.8且未经过步骤4-2)的数据,首先判断其打分是否大于0.5,若是则直接进行关键词过滤,将非领域信息直接移除,并转步骤4-2、进行处理;若打分小于等于0.5,则该文章经过模型和人工判断之后,不属于相关领域的文章,直接加入通用数据库,用来提升之后在线学习训练时样本的复杂度。3.根据权利要求1所述的一种基于对比学习的长文本语义相似度计算方法,其特征在于:所述步骤5具体包括以下子步骤:步骤5-1、统计领域数据库中的数据量,若数据量小于之前的两倍,则停止,否则转如下步骤;步骤5-2、使用全新的领域数据,转步骤2)进行训练。
技术总结本发明公开了一种基于对比学习的长文本语义相似度计算方法,属于人工智能、自然语言处理技术领域。本发明主要解决的技术问题为小样本场景下长文本语义匹配问题。首先通过爬虫、人工采集手段构建通用、领域数据库。其次使用领域数据库和通用数据库中包含的主题、标题、关键短语等篇章结构信息构建模型,通过有监督的文本表示学习方法对比学习进行训练。最后使用该模型对待评价文本进行预测来获得相似度打分,经过人工修正模块对该语义打分进行修正,并决定是否将该文本加入领域数据库进一步扩大训练资源。定期使用领域资源库更新模型,实现小样本下高精度语义相似度计算。实现小样本下高精度语义相似度计算。实现小样本下高精度语义相似度计算。
技术研发人员:王彦浩 张华平 商建云
受保护的技术使用者:北京理工大学
技术研发日:2022.03.29
技术公布日:2022/7/5