一种基于提示学习和对抗性训练的模板化命名实体识别方法

    专利查询2025-03-23  18


    本发明涉及自然语言处理学(nlp),涉及一种命名实体识别(ner)的方法,尤其涉及一种基于提示学习和对抗性训练的模板化命名实体识别方法。


    背景技术:

    1、命名实体识别(named entity recognition,ner)是自然语言处理领域的一项重要任务,传统上通过序列标注的方法实现,即对输入句子中的每个标记(token)进行分类,确定其是否属于特定的命名实体类别。常见的ner方法包括条件随机场(crf)、隐马尔可夫模型(hmm)以及基于神经网络的方法,如长短期记忆网络(lstm)和卷积神经网络(cnn)。这些方法依赖于对大量标注数据的训练,在标注数据丰富的情况下,能够取得较好的效果。然而,在少样本或无标注数据的情况下,这些方法的表现往往不尽如人意,难以实现较高的识别准确率和鲁棒性。

    2、近年来,预训练语言模型(如bert、t5)在自然语言处理任务中展现了强大的性能。模型通过在大量文本数据上进行预训练,学习到丰富的语言表示,然后在下游任务中进行微调,从而实现优异的性能。然而,传统的ner方法难以直接应用于这些生成模型,因为ner任务需要对每个标记进行单独的分类,而生成模型通常用于生成完整的句子或文本。此外,现有方法在推理过程中速度较慢,难以满足实时应用的需求,同时在少样本环境下表现不佳,缺乏对负样本的有效利用。


    技术实现思路

    1、发明目的:为解决上述问题,本发明提出一种基于提示学习和对抗性训练的模板化ner方法,显著提高了ner任务准确性、鲁棒性和泛化能力,为自然语言处理等领域带来新突破。

    2、技术方案:本发明公开一种基于提示学习和对抗性训练的模板化命名实体识别方法,包括如下步骤:

    3、步骤1:将ner任务转换为seq2seq任务,定义针对不同类型实体的提示模板,将目标实体转换为特定格式的句子,并将其与输入句子结合生成提示输入集;

    4、步骤2:将提示输入集输入至预训练语言模型t5,通过提示学习进行微调,使模型能够根据提示生成包含实体标注信息的句子;

    5、步骤3:利用投影梯度下降方法pgd,在提示输入集上施加微小扰动,生成对抗性样本,并进行监督对比学习和混合对抗训练;

    6、步骤4:将生成的对抗性样本与原始样本结合,形成新的训练集,输入至预训练语言模型t5进行联合训练,通过模型融合进一步提升性能,并对模型进行全面评估;

    7、步骤5:输入新的句子,通过提示模板生成提示输入,使用微调和对抗性训练后的t5模型进行推理,识别并标注句子中的命名实体。

    8、进一步地,所述步骤1的具体方法为:

    9、步骤1.1:将ner任务从传统的序列标注任务转换为序列到序列seq2seq任务,将输入句子转换为包含目标实体标注信息的输出句子;

    10、步骤1.2:确定需要识别的命名实体类型,针对每种实体类型定义相应的提示模板,模板格式如下:

    11、正样本模板:“in the sentence,<sentence>,the<entity-type>entities are=><target_entity>”;

    12、负样本模板:"in the sentence,'<sentence>',the<entity-type>entities are=>none";

    13、利用提示模板将输入句子中的目标实体嵌入到特定格式的句子中;

    14、步骤1.3:生成正样本和负样本

    15、对于每个训练实例中的每个实体类型,生成一个正样本,将输入句子中的目标实体替换到正样本模板中;

    16、对于不存在的实体类型,生成负样本,将输入句子与负样本模板结合,表示没有该类型的实体;

    17、步骤1.4:将生成的特殊格式的句子与原输入句子结合,生成提示输入;

    18、步骤1.5:构建提示输入集,将其划分为训练集、验证集和测试集。

    19、进一步地,所述步骤2的具体方法为:

    20、步骤2.1:使用预训练语言模型t5的tokenizerfast对象对训练集进行编码,生成模型可以处理的张量x;

    21、步骤2.2:通过预训练语言模型t5的多层transformer对编码进行前向传播,输出每个位置的logits得分向量;

    22、步骤2.2.1:设置掩码位置mask_idx,即需要模型预测的实体位置的索引;

    23、步骤2.2.2:将输入张量x通过权重矩阵w1和偏置向量b1进行线性变换,然后通过激活函数f计算隐藏层输出h:

    24、h=f(w1x+b1)

    25、步骤2.2.3:将隐藏层的输出h通过权重矩阵w2和偏置向量b2进行线性变换,然后通过激活函数g得到最终输出o:

    26、o=g(w2x+b2)

    27、步骤2.2.4:根据掩码位置,通过softmax函数将logits转换为概率分布pij:

    28、

    29、其中,pij、zij分别为样本i在类别j上的预测概率、样本i在类别j上的logit值,c为类别数;

    30、步骤2.2.5:将模型预测的结果与真实标签y进行对比,计算交叉熵损失:

    31、

    32、其中,l为损失函数值,n为样本数,yij为真实标签的one-hot编码;

    33、步骤2.3:使用反向传播算法计算损失函数的梯度,使用adamw根据梯度更新t5参数。

    34、进一步地,所述步骤2.3中具体过程为:

    35、步骤2.3.1:计算损失函数的梯度:

    36、

    37、其中,θ为模型参数;

    38、步骤2.3.2:反向传播算法通过链式法则逐层计算梯度,从输出层到输入层进行传播;

    39、输出层梯度计算:

    40、

    41、隐藏层梯度计算:

    42、

    43、步骤2.3.3:使用adamw优化器根据梯度更新模型参数;

    44、初始化一阶矩估计m0=0和二阶矩估计v0=0,在每个时间步t,计算目标函数l(θ)对参数θ的梯度:

    45、更新一阶矩估计:mt=β1mt-1+(1-β1)gt,其中β1为一阶矩估计的衰减率,mt为当前时刻t的一阶矩估计,mt-1为上一时刻t-1的一阶矩估计;

    46、更新二阶矩估计:其中vt为当前时刻t的二阶矩估计,vt-1为上一时刻t-1的二阶矩估计;

    47、计算一阶矩估计和二阶矩估计的偏差校正:

    48、使用校正后的矩估计来更新参数,同时加入权重衰减项:

    49、

    50、其中,θt为第t次迭代的模型参数,θ为权重衰减系数,η为学习率,a为一个小的正数常量,用于确保数值稳定性。

    51、进一步地,所述步骤3的具体方法为:

    52、步骤3.1:从原始训练集开始,初始对照样本x'0,对每一个输入示例x进行复制,作为初始的对抗性样本x'0:

    53、x'0=x

    54、步骤3.2:设置允许的扰动范围∈,即对输入数据施加扰动的最大幅度;

    55、步骤3.3:计算损失函数的梯度;

    56、步骤3.3.1:对当前的对抗性样本x′进行前向传播,计算模型的预测输出y′:

    57、

    58、其中,θ为模型参数,为模型的前向传播函数;

    59、步骤3.3.2:计算损失函数l(y′,y):

    60、

    61、其中,y是真实标签,y′是模型的预测结果,nbatch为当前对抗性训练批次中的样本总数,c为类别的总数,yij为样本i在类别j上的真实标签,pij为样本i在类别j上的预测概率;

    62、步骤3.3.3:计算损失函数对对抗性样本的梯度

    63、

    64、步骤3.4:根据计算的梯度,更新对抗性样本:

    65、

    66、其中,x′t、x′t+1分别为当前对抗性样本、更新后的对抗性样本,α为每次迭代中施加的扰动步长;

    67、步骤3.5:确保更新后的对抗性样本在允许的扰动范围内:

    68、xt+1=clip(xt+1,x-∈,x+∈)

    69、其中,clip(·)函数用于将对抗性样本限制在原始样本x的∈范围内;重复以上步骤,直至达到预定的迭代次数k;

    70、步骤3.6:构建对比学习对,计算对比学习损失:

    71、为每个对抗性样本x′和对应的原始样本x构建对比学习对,记为(x,x′)。生成正样本对(x,x)和负样本对(x,x″),其中x″是其他样本的扰动版本;计算对比学习损失,使正样本对的距离更近,负样本对的距离更远:

    72、

    73、其中,hi、hj是样本xi、xj通过编码器获得的表示向量,sim(u,v)=utv/(||u||||v||)是向量u、v的余弦相似度,τ是温度超参数,控制相似度的缩放,∑kexp(sim(hi,hk)/τ)是在当前小批次中所有负样本对上的求和;

    74、步骤3.7:生成联合对抗性样本,计算联合对抗性损失:

    75、使用多种对抗性攻击方法生成、不同类型的对抗性样本集xadv1,xadv2,…,xadvm,将它们与原始样本x结合形成联合对抗性样本集xjoint=x∪xadv1∪xadv2∪…∪xadvm;对于每个联合对抗性样本x*∈xjoint,计算其对应的对抗性损失函数:

    76、ladv(x*)=l(x*,yadv;θ)

    77、其中,ladv是对抗性损失函数,yadv是x*对应的真实标签,θ是模型参数;最终的联合对抗性损失是所有样本损失的均值:

    78、

    79、其中,nadv是联合对抗性样本集的总数;

    80、通过将对比学习损失lcontrast和联合对抗性损失ljoint相结合,模型能够同时学习对抗性鲁棒的表示,并增强不同类型对抗样本的防御能力。

    81、进一步地,所述步骤4的具体方法为:

    82、步骤4.1:将联合对抗性样本集与训练集中原始样本x结合,形成新的训练集;

    83、步骤4.2:使用t5模型的tokenizer对新的训练集进行联合训练,使用不同的训练参数或不同的初始化方式,训练i个独立的t5模型;

    84、步骤4.3:模型融合

    85、步骤4.3.1:使用不同验证集独立训练i个t5模型;获取每个模型的预测结果predictioni和相应的权重wi;

    86、步骤4.3.2:根据多个模型的预测结果和验证集上表现出的权重,计算加权值作为最终预测:

    87、步骤4.3.3:选择动态量化、静态量化或混合量化,对训练好的t5模型进行量化处理,测试量化后的模型性能。

    88、进一步地,所述步骤5的具体方法为:

    89、步骤5.1:输入新的未标注的句子,作为模型的输入,将新的句子与预定义定义的提示模板结合,生成提示输入;

    90、步骤5.2:使用t5模型的tokenizer将产生的提示输入进行编码,生为模型可以处理的张量格式,将编码后的提示输入到微调和对照性训练后的t5模型进行推理,输出包含实体标注信息的句子;

    91、步骤5.3:对模型输出进行解析,提取命名实体,根据模型解析结果,将识别并标注的命名实体应用于原始句子,生成最终的命名实体识别结果。

    92、本发明采用上述技术方案,具有以下有益效果:

    93、将ner任务转化为seq2seq任务,避免生成所有可能的n-grams。并利用模板化的方法生成提示输入,设计规范的提示以减小语言空间。在少量标注数据基础上利用提示学习训练t5模型生成带标注输出,发挥了t5在seq2seq任务上的优势,使预训练语言模型能够更好地适应少样本环境。

    94、本发明结合提示学习和和对抗性训练,显著提高了模型在少样本环境下的鲁棒性和识别准确率;在训练过程中引入对抗性样本,并通过监督对比学习和混合对抗训练,增强了模型在面对噪声和数据扰动时的鲁棒性。对抗性训练方法帮助模型学习到更加稳健的特征表示,模型融合进一步提升了模型在不同数据分布和领域转移场景中的泛化能力。在推理阶段能够快速、高效地识别并标注句子中的命名实体,显著提高了命名实体识别的准确性和稳定性,适应低资源环境,并推动了ner技术的发展。


    技术特征:

    1.一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,包括如下步骤:

    2.根据权利要求1所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤1的具体方法为:

    3.根据权利要求1所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤2的具体方法为:

    4.根据权利要求3所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤2.3中具体过程为:

    5.根据权利要求1所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤3的具体方法为:

    6.根据权利要求1或5所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤4的具体方法为:

    7.根据权利要求1所述的一种基于提示学习和对抗性训练的模板化命名实体识别方法,其特征在于,所述步骤5的具体方法为:


    技术总结
    本发明公开了一种基于提示学习和对抗性训练的模板化命名实体识别方法。首先通过生成使用模板的合成句子,将NER任务转换为seq2seq任务,定义针对不同类型实体的提示模板,将目标实体转换为特定格式的句子,并将其与输入句子结合生成提示输入。其次将提示输入集输入至T5,通过提示学习对模型进行微调。利用投影梯度下降方法生成对抗性样本,并进行监督对比学习和混合对抗训练。将生成的对抗性样本与原始样本结合形成新的训练集,输入至T5进行联合训练,通过模型融合进一步提升性能,并对模型进行全面评估。最后输入新的句子,通过提示模板生成提示输入,使用微调和对抗性训练后的T5模型进行推理,识别并标注句子中的命名实体。

    技术研发人员:马甲林,李俊宇,王浩,姚子俊,林俊锋,谢乾,汪涛,翟中豪
    受保护的技术使用者:淮阴工学院
    技术研发日:
    技术公布日:2024/11/26
    转载请注明原文地址:https://tc.8miu.com/read-26779.html

    最新回复(0)