一种基于RoBERTa模型的长文本信息立场检测方法

文档序号:31833037发布日期:2022-10-18 19:39阅读:440来源:国知局
一种基于RoBERTa模型的长文本信息立场检测方法
一种基于roberta模型的长文本信息立场检测方法
技术领域
1.本发明涉及深度学习和自然语言处理领域,具体涉及一种基于roberta模型的长文本信息立场检测方法。


背景技术:

2.移动互联网与社交媒体的快速发展,为信息传播创造了良好环境。一方面,新闻的生产与传播门槛大大降低,使传播途径多元化、内容多样化,人们能获取的信息更加丰富;另一方面,自媒体的崛起使新闻质量良莠不齐,各种博人眼球的假新闻、反转新闻、谣言等信息大肆传播,一定程度上冲击了官方和传统媒体的影响力。基于证据的新闻事实核查,其目的在于辨别真假新闻,拉近人们与新闻事实之间的距离。作为新闻事实核查的子任务,立场检测常涉及到两个数据集:作为证据的长文本,以及待检查的、作为声明的短文本。
3.立场检测本质上是一种文本分类问题。目前,解决该问题的主流方法包括:
4.(1)基于支持向量机(support vector machine,svm)、朴素贝叶斯等模型的传统机器学习方法;
5.(2)基于循环神经网络(recurrent neural network,rnn)、文本卷积神经网络(text convolutinal neural network,textcnn)等模型的深度学习方法;以及
6.(3)基于bert(bidirectional encoder representations from transformers) 等大规模预训练模型的深度学习方法。
7.由于立场检测模型需具有捕获语义层面信息的能力,相较于方法(1)(2),利用bert等深层预训练模型可在短文本领域取得更优秀的效果。然而,实际应用中的文本长度往往较长,超出bert模型支持的最大文本长度(512个词)。作为bert模型的改进版本,roberta(a robustly optimized bert)模型依然对文本长度做出了相同限制。因此,新闻事实核查中的立场检测任务主要面临以下三个挑战:
8.(1)对输入的长文本进行预处理时,大多使用截断法,包括头截断、尾截断、中间截断等,容易导致文本信息的缺失;
9.(2)由于bert模型基于多层注意力机制,文本长度的增加导致远程注意力不足,使模型对全局信息的融合产生偏差;
10.(3)文本过长的文档包含大量噪声,而远程注意力不足可导致关键句周围的短程噪声被赋予更高权重,最终影响模型精度。
11.因此,设计一种有效利用长文本信息的立场检测方法,是事实核查任务目前亟待解决的技术问题。


技术实现要素:

