一种基于自适应专家系统的智能问答方法转让专利

申请号 : CN202211243870.2

文献号 : CN115310622B

文献日 :

基本信息:

PDF:

法律信息:

相似专利:

发明人 : 毛震东张勇东王泉彭奕兴

申请人 : 中国科学技术大学北京邮电大学

摘要 :

本发明涉及自然语言理解技术领域,公开了一种基于自适应专家系统的智能问答方法,对任意的输入实例,基于模型的梯度来计算一个嵌入表示,并用这个基于梯度的嵌入表示来自适应地对专家进行调制;以这种方式,自适应专家系统将能充分适应于输入的实例,捕捉实例的特性,从而数据集的特性也隐式地进行了表达。

权利要求 :

1.一种基于自适应专家系统的智能问答方法,其特征在于:自适应专家系统包括:基本模型(θ,α),包括基于Transformer的问答模块θ和瓶颈结构适配器α;基于Transformer的问答模块θ包括预训练Transformer编码器,Transformer编码器包括多个Transformer层;在每一个Transformer层中插入两个所述的瓶颈结构适配器α;瓶颈结构适配器α包括依次设置的下投影层、GeLU非线性层、上投影层;

调制层β,添加至各瓶颈结构适配器α的下投影层之后以及上投影层之后,用于通过实例级别调制信号来调节上投影层和下投影层的输出;

基于梯度的调制器γ,用于产生所述的实例级别调制信号;

自适应专家系统的训练方法包括两个阶段:

第一阶段,训练基本模型(θ,α):通过在所有源数据集DS上计算交叉熵损失一对基本模型(θ,α)进行训练:其中 表示给定问题q和上下文c情况下得到真实回答a的概率,为基本模型中回答开始位置概率 和回答结束位

置概率 的乘积, 和 分别表示回答a的开始位置标记和结束位置标记;

第二阶段,冻结基本模型(θ,α),在所有的源数据集DS上调试调制层β和调制器γ:给定一个训练实例 ,首先用基本模型(θ,α)来提取梯度,然后将训练实例和提取的梯度输入至自适应专家系统(θ,α,β,γ)对回答进行预测,采用交叉熵损失二 调制β和γ:其中 ,用

来标记自适应专家系统预测得到回答a的概率; 为自适应专家系统中回答开始位置概率, 为自适应专家系统中回答结束位置概率;

自适应专家系统(θ,α,β,γ)完成训练后,将待回答的实例输入基本模型(θ,α)中提取梯度,然后将待回答的实例和梯度输入自适应专家系统(θ,α,β,γ)对回答进行预测。

2.根据权利要求1所述的基于自适应专家系统的智能问答方法,其特征在于:下投影层后的调制层为第一调制层,上投影层后的调制层为第二调制层;调制层β通过实例级别调制信号来调节上投影层和下投影层的输出时,过程如下:第一调制层的输出

第二调制层的输出

其中 分别为瓶颈结构适配器的m维输入和输出,MLP为用于维度映射的多层感知机, 分别是下投影层和上投影层的参数,

分别是第一调制层所用到的实例级别调制信号、第二调制层所用到的实例级别调制信号,[;]为串接操作,GeLU()为GeLU非线性层的输出。

3.根据权利要求1所述的基于自适应专家系统的智能问答方法,其特征在于:使用基于梯度的调制器γ产生实例级别调制信号时,包括以下步骤:步骤一:将每个实例输入基本模型,预测回答开始位置分布和结束位置的分布;

步骤二:从开始位置的分布和结束位置的分布中采样出伪标签,并根据伪标签和预测分布计算交叉熵损失;

步骤三:提取交叉熵损失关于瓶颈结构适配器α的梯度,将提取到的瓶颈结构适配器的梯度从底层到顶层排列成梯度序列,并使用GRU对梯度序列进行编码为隐状态,然后将隐状态输入至MLP多层感知机得到所述的实例级别调制信号。

4.根据权利要求3所述的基于自适应专家系统的智能问答方法,其特征在于:产生实例级别调制信号的步骤三具体包括:问答模块有L个Transformer层,每层有两个瓶颈结构适配器,用 和 来分别标记第 个Transformer层的第一个瓶颈结构适配器的梯度绝对值和第二个瓶颈结构适配器的梯度绝对值;

将提取到的2L个瓶颈结构适配器的梯度,按从底层到顶层的顺序排列为一个梯度序列,使用GRU将梯度序列编码为与梯度序列各元素对应的隐状态记为 ;

