查看原文
其他

预习-上课-复习:让机器像人一样学习对话

戴音培、李永彬 PaperWeekly 2022-07-04


©PaperWeekly 原创 · 作者 | 戴音培、李永彬

机构 | 阿里巴巴达摩院Conversational AI团队

 

预习时关注重点,上课时由易到难,复习时举一反三,能否让机器也按照“预习-上课-复习”的学习范式进行学习呢?达摩院对话智能(Conversational AI)团队对这个问题进行了研究探索,先将其用在了人机对话领域,在国际知名多轮对话数据集 MultiWoz 上取得了最好结果。



论文标题:

Preview, Attend and Review: Schema-Aware Curriculum Learning for Multi-Domain Dialogue State Tracking

论文链接:

https://aclanthology.org/2021.acl-short.111/
目前对话系统的各类研究工作,大多还是集中在模型结构的创新上,并按照传统的 mini-batch 方式进行有监督训练。然而,笔者所在团队经过最新研究发现,这种传统训练方式并不是对话系统的最优训练模式。受到人类在学习新知识时的学习范式的启发,我们提出了“预习-上课-复习”的三阶段训练范式来提升对话系统的性能,该范式能够像人一样预习时关注重点,上课时由易到难,复习时举一反三。

具体来说,在预习阶段时,人一般会先了解重点概念、章节结构等信息,因此我们对应地设计了带有结构偏置的预训练目标,让模型学会对话数据中的槽值关联信息;在上课阶段时,人会从简单内容开始学习再逐步进阶到困难部分,因此我们使用了课程学习 [1] 的方法来训练对话模型;而在复习阶段时,人们通常是温故知新举一反三,因此我们专门设计了基于对话本体的数据增强方法,针对易错样例对模型进行加强训练。通过这样的优化框架,我们最终在多轮对话数据集 MultiWOZ2.1 和 WOZ2.0 上都取得了目前最好结果,相关工作被 ACL 2021 以 4-4-4 高分接收。


      


人类学习范式与机器学习范式

在教育学中,针对人类学习的模式,不少学者提出“预习->上课->复习”的三阶段过程,是最为高效的学习范式之一 [3]。预习时,由于没有老师进行指导,因此学生会利用已学知识和技能,通过观察章节标题、浏览段落文字、准备课上问题等方式进行自主地学习,大致了解课堂内容;进入到正式上课阶段时,学生会根据老师安排好的课程从易到难进行学习,这种由浅入深的教学是人类数百年教育发展总结出的最佳方式,能够让学生的知识接受效率最大化;在上完课后,学生应当及时地回顾所学的课程内容,温故知新,通过自我反思总结,找出仍旧没有掌握的知识点,并准备好和老师进一步沟通解答。

▲ 图1. “预习-上课-复习”三阶段学习范式


以上是人类学习范式,而在人工智能的主要方向自然语言处理(Natural Language Processing,NLP)领域中,目前大家普遍采用的是“pre-train + fine-tune”的机器学习范式,即先得到大规模预训练语言模型,再基于该模型进行下游任务微调。这种机器学习范式过于简化,没有考虑到人类学习范式中的重要特性,即:预习时关注重点,上课时由易到难,复习时举一反三。因此,对于某个具体的 NLP 任务,我们应该在构建训练目标时就将这些特性考虑进来,通过设计出更具任务本身特点的新目标函数来模仿人类学习范式中的三阶段学习过程。



基于“预习-上课-复习”学习范式的多轮对话理解

在本文中,我们主要研究任务型多轮对话系统中的核心任务——对话状态跟踪(Dialog State Tracking, DST),并希望能够设计出多轮对话特有的“预习-上课-复习”三阶段学习范式以提升 DST 模型的效果。

2.1 对话状态追踪任务及其难点

首先,我们介绍一下任务型对话系统和 DST 任务。 

任务型对话系统是通过人机对话完成某个特定任务的系统,例如政务事务办理、满意度回访、订餐馆等。该系统不仅可以回答用户问题,同时还能主动发问,引导会话的有效进行,通过多轮对话完成特定任务。例如在一个餐馆查找场景中,一个典型的对话如下:

▲ 图2. 任务型多轮对话示例


如图 2 所示,可以看到,在该对话中,机器人需要根据用户的不同的回答情况进行多轮的对话,最终收集完整自己需要的信息后给出找到的结果。有关任务型对话模型的更多介绍可参考《小蜜团队万字长文:对话管理模型最新研究进展》《达摩院基于元学习的对话系统》。 