12.本发明解决的技术问题,是如何充分利用证据文档的全局信息,进行长文本信息立场检测,包括(1)突破roberta模型对文本长度的限制;(2)设计一种有效的全局信息融合方法;以及(3)设计一种有效的关键证据句标记方法。
13.本发明所采用的具体技术方案如下:
14.一种基于roberta模型的长文本信息立场检测方法,该方法将待检测的证据文档和声明句,输入已预先训练的立场检测模型中,对声明的真假进行预测;
15.其中,所述立场检测模型由编码器层、层次注意力机制层、关键句标记层和分类层组成,其中层次注意力机制层包括词(word)级别注意力机制和句(sentence) 级别注意力机制;首先,对拼接后的证据文档和声明句进行分词并转换,得到词索引;对所有词索引构成的索引序列进行带重叠的分割,得到一系列索引片段,将其输入编码器层;在编码器层,使用roberta模型对每个索引片段进行编码,得到词向量;对词向量去除重叠部分后进行重新拼接,得到证据文档和声明句中每个句的词向量序列;然后,在层次注意力机制层,对声明句的词向量序列中的所有词向量进行平均融合,得到声明句向量,将其作为层次注意力机制的查询;对证据文档中每个分句的词向量序列进行词级别注意力机制加权融合,得到句向量;对证据文档中每个分句的句向量进行句级别注意力机制加权融合,得到证据文档向量;同时,在关键句标记层,将证据文档中每个分句的句向量标记为关键句或非关键句;对所有关键句的句向量进行加权融合,得到关键句加权平均向量;最后,将拼接后的关键句加权平均向量、证明文档向量和声明句向量输入分类层,输出声明真假的分类结果。
16.作为优选,所述立场检测模型的关键句标记层由bilstm和crf模块组成;将证据文档中所有分句的句向量作为序列输入bilstm模块,输出每个分句属于关键句或非关键句类别的分数;将该分数输入crf模块,输出证据文档中分句序列的关键句标记。
17.作为优选,当未标记所述证据文档的关键句时,基于self-training的半监督学习方法,对所述立场检测模型的关键句标记层中的bilstm和crf模块进行迭代训练;每一轮训练的关键句标记,由上一轮训练得到的立场检测模型预测输出,且第一轮训练仅将声明句作为关键句。
18.作为优选,所述索引序列在输入roberta模型进行文本编码前,需先进行等长分割,得到一系列索引片段;每个片段的长度均为roberta模型支持的最大输入长度(即512个词),且任意相邻两个索引片段均具有重叠部分。
19.作为优选,所述立场检测模型训练所采用的总损失为关键句标记层损失和分类层损失的加权和,其中关键句标记层所采用的损失函数为负对数似然损失,分类层所采用的损失函数为交叉熵损失函数。
20.作为优选,所述词级别注意力机制中,仅使用证据文档的词向量作为query、 value和key进行自注意力融合,得到自注意力句向量;同时,对声明句的词向量序列中所有词向量进行平均融合,得到声明句向量,以声明句向量作为query,以证据文档中每个分句的词向量序列作为key和value,进行外部注意力融合,得到外部注意力句向量。
21.作为优选,所述句级别注意力机制中,以声明句向量、自注意力句向量、外部注意力句向量,分别作为query,key,value进行注意力融合,得到证据文档向量。
22.作为优选,所述roberta模型为roberta-large模型,各词向量、句向量、文档向量均采用roberta-large的词向量默认输出维度,即1024维。
23.作为优选,所述分类层由全连接层和softmax层组成。
24.作为优选,所述softmax层输出代表声明真假程度的多分类结果。
25.相对于现有技术而言,本发明的有益效果如下:
26.本发明在长文本信息立场检测任务中引入基于文本切割的roberta模型,引入bilstm和crf模块用于标记关键证据句,同时引入基于self-training的半监督学习方法用于训练bilstm和crf模块。与原先传统立场检测技术相比,本发明依赖于文本分割的创新过程解决了roberta模型对文本长度的限制问题,使得roberta模型可以更加关注全局信息,避免了因长度限制而导致的局部信息丢失。而且依赖于bilstm和crf模块的关键句标记提高了模型的可解释性,同时抑制了长文本噪声对模型最终预测的干扰。
附图说明
27.图1为立场检测模型的构成模块示意图;
28.图2为立场检测模型的网络框架示意图;
29.图3为基于self-training的半监督学习方法示意图;
30.图4为实施例中的立场检测方法总流程图。
具体实施方式
31.为使本发明的上述目的、特征和优点更加明显易懂,以下结合附图对本发明的具体实施方式做详细说明,阐述具体细节以便于充分理解本发明。但是本发明能以多种不同于此描述的其它方式实施,本领域技术人员可在不违背本发明内涵的情况下做类似改进,因此本发明不受以下公开的具体实施例的限制。在没有相互冲突的前提下,本发明各个实施例中的技术特征均可进行相应组合。
32.在本发明的一个较佳实施例中,提供了一种基于roberta模型的长文本信息立场检测方法,将待检测的证据文档和声明句输入预先经过训练的立场检测模型中,对声明的真假进行预测。
33.其中,立场检测模型是一个预先构建并训练的网络模型,如图1所示,该立场检测模型由编码器层、层次注意力机制层、关键句标记层和分类层组成,其中层次注意力机制层包括词(word)级别注意力机制层和句(sentence)级别注意力机制层。待检测的证据文档和声明句输入该立场检测模型后,模型内部的具体流程如下述1)~4)所示:
34.1)首先,证据文档和声明句拼接后进行分词并转换为词索引,所有词索引构成的索引序列通过带重叠的分割后形成一系列索引片段,再输入编码器层中由 roberta模型对每个索引片段分别进行编码并得到词向量,再对得到的词向量去除重叠部分后重新拼接,得到证据文档和声明句中每一个句子的词向量序列。
35.需说明的是,roberta模型是bert模型的改进版本,其具体模型结构和原理属于现有技术,可参见https://arxiv.org/abs/1907.11692,对此不再具体介绍。
36.本发明的证据文档是长文本,其中包含一系列分句;声明句是短文本,一般仅包含一个句子。证据文档和声明句拼接后仍为长文本。编码器层用于对证据文档和声明句进行编码,获取长文本词向量。作为本发明实施例的一种较佳实现方式,roberta模型在进行文本编码前,需先将文本单词转换为可输入的索引,将索引序列在输入roberta模型进行文本编码前,需先等长分割为一系列索引片段(总段数记为n段),每段的长度均为roberta支持的最大输入长度即512,且任意相邻的两段索引片段均具有重叠部分。
37.作为本发明实施例的一种较佳实现方式,上述1)步骤的具体方法如下:将证据文
档和声明句进行拼接并分词,再转换为可输入模型的词索引。对所有词索引构成的索引序列有选择地分割,分割原则为:每个索引片段长度都为512,且相邻的两段索引片段具有重叠部分。例如:对于长度低于512的索引序列,不进行分割;对于长度512到1024之间的索引序列,分割为两个包含重叠部分的长度都为512的索引片段;对于长度1024到1536之间的索引序列,分割为3个长度都为512的索引片段;且分割时相邻两个索引片段均包含共同的重叠部分。将分割后的输入索引片段依次送入roberta模型进行编码,获得n段词向量编码。将n段词向量编码去除重叠部分并拼接,得到长文本的所有词向量编码w= [w1,w2,w3,

,wi,w
i+1
,

,wj],j为证据与声明句总长度,i为声明句的文本长度, i-j+1为证据文档长度。长文本的所有词向量编码w可按照证据文档和声明句中每一个句子进行划分,每个句子的词向量构成一个词向量序列,因此w可以表示为w=[w
1,1
,w
1,2
,

,w
2,1
,w
2,2


,w
n,m
],其中w
n,m
表示第n个句子中第m个词向量。
[0038]
作为本发明实施例的一种较佳实现方式,上述roberta模型可采用 roberta-large版本,因此本发明中的词向量、句向量、文档向量均采用 roberta-large的词向量默认输出维度,即1024维。
[0039]
2)然后,将声明的词向量序列中所有词向量进行平均融合,得到声明的句向量并作为层次注意力机制的查询,将证据文档中各分句的词向量序列经词级别注意力机制加权融合,分别得到证据文档中各分句的句向量,证据文档中各分句的句向量再经过句子级别注意力机制加权融合得到文档向量。
[0040]
需注意的是,层次注意力机制层包含了word和sentence两个级别的注意力机制,用于获取长文本的文档向量编码。其中,在两个级别进行注意力融合时,所用到的声明句向量c是以编码器层中输出的声明的所有词向量直接平均后得到的。层次注意力机制中,先将证据文档的词向量喂给word级别注意力层,获得注意力加权的句向量,证据文档中所有分句的句向量记为e=(e1,e1,e3,

,es), s为证据文档中句子总个数。优选的,可按照标点进行分句。获得证据文档中所有分句的句向量后,将各句向量再喂给句子级别注意力层,获得注意加权融合的证据文档向量。
[0041]
注意力机制的具体原理属于现有技术,包括自注意力和外部注意力两类。作为本发明实施例的一种较佳实现方式,word级别注意力机制中引入了自注意力和外部注意力,具体而言,仅用证据文档的词向量作为query、value和key进行自注意力融合,得到自注意力句向量;同时,将声明的词向量序列中所有词向量进行平均融合得到声明的句向量c,以声明的句向量作为query,以证据文档中各分句的词向量序列作为key和value,进行外部注意力融合得到外部注意力句向量。进一步的,句子级别注意力机制中,以声明的句向量c、自注意力句向量、外部注意力句向量,分别作为query,key,value进行注意力融合得到文档向量d。
[0042]
3)同时,证据文档中各分句的句向量通过关键句标记层后分别被标记为关键句或非关键句,将所有关键句的句向量进行加权融合得到关键句加权平均向量 s。
[0043]
作为本发明实施例的一种较佳实现方式,上述关键句标记层由bilstm模块和crf模块共同组成,用于对证据文档的每个句向量进行标记。将证据文档中所有分句的句向量作为序列输入bilstm模块,输出每个句子是关键句和非关键句两种类别的分数,再将该分数输入crf模块,输出证据文档中分句序列的关键句标记。crf模块中的关键句标记过程考
虑了证据文档所有句子序列,句序列的所有组合情况中分数最高的类别,作为对证据文档所有句子序列的标记。
[0044]
作为本发明实施例的一种较佳实现方式,所有关键句的句向量进行加权融合时,可以将关键句集合i中的句子向量经过一个普通的注意力层,从而融合为关键句的加权平均向量。
[0045]
4)最后,将关键句加权平均向量s、文档向量d和声明的句向量c进行拼接后输入分类层中,输出声明真假的最终分类结果。
[0046]
作为本发明实施例的一种较佳实现方式,上述分类层由全连接层加softmax 层组成。关键句加权平均向量、文档向量和声明的句向量拼接形成的拼接向量输入全连接层中进行全连接操作,然后通过softmax层输出声明真假的多分类概率。根据该多分类概率即可得到声明的真伪标签。需说明的是,softmax层可以输出声明为真和声明为假的二分类概率,也可以输出代表不同声明真假程度的多分类结果,例如可以将分类结果设置为六种:极度虚假(pants-fire)、虚假(false)、大部分虚假(barely-true)、半真半假(half-true)、大部分真实(mostly-true)、真实(true)。
[0047]
由此,本发明实施例中的立场检测模型整体框架如图2所示。
[0048]
需说明的是,上述立场检测模型在实际应用前,需要预先利用训练数据集进行训练。而且需特别注意的是,如果训练数据中的证据文档不包含关键句标记,则需采用self-training的方式,迭代训练关键句标记层中的bilstm和crf模块使其自动生成关键句。也就是说,在整个立场检测模型迭代训练过程中,关键句标记层中的bilstm和crf模块基于self-training的半监督学习方法迭代训练。每一轮训练的关键句标记由上一轮训练所得的立场检测模型进行预测输出,且第一轮训练时仅以声明句作为关键句。具体的self-training如图3所示,证据文档所有句子集合记为d,关键句集合记为i,未标记句集合记为n。初始证据文档中仅包含一个声明关键句,记为1,其余均为非关键句,记为0。在第二轮训练开始前,利用第一轮训练的立场检测模型,对n中所有句子进行预测,选择输出值为1的概率最大并大于阈值α的分句,加入关键句集合i。每一轮均选择前一轮训练得到的立场检测模型对分句进行预测的结果,作为下一轮训练的关键句真实值;直至模型达到预期效果或者所有未标记句被预测为关键句的概率小于阈值,迭代结束。
[0049]
需注意的是,关键句标记层中的bilstm和crf模块的self-training并非独立的,而是随着整个立场检测模型一并进行迭代训练的。整个立场检测模型在一轮迭代训练时,不仅要更新关键句标记层中的bilstm和crf模块的网络参数,也要更新roberta模型、全连接网络等模块中其他可学习部分的网络参数,但由于证据文档中的关键句未标记,因此需要在迭代过程中通过self-training逐轮更新关键句集合。因此,作为本发明实施例的一种较佳实现方式,上述立场检测模型训练所采用的总损失为关键句标记层损失和分类层损失的加权和,其中关键句标记层所采用的损失函数为负对数似然损失,分类层所采用的损失函数为交叉熵损失函数。整个立场检测模型训练至最大迭代轮数或者证据关键句不增加、验证集分类准确率不上升时结束训练,即可得到最终实际应用的立场检测模型。
[0050]
下面将上述实施例中所示的一种基于roberta模型的长文本信息立场检测方法应用于一个具体示例中,以展示其具体实现和技术效果。
[0051]
实施例
[0052]
本实施例中包含两个数据集:证据集e和声明集c。其中证据集为文档级文本,长度为200-1500词之间,声明集为有标签的句级短文本,来源于政治人物的发言或facebook等社交媒体上的用户帖文,长度为30词以内。证据集和声明集均来源于politifact网站。politifact是一个人工对国际政治新闻进行事实核查的网站。审查人员搜集证据并给出判定结果,将判定结果作为声明集标签,共包括六种:极度虚假(pants-fire)、虚假(false)、大部分虚假(barely-true)、半真半假 (half-true)、大部分真实(mostly-true)、真实(true)。
[0053]
需说明的是,原数据集的证据与声明并不是一一匹配的,需要在数据预处理阶段进行匹配。
[0054]
本实施例中实现长文本信息立场检测的总流程如图4所示,具体如下:
[0055]
1、数据预处理阶段
[0056]
本发明涉及两个数据集:长文本的证据集e’,短文本的声明集c’。其中声明集c’为有标签数据。
[0057]
步骤1,对证据集e’及声明集c’进行文本预处理,去除网址等与立场检测无关的信息,得到预处理后的证据集e和声明集c。
[0058]
步骤2,对声明集c中的每一条短文本的声明c_i,利用bm25算法对证据集e进行搜索,匹配最相关的一条证据e_i,c_i与e_i共同组成一条训练数据,所有的训练数据样本组成训练数据集t。
[0059]
2、模型构建
[0060]
构建立场检测模型。包括编码器层、层次注意力机制层、关键句标记层、分类层。其中层次注意力机制层包括word级别注意力层,sentence级别注意力层。
[0061]
具体构建过程如下:
[0062]
步骤1,roberta是bert模型的优化版本,用于获取词向量,采用 roberta-large版本,可将词编码为1024维词向量。文档的最大长度设置为1536 个单词。batch_sizes设为16,通过roberta层将每一批次文档编码为 [16,1536,1024]维的tensor。
[0063]
步骤2,层次注意力机制层包括:word级别的自注意力机制和sentence级别的自注意力机制,分别用于获得注意力加权的句子表示和文档表示。word级别注意力公式如下:si=∑jα
i,jwi,i
[0064]
其中:α
i,j
的值由线性层获取,w
i,j
为第i句的第j个词。si表示第i句的句子向量。
[0065]
sentence级别注意力实现为:hi=σjβ
i,jwi,j
,d=∑iλ
ihi
[0066]
其中β
i,j
与exp(s(c,w
i,j
))成正比,λi与exp(s

(c,hi))成正比,s,s