对于每个 ,使用两个MLP多层感知机分别产生两个实

例级别调制信号 和 ,用于第 层Transformer中的第i个适配器,实例级别调制信号用于下投影层之后的调制层,实例级别调制信号 用于上投影层之后的调制层。

5.根据权利要求3所述的基于自适应专家系统的智能问答方法,其特征在于:自适应专家系统训练的第二阶段过程中,除交叉熵损失二 外,额外引入对比学习损失,将第二阶段的损失函数替换为 :其中λ是 和 的权衡因子;

给定实例 ,经过GRU编码后表征为隐状态 ,来自相同数据集的实例作为正样本 ,来自不同数据集的实例作为负样本 ,对比学习损失 被定义为:是两个向量表征之间的余弦相似度,是温度参数, 为正样本 中的实例编码后的隐状态, 为负样本 中的实例编码后的隐状态。

6.根据权利要求1所述的基于自适应专家系统的智能问答方法,其特征在于:所述Transformer层包括一个多头自注意力层和一个全连接前馈层,两个瓶颈结构适配器分别插入在多头自注意力层之后以及全连接前馈层之后。

说明书 :

一种基于自适应专家系统的智能问答方法

技术领域

[0001] 本发明涉及自然语言理解技术领域,具体涉及一种基于自适应专家系统的智能问答方法。

背景技术

[0002] 机器阅读理解使得机器能够阅读一段文本并回答给定问题,是机器迈向更高级智能的重要步骤。过去几年,随着深度学习技术的发展,尤其是预训练语言模型,机器阅读理解已经取得了长足的进步。日渐增加的机器阅读理解数据集也带来了一个问题:是否能结合多个数据集建立一个模型,使得其不仅能够在训练分布上表现得好,而且也能很好地泛化迁移到新的分布上。
[0003] 最直接的解决办法就是同时在多个数据集上进行训练,使模型能够建模跨数据集的规律。然而这种多数据集训练的方法可能会在不同的数据集上过拟合或欠拟合,并且迁移泛化的效果可能不如直接在与测试分布更相似的单个源数据集上进行训练。
[0004] 为了解决多数据集训练的问题,最近有方法提出在预训练模型上训练一组专家系统分别学习建模不同数据集特性,但是这种多专家系统范式存在着一些缺点,首先,每个数据集都需分配一个专家,因此专家数量会随着数据集增加而增加;更重要的是,对于未见过的数据集的专家参数将由训练数据集的专家参数的平均来估计,这在实际场景中并不合理,因为并不总能假设新的分布可以被训练分布的加权平均所简单描述。

发明内容