对话状态跟踪(DST)是一个重要的对话理解任务,即给定整个对话历史,将用户表达的语义识别成槽值对形式的对话标签。例如用户说 “我想要便宜的餐馆”,对应的 DST 语义标签就是“价格=便宜”。对话标签的集合一般已经预定义好,统称为对话本体 (ontology) 或者对话 schema。

在一些经典的学术对话数据集中,例如 MultiWOZ [4],CrossWOZ [5] 等,DST 任务普遍存在以下 3 个挑战:

不同槽之间的取值存在指代关联。例如用户在前几轮交互已经预定好了某家餐馆,在当前轮时,用户说 “我还想要该餐馆附近的一家酒店”,那么隐含地,酒店的 area 槽值应当和餐馆的 area 槽值是一致的,这需要 DST 模型有能力识别出来。


用户隐含接受系统推荐。例如,当系统推荐某家酒店时,用户针对推荐的结果的态度既可以是正面的表达(that’s great),也可以是非正面的表达(hold on please),对应的 hotel-name 槽也就会填或不填。


真实用户表达丰富多样,增大解析难度。例如,在 DST 任务中,每个槽有一个特殊的槽值叫 dontcare,用于表示用户对该槽可选取所有值,即没有特定值限制。在 MultiWOZ 数据集中,用户对于 dontcare 的表达多样性很大,十分考验模型的语言理解能力。


下图 3 是我们利用目前最好的 DST 模型 TripPy [10],在 MultiWOZ2.1 数据集上进行错误分析得到的一个错因占比统计。除了标注错误,后处理不当等额外因素,以上三类问题的占比达到约 42%,这需要更好的模型和方案来进行解决。

▲ 图3. MultiWoz 2.1数据集DST错误分析(模型采用TriPy)


2.2. “预习-上课-复习”技术方案 

针对上文提到的 DST 难点,我们希望能够从人类学习的过程中总结出一种特有范式来优化模型,实现一种 model-agnostic 的 DST 优化方案。基于此,我们设计了“预习-上课-复习”三阶段 DST 训练方案,充分地利用好对话 schema 中已经存在的槽值关联的结构(即 schema structure)和对话数据中存在的难易数据分布的结构(即 curriculum structure),提出了 Schema-aware Curriculum Learning for Dialog State Tracking (SaCLog) 通用的 DST 优化框架,如下图 4 所示:

▲ 图4. 基于“预习-上课-复习”的对话状态追踪


2.2.1 预习模块 (preview module) 

我们希望在预习模块中能够实现对 schema structure 的有效建模,通过设计类似 [6] 的带有结构偏置信息的预训练目标,让 DST 模型的基座(如 BERT, BiRNN 等)对 schema 中信息有一个初步大致的了解,在不接触具体下游 DST 任务的情况下,先对各个槽的取值以及在用户语句中的表达有一个显式关系的建模。下图 5 是 MultiWoz 中的一个典型的 schema structure:

▲ 图5. MultiWoz数据集中的典型的schema structure


实线连接的是同一个领域下的槽,虚线连接的是不同领域之间可能存在槽值关联的槽,整体形成了一个网络状的结构。每个槽的槽值在不同的自然语句中也会有不同的表达形式,我们希望将这些隐含的联系在预习阶段通过预训练的方式让模型学习出来。

具体的做法是,我们利用一个槽编码器和一个对话历史编码器(两个编码器共享参数,模型可选择 BERT、BiRNN 等)分别编码每个槽和对话历史,槽编码向量和对话历史的各个位置的向量进行两种 loss 计算,一种是操作分类 loss ,判断某个槽在当前的对话语句中属于“增”、“删”、“改”、“无”四个操作中的哪一个操作类别,另一种是序列预测 loss ,判断当前对话历史中,哪些词属于该槽的槽值(利用预设的字符串匹配得到)。同时我们再加上一个辅助的 MLM loss ,对整个对话预料进行类似 RoBERTa 的预训练。最终整体 loss 是三者的加权和 。


2.2.2 上课模块 (attend module) 

通过预习模块我们得到了一个预训练好的模型基座,如 BERT。接下来我们正式进行 DST 任务的学习。前面我们提到,在对话数据中存在的丰富的 curriculum structure,即数据的难易度分布的结构。下图 6 展示了一个简单和一个困难的对话例子:


▲ 图6. 对话中不同难易程度的示意图

同样是用户想要一辆从 nandos 作为出发地的 taxi,图 6 中上方的对话例子是一个最简单的表达。而图 6 中下方的对话例子,尽管 DST 结果和简单例子一样,却要困难很多,用户是通过”from the restaurant”这种表述间接地表达了需要一辆出发地是 nandos 餐馆的 taxi。 