为双线性的评分函数,c为声明句向量表示,d为文档向量表示。
[0067]
步骤3,选择bilstm和crf模块,用于标记关键句。bilstm由两个lstm 组成:一个接收正向输入,另一个接收反向输入。bilstm改善了算法利用的上下文的方式,有效地增加了网络可用的信息量。crf是判别模块,设y为标记序列,x为句向量序列,求最有可能的标记序列:
[0068]
p(y|x)=exp(score(x,y))/σexp(score(x,y

))
[0069]
式中:score代表计算得分的函数;
[0070]
步骤4,选择全连接层和softmax函数作为分类器,将关键句加权平均向量 s、文档
向量d和声明的句向量c进行拼接后输入分类器中,输出拼接向量的分类概率。
[0071]
最终得到的立场检测模型如图2所示,各模块之间的数据处理流程如前所述,不再赘述。
[0072]
3、模型训练
[0073]
步骤1,将训练数据集t按照固定批量大小进行分批,总数为n*。
[0074]
步骤2,对一批次内的所有训练数据执行如下操作:按照标点分割为若干句,获取各分句的开始与结束位置,不保存分割形成的实际数据,仅记录每句的起始位置。
[0075]
步骤3,将证据文档的所有句子集合划分为关键句集合i,未标记集合n。初始时i仅包含声明句。
[0076]
步骤4,设置立场检测模型的总损失为关键句标记层损失和分类层损失的加权和,其中关键句标记层所采用的损失函数为负对数似然损失函数,分类层所采用的损失函数为交叉熵损失函数。将训练数据输入立场检测模型进行训练。每轮训练结束时,利用所得模型对未标记句子集合n进行预测,选择预测为关键句概率最大且大于阈值α的句子,从未标记集合n中删除,并添加到关键句集合i 中。
[0077]
步骤5,将关键句集合i作为新一轮句子标记任务的伪标签对立场检测模型进行训练。
[0078]
步骤6,不断迭代训练立场检测模型,直至达到最大迭代轮数,或者没有新的证据句子出现或验证集分类预测准确率不上升时结束训练,得到最终的立场检测模型。
[0079]
4、应用模型进行立场预测
[0080]
将测试集与证据集的证据文档和声明句作为输入通过训练完成的立场检测模型,最终softmax层预测得到声明属于真假类别的概率,从而实现文本立场检测。
[0081]
应用该模型进行立场检测的一个示例中,经bilstm和crf模块标记得到关键句标记如下:
[0082]
表1
[0083]
句序0123456789101112131415标记1100011101011111
[0084]
最终预测结果为:2,即大部分虚假(barely-true)。预测结果与真实值一致。可以看出本方法在进行立场检测时,能够在给出准确结果的同时,标记出相应关键证据句,降低了长文档的噪声影响,为模型推断提供了可解释性。依赖于文本分割的创新过程解决了roberta模型对文本长度的限制问题,使得roberta 模型可以更加关注全局信息,避免了因长度限制而导致的局部信息丢失。
[0085]
以上所述的实施例只是本发明的一种较佳的方案,然其并非用以限制本发明。有关技术领域的普通技术人员,在不脱离本发明的精神和范围的情况下,还可以做出各种变化和变型。因此凡采取等同替换或等效变换的方式所获得的技术方案,均落在本发明的保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1