[0005] 为解决上述技术问题,本发明提供一种基于自适应专家系统的智能问答方法,训练单个专家,可以自动适应于来自所有数据集的每个实例。
[0006] 为解决上述技术问题,本发明采用如下技术方案:
[0007] 一种基于自适应专家系统的智能问答方法,自适应专家系统包括:
[0008] 基本模型(θ,α),包括基于Transformer的问答模块θ和瓶颈结构适配器α;基于Transformer的问答模块θ包括预训练Transformer编码器,Transformer编码器包括多个Transformer层;在每一个Transformer层中插入两个所述的瓶颈结构适配器α;瓶颈结构适配器α包括依次设置的下投影层、GeLU非线性层、上投影层;
[0009] 调制层β,添加至各瓶颈结构适配器α的下投影层之后以及上投影层之后,用于通过实例级别调制信号来调节上投影层和下投影层的输出;
[0010] 基于梯度的调制器γ,用于产生所述的实例级别调制信号;
[0011] 自适应专家系统的训练方法包括两个阶段:
[0012] 第一阶段,训练基本模型(θ,α):通过在所有源数据集DS上计算交叉熵损失一对基本模型(θ,α)进行训练:
[0013]
[0014] 其中 表示给定问题q和上下文c情况下得到真实回答a的概率,为基本模型中回答开始位置概率 和回答结束位
置概率 的乘积, 和 分别表示回答a的开始位置标记和结束位
置标记;
[0015] 第二阶段,冻结基本模型(θ,α),在所有的源数据集DS上调试调制层β和调制器γ:给定一个训练实例 ,首先用基本模型(θ,α)来提取梯度,然后将训练实例和提取的梯度输入至自适应专家系统(θ,α,β,γ)对回答进行预测,采用交叉熵损失二 调制β和γ:
[0016]
[0017] 其中,用来标记自适应专家系统预测得到回答a的概率; 为自适应专
家系统中回答开始位置概率, 为自适应专家系统中回答结束位置
概率;
[0018] 自适应专家系统(θ,α,β,γ)完成训练后,将待回答的实例输入基本模型(θ,α)中提取梯度,然后将待回答的实例和梯度输入自适应专家系统(θ,α,β,γ)对回答进行预测。
[0019] 具体地,下投影层后的调制层为第一调制层,上投影层后的调制层为第二调制层;调制层β通过实例级别调制信号来调节上投影层和下投影层的输出时,过程如下:
[0020] 第一调制层的输出
[0021] 第二调制层的输出
[0022]
[0023] 其中 分别为瓶颈结构适配器的m维输入和输出,MLP为用于维度映射的多层感知机, 分别是下投影层和上投影层的
参数, 分别是第一调制层所用到的实例级别调制信号、第二调制层
所用到的实例级别调制信号,[;]为串接操作,GeLU()为GeLU非线性层的输出。
[0024] 具体地,使用基于梯度的调制器γ产生实例级别调制信号时,包括以下步骤:
[0025] 步骤一:将每个实例输入基本模型,预测回答开始位置分布和结束位置的分布;
[0026] 步骤二:从开始位置的分布和结束位置的分布中采样出伪标签,并根据伪标签和预测分布计算交叉熵损失;
[0027] 步骤三:提取交叉熵损失关于瓶颈结构适配器α的梯度,将提取到的瓶颈结构适配器的梯度从底层到顶层排列成梯度序列,并使用GRU对梯度序列进行编码为隐状态,然后将隐状态输入至MLP多层感知机得到所述的实例级别调制信号。
[0028] 具体地,产生实例级别调制信号的步骤三具体包括:问答模块有L个Transformer层,每层有两个瓶颈结构适配器,用 和 来分别标记第 个Transformer层的第一个瓶颈结构适配器的梯度绝对值和第二个瓶颈结构适配器的梯度绝对值;
[0029] 将提取到的2L个瓶颈结构适配器的梯度,按从底层到顶层的顺序排列为一个梯度序列 ,使用GRU将梯度序列编码为与梯度序列各元素对应的隐状态记为 ;
[0030] 对于每个 ,使用两个MLP多层感知机分别产生两个实例级别调制信号 和 ,用于第 层Transformer中的第i个适配器,实例级别调制信号 用于下投影层之后的调制层,实例级别调制信号 用于上投影层之后的调制层。
[0031] 进一步地,自适应专家系统训练的第二阶段过程中,除交叉熵损失二外,额外引入对比学习损失 ,将第二阶段的损失函数替换为 :
[0032]
[0033] 其中λ是 和 的权衡因子;
[0034] 给定实例 ,经过GRU编码后表征为隐状态 ,来自相同数据集的实例作为正样本,来自不同数据集的实例作为负样本 ,对比学习损失 被定义为:
[0035]
[0036] 是两个向量表征之间的余弦相似度,是温度参数, 为正样本 中的实例编码后的隐状态, 为负样本 中的实例编码后的隐状态。
[0037] 具体地,所述Transformer层包括一个多头自注意力层和一个全连接前馈层,两个瓶颈结构适配器分别插入在多头自注意力层之后以及全连接前馈层之后。
[0038] 与现有技术相比,本发明的有益技术效果是:
[0039] 本发明提出了基于自适应专家系统的多数据集问答方法,在共享的Transformer问答模块上构建了一个自适应专家模块,可以根据每个实例的梯度自适应地对其进行调制;自适应专家模块可以建模跨数据集的规律性,最突出的优势是能够很好地适应来自任何未见过的给定数据集的实例。此外,本发明的恒定额外参数是另一个优势,可用于未来具有大量数据集的场景。
[0040] 本发明进一步设计了一种对比学习机制,以增强来自不同数据集中的调制信号的可辨识性,从而实现更好的调制。

附图说明

[0041] 图1为本发明自适应专家系统的示意图。

具体实施方式