在前人的工作中,DST 模型一般都是采用 random sampling 的方式选择 batch data 进行优化的,这里,我们打算充分地考虑人在课程学习时的学习模式,将训练数据进行难易度划分,利用课程学习 [1] 中的经典算法 baby step [9] 来优化,让模型先学习好简单的数据再学习复杂的数据。课程学习的诸多理论和实践 [7] 也已经证明了,这种类人教学的训练策略不仅能够加速模型收敛,还能够提升模型效果。下图是论文 [8] 中一个的可用于说明课程学习提升效果的示意图:

▲ 图7. 课程学习效果提升示意图


假设我们的目标优化函数超曲面是最上方的一个曲线,下面的曲线分别是简单的优化函数超曲面,位置越下面说明训练数据越简单。可以看到,如果一开始就选择优化目标超曲面,模型很可能会陷入到局部峰值中,但是如果通过一系列合理的中间优化函数由简到难逐步逼近目标函数,那么模型就很可能跳出局部峰,达到更优解。关于更多课程学习的最新内容,推荐详读综述《A Survey on Curriculum Learning》一文。 

我们具体来看 SaCLog 中的上课模块是怎样实现的:首先我们使用了一个基于规则和模型的混合困难度打分器,模型打分器采用类似交叉验证的方式,将模型在训练集中的 K-fold 验证集上的预测概率作为模型得分,规则打分器利用了一些常见特征,如对话长度、当前轮槽值个数、实体词个数等作为规则得分,两类得分结合在一起对整个训练集进行排序,并提前划分成 10 个 bucket。在 baby step 的训练中,首先让模型在最简单的 bucket 数据上训练,当模型训练在现阶段训练集上收敛时再依次加入新的 bucket 一起训练,直至最终所有数据都加入了累计训练集。最后模型在全集上进一步训练至收敛为止。

2.2.3 复习模块 (review module) 

前面我们提到,复习是人类学习过程中的重要一环,所谓温故而知新,学习完重要的知识点后需要立即巩固练习,针对薄弱的环节加强训练。 

落实到我们具体的 SaCLog 中的复习模块里,我们采取的方式是基于 schema 信息的数据增强方法,由于 schema 中已经预定义好了所有的槽和值,因此我们可以通过字符串匹配的方式尽可能地从对话语句中将相应位置的槽值找出来进行不同槽值的替换或者同义词替换,以扩充对话训练数据。

我们在课程学习时,采取每次迭代的 epoch 结尾都将模型预测出错的 loss 前 10% 的训练数据送入复习模块,通过槽替换、值替换和对话重组三种规则方式进行数据的扩充,将新增数据并入训练集一起参与下一轮训练。其中,对话重组是将和当前轮对话数据带有相同对话状态标签的其他对话数据进行历史对话和后续对话进行重新组合。

2.3 “预习-上课-复习”方案的实验结果

我们在 MultiWOZ2.1 和 WOZ2.0 两个经典的多轮对话数据集上进行了实验。首先,我们将 SaCLog 框架应用到目前最好的 transformer-based DST 模型TripPy [10] 上,利用预习模块对 BERT 基座进行预训练,再利用上课模块和复习模块对 TripPy 进行 DST 任务的 fine-tune,实验结果如下图所示:


可以看到应用我们的框架后,TripPy 模型在两个数据集上性能都有很大提升,取得到了目前最佳结果,同时在 MultiWOZ2.1 上我们也进行了一个 ablation study,发现利用预习模块和复习模块能够带来最大的提升。


里为了验证我们框架的通用性,我们也在目前最好的 RNN-based DST 模型 TRADE [11] 上进行验证,发现同样也能带来提升。




整体总结

本文主要介绍了如何通过模仿人类“预习-上课-复习”的三阶段学习范式,设计出一个适用于对话状态跟踪任务的通用优化框架。具体来看我们采用了预习、上课、复习三个模块,通过充分利用对话数据中的 schema structure 和 curriculum structure 以提升模型的性能。实验表明,我们在利用了 SaCLog 优化框架后,在多个多轮对话数据集上都取得了目前最好效果。




新学习范式的未来展望

在未来,我们希望能将“预习-上课-复习”三阶段学习范式扩展到更多的任务中,例如对话生成、端到端对话系统,以及其他的 NLP 任务。希望这样的新范式能够带来更多的训练优化方法上的变革,同时也准备在对话系统的业务落地上开展更多的实践应用。 

智能对话系统是个极具前景和挑战性的方向,达摩院 Conversational AI 团队将不断地探索推进在这个领域的技术进步和落地,敬请期待我们后续的工作!

参考文献

