第 42 卷第 3 期2023年 5 月
Vol.42 No.3
May 2023
中南民族大学学报(自然科学版)
Journal of South-Central Minzu University(Natural Science Edition)
基于利用BERT不同层信息的微调策略的
对话状态追踪
叶正,傅灵,覃俊,刘晶
(中南民族大学计算机科学学院& 信息物理融合智能计算国家民委重点实验室,武汉430074)
摘要在对话状态追踪任务中,BERT在训练下游任务时往往会选择模型的最后一层来做分类,尽管这样做的性能也非常出,但是这种做法往往忽略了BERT的其他层包含的语义信息.在BERT的微调策略方法上,探究了BERT层数选择对任务结果的影响.为了缓解Dropout在训练和推理过程中产生的不一致性
问题,引入了R-Drop正则模块对网络输出预测进行正则约束.实验结果表明:用注意力机制对拼接后的BERT的12层输出进行特征权重的微调,提高了对语义信息的特征表达能力,在数据集上Woz2.0上比只采用最后一层进行句子分类的BERT-Base 效果更好.
关键词对话状态追踪;微调策略;层数选择
中图分类号TP391.1 文献标志码  A 文章编号1672-4321(2023)03-0327-07
doi:10.20056/jki.ZNMDZK.20230306
Dialogue state tracking based on fine-tuning strategy using BERT
information at different layer
YE Zheng,FU Ling,QIN Jun,LIU Jing
(College of Computer Science & Information Physics Fusion Intelligent Computing Key Laboratory of the National Ethnic Affairs Commission, South-Central Minzu University, Wuhan 430074)
Abstract In the dialogue state tracking task, BERT often selects the last layer of model for classificati
on when training downstream tasks. Although the performance of this method is also excellent,it often ignores the semantic information contained in other layers of BERT. The impact of BERT layer selection on task results in terms of BERT fine-tuning strategies is explored . At the same time, Dropout will lead to inconsistency of training and reasoning processes. In order to alleviate the inconsistency problem caused by Dropout during training and reasoning, the R-Drop regularization module to perform regular constraints on network output prediction is introduced . The experimental results show that using the attention mechanism to fine-tune the feature weight of the 12 layers of output of the spliced BERT improves the feature expression ability of semantic information,and has a better effect on the dataset WoZ 2.0 than the BERT Base using only the last layer for sentence classification.
Keywords dialogue state tracking; fine-tuning strategy; layer selection
近几年来,智能对话系统已经成为当下互联网中的热门领域,如小米公司的小爱同学、苹果公司的SIRI等智能语音助手,这些产品相比那些基于传统规则的语音助手来说,它们不再局限于人工制定的规则,而是通过基于深度学习的方式,更好地来
理解用户的意思,同时还能对用户提出的问题做到更加精确且快速的回答.对话系统按功能来划分的话,
分为闲聊型、任务型、知识问答型和推荐型.其中任务型对话可以帮助用户完成所提出的任务[1](例如查产品,预订住宿和餐馆).在不同类型的聊
收稿日期2022-09-04
作者简介叶正(1981-),男,教授,博士,研究方向:自然语言处理,E-mail:*****************
基金项目教育部产学合作协同育人项目(202102191002);中南民族大学引进人才项目(YZZ20001)
第 42 卷中南民族大学学报(自然科学版)
天系统中,对话管理也不尽相同.对话管理是任务型对话中至关重要的一部分,对话状态追踪[2](Dialogue State Tracking, DST)则是对话管理的一部分.
对话状态是从对话开始到当前对话的用户目标的总结,通常表现为多组槽-值对的组合的形式,有时也会包括对话所属的领域、用户意图等信息.对话状态追踪是指结合对话历史、当前对话、前一轮对话状态等信息,推断并更新当前对话状态的过程.
正则化包括dropoutDST在对话管理中介于自然语言理解[3](Natural Language Understanding, NLU)和对话策略[4](Dialog Policy, DP)模块之间,可以将其简化成输入输出的形式,DST的输入往往是自动语音
识别(Automatic Speech Recognition,ASR)以及语音语言理解(Speech Language Understanding, SLU)的输出结果;DST的输出则是对话状态,用于选择下一步动作.但是ASR、SLU等组件的识别结果往往没有那么理想,经常出现错误,这对DST本身的鲁棒性有着较高的要求.所以DST的输出往往是各个对话状态的概率分布,这样可以在多轮对话中进行修改,并且方便系统向用户发起澄清语句.
随着深度学习的崛起,目前有许多深度神经网络被提出并用做DST任务[5-7],但是深度网络存在着几个问题,比如说网络层次越深,需要的训练样本数越多.若用于监督任务则需大量标注样本,小规模样本则很容易造成过拟合.深层网络特征比较多,会出现的多特征问题主要有多样本问题、规则化问题、特征选择问题;同时多层神经网络还存在参数优化经常得到收敛较差的局部解和梯度扩散问题.为了解决这些问题,将预训练模型作用于DST 任务就是一个有效的方法,其中比较流行的预训练模型就是ELMo[8]和BERT[9].这样就可以在自己的NLP数据集上使用该预训练模型,而无需从头开始构建模型来解决类似的问题.
BERT拥有强大的语言表征能力和特征提取能力,同时使用预训练模型还有助于缓解数据缺失的问题.但由于BERT的12层输出层每层都包含着语义信息,在做池化分类的时候往往没有利用其他层的信息.所以本文将以端到端的对话状态跟踪任务为研究对象,利用BERT不同层信息的微调策略上对BERT进行微调.实验结果表明,BERT输出12层拼接后再加上R-Drop正则约束在DST任务上取得了较优的效果.1 相
关工作
1.1 对话状态追踪
深度学习早期,由于在ASR和NLU这两个环节经常出现误差,因此输入到DST中的内容是N-best 列表(对于ASR输入的是多条句子,对于SLU输入的是多个槽值对.每条句子和每个槽值对都带一个置信度).DST也就相应地输出各个状态的概率分布,这样可以在多轮对话中对对话状态方便地进行改动.尽管如此,DST任务还是会受到误差传播的影响.之后HENDERSON等人直接舍弃了ASR、SLU模块[10],而向模型输入语句或者其他特征,并将循环神经网络(RNN)运用在了DST领域.
DST任务需要对每个领域的不同槽位进行追踪,目的是为了在每轮对话过程中获得用户目标.对此DST常用的建模方法主要有两种:分类式和判别式,前者将DST视作一个多任务分类任务,也就是说,DST任务需要为每个槽位都创建一个唯一的分类器,这种做法带来的缺点也有很多.首先是泛化能力不强.由于各个槽位都有着特定的分类器参数,即便槽位在一定程度上很相似,但是也无法处理另外一个槽位;其次在任务型对话数据集中,针对某个领域只有少量数据时,分类器分到的数据集也会变少,比如“餐厅-区域”和“电影院-区域”,火车领域数据较多,而飞机领域数据则比较稀缺,如果能通过训练“餐厅-区域”来处理“电影院-区域”,那么就需要对模型的泛化能力有较高要求,另外分类式还有可扩展性不高和无法并行处理槽位的问题.
除了分类式,还可以将DST任务建模成判别式.判别式的工作流程则是计算槽位表征和槽值表征之间的距离[11].同样,判别式也存在泛化能力不足、可扩展性不高等问题,每次加入新的槽位,模型就要重新训练.针对以上问题,RASTOGI等人在DST 任务中共享了所有槽位的参数[12],这样就可以充分地利用训练数据来训练分类器.由于参数的共享机制,使得模型能够处理相似的槽位,这样一来该模型也就具有了一定的泛化能力.
1.2 基于BERT的对话状态追踪
BERT使用了Transformer[13]模型的Encoder层来进行特征的提取,采用了预训练加微调的训练模式,通过遮蔽语言模型(Masked Language Model,MLM)随机对输入序列中的某些位置进行遮蔽,然后通过模型进行预测.MLM随机遮蔽模型输入中的
328
第 3 期叶正,等:基于利用BERT不同层信息的微调策略的对话状态追踪
一些token,目标在于仅基于遮蔽词的语境来预测其原始词汇id.与从左到右的语言模型预训练不同,
MLM 目标允许表征融合左右两侧的语境,从而预训练一个深度双向 Transformer,有利于训练得到更深的BERT网络模型.除此之外,在训练BERT的过程中还加入了下句预测任务(Next Sentence Prediction,
NSP),即同时输入两句话到模型中,然后预测第二句话是不是第一句话的下一句话,它可以和MLM共同预训练文本对的表示.通过MLM任务和NSP任务来学习深度单词级和句子级的特征,在不同的下游任务上通过微调的方式训练和测试,以此得到最终的模型和实验结果.
BERT采用大量的无标签数据、充分的训练,学习了字符级、单词级、句子级甚至句间关系的特征,以至于在不同的下游NLP任务中,只需要为BERT 在特定任务中添加一个额外的输出层,即可进行训练.在BERT被提出后,判别式模型中“槽值”也被赋予了语义.大量的以BERT为编码器的模型出现并用于DST任务[14-15],通常的做法是将槽位名称或槽位描述直接追加在上下文的前面或后面.这种编码方式的输出相当于某个上下文感知的槽位表征,然后在下游任务中接入一个分类器或直接对候选值进行判别.BERT在DST任务上的实现通常是取最后一层进行pooled-output得到任务需要的特征,这样就往往忽略了BERT其他层的信息,同时pooled-output是由线性层和Tanh激活函数进一步处理的,这个输出并不一定是对输入语义内容的一个很好的总结.
1.3 R-Drop
过拟合是很多深度学习网络的通病,在训练一些大规模模型时往往会出现,导致泛化能力较差,为了解决这些问题,出现了很多正则化技术,例如:L2正则化,Dropout等,其中,Dropout技术由于只需
要简单地在训练过程中丢弃一部分神经元,而成为了被最广为使用的正则化技术.
但是也正是因为训练过程中每次都会随机丢弃部分神经元,这样就会产生不同的子模型,结果就是Dropout在一定程度上使得训练后的模型是一种多个子模型的组合约束.基于Dropout的这种特殊方式对网络带来的随机性,WU等人提出了R-Drop[16]来进一步对(子模型)网络的输出预测进行正则约束.R-Drop在训练过程中通过刻意对子模型之间的输出进行约束,来约束参数空间,让不同的输出都能一致,从而降低了训练与测试的不一致性.
2 模型
本文所使用的模型编码器为BERT-Base,通过注意力机制对拼接后的BERT的12层输出进行特征权重的微调。任务流程是将系统会话、用户会话以及槽值对作为输入,传到微调后的BERT编码器中得到一个新的语义表示向量c,最后将该向量放到全连接层中输出得到相应的分数,以此来表明预测的结果是否正确.该方法类似于句子对的分类任务,以下对模型结构进行具体介绍.
2.1 输入层
输入层的结构如图1所示,输入部分由前一个回合的系统对话(System Utterance)、当前回合的用户对话(User Utterance)以及候选槽值对(Candidate Slot-Value Pair)三个输入段组成.通过BERT的tokenizer模块进行分词得到每个输入段的token序列,在输入序列的最前端添加特殊标记[CLS]作为文本的语义表示,同时这三个输入段均用特殊标记[SEP]进行分隔,进而得到一个单一的标记序列用以
传给模型层进行训练.
2.2 模型结构
模型结构分为3个模块,为了更直观地观察模型层结构,下文将输入层进行简化展示.模型结构如图2所示,BERT由12层Transformer模块组成,模型层将第一个特殊字符[CLS]经过不同层Transformer模块得到的输出向量记为C i(i=1,2,...,12),不同的输出向量采用点积注意力来训练权重得到最终的输出向量c .
图1 输入层
Fig.1 Input layer
329
第 42 卷
中南民族大学学报(自然科学版)2.2.1 点积注意力训练权重
注意力机制实质上就是一个寻址过程,通过给
定一个任务相关的查询Query 向量Q ,通过计算Key 的注意力分布并附加在Value 上,从而计算出Attention Value ,这当中涉及到注意力打分机制和注
意力概率分布作用过程,步骤如下:首先是信息输入:
X =[x 0,...,x N -1]表示N 个输入信息.
其次是注意力分布计算,令Key =Value =X ,则可以给出注意力分布:
αi =softmax(s (k i ,q ))=softmax(s (x i ,q )) .(1)
根据打分机制计算注意力得分系数,其中点积
注意力的公式为:
s (x i ,q )=x T i q .
(2)
最后是对信息加权:注意力分布αi 可以解释为在上下文查询q 时,第i 个信息受关注的程度,采用一种“软性”的信息选择机制对输入信息X 进行编码为:
attention(V )=∑i =1
N αi V i =aV  .
(3)
2.2.2 输出层
输出向量c 传入到输出层.输出层则直接使用
一层全连接层,用于得到最终的评分.分数的相关概率为:
y = σ(Wc +b )∈IR  ,
(4)
其中,变换矩阵W 和偏置项b 为模型参数,σ为Sigmoid 函数,它的作用是将分数压缩至0到1之间.
在每个回合中,BERT 模型被用来估计每个候
选槽值对的概率分数.随后选择预测概率大于0.5的作为该回合的最终预测值;同时使用新预测的槽值对来更新前一回合状态中的对应值以获得当前回合的对话状态.2.2.3 损失函数
损失函数的定义参考R -Drop ,目标包含两个部
分,一个是两次输出之间的KL 散度,其作用主要是使两个不同的子模型预测的结果尽量保持相同,达到模型优化的目的.通过最小化两个分布之间的双向KL 散度,减小Dropout 训练和测试时带来的不同.公式如下:
L i KL  =
12
(D KL (P w 1(y i |x i )||P w
2(y i |x i ))+D KL (P w 2(y i |x i )||P w
1(y i |x i ))) .
(5)另一个是模型自有的损失函数交叉熵,公式如下:
L i NLL =-log P w 1(y i |x i )-log P w
2(y i |x i ).
(6)最终的总损失函数则定义为两者的加权和:L i =L i NLL +α∙L i KL  ,
(7)
其中α是控制L i KL 权重的系数.
3 实验与分析
3.1 数据集与评价指标
本文实验主要在数据集WoZ2.0[17]上进行.
WoZ2.0是面向餐馆预定场景的单领域数据集,语料库由WoZ1.0版本的600轮单域对话扩充到1200个单域对话,由用户对话和系统对话组成,
旨在帮助
图2 模型结构Fig.2 Model structure
330
第 3 期
叶正,等:基于利用BERT 不同层信息的微调策略的对话状态追踪
用户到合适的餐厅.其中本体包括3个槽位:食物、价格和区域.该数据集可以有效检验模型在单领域上的效果.
为了更好地评估BERT 输出层拼接对提高DST 任务的有效性,与之前的工作类似,实验指标选择DST 任务中十分常用且先进的联合目标精度
[18]
(Joint Goal Accuracy ),即比较每一轮的预测输出值与真实状态值,只有当且仅当状态中的每个槽值均预测正确时,才认为本轮预测正确.3.2 实验设置
本次实验是在单块Quadro RTX 6000显卡上进行的,使用网格搜索来设置BatchSize 大小和学习率,其中BatchSize 大小的范围为[16, 32, 64],学习率设置的范围为[0.00001, 0.00002, 0.0002],选用的预训练模型是BERT -Base 版本,该模型由12层Transformer 组成,有768个单元的隐藏层和12个自
我注意头.最后根据最优的结果设置训练中BatchSize 的大小(设置为16),epoch 为25,优化器使用Adam ,学习率为0.00002,预热学习率[19]
(warmup_
proportion )设置为0.1.3.3 实验结果与分析
为了验证利用BERT 不同层信息的微调策略方
法的有效性,本文以BERT -Base 的结果为基线模型,对BERT 的层数选择进行变动,根据SUN 等人的实验[20],特别地选取了BERT 输出层的后4层和全部12层,并对其采取拼接、平均或最大三种方法,实验结果如表1所示.
同时为了提高模型的稳定性,实验中还引入R -
Drop 正则模块对其进行优化,其中BERT_RDROP 表示BERT 引入R -DROP 正则模块后的模型结构,
引入后的实验结果如表2所示.
从表1的结果不难看出,在没有加入R -Drop 正则模块时,对BERT 输出后4层进行拼接和最大的结
果相对于BERT -Base 有小幅度提高,分别高出0.6%
和0.9%.通过表2的实验结果可发现在加入R -Drop 正则模块后,在BERT 输出后4层取平均、BERT 输出12层拼接的联合目标精度值有明显的提高,其结果比没有引入R -Drop 的分别高出1.6%和1.4%,其中B
ERT 输出12层拼接相比于基线模型也高出了1.0%,同时也是层数选择中效果最好的一个.这说明引入R -Drop 正则模块后对部分实验结果的提高
是可行的.
同样地,为了验证基于利用BERT 不同层信息的微调策略方法的有效性,本文还选取了目前DST 任务中的一些效果较好的网络模型,比如GLAD [21]、
StateNet [22]
以及Neural Belief Tracker [23],作为对比,将这
些模型与表2中结果最好的BERT 全部12层拼接加上R -Drop 正则模块进行对比实验,结果如表3所示.
从表3中可以看出,在BERT 经过输出12层拼接之后,再利用R -Drop 正则约束来增强DST 任务中预测结果的准确性,该方法在DST 任务中非常关键的联合目标精度指标上比其他几个网络模型的实验结果要高出不少,进一步证明了对BERT 输出层的层数选择上的改动是有效的,可以获得更多的语义信息.这说明利用BERT 不同层信息的微调策略这种方法在DST 任务中具有一定优势.
4 总结
为了完成面向任务型对话系统中的状态跟踪
表1 BERT 微调策略下的层数选择在WoZ2.0测试集上的
联合目标精度
Tab.1 Joint Goal Accuracy of layer number selection under BERT
fine -tuning strategy on WoZ2.0 test set Models
BERT -Base
BERT (后4层 + 拼接)BERT (后4层 + 平均)BERT (后4层 + 最大)
BERT (全部12层 + 拼接)BERT (全部12层 + 平均)BERT (全部12层 + 最大)Joint Goal Accuracy /%
90.791.389.491.690.390.590.1
表2 引入R -Drop 正则化后BERT 层数选择在WoZ2.0测试集上的
联合目标精度
Tab.2 After introducing R -Drop regularization , the Joint Goal
Accuracy of BERT layer selection on WoZ2.0 test set
Models
BERT_RDROP (Base )
BERT_RDROP (后4层 + 拼接)BERT_RDROP (后4层 + 平均)BERT_RDROP (后4层 + 最大)
BERT_RDROP (全部12层 + 拼接)BERT_RDROP (全部12层 + 平均)BERT_RDROP (全部12层 + 最大)Joint Goal Accuracy /%
90.691.191.090.591.790.090.4
表3 不同模型在WoZ2.0测试集上的联合目标精度Tab.3 Joint Goal Accuracy of different models on WoZ2.0 test set
Models GLAD
StateNet
Neural Belief Tracker
BERT_RDROP (全部12层 + 拼接)
Joint Goal Accuracy /%
88.188.984.291.7
331

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。