[0042] 下面结合附图对本发明的一种优选实施方式作详细的说明。
[0043] 机器阅读理解是文本问答的一个基础任务,以上下文c为基础,为给定的问题q找到一个回答a。抽取式机器阅读理解中,每个问题的回答被约束为上下文c中的一个连续片段,即: ,其中i和j是回答的开始和结束位置。
[0044] 考虑多数据集机器阅读理解场景,给定来自不同分布的多个源数据集DS和目标数据集DT,每个数据集由形式为 三元组的标注实例组成。目标是要在源数据集DS上训练一个模型,实现不错的领域内表现,同时能够在未见过的目标数据集DT上实现较好的迁移效果。
[0045] 本发明提出了一种基于自适应专家系统的多数据集问答方法,包括以下三个部分:共享的基于Transformer的问答模块、自适应专家模块、模型训练。
[0046] 1.共享的基于Transformer的问答模块
[0047] 共享的基于Transformer的问答模块采用一个预训练Transformer编码器和一个线性问答层,是基本的机器阅读理解框架,Transformer编码器由一个嵌入层和一组L个连续的Transformer层构成。每个Transformer层有两个子层:一个多头自注意力层和一个全连接前馈层,都包裹在残差连接和层正则化中。在图1左边部分提供了关于Transformer编码器的简单结构。Transformer编码器采用问题q和上下文c作为输入,并产生它们的深度上下文化后的表征。经过Transformer编码器的编码过程后,搭建了一个线性输出层,随后进行一个标准softmax操作,来预测上下文中的每个片段 作为回答的开始位置的概率 和结束位置的概率 ,线性问答层包括所述线性输出层和标准softmax操作。这个基于Transformer的问答模块,记为θ,被所有来自源数据集DS的训练数据集所共享,并因此可以建模跨数据集的规律。
[0048] 2.自适应专家模块
[0049] 接下来介绍建立在基于Transformer的问答模块上的自适应专家模块,它可以捕捉来自源数据集DS的不同训练数据集的特性。本发明中,自适应专家模块是一系列轻量级适配器模块,交错在Transformer编码器的各Transformer层之间,同时具有一个突出的特性,即它可以根据每个输入实例的梯度自适应地进行调整。借助此特性,自适应专家模块将能够对每个实例的特异性进行编码,并使整个模型充分适应该实例;具体地,自适应专家模块包括可调适配器和基于梯度的调制器。
[0050] 2.1可调适配器
[0051] 适配器通常是指轻量级的、特定于任务的模块,交错在预训练Transformer编码器的Transformer层之间而不改变其原始结构。本发明中的可调适配器是作为普通微调参数方案的高效替代方案:仅在冻结的Transformer层上训练适配器,而不是微调整个Transformer层。这表明对于特定的下游任务,可调适配器能够捕获任务的特性,因为Transformer层是冻结的,并且在各种任务中共享。鉴于此,本发明主要基于适配器设计的专家,但本发明中的适配器具有可调整的特性,可以自动适应来自不同数据集的单个实例,因此能更好地泛化到没见过的数据集中。
[0052] 图1展示了可调适配器的结构以及是如何被插入到Transformer层中的。可调适配器包括在每一个Transformer层中插入的两个传统瓶颈结构适配器,以及每个瓶颈结构适配器中的调制层。具体来说,在每一个Transformer层中插入两个瓶颈结构适配器,其中一个在多头自注意力层之后,另一个在全连接前馈层之后,它们都处于残差连接和层正则化之前。
[0053] 本实施例中,适配器是标准的瓶颈结构,由下投影层和上投影层和中间的GeLU非线性层构成。下投影层将原始的高维特征投影到低维空间,而非线性层之后的上投影层将其投影回原始的维度。本发明中的可调适配器在这个瓶颈结构基础上,分别在下投影层和上投影层之后插入了两个调制层。每个调制层用一个实例级别的调制信号来调节投影过后的输出,实例级别的调制信号由基于梯度的调制器产生。通过引入实例级别的调制信号,调制层能够使得适配器自动根据每个输入实例进行自我调节,这也是可调适配器最显著的特性。调节过程如下:
[0054]
[0055]
[0056]
[0057] 其中 分别为瓶颈结构适配器的m维输入和输出,输出即关于给定问题或上下文中的一个具体片段(token); 分别是
下投影层和上投影层的参数; 分别是下投影层后和上投影层后的两
个调制层所用到的实例级别的调制信号;MLP是一个用于维度映射的多层感知机,是两个调制层的输出;[;]是串接操作。将可调适配器分为传统瓶颈
结构适配器α部分和添加的调制层β部分。
[0058] 2.2基于梯度的调制器
[0059] 使用一个基于梯度的调制器来产生在可调适配器中使用的实例级别的调制信号。为提取梯度,考虑一个基本模型(θ,α),由共享的基于Transformer的问答模块(记为θ)和每层插入的两个传统瓶颈结构适配器(记为α)构成。将每个实例(即问题q和支持上下文c),输入基本模型,并预测回答的开始和结束位置的分布,即 和
。从这开始位置和结束位置的分布中采样出伪标签,并根据伪标签
和预测分布计算交叉熵损失。之后,提取交叉熵损失关于适配器α的梯度。由于问答模块有L个Transformer层,每层有两个适配器,这里用 和 来分别标记在第 个
Transformer层的多头自注意力层之后的适配器和全连接前馈层之后的适配器的梯度绝对值。
[0060] 经过梯度提取,将提取到的2L个从底层到顶层的适配器的梯度排列成一个梯度序列 ,并使用一个GRU对梯度序列进行编码。GRU编码的序列特性使信息得以从底层流向高层,能够使得在顶层产生更具表达力的编码输出。
经过GRU编码的对应于梯度序列元素的隐状态记为 。对于每个
,使用两个MLP来产生两个调制信号 和 ,用于对应
的可调适配器,即用于第 层Transformer中的第i个可调适配器,调制信号 用于下投影层之后的调制层,调制信号 用于上投影层之后的调制层。将基于梯度的调制器记为γ。
[0061] 3.模型训练
[0062] 模型训练分为两阶段。在第一阶段,训练由共享的基于Transformer的问答模块θ和每个Transformer层插入两个的传统瓶颈结构适配器α构成的基本模型(θ,α)。在这些适配器中没有使用调制层,通过在所有源数据集DS上计算交叉熵损失一 来进行θ和α的训练:
[0063]
[0064] 其中 表示给定问题q和上下文c情况下得到真实回答a的概率,定义为回答开始位置概率 和回答结束位置概率
的乘积, 和 分别表示回答a的开始位置标记和结束位置标
记。经过第一阶段训练,可以得到一个基本模型来提供好的初始点,而且也能够在适配器调制过程中用于梯度的提取。
[0065] 在第二阶段,冻结基本模型(θ,α),引入额外的适配器调制层β和基于梯度的调制器γ,一起形成了完整的自适应专家系统。第二阶段在所有的源数据集DS上调试β和γ。具体而言,给定一个训练实例 ,首先用基本模型(θ,α)来提取梯度,然后将这个训练实例和提取的梯度一起送入到自适应专家系统(θ,α,β,γ)来进行回答的预测。仍然采用交叉熵损失(交叉熵损失二 来调制β和γ:
[0066]
[0067] 这里,用来标记完整自适应专家系统预测得到回答a的概率; 为自适
应专家系统中回答开始位置概率, 为自适应专家系统中回答结束
位置概率。
[0068] 除了交叉熵损失,进一步考虑一个对比学习损失 ,以便更好地区分来自源数据集DS中的不同数据集的实例的梯度。第二阶段的整个损失为:
[0069]
[0070] 这里λ是两个损失项的权衡因子。
[0071] 自适应专家系统的关键特性是它使用了一个能够根据实例的基于梯度的表征进行自适应调制的可调适配器。直觉上,这些来自相同数据集的实例的基于梯度的表征应该相互靠近,而那些来自不同数据集的实例的表征应该相互远离。基于这个直觉,引入一个对比学习损失。具体地,对每个实例,考虑经过GRU编码后的最后的隐状态 作为实例级别的表征用于对比学习。给定实例 ,表征简化为 ,来自相同数据集的实例作为正样本,记为,那些来自不同数据集的实例作为负样本,记为 。对比学习损失被定义为:
[0072]
[0073] 这里 是两个向量表征之间的余弦相似度,并且 是温度参数, 为正样本中的实例编码后的隐状态, 为负样本 中的实例编码后的隐状态。对比损失能增强不同数据集的实例级别的表征的区分度,从而使可调适配器产生更准确的调制。
[0074] 在推理阶段,给定一个实例,将其输入到基本模型(θ,α)中并提取梯度,然后将实例和提取的梯度送入到自适应专家系统(θ,α,β,γ)来进行回答的预测。具有最大的的片段 被选择为预测的回答。这个推理过程在包括领域内学习、少样本迁移和零样本泛化的三个设定下都是相同的。
[0075] 对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化囊括在本发明内,不应将权利要求中的任何附图标记视为限制所涉及的权利要求。
[0076] 此外,应当理解,虽然本说明书按照实施方式加以描述,但并非每个实施方式仅包含一个独立技术方案,说明书的这种叙述方式仅仅是为了清楚起见,本领域技术人员应当将说明书作为一个整体,各实施例中的技术方案也可以经适当组合,形成本领域技术人员可以理解的其他实施方式。