[1] Bengio Y, et al. Curriculum learning. ICML19. 
[2] Yinpei Dai, et al. Preview, Attend and Review: Schema-Aware Curriculum Learning for Multi-Domain Dialog State Tracking.ACL21. 
[3] https://www.educationcorner.com/the-study-cycle.html 
[4] Eric M et al. MultiWOZ 2.1: A consolidated multi-domain dialogue dataset with state corrections and state tracking baselines.LERC, 2020. 
[5] Zhu Q, Huang K, Zhang Z, et al. Crosswoz: A large-scale chinese cross-domain task-oriented dialogue dataset. TACL, 2020. 
[6] Yu T, Zhang R, Polozov O, et al. SCORE: PRE-TRAINING FOR CONTEXT REPRESENTA-TION IN CONVERSATIONAL SEMANTIC PARSING. ICLR 2021. 
[7] Xin Wang, Yudong Chen and Wenwu Zhu. A Survey on Curriculum Learning. PAMI 2021. 
[8] Bengio Y. Evolving culture versus local minima. Growing Adaptive Machines, 2014. 
[9] Spitkovsky V I, Alshawi H, Jurafsky D. From baby steps to leapfrog: How “less is more” in unsupervised dependency parsing. NAACL 2010. 
[10] Heck M, van Niekerk C, Lubis N, et al. Trippy: A triple copy strategy for value independent neural dialog state tracking. SIGDIAL, 2020. 
[11] Wu C S, Madotto A, Hosseini-Asl E, et al. Transferable multi-domain state generator for task-oriented dialogue systems. ACL, 2019.


特别鸣谢

感谢 TCCI 天桥脑科学研究院对于 PaperWeekly 的支持。TCCI 关注大脑探知、大脑功能和大脑健康。


团队招聘


阿里巴巴-达摩院-对话智能技术团队招聘:

招聘对象:实习生、应届毕业生、社招,统统都要~~

工作地点:北京-望京


研究方向(包括但不限于): 

1. 对话的核心技术,包括语言理解、对话管理和语言生成; 

2. 知识的结构化挖掘,从文档中自动抽取各类结构化知识; 

3. 多模态对话技术,包括语言+语音+视觉等; 

4. 数据知识双驱动的大规模预训练对话模型; 

5. Few-shot Learning/Lifelong Learning 等前沿技术研究; 


如果你愿意和我们一起创造对话智能的未来,热烈欢迎加入我们! 


关于我们: 

达摩院对话智能(Conversational AI)团队,专注于 Conversational AI 的前沿研究和大规模应用,打造了任务型对话开发平台 Dialog Studio,以及 KBQA、TableQA、FAQs、Doc2bot 等智能问答技术,在 ACL/EMNLP/AAAI/IJCAI/WWW/CIKM 等顶会发表多篇论文。基于上述技术打造的阿里云智能客服(即云小蜜),是国内智能客服领域的领导者,在中国移动、中国人寿、政务 12345 热线等企业或组织大规模应用。 


联系方式

简历内推:yinpei.dyp@alibaba-inc.com


 

更多阅读




#投 稿 通 道#

 让你的文字被更多人看到 



如何才能让更多的优质内容以更短路径到达读者群体,缩短读者寻找优质内容的成本呢?答案就是:你不认识的人。


总有一些你不认识的人,知道你想知道的东西。PaperWeekly 或许可以成为一座桥梁,促使不同背景、不同方向的学者和学术灵感相互碰撞,迸发出更多的可能性。 


PaperWeekly 鼓励高校实验室或个人,在我们的平台上分享各类优质内容,可以是最新论文解读,也可以是学术热点剖析科研心得竞赛经验讲解等。我们的目的只有一个,让知识真正流动起来。


📝 稿件基本要求:

• 文章确系个人原创作品,未曾在公开渠道发表,如为其他平台已发表或待发表的文章,请明确标注 

• 稿件建议以 markdown 格式撰写,文中配图以附件形式发送,要求图片清晰,无版权问题

• PaperWeekly 尊重原作者署名权,并将为每篇被采纳的原创首发稿件,提供业内具有竞争力稿酬,具体依据文章阅读量和文章质量阶梯制结算


📬 投稿通道:

• 投稿邮箱:hr@paperweekly.site 

• 来稿请备注即时联系方式(微信),以便我们在稿件选用的第一时间联系作者

• 您也可以直接添加小编微信(pwbot02)快速投稿,备注:姓名-投稿


△长按添加PaperWeekly小编




🔍


现在,在「知乎」也能找到我们了

进入知乎首页搜索「PaperWeekly」

点击「关注」订阅我们的专栏吧



·

您可能也对以下帖子感兴趣

文章有问题?点此查看未经处理的缓存