一种基于共指消除的语言模型预训练方法技术领域
本发明涉及自然语言处理技术领域,尤其涉及一种基于共指消除的语言模型预训练方法。
背景技术
共指消解的任务是将文本中指代同一实体的表述(包括代词、命名实体、名词短语等)进行归类。目前,先进的端到端的神经网络共指消解模型均以词向量为输入,基于注意力模块获取跨度(span)表示,再对跨度对(span-pair)进行共指评分,从而实现共指消解。共指消解的实现需要利用上下文信息及世界知识进行推理,即需要先进的语言模型来获取语义更为丰富的词向量表示。Bert(Bidirectional Encoder Representations fromTransformer)是目前使用较多的语言模型,它通过对海量文本语料随机遮盖单词(本文主要针对英文语料,单词指的的英文中的一个word),基于Transformer算法框架预测被遮盖的词,然而这种预训练方式存在一些缺点。比如在句子“Harry Potter is a wonderfulwork of magic literature”中,如果只遮盖“Harry”,预测“Potter”是很容易的,这样模型学习到的“Harry Potter”词向量就无法包含“magic literature”这样的信息,即上下文信息不够丰富。尤其是在共指消解领域,需要更为丰富语义信息的语言表示来捕捉实体之间的关系。另外,共指消解任务中,由于代词本身语义薄弱,造成代词消解错误率较高,Bert的预训练方法对于代词的遮盖几率较低,对其进行消解时也需要更多外界知识,因此需要加强模型对于代词的学习。
Spanbert针对跨度级(span)的任务如知识问答、命名实体识别等提出了随机遮盖任意连续跨度的预训练方法,跨度长度服从L~Geo(0.2)的分布。
百度的ERNIE模型针对中文使用了一种三阶段的遮盖机制进行预训练,即basic-level、phrase-level、entity-level,这种单字、短语、实体粒度的层级递进,潜入了短语和实体知识,大大提高了语言模型的表示能力。然而,实际使用中发现ERNIE的这种预训练方式,在entity-level训练阶段会导致basic-level知识的遗忘,从而使模型词语表示能力有所下降。
因此,本领域的技术人员致力于开发一种基于共指消除的语言模型预训练方法。
发明内容
有鉴于现有技术的上述缺陷,本发明所要解决的技术问题是如何为英语的共指消除的语言模型预训练方法提供语义信息更为丰富的词向量,从而提高共指消解的预测精度。
人类学习语言的过程一般为先学习基本单词,然后学习短语,最后才应用到句子、篇章级任务。但由于神经网络语言模型的知识是以网络权重的形式存储,如果先训练单词,再训练短语,可能会存在遗忘字粒度信息的情况。因此,发明人提出根据当前函数损失自适应地训练不同粒度词块,同时针对共指消解中代词消解精度低的问题,增加语言模型对代词的训练。即在训练阶段,前20%的步数先采用word_learning模式学习单词信息,训练单词,后80%的步数根据损失自适应地选择word_learning模式训练单词或phrase_learning模式训练短语,两种模式采用不同损失函数。
本发明的一个实施例中,提供了一种基于共指消除的语言模型预训练方法,包括。
S100、数据预处理,通过字符串匹配提取语料中的代词,处理工具提取语料中命名实体、名词短语等,作为训练数据生成阶段的遮盖候选集合;
S200、训练数据生成,通过mask_word模式(即单词遮盖模式)和mask_phrase模式(即短语遮盖模式)进行遮盖处理,分别生成mask_word训练数据和mask_phrase训练数据:
S300、预训练,根据训练模式选择因子αt自适应地切换word_learning模式或phrase_learning模式进行训练。
可选地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S100包括:
S110、获取英文维基百科数据;
S120、提取语料中的代词,建立代词集合PronounSet;
S130、提取语料中所有命名实体,建立实体集合EntitySet;
S140、提取语料中的名词短语,并去掉与EntitySet重合的短语,得到名词短语集合NounPhraseSet。
进一步地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S100中提取工具为python自然语言处理工具包Spacy中的实体识别模块。
进一步地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S140使用Spacy中的名词短语提取模块。
可选地,在上述任一实施例中的基于共指消除的语言模型预训练方法中,步骤S200包括:
S210、将数据复制两份,分别命名为数据一和数据二;
S220、依据BERT的训练数据生成方式,对数据一和数据二中的文本创建训练实例,每个实例包括多个句子;
S230、数据一和数据二创建的实例分别采用mask_word模式(即单词遮盖模式)和mask_phrase模式(即短语遮盖模式)进行遮盖处理;
S240、生成mask_word训练数据,从数据一创建的实例中的句子中随机选取15%的单词放入CandidateSet1(遮盖候选词集合一),将CandidateSet1的每个单词以80%几率替换成“[MASK]”,10%几率保持使用其他随机单词进行替换,10%几率保持不变;
S250、生成mask_phrase训练数据,随机选取数据二创建的实例中的句子中的命名实体和名词短语,加入到CandidateSet2(遮盖候选集合二),将CandidateSet2中的每个词块以80%几率替换成“[MASK]”,10%几率保持使用其他随机单词进行替换,10%几率保持不变,每个词块中的所有词替换行为要一致,即同时替换或都保持不变。
进一步地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S220包括句子长度限制为128个英语单词,少于128的进行补齐处理,即补充英文单词到128,多于128的进行截断处理。
进一步地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S240中CandidateSet1中代词大约占三分之一,其余单词占三分之二,当代词总数不到三分之一时,用一般单词代替。
进一步地,在上述实施例中的基于共指消除的语言模型预训练方法中,步骤S250中CandidateSet2中选取的的命名实体和名词数占句子长度的15%,其中命名实体和名词短语各占50%。
可选地,在上述任一实施例中的基于共指消除的语言模型预训练方法中,步骤S300包括;在word_learning模式下,mask_word训练数据输入到BERT网络中对遮盖的单词进行预测,计算相应损失;在phrase_learning模式下,mask_phrase训练数据输入到BERT网络中对遮盖的短语进行预测,计算相应损失:
进一步地,在上述任一实施例中的基于共指消除的语言模型预训练方法中,步骤S300包括;
S310、预热训练,首先学习基本的单词,前20%训练步数,使用word_learning模式进行预热训练,并保存初始word_learning预测损失和初始phrase_learning预测损失
S302.自适应训练,后80%训练步数,根据选择因子αt决定第t+1步采用word_learning或phrase_learning模式训练,具体如下:
分别表示第t个训练步时,两种模式的损失,当αt>0时,第t+1步采用word_learning模式,否则采用phrase_learning模式继续训练。
本发明增加了对代词、短语、实体的语义训练,并且自适应切换学习模式,增强了模型的语义表示能力,更好地适用于共指消除任务。
以下将结合附图对本发明的构思、具体结构及产生的技术效果作进一步说明,以充分地了解本发明的目的、特征和效果。
附图说明
图1是图示根据示例性实施例的基于共指消除的语言模型预训练方法流程示意图。
具体实施方式
以下参考说明书附图介绍本发明的多个优选实施例,使其技术内容更加清楚和便于理解。本发明可以通过许多不同形式的实施例来得以体现,本发明的保护范围并非仅限于文中提到的实施例。
在附图中,结构相同的部件以相同数字标号表示,各处结构或功能相似的组件以相似数字标号表示。附图所示的每一组件的尺寸和厚度是任意示出的,本发明并没有限定每个组件的尺寸和厚度。为了使图示更清晰,附图中有些地方示意性地适当夸大了部件的厚度。
发明人设计了一种一种基于共指消除的语言模型预训练方法,如图1所示,包括如下步骤:
S100、数据预处理,通过字符串匹配提取语料中的代词,处理工具提取语料中命名实体、名词短语等,作为训练数据生成阶段的遮盖候选集合,提取工具为python自然语言处理工具包Spacy中的实体识别模块;具体包括:
S110、获取英文维基百科数据;
S120、提取语料中的代词,建立代词集合PronounSet;
S130、提取语料中所有命名实体,建立实体集合EntitySet;
S140、使用Spacy中的名词短语提取模块,提取语料中的名词短语,并去掉与EntitySet重合的短语,得到名词短语集合NounPhraseSet。
S200、训练数据生成,通过mask_word模式(即单词遮盖模式)和mask_phrase模式(即短语遮盖模式)进行遮盖处理,分别生成mask_word训练数据和mask_phrase训练数据:具体包括:
S210、将数据复制两份,分别命名为数据一和数据二;
S220、依据BERT的训练数据生成方式,对数据一和数据二中的文本创建训练实例,每个实例包括多个句子,句子长度限制为128个英语单词,少于128的进行补齐处理,即补充英文单词到128,多于128的进行截断处理;
S230、数据一和数据二创建的实例分别采用mask_word模式(即单词遮盖模式)和mask_phrase模式(即短语遮盖模式)进行遮盖处理;
S240、生成mask_word训练数据,从数据一创建的实例中的句子中随机选取15%的单词放入CandidateSet1(遮盖候选词集合一),其中代词大约占三分之一,其余单词占三分之二,当代词总数不到三分之一时,用一般单词代替;将CandidateSet1的每个单词以80%几率替换成“[MASK]”,10%几率保持使用其他随机单词进行替换,10%几率保持不变;
S250、生成mask_phrase训练数据,随机选取数据二创建的实例中的句子中的命名实体和名词短语,加入到CandidateSet2(遮盖候选集合二),其中选取的的命名实体和名词数占句子长度的15%,其中命名实体和名词短语各占50%;将CandidateSet2中的每个词块以80%几率替换成“[MASK]”,10%几率保持使用其他随机单词进行替换,10%几率保持不变,每个词块中的所有词替换行为要一致,即同时替换或都保持不变。
S300、预训练,根据训练模式选择因子αt自适应地切换word_learning模式或phrase_learning模式进行训练,包括:在word_learning模式下,mask_word训练数据输入到BERT网络中对遮盖的单词进行预测,计算相应损失;在phrase_learning模式下,mask_phrase训练数据输入到BERT网络中对遮盖的短语进行预测,计算相应损失;具体包括:
S310、预热训练,首先学习基本的单词,前20%训练步数,使用word_learning模式进行预热训练,并保存初始word_learning预测损失和初始phrase_learning预测损失
S302.自适应训练,后80%训练步数,根据选择因子αt决定第t+1步采用word_learning或phrase_learning模式训练,具体如下:
分别表示第t个训练步时,两种模式的损失;当αt>0时,第t+1步采用word_learning模式,否则采用phrase_learning模式继续训练。
以上详细描述了本发明的较佳具体实施例。应当理解,本领域的普通技术人员无需创造性劳动就可以根据本发明的构思作出诸多修改和变化。因此,凡本技术领域中技术人员依本发明的构思在现有技术的基础上通过逻辑分析、推理或者有限的实验可以得到的技术方案,皆应在由权利要求书所确定的保护范围内。