CN115600583B - 一种字词多粒度混合的中文语言模型预训练方法 - Google Patents
一种字词多粒度混合的中文语言模型预训练方法 Download PDFInfo
- Publication number
- CN115600583B CN115600583B CN202210952193.5A CN202210952193A CN115600583B CN 115600583 B CN115600583 B CN 115600583B CN 202210952193 A CN202210952193 A CN 202210952193A CN 115600583 B CN115600583 B CN 115600583B
- Authority
- CN
- China
- Prior art keywords
- word
- vector
- char
- mask
- sequence seq
- 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.)
- Active
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/284—Lexical analysis, e.g. tokenisation or collocates
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/237—Lexical tools
- G06F40/242—Dictionaries
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/20—Natural language analysis
- G06F40/279—Recognition of textual entities
- G06F40/289—Phrasal analysis, e.g. finite state techniques or chunking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- Artificial Intelligence (AREA)
- Computational Linguistics (AREA)
- General Health & Medical Sciences (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Audiology, Speech & Language Pathology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Biomedical Technology (AREA)
- Biophysics (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Software Systems (AREA)
- Machine Translation (AREA)
Abstract
本发明提供一种字词多粒度混合的中文语言模型预训练方法,包括以下步骤:对输入的文本text进行字粒度切分和词粒度切分,分别得到字序列和词序列;对词序列中的某个词进行屏蔽,对字序列中对应字进行屏蔽;经向量化和编码后,采用四种预训练任务,计算总损失函数。本发明结合字和词两种粒度,提出包含字和词的新的中文语言模型预训练任务,通过将二者融合提升预训练模型效果。
Description
技术领域
本发明属于计算机自然语言处理技术领域,具体涉及一种字词多粒度混合的中文语言模型预训练方法。
背景技术
中文领域的预训练模型大多是基于字粒度构建词表,故而常用的预训练任务是基于字粒度构建,常见的模型包括:自回归语言模型(LM)、掩码语言模型(Masked languagemodel,MLM)、Seq2Seq MLM(序列到序列模型)、排列语言模型(PLM)、Next SentencePrediction(下一句预测模型,NSP)、Sentence Order Prediction(句子顺序预测模型,SOP)等。以上各种预训练任务更多的是从英文模型构建中直接继承过来,因此,通常是基于字级别进行的。基于字的预训练任务的缺点主要有:
一,使用字的预训练任务,无法有效引入词信息,而汉语中词信息往往比单字表意更加丰富;
二,使用单字会增加序列长度,而bert等预训练模型的计算复杂度为O(N^2),其中的N就是序列长度,受计算时间的限制无法有效处理过长的序列,导致长序列性能出现瓶颈。另外,由于使用单字时的序列较长,导致模型计算时间增加,降低预训练任务的效率。
发明内容
针对现有技术存在的缺陷,本发明提供一种字词多粒度混合的中文语言模型预训练方法,可有效解决上述问题。
本发明采用的技术方案如下:
本发明提供一种字词多粒度混合的中文语言模型预训练方法,包括以下步骤:
步骤1,对输入的文本text进行字粒度切分,得到字序列seq_char_1;其中,字序列seq_char_1包括n个按序排列的字,分别表示为:字char1,字char2,…,字charn;
对输入的文本text进行词粒度切分,得到词序列seq_word_1;其中,词序列 seq_word_1包括m个按序排列的词,分别表示为:词word1,词word2,…,词wordm;
步骤2,在词序列seq_word_1中,随机选择词wordi进行屏蔽,其中,i=1,2,…,m,得到屏蔽后的词序列,表示为:词序列seq_word_2;
假设词wordi一共包括k个字;
在字序列seq_char_1中,将词wordi分字后对应的k个字进行屏蔽,得到屏蔽后的字序列,表示为:字序列seq_char_2;
步骤3,将字序列seq_char_2中每个字进行向量化,得到字向量 Embbeding_char;字序列seq_char_2中各个字的字向量Embbeding_char,组成字序列seq_char_2的字向量组合;
将词序列seq_word_2中每个词进行向量化,得到词向量Embbeding_word;词序列seq_word_2中各个词的词向量Embbeding_word,组成词序列seq_word_2 的词向量组合;
步骤4,采用编码器,对字向量组合的每个字向量Embbeding_char进行编码,得到字编码向量vchar;字向量组合的所有字编码向量vchar,组成字编码向量矩阵 Vchar;
采用编码器,对词向量组合的每个词向量Embbeding_word进行编码,得到词编码向量vword;词向量组合的所有词编码向量vword,组成词编码向量矩阵Vword;
步骤5,将字编码向量矩阵Vchar和词编码向量矩阵Vword输入到预训练任务层,采用以下方法,计算得到总损失函数Loss总:
步骤5.1,预训练任务层包括字级别任务、词级别任务、字序列向量预测被屏蔽的词任务和词序列向量预测被屏蔽的字任务;
步骤5.2,通过字级别任务,采用以下公式,得到第一损失函数Loss1(x,θ):
其中:
P(xa|Vchar)含义为:在字编码向量矩阵Vchar中,读出某个被预测的屏蔽字xa的向量,使读出的屏蔽字xa的向量与字典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xa|Vchar);其中,字典矩阵为字典中每个字的字向量Emb_Char形成的矩阵;
-log P(xa|Vchar):代表交叉熵计算,即:使用标准的交叉熵对P(xa|Vchar)进行计算,得到屏蔽字xa的损失值;
E():代表求平均计算;
具体含义为:对于k个屏蔽字,每个屏蔽字预测得到一个损失值;然后,对 k个屏蔽字的损失值求和,再除以k,得到平均损失值;
步骤5.3,通过词级别任务,采用以下公式,得到第二损失函数Loss2(x,θ):
其中:
P(xb|Vword)含义为:在词编码向量矩阵Vword中,读出某个被预测的屏蔽词xb的向量,使读出的屏蔽词xb的向量与词典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xb|Vword);其中,词典矩阵为词典中每个词的向量Emb_word形成的矩阵;g为词序列中被屏蔽的词的数量;
-log P(xb|Vword):代表交叉熵计算,即:使用标准的交叉熵对P(xb|Vword) 进行计算,得到屏蔽词xb的损失值;
步骤5.4,通过字序列向量预测被屏蔽的词任务,采用以下公式,得到第三损失函数Loss3(x,θ):
其含义为:
在词序列中具有g个屏蔽词;对于每个被预测的屏蔽词xb,采用以下方法,得到其上下文向量:
假设屏蔽词xb包括r个屏蔽字;
在字编码向量矩阵V char中,定位到连续的屏蔽词xb包括的r个屏蔽字,表示为:字charm1,字charm2,…字charmr;字charm1前面最近的字记为cb0,字charmr后面最近的字记为cb1;字cb0的字向量和字cb1的字向量进行Concat拼接操作,得到屏蔽词xb的上下文向量,即:
含义为:使屏蔽词xb的上下文向量与词典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为
使用标准的交叉熵对进行计算,得到屏蔽词xb的损失值;
步骤5.5,通过词序列向量预测被屏蔽的字任务,采用以下公式,得到第四损失函数Loss4(x,θ):
其含义为:
在词序列中具有g个屏蔽词;每个屏蔽词对应字序列中的g组连续的屏蔽字;
对于字序列中第c组连续的屏蔽字xc,采用以下方法,得到其上下文向量:
在词编码向量矩阵Vword中,定位到第c组连续的屏蔽字xc对应的1个屏蔽词,该屏蔽词前面最近的词的词向量为该屏蔽词后面最近的词的词向量为将词向量和词向量进行Concat拼接操作,得到第c组连续的屏蔽字xc的上下文向量,即:
含义为:对进行线性变换,得到线性变换后的向量;
含义为:使用序列到序列seq2seq模型,包括编码端和解码端;在编码端输入线性变换后的向量;在解码端输出预测到的第c组连续的屏蔽字xc以及第c组连续的屏蔽字xc的预测概率值;
使用标准的交叉熵对进行计算,得到第c组连续的屏蔽字xc的损失值;
对第一损失函数Loss1、第二损失函数Loss2、第三损失函数Loss3和第四损失函数Loss4进行加权平均,得到总损失函数Loss总;
步骤6,判断训练是否达到最大迭代次数,如果否,则根据总损失函数Loss总得到梯度,对模型参数θ进行反传和参数更新,返回步骤4;如果是,则停止训练,得到预训练完成的语言模型。
优选的,步骤2中,词wordi进行屏蔽,具体方法为:
在词序列seq_word_1中,使用屏蔽符号[MASK]替换词wordi,得到屏蔽后的词序列seq_word_2。
优选的,步骤2中,对k个字进行屏蔽,具体方法为:
在字序列seq_char_1中,对于k个字中的每一个字,均使用屏蔽符号[MASK] 替换,得到屏蔽后的字序列seq_char_2。
优选的,步骤3中,将字序列seq_char_2中每个字进行向量化,得到字向量Embbeding_char,具体为:
对于字序列seq_char_2中每个字,其字向量Embbeding_char包括三个部分,分别为:字向量Emb_Char、字位置向量Emb_Pos_char和字所在的文本text的类型向量Emb_Type;
其中:
字向量Emb_Char:字典记录每个字以及该字的字向量,通过查询字典,得到字向量Emb_Char;
字位置向量Emb_Pos_char:指字在字序列seq_char_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
字所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
优选的,步骤3中,将词序列seq_word_2中每个词进行向量化,得到词向量Embbeding_word,具体为:
对于词序列seq_word_2中每个词,其词向量Embbeding_word包括三个部分,分别为:词向量Emb_word、词位置向量Emb_Pos_word和词所在的文本text的类型向量Emb_Type;
其中:
词向量Emb_word:词典记录每个词以及该词的词向量,通过查询词典,得到词向量Emb_word;
词位置向量Emb_Pos_word:指词在词序列seq_word_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
词所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
优选的,步骤3中,在对字序列seq_char_2中每个字进行向量化时,对于字序列seq_char_2中的每个屏蔽字,同样进行向量化;
在对词序列seq_word_2中每个词进行向量化时,对于词序列seq_word_2中的每个屏蔽词,同样进行向量化。
本发明提供的一种字词多粒度混合的中文语言模型预训练方法具有以下优点:
本发明结合字和词两种粒度,提出包含字和词的新的中文语言模型预训练任务,通过将二者融合提升预训练模型效果。
附图说明
图1为本发明提供的一种字词多粒度混合的中文语言模型预训练方法的流程示意图。
具体实施方式
为了使本发明所解决的技术问题、技术方案及有益效果更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本发明,并不用于限定本发明。
由于中文与英文有一个先天不同,就是中文在字的基础上还有一层词的表意单元,而且往往词比单字可以表达出更多的语义内容。本发明结合字和词两种粒度,提出包含字和词的新的中文语言模型预训练任务,通过将二者融合提升预训练模型效果。
参考图1,本发明提供的字词多粒度混合的中文语言模型预训练方法,包括以下步骤:
步骤1,对输入的文本text进行字粒度切分,得到字序列seq_char_1;其中,字序列seq_char_1包括n个按序排列的字,分别表示为:字char1,字char2,…,字charn;
对输入的文本text进行词粒度切分,得到词序列seq_word_1;其中,词序列 seq_word_1包括m个按序排列的词,分别表示为:词word1,词word2,…,词wordm;
例如,输入的文本text为:“我爱历史博物馆”,分别进行字粒度的切分和词粒度的切分,得到的字序列seq_char_1为:“我爱历史博物馆”,共包括7 个字;得到的词序列seq_word_1为:“我爱历史博物馆”,共包括四个词,分别为:我,爱,历史,博物馆。
步骤2,在词序列seq_word_1中,随机选择词wordi进行屏蔽,其中,i=1,2,…,m,得到屏蔽后的词序列,表示为:词序列seq_word_2;
对词wordi进行屏蔽,具体方法为:在词序列seq_word_1中,使用屏蔽符号 [MASK]替换词wordi,得到屏蔽后的词序列seq_word_2。
假设词wordi一共包括k个字;
在字序列seq_char_1中,将词wordi分字后对应的k个字进行屏蔽,得到屏蔽后的字序列,表示为:字序列seq_char_2;
其中,对k个字进行屏蔽,具体方法为:在字序列seq_char_1中,对于k个字中的每一个字,均使用屏蔽符号[MASK]替换,得到屏蔽后的字序列seq_char_2。
例如,仍然以“我爱历史博物馆”为例,在词序列seq_word_1:“我爱历史博物馆”中,选择“历史”这个词进行屏蔽,得到屏蔽后的词序列seq_word_2 为:“我爱[MASK]博物馆”,包括4个词,其中具有一个屏蔽词[MASK]。在字序列seq_char_1:“我爱历史博物馆”中,进行屏蔽处理后,得到屏蔽后的字序列seq_char_2为:“我爱[MASK][MASK]博物馆”,包括7个字,其中具有2个屏蔽字[MASK]。
步骤3,将字序列seq_char_2中每个字进行向量化,得到字向量Embbeding_char;字序列seq_char_2中各个字的字向量Embbeding_char,组成字序列seq_char_2的字向量组合;
具体方法为:对于字序列seq_char_2中每个字,其字向量Embbeding_char包括三个部分,分别为:字向量Emb_Char、字位置向量Emb_Pos_char和字所在的文本text的类型向量Emb_Type;
其中:
字向量Emb_Char:字典记录每个字以及该字的字向量,通过查询字典,得到字向量Emb_Char;
字位置向量Emb_Pos_char:指字在字序列seq_char_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
字所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
将词序列seq_word_2中每个词进行向量化,得到词向量Embbeding_word;词序列seq_word_2中各个词的词向量Embbeding_word,组成词序列seq_word_2 的词向量组合;
具体为:
对于词序列seq_word_2中每个词,其词向量Embbeding_word包括三个部分,分别为:词向量Emb_word、词位置向量Emb_Pos_word和词所在的文本text的类型向量Emb_Type;
其中:
词向量Emb_word:词典记录每个词以及该词的词向量,通过查询词典,得到词向量Emb_word;
词位置向量Emb_Pos_word:指词在词序列seq_word_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
词所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
本步骤中,在对字序列seq_char_2中每个字进行向量化时,对于字序列 seq_char_2中的每个屏蔽字,同样进行向量化;
对字序列seq_char_2中每个字进行向量化时,对于字序列seq_char_2中的每个屏蔽字,同样进行向量化;
例如,对于字序列seq_char_2:“我爱[MASK][MASK]博物馆”,包括7 个字,每个字进行向量化,得到字向量Embbeding_char;
对于词序列seq_word_2:“我爱[MASK]博物馆”,包括4个词,每个词进行向量化,得到词向量Embbeding_word。对于词“我”,其词向量Emb_word通过查词典获得;词位置向量Emb_Pos_word为1;对于词“[MASK]”,其词向量 Emb_word通过查词典获得;词位置向量Emb_Pos_word为3。对于“我爱[MASK] 博物馆”中的4个词,其词所在的文本text的类型向量Emb_Type均相同,例如,如果语料是问答预料,且第一句是问题,第二句是答案,那么词所在的文本text的类型向量Emb_Type有两类,一是代表问题,一是代表答案。
本发明中,所有向量纬度相同,且随机初始化。
对于字序列seq_char_2:“我爱[MASK][MASK]博物馆”,其字序列 seq_char_2的字向量组合为:
Embbeding_char(我)=Emb_Char(我)+Emb_Pos(1)+Emb_Type(0)
Embbeding_char(爱)=Emb_Char(爱)+Emb_Pos(2)+Emb_Type(0)
Embbeding_char([MASK])=Emb_Char([MASK])+Emb_Pos(3)+Emb_Type(0)
Embbeding_char([MASK])=Emb_Char([MASK])+Emb_Pos(4)+Emb_Type(0)
Embbeding_char(天)=Emb_Char(天)+Emb_Pos(5)+Emb_Type(0)
Embbeding_char(安)=Emb_Char(安)+Emb_Pos(6)+Emb_Type(0)
Embbeding_char(门)=Emb_Char(门)+Emb_Pos(7)+Emb_Type(0)
对于词序列seq_word_2:“我爱[MASK]博物馆”,其词序列seq_word_2 的词向量组合为:
Embbeding_word(我)=Emb_Word(我)+Emb_Pos(1)+Emb_Type(0)
Embbeding_word(爱)=Emb_Word(爱)+Emb_Pos(2)+Emb_Type(0)
Embbeding_word([MASK])
=Emb_Word([MASK])+Emb_Pos(3)+Emb_Type(0)
Embbeding_word(博物馆)
=Emb_Word(博物馆)+Emb_Pos(4)+Emb_Type(0)
步骤4,采用编码器,对字向量组合的每个字向量Embbeding_char进行编码,得到字编码向量vchar;字向量组合的所有字编码向量vchar,组成字编码向量矩阵 Vchar;
采用编码器,对词向量组合的每个词向量Embbeding_word进行编码,得到词编码向量vword;词向量组合的所有词编码向量vword,组成词编码向量矩阵Vword;
作为一种具体实现方式,编码器可采用transformer的encoder部分,用于进行编码。
步骤5,将字编码向量矩阵Vchar和词编码向量矩阵Vword输入到预训练任务层,采用以下方法,计算得到总损失函数Loss总:
步骤5.1,预训练任务层包括字级别任务、词级别任务、字序列向量预测被屏蔽的词任务和词序列向量预测被屏蔽的字任务;
步骤5.2,通过字级别任务,采用以下公式,得到第一损失函数Loss1(x,θ):
其中:
P(xa|Vchar)含义为:在字编码向量矩阵Vchar中,读出某个被预测的屏蔽字xa的向量,使读出的屏蔽字xa的向量与字典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xa|Vchar);其中,字典矩阵为字典中每个字的字向量Emb_Char形成的矩阵;
-log P(xa|Vchar):代表交叉熵计算,即:使用标准的交叉熵对P(xa|Vchar)进行计算,得到屏蔽字xa的损失值;
E():代表求平均计算;
具体含义为:对于k个屏蔽字,每个屏蔽字预测得到一个损失值;然后,对 k个屏蔽字的损失值求和,再除以k,得到平均损失值;
步骤5.3,通过词级别任务,采用以下公式,得到第二损失函数Loss2(x,θ):
其中:
P(xb|Vword)含义为:在词编码向量矩阵Vword中,读出某个被预测的屏蔽词xb的向量,使读出的屏蔽词xb的向量与词典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xb|Vword);其中,词典矩阵为词典中每个词的向量Emb_word形成的矩阵;g为词序列中被屏蔽的词的数量;
-log P(xb|Vword):代表交叉熵计算,即:使用标准的交叉熵对P(xb|Vword) 进行计算,得到屏蔽词xb的损失值;
步骤5.4,通过字序列向量预测被屏蔽的词任务,采用以下公式,得到第三损失函数Loss3(x,θ):
其含义为:
在词序列中具有g个屏蔽词;对于每个被预测的屏蔽词xb,采用以下方法,得到其上下文向量:
假设屏蔽词xb包括r个屏蔽字;
在字编码向量矩阵Vchar中,定位到连续的屏蔽词xb包括的r个屏蔽字,表示为:字charm1,字charm2,…字charmr;字charm1前面最近的字记为cb0,字charmr后面最近的字记为cb1;字cb0的字向量和字cb1的字向量进行Concat拼接操作,得到屏蔽词xb的上下文向量,即:
含义为:使屏蔽词xb的上下文向量与词典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为
使用标准的交叉熵对进行计算,得到屏蔽词xb的损失值;
步骤5.5,通过词序列向量预测被屏蔽的字任务,采用以下公式,得到第四损失函数Loss4(x,θ):
其含义为:
在词序列中具有g个屏蔽词;每个屏蔽词对应字序列中的g组连续的屏蔽字;
对于字序列中第c组连续的屏蔽字xc,采用以下方法,得到其上下文向量:
在词编码向量矩阵Vword中,定位到第c组连续的屏蔽字xc对应的1个屏蔽词,该屏蔽词前面最近的词的词向量为该屏蔽词后面最近的词的词向量为将词向量和词向量进行Concat拼接操作,得到第c组连续的屏蔽字xc的上下文向量,即:
含义为:对进行线性变换,得到线性变换后的向量;
含义为:使用序列到序列seq2seq模型,包括编码端和解码端;在编码端输入线性变换后的向量;在解码端输出预测到的第c组连续的屏蔽字xc以及第c组连续的屏蔽字xc的预测概率值;
使用标准的交叉熵对进行计算,得到第c组连续的屏蔽字xc的损失值;
对第一损失函数Loss1、第二损失函数Loss2、第三损失函数Loss3和第四损失函数Loss4进行加权平均,得到总损失函数Loss总;
步骤6,判断训练是否达到最大迭代次数,如果否,则根据总损失函数Loss总得到梯度,对模型参数θ进行反传和参数更新,返回步骤4;如果是,则停止训练,得到预训练完成的语言模型。
下面介绍一个具体实施例:
本发明在预训练阶段有三部分组成,第一部分是embbeding层,包括字向量,词向量,位置向量,句子类型向量。第二部分是encoder模型,具体可以为 transformer的encoder部分。第三部分是预训练任务层,包括1)字级别MLM任务 (本发明中,屏蔽的字采用whole word mask方式,即被屏蔽的字必须属于一个词),2)词级别MLM任务,3)字序列向量预测被屏蔽的词,4)词序列向量预测被屏蔽的字。
(一)Embedding层
Embbeding层包括字向量,词向量,位置向量,句子类型向量,也就是说一个输入序列(一句输入的文本)按照字和词两种粒度分别做两次切分,得到两个序列,后面使用这两个序列训练同一个encoder模型。
(二)Encoding层
本层使用transformer的encoding模型进行编码
(三)预训练任务层
本层中包含四个预训练任务,分别为:
(1)字级别MLM任务
屏蔽字序列中的某个字,然后在预训练中基于上下文,预测被屏蔽的字,这里面屏蔽的字采用whole word mask方式,即被屏蔽的如果是多个字,则字必须是连续的,且必须属于一个词,如果是单个字则无限制。
(2)词级别MLM任务
与字级别的MLM任务类似,区别仅在于被屏蔽的单元变成某些词,而且被屏蔽的词,其在第一步提到的字序列中对应的位置也被屏蔽。
(3)字序列向量预测被屏蔽的词
在词序列中,对于某个被屏蔽的词M,在字序列中其对应的字m1,m2,… mk也被屏蔽(k为词M中的字数),则在字序列中,使用m1前面最近的字,和mk 后面最近的字组成上下文,对词序列中被屏蔽的词进行预测。
(4)词序列向量预测被屏蔽的字
在字序列中,有连续的字m1,m2,…mk被屏蔽,同时在词序列中m1,m2,… mk属于词M,词M在词序列中也被屏蔽。
则:在词序列中,使用M前面的最近的词MH和后面最近的词MT对应的向量组成上下文,对字序列中被屏蔽的字m1,m2…mk进行预测。
由于m1,m2…mk具体包含字的个数是未知的,所以使用seq2seq的方式(生成式)预测m1,m2…mk,在seq2seq的encoder端输入MH和MT的词向量,在decoder 端预测m1,m2…mk。
最后的损失函数是四个任务的loss相加。
本发明通过使用字和词混合的预训练方式,将字序列和词序列的信息融合到一个编码器中,提升预训练效果。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视本发明的保护范围。
Claims (6)
1.一种字词多粒度混合的中文语言模型预训练方法,其特征在于,包括以下步骤:
步骤1,对输入的文本text进行字粒度切分,得到字序列seq_char_1;其中,字序列seq_char_1包括n个按序排列的字,分别表示为:字char1,字char2,…,字charn;
对输入的文本text进行词粒度切分,得到词序列seq_word_1;其中,词序列seq_word_1包括m个按序排列的词,分别表示为:词word1,词word2,…,词wordm;
步骤2,在词序列seq_word_1中,随机选择词wordi进行屏蔽,其中,i=1,2,…,m,得到屏蔽后的词序列,表示为:词序列seq_word_2;
假设词wordi一共包括k个字;
在字序列seq_char_1中,将词wordi分字后对应的k个字进行屏蔽,得到屏蔽后的字序列,表示为:字序列seq_char_2;
步骤3,将字序列seq_char_2中每个字进行向量化,得到字向量Embbeding_char;字序列seq_char_2中各个字的字向量Embbeding_char,组成字序列seq_char_2的字向量组合;
将词序列seq_word_2中每个词进行向量化,得到词向量Embbeding_word;词序列seq_word_2中各个词的词向量Embbeding_word,组成词序列seq_word_2的词向量组合;
步骤4,采用编码器,对字向量组合的每个字向量Embbeding_char进行编码,得到字编码向量vchar;字向量组合的所有字编码向量vchar,组成字编码向量矩阵Vchar;
采用编码器,对词向量组合的每个词向量Embbeding_word进行编码,得到词编码向量vword;词向量组合的所有词编码向量vword,组成词编码向量矩阵Vword;
步骤5,将字编码向量矩阵Vchar和词编码向量矩阵Vword输入到预训练任务层,采用以下方法,计算得到总损失函数Loss总:
步骤5.1,预训练任务层包括字级别任务、词级别任务、字序列向量预测被屏蔽的词任务和词序列向量预测被屏蔽的字任务;
步骤5.2,通过字级别任务,采用以下公式,得到第一损失函数Loss1(x,θ):
其中:
P(xa|Vchar)含义为:在字编码向量矩阵Vchar中,读出某个被预测的屏蔽字xa的向量,使读出的屏蔽字xa的向量与字典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xa|Vchar);其中,字典矩阵为字典中每个字的字向量Emb_Char形成的矩阵;
-log P(xa|Vchar):代表交叉熵计算,即:使用标准的交叉熵对P(xa|Vchar)进行计算,得到屏蔽字xa的损失值;
E():代表求平均计算;
具体含义为:对于k个屏蔽字,每个屏蔽字预测得到一个损失值;然后,对k个屏蔽字的损失值求和,再除以k,得到平均损失值;
步骤5.3,通过词级别任务,采用以下公式,得到第二损失函数Loss2(x,θ):
其中:
P(xb|Vword)含义为:在词编码向量矩阵Vword中,读出某个被预测的屏蔽词xb的向量,使读出的屏蔽词xb的向量与词典矩阵作乘法,得到概率矩阵;在该概率矩阵中,得到概率值最大值,即为P(xb|Vword);其中,词典矩阵为词典中每个词的向量Emb_word形成的矩阵;g为词序列中被屏蔽的词的数量;
-log P(xb|Vword):代表交叉熵计算,即:使用标准的交叉熵对P(xb|Vword)进行计算,得到屏蔽词xb的损失值;
步骤5.4,通过字序列向量预测被屏蔽的词任务,采用以下公式,得到第三损失函数Loss3(x,θ):
其含义为:
在词序列中具有g个屏蔽词;对于每个被预测的屏蔽词xb,采用以下方法,得到其上下文向量:
假设屏蔽词xb包括r个屏蔽字;
在字编码向量矩阵Vchar中,定位到连续的屏蔽词xb包括的r个屏蔽字,表示为:字charm1,字charm2,…字charmr;字charm1前面最近的字记为cb0,字charmr后面最近的字记为cb1;字cb0的字向量和字cb1的字向量进行Concat拼接操作,得到屏蔽词xb的上下文向量,即:
步骤5.5,通过词序列向量预测被屏蔽的字任务,采用以下公式,得到第四损失函数Loss4(x,θ):
其含义为:
在词序列中具有g个屏蔽词;每个屏蔽词对应字序列中的g组连续的屏蔽字;
对于字序列中第c组连续的屏蔽字xc,采用以下方法,得到其上下文向量:
在词编码向量矩阵Vword中,定位到第c组连续的屏蔽字xc对应的1个屏蔽词,该屏蔽词前面最近的词的词向量为该屏蔽词后面最近的词的词向量为将词向量和词向量进行Concat拼接操作,得到第c组连续的屏蔽字xc的上下文向量,即:
对第一损失函数Loss1、第二损失函数Loss2、第三损失函数Loss3和第四损失函数Loss4进行加权平均,得到总损失函数Loss总;
步骤6,判断训练是否达到最大迭代次数,如果否,则根据总损失函数Loss总得到梯度,对模型参数θ进行反传和参数更新,返回步骤4;如果是,则停止训练,得到预训练完成的语言模型。
2.根据权利要求1所述的一种字词多粒度混合的中文语言模型预训练方法,其特征在于,步骤2中,词wordi进行屏蔽,具体方法为:
在词序列seq_word_1中,使用屏蔽符号[MASK]替换词wordi,得到屏蔽后的词序列seq_word_2。
3.根据权利要求1所述的一种字词多粒度混合的中文语言模型预训练方法,其特征在于,步骤2中,对k个字进行屏蔽,具体方法为:
在字序列seq_char_1中,对于k个字中的每一个字,均使用屏蔽符号[MASK]替换,得到屏蔽后的字序列seq_char_2。
4.根据权利要求1所述的一种字词多粒度混合的中文语言模型预训练方法,其特征在于,步骤3中,将字序列seq_char_2中每个字进行向量化,得到字向量Embbeding_char,具体为:
对于字序列seq_char_2中每个字,其字向量Embbeding_char包括三个部分,分别为:字向量Emb_Char、字位置向量Emb_Pos_char和字所在的文本text的类型向量Emb_Type;
其中:
字向量Emb_Char:字典记录每个字以及该字的字向量,通过查询字典,得到字向量Emb_Char;
字位置向量Emb_Pos_char:指字在字序列seq_char_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
字所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
5.根据权利要求1所述的一种字词多粒度混合的中文语言模型预训练方法,其特征在于,步骤3中,将词序列seq_word_2中每个词进行向量化,得到词向量Embbeding_word,具体为:
对于词序列seq_word_2中每个词,其词向量Embbeding_word包括三个部分,分别为:词向量Emb_word、词位置向量Emb_Pos_word和词所在的文本text的类型向量Emb_Type;
其中:
词向量Emb_word:词典记录每个词以及该词的词向量,通过查询词典,得到词向量Emb_word;
词位置向量Emb_Pos_word:指词在词序列seq_word_2中的位置所对应的向量,通过查询位置信息向量表Emb_Pos获得;
词所在的文本text的类型向量Emb_Type:指文本text的类型所对应的向量。
6.根据权利要求1所述的一种字词多粒度混合的中文语言模型预训练方法,其特征在于,步骤3中,在对字序列seq_char_2中每个字进行向量化时,对于字序列seq_char_2中的每个屏蔽字,同样进行向量化;
在对词序列seq_word_2中每个词进行向量化时,对于词序列seq_word_2中的每个屏蔽词,同样进行向量化。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952193.5A CN115600583B (zh) | 2022-08-09 | 2022-08-09 | 一种字词多粒度混合的中文语言模型预训练方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210952193.5A CN115600583B (zh) | 2022-08-09 | 2022-08-09 | 一种字词多粒度混合的中文语言模型预训练方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN115600583A CN115600583A (zh) | 2023-01-13 |
CN115600583B true CN115600583B (zh) | 2023-04-18 |
Family
ID=84843161
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210952193.5A Active CN115600583B (zh) | 2022-08-09 | 2022-08-09 | 一种字词多粒度混合的中文语言模型预训练方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN115600583B (zh) |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196894A (zh) * | 2019-05-30 | 2019-09-03 | 北京百度网讯科技有限公司 | 语言模型的训练方法和预测方法 |
CN113065358A (zh) * | 2021-04-07 | 2021-07-02 | 齐鲁工业大学 | 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法 |
CN114239566A (zh) * | 2021-12-14 | 2022-03-25 | 公安部第三研究所 | 基于信息增强实现两步中文事件精准检测的方法、装置、处理器及其计算机可读存储介质 |
Family Cites Families (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN111539223B (zh) * | 2020-05-29 | 2023-08-18 | 北京百度网讯科技有限公司 | 语言模型的训练方法、装置、电子设备及可读存储介质 |
-
2022
- 2022-08-09 CN CN202210952193.5A patent/CN115600583B/zh active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110196894A (zh) * | 2019-05-30 | 2019-09-03 | 北京百度网讯科技有限公司 | 语言模型的训练方法和预测方法 |
CN113065358A (zh) * | 2021-04-07 | 2021-07-02 | 齐鲁工业大学 | 面向银行咨询服务基于多粒度对齐的文本对语义匹配方法 |
CN114239566A (zh) * | 2021-12-14 | 2022-03-25 | 公安部第三研究所 | 基于信息增强实现两步中文事件精准检测的方法、装置、处理器及其计算机可读存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN115600583A (zh) | 2023-01-13 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110737758B (zh) | 用于生成模型的方法和装置 | |
Bahdanau et al. | Learning to compute word embeddings on the fly | |
Zhang et al. | Deep Neural Networks in Machine Translation: An Overview. | |
CN110851604B (zh) | 一种文本分类方法、装置、电子设备及存储介质 | |
CN109661664B (zh) | 一种信息处理的方法及相关装置 | |
Chitnis et al. | Variable-length word encodings for neural translation models | |
CN110309511B (zh) | 基于共享表示的多任务语言分析系统及方法 | |
CN114757182A (zh) | 一种改进训练方式的bert短文本情感分析方法 | |
CN110569505A (zh) | 一种文本输入方法及装置 | |
CN111460800A (zh) | 一种事件生成方法、装置、终端设备及存储介质 | |
CN111222329B (zh) | 句向量训练方法及模型、句向量预测方法及系统 | |
CN116069931A (zh) | 层级标签文本分类方法、系统、设备及存储介质 | |
CN115935957A (zh) | 一种基于句法分析的句子语法纠错方法及系统 | |
CN111814479A (zh) | 一种企业简称生成及其模型的训练方法及装置 | |
CN115600583B (zh) | 一种字词多粒度混合的中文语言模型预训练方法 | |
CN114757181B (zh) | 基于先验知识端到端的事件抽取模型的训练、事件抽取方法及装置 | |
Grönroos et al. | Transfer learning and subword sampling for asymmetric-resource one-to-many neural translation | |
US20220083745A1 (en) | Method, apparatus and electronic device for determining word representation vector | |
CN115952265A (zh) | 一种基于统一生成模型的知识驱动对话方法 | |
CN111428475B (zh) | 分词词库的构建方法、分词方法、装置及存储介质 | |
CN114048749A (zh) | 一种适用于多领域的中文命名实体识别方法 | |
CN114330290A (zh) | 语言模型的训练方法及装置 | |
CN115951931B (zh) | 基于bert的二进制代码相似性检测方法 | |
Jagtap et al. | An in-depth walkthrough on evolution of neural machine translation | |
CN112966520B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |