CN114398900A - 一种基于RoBERTa模型的长文本语义相似度计算方法 - Google Patents
一种基于RoBERTa模型的长文本语义相似度计算方法 Download PDFInfo
- Publication number
- CN114398900A CN114398900A CN202111569003.3A CN202111569003A CN114398900A CN 114398900 A CN114398900 A CN 114398900A CN 202111569003 A CN202111569003 A CN 202111569003A CN 114398900 A CN114398900 A CN 114398900A
- Authority
- CN
- China
- Prior art keywords
- similarity
- texts
- roberta
- model
- semantic similarity
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Artificial Intelligence (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Bioinformatics & Cheminformatics (AREA)
- Evolutionary Computation (AREA)
- Evolutionary Biology (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Bioinformatics & Computational Biology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- Machine Translation (AREA)
Abstract
本发明提出了一种基于RoBERTa模型的长文本语义相似度计算方法,所述方法包括以下步骤:进行数据预处理,首先对两个文本进行分词,然后过滤掉停用词,再将过滤后的词进行合并,最后将两个文本按照标点符号进行分句;构建基于RoBERTa的句子语义相似度计算的模型;训练和评估基于RoBERTa的句子语义相似度计算的模型;使用基于RoBERTa的句子语义相似度计算的模型,求解两个文本的分句计算相似度而得的相似度矩阵;求出相似度矩阵每行或每列最大值构成的最大相似度向量;计算最大相似度向量各元素的平均值,即为两个文本的语义相似度。采用该基于RoBERTa模型的长文本语义相似度计算方法,能够计算任意长度的文本之间的相似度,从而可以从数据库中检索出与已知文本最相关的文档。
Description
技术领域
本发明涉及一种基于RoBERTa模型的长文本语义相似度计算方法,属于自然语言处理领域。
背景技术
语义相似度计算是人工智能自然语言处理领域的基础任务之一,是文本查重、智能问答、搜索引擎等上层应用的基础支撑技术。语义相似度意在对于给定的两个文本,从语义的角度度量二者之间的相似性,通常会给出一个0到1之间的语义相似度分值,分值越高代表二者越相似。
现有的语义相似度方案有的基于字面进行计算,无法考虑语义上的相似性;有的方案基于Word2Vec等静态词向量计算语义相似度,无法考虑一词多义的情况;由于需要先进行分词,可能存在分词错误的情况,导致语义相似度计算的精确度较低。一个更重要的问题是,目前计算语义相似度的方法基本都是对词语或句子进行计算,很少会针对长篇文本进行计算。本发明基于上述问题进行了全面的改进,可以较准确地计算出长文本之间的相似度。
发明内容
本发明提出一种基于RoBERTa模型的长文本语义相似度计算方法。本发明的目的在于提供一种计算任意长度的文本之间的相似度的方法,从而可以从数据库中检索出与已知文本最相关的文档。
本发明技术方案如下:
进行数据预处理,首先对两个文本进行分词,然后过滤掉停用词,再将过滤后的词进行合并,最后将两个文本按照标点符号进行分句;
构建基于RoBERTa的句子语义相似度计算的模型;
训练和评估基于RoBERTa的句子语义相似度计算的模型;
使用基于RoBERTa的句子语义相似度计算的模型,求解两个文本的分句计算相似度而得的相似度矩阵;
求出相似度矩阵每行或每列最大值构成的最大相似度向量;
计算最大相似度向量各元素的平均值,即为两个文本的语义相似度。
本发明的有益效果为:语义相似度意在对于给定的两个文本,从语义的角度度量二者之间的相似性,给出一个0到1之间的语义相似度分值,分值越高代表二者越相似。本发明针对目前此类问题的解决方案中出现的问题,如只基于字面而未语义相似性、没有考虑一词多义、分词错误、基本没有针对长篇文本进行计算相似度的方案,提出了自己的求解方案,可以较准确地计算出长文本之间的相似度。
附图和附表说明
图1为本发明的算法整体流程图;
图2为数据预处理的流程图;
图3为Transformer模型的结构图;
图4为BERT模型预训练和微调的结构图;
图5为基于RoBERTa的句子语义相似度计算的模型图。
图6为基于RoBERTa的句子语义相似度计算的模型评估结果。
图7为两个文本的相似度矩阵示意图。
具体实施方式
下面将会描述该算法的思路,并给出算法的具体步骤。
步骤一:数据预处理
进行数据预处理,可以有效地去除掉文本中的无关信息,提高有效信息所占的比例,从而提高句子相似度计算的准确性。
在本发明中,数据预处理的步骤如下:首先对两个文本进行分词,然后过滤掉停用词,再将过滤后的词进行合并,最后将两个文本按照标点符号进行分句。具体的停用词可以通过分析语料来确定。
步骤二:构建基于RoBERTa的句子语义相似度计算的模型
2.1Transformer和BERT
在介绍RoBERTa模型之前,需要先介绍其基础的模型Transformer和BERT。与基于RNN的方法相比,Transformer不需要循环,而是并行处理序列中的所有单词或符号,同时利用自注意力机制将上下文与较远的单词结合起来。通过并行处理所有单词,并让每个单词在多个处理步骤中注意到句子中的其他单词。 Transformer的训练速度比RNN快很多,而且处理许多自然语言处理任务的效果也比RNN好得多。Transformer模型的结构图见图3。
BERT包含了两层双向Transfomer模型,仍然用多头注意力层作为其核心处理层。训练分为两个步骤:预训练(pre training)和微调(find-tuning)。预训练是为了在输入的词向量中融入上下文特征;微调是为了使BERT模型能适应不同的下游任务,包括分类、问答、序列标注等。经过预训练后的BERT模型,可以直接通过微调的方式用在各种具体的NLP任务中。两个步骤的结构图见图4。
BERT模型用两个无监督子任务训练出了两个子模型,它们分别是:遮蔽语言模型(Masked Language Model,MLM)和下一句预测(Next Sentence Prediction, NSP)模型。MLM模型的原理是先把待预测的子词抠掉,再根据上下文中提供的其他非屏蔽子词来预测被屏蔽子词的原始值。NSP模型的原理是输入一句话,让模型预测其下一句话。
2.2 RoBERTa模型
RoBERTa模型是人们在对原始BERT模型预训练的研究中,通过评估超参数调整和训练集大小的影响,针对其不足之处进行改进而得来的。RoBERTa模型与BERT模型一样,都属于预训练模型。不同的是,RoBERTa模型使用了更多的训练数据、更久的训练时间和更大的训练批次,对超参数和训练集也有修改,具体包括:
1.动态掩码:使用动态掩码策略(Dynamic Masking)的预训练过程,需要依赖随机掩盖和预测被掩盖的子词。RoBERTa模型为每个输入序列单独生成一个掩码,让训练的数据不重复。而在BERT模型的MLM子模型中,只执行一次随机掩盖和替换,并在训练期间保存这种静态掩码策略,使得每次都使用相同掩码的训练数据,从而影响了数据的多样性。
2.训练数据:RoBERTa使用了160GB的训练数据,远超BERT所使用的16GB 的训练数据,具体包括:书籍文本及英文维基百科的文本,即BERT使用的 16GB训练集;2016年9月至2019年2月爬取的630万篇英文新闻稿的文本,共计75GB;从Reddi的高赞URL上爬取的网页文本,删除HTMIL标签后共计38GB;取自CommonCrawl数据集的一个故事集合,共计31GB。
3.取消了BERT模型中的NSP(下一个句子预测)子任务。经过RoBERTa模型和XLNet模型的验证,NSP子任务在BERT模型的预训练过程中是可以去掉的。
4.调整了优化器的参数。
5.使用了更大的字符编码(Byte-Pair Encoding,BPE),它是“字符”级和“单词”级表示的混合体,可以处理自然语言语料库中常见的大词汇,避免训练数据出现更多的“[UNK]”标识而影响预训练模型的性能。如果在BERT模型的自带字典vocab.txt中找不到某个字或者英文单词,则将其用“[UNK]”表示。
2.3基于RoBERTa的句子语义相似度计算的模型
其原理简单来说就是将需要计算相似度的两个句子先拼接在一起,然后通过RoBERTa模型获取整体的编码信息,接着通过全连接层,输出相似和不相似的概率。模型结构图见图5。
首先要将文本token化,切分成字数组,例如[如何得知关闭借呗],[想永久关闭借呗]。然后将两个切分后的句子,按照如下的方式拼接:[CLS]如何得知关闭借呗[SEP]想永久关闭借呗[SEP]。
拼接后的句子中,[CLS]是一个特殊分隔符,表示每个样本的开头,[SEP]是样本中每个句子的结束标记符。拼接后的样本长度是len(A)+len(B)+3,因为加上了特殊标识符[CLS]和[SEP]。在模型中,会指定最大样本长度LEN,本次实验中指定的是30,也就是处理后的样本长度和不能超过LEN,即len(A)+len(B)+3 <=LEN,超出最大长度的部分会被截取。
然后继续对输入数据进行处理,将内容数字化。将token数组转化为token的索引数组,所有的样本会被转化为固定长度(LEN)的索引数组。[CLS]的索引是101,[SEP]的索引是102,不够最大样本长度的部分补0。接着对输入进行mask 操作,样本有效部分是1,无效部分是0,0表示在训练时不会被关注。再对两个句子进行分割,分割操作是通过一个数组来标记,属于第一个句子标记为0,属于第二个句子的标记为1,不足部分也填0。
使用已经训练好的RoBERTa模型对句子对进行编码时,因为RoBERTa中双向Attention机制,两个句子会相互Attention,也就是通过训练会学到两个句子的相似程度。将句子对通过RoBERTa预训练模型计算之后,获取两个句子的的最终编码。然后对其进行0.1的Dropout,主要是为了防止模型过拟合,Dropout 后的结果后边接一层全连接层,全连接层的输出维度为2,然后通过softmax计算,得到相似和不相似的概率。
步骤三:训练和评估基于RoBERTa的句子语义相似度计算的模型
构建好模型以后,使用LCQMC数据集进行训练和评估。LCQMC(Large- scaleChinese Question Matching Corpus)是一个大型中文问题匹配语料库。问题匹配是是从现有数据库中搜索与输入问题具有相似意图的问题。LCQMC更多的关注在intent matching(意图匹配)而不是paraphrase(短语)方面。
LCQMC构建的方式是先针对不同的领域从百度问答中抽取高频的相关问题,然后通过Wasserstein distance进行初步筛选,最后人工进行标注。数据集一共有 260,068对标注结果,分为三部分,即包含238,766个问题对的训练集、包含 8,802个问题对的验证集和包含12,500个问题对的测试集。输入是两个句子,输出是0或1,其中0代表语义不相似,1代表语义相似。例如:聊天室都有哪些好的[分隔符]聊天室哪个好[分隔符]1;飞行员没钱买房怎么办?[分隔符] 父母没钱买房子[分隔符]0。
首先使用包含238,766个问题对的训练集训练基于RoBERTa的句子语义相似度计算的模型。接着使用包含8,802个问题对的验证集来评估模型的优劣,评估结果见图6,可以看到准确率达到了85%以上。
步骤四:求相似度矩阵
训练好基于RoBERTa的句子语义相似度计算的模型以后,即可使用其求解两个文本的各分句之间相似度,从而得到相似度矩阵。
定义文本T1包含m个句子(S11,S12,…,S1m),文本T2包含n个句子(S21,S22,…, S2n)。将这m个句子(S11,S12,…,S1m)与n个句子(S21,S22,…,S2n)分别使用步骤三得到的模型,即可得到m×n个相似度,构成如图7所示的相似度矩阵。
步骤五:求最大相似度向量
相似度矩阵每行或每列最大值,对应的是该行或该列所在句子在另一篇文本中最相似的句子。举个例子,假如simm1是第一列最大值,则文本T2的句子S21在文本T1中最相似的句子是S1m。
求出相似度矩阵每行或每列最大值构成的向量,即为两个文本分句之间最大相似度构成的向量。
步骤六:求出两个长文本的语义相似度
两个文本分句之间最大相似度构成的向量,即最大相似度向量的各元素平均值,即为两个文本的语义相似度。
本发明未尽事宜为公知技术。
上述实施例只为说明本发明的技术构思及特点,其目的在于让熟悉此项技术的人士能够了解本发明的内容并据以实施,并不能以此限制本发明的保护范围。凡根据本发明精神实质所作的等效变化或修饰,都应涵盖在本发明的保护范围之内。
Claims (4)
1.一种基于RoBERTa模型的长文本语义相似度计算方法,其特征在于,包括:
步骤一,进行数据预处理,首先对两个文本进行分词,然后过滤掉停用词,再将过滤后的词进行合并,最后将两个文本按照标点符号进行分句;
步骤二,构建基于RoBERTa的句子语义相似度计算的模型;
步骤三,训练和评估基于RoBERTa的句子语义相似度计算的模型;
步骤四,使用基于RoBERTa的句子语义相似度计算的模型,求解两个文本的分句计算相似度而得的相似度矩阵;
步骤五,求出相似度矩阵每行或每列最大值构成的最大相似度向量;
步骤六,计算最大相似度向量各元素的平均值,即为两个文本的语义相似度。
2.如权利要求1所属方法,其特征在于,步骤一的数据预处理,首先对两个文本进行分词,然后过滤掉停用词,再将过滤后的词进行合并,最后将两个文本按照标点符号进行分句。使用此方法可以有效地去除掉文本中的无关信息,提高有效信息所占的比例,从而提高句子语义相似度计算的准确性。
3.如权利要求1所属方法,其特征在于,步骤二和步骤三使用基于RoBERTa的句子语义相似度计算的模型。RoBERTa是在BERT模型的基础上进行改进的,在文本理解方面具有更出色的效果。进行训练时采用的数据集为LCQMC(Large-scale Chinese Question MatchingCorpus)。LCQMC是一个大型中文问题匹配语料库,更多地关注在意图匹配而不是短语方面,拥有包含238,766个问题对的训练集、包含8,802个问题对的验证集和包含12,500个问题对的测试集。
4.如权利要求1所属方法,其特征在于,步骤四到步骤六使用基于RoBERTa的句子语义相似度计算的模型,求解两个文本的分句计算相似度而得的相似度矩阵,将相似度矩阵每行或每列最大值的平均值作为两篇文本之间的相似度。以此方法,两篇长文本之间的相似度的求解,便转化为寻找分句的最相似的句子。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111569003.3A CN114398900A (zh) | 2021-12-21 | 2021-12-21 | 一种基于RoBERTa模型的长文本语义相似度计算方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111569003.3A CN114398900A (zh) | 2021-12-21 | 2021-12-21 | 一种基于RoBERTa模型的长文本语义相似度计算方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114398900A true CN114398900A (zh) | 2022-04-26 |
Family
ID=81226848
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111569003.3A Pending CN114398900A (zh) | 2021-12-21 | 2021-12-21 | 一种基于RoBERTa模型的长文本语义相似度计算方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114398900A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115599892A (zh) * | 2022-12-15 | 2023-01-13 | 中国人民解放军国防科技大学(Cn) | 面向社交网络数据的语义搜索方法 |
CN116050375A (zh) * | 2022-11-23 | 2023-05-02 | 广东铭太信息科技有限公司 | 政策文件相似度比较方法、装置、系统及电子设备 |
-
2021
- 2021-12-21 CN CN202111569003.3A patent/CN114398900A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN116050375A (zh) * | 2022-11-23 | 2023-05-02 | 广东铭太信息科技有限公司 | 政策文件相似度比较方法、装置、系统及电子设备 |
CN116050375B (zh) * | 2022-11-23 | 2024-01-30 | 广东铭太信息科技有限公司 | 政策文件相似度比较方法、装置、系统及电子设备 |
CN115599892A (zh) * | 2022-12-15 | 2023-01-13 | 中国人民解放军国防科技大学(Cn) | 面向社交网络数据的语义搜索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111931506B (zh) | 一种基于图信息增强的实体关系抽取方法 | |
CN111737496A (zh) | 一种电力设备故障知识图谱构建方法 | |
CN110134946B (zh) | 一种针对复杂数据的机器阅读理解方法 | |
CN112733533B (zh) | 一种基于bert模型及文本-图像关系传播的多模态命名实体识别方法 | |
CN106599032B (zh) | 一种结合稀疏编码和结构感知机的文本事件抽取方法 | |
CN110020438A (zh) | 基于序列识别的企业或组织中文名称实体消歧方法和装置 | |
WO2022141878A1 (zh) | 端到端的语言模型预训练方法、系统、设备及存储介质 | |
CN109271524B (zh) | 知识库问答系统中的实体链接方法 | |
CN115392259B (zh) | 一种基于对抗训练融合bert的微博文本情感分析方法及系统 | |
CN112183094A (zh) | 一种基于多元文本特征的中文语法查错方法及系统 | |
CN114398900A (zh) | 一种基于RoBERTa模型的长文本语义相似度计算方法 | |
CN115146629A (zh) | 一种基于对比学习的新闻文本与评论相关性分析方法 | |
CN114818717A (zh) | 融合词汇和句法信息的中文命名实体识别方法及系统 | |
CN116756303A (zh) | 一种多主题文本摘要自动生成方法及系统 | |
CN116821168A (zh) | 一种改进的基于生成式大语言模型的nl2sql方法 | |
CN114757184A (zh) | 实现航空领域知识问答的方法和系统 | |
CN116522165B (zh) | 一种基于孪生结构的舆情文本匹配系统及方法 | |
CN112632272A (zh) | 基于句法分析的微博情感分类方法和系统 | |
CN111985223A (zh) | 一种基于长短记忆网络和情感词典结合的情感计算方法 | |
CN111178080A (zh) | 一种基于结构化信息的命名实体识别方法及系统 | |
CN116340507A (zh) | 一种基于混合权重和双通道图卷积的方面级情感分析方法 | |
CN115630140A (zh) | 一种基于文本特征融合的英语阅读材料难度判断的方法 | |
CN115017404A (zh) | 基于压缩空间句子选择的目标新闻话题摘要方法 | |
CN114238649A (zh) | 一种常识概念增强的语言模型预训练方法 | |
CN112597771A (zh) | 基于前缀树合并的中文文本纠错方法 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |