AI TIME欢迎每一位AI爱好者的加入!
用最少的语料训练生成模型是构建开放域对话系统的关键挑战之一。现有的方法倾向于使用元学习框架,首先预训练所有非目标任务的参数,然后在目标任务上进行微调。然而,微调的方法仅仅将不同任务从参数角度区分开来,却忽略了模型的结构,容易产生相似的对话模型。
在第五期AI Time PhD对话系统专题分享的直播间,我们邀请到北京大学信息科学技术学院2020级博士毕业生宋伊萍,为大家介绍她在ACL2020中发表的最新研究成果。
讲者及其团队提出了CMAML算法,可以为每一个对话任务定制一个独特的模型。在CMAML中,每个对话模型由一个共享模块、一个门控模块和一个私有模块组成。讲者提出的CMAML在任务一致性、回复质量和多样性方面都优于所有基线模型,且在低资源文本生成任务上具有较强的通用性。
宋伊萍,北京大学信息科学技术学院2020级博士毕业生,导师为张铭教授。主要研究方向为自然语言处理和对话系统,已在相关领域的国际顶级会议如ACL, AAAI, IJCAI等发表多篇论文。
一、元学习是什么呢?
元学习Meta Learning,含义为学会学习,即learn to learn,就是带着这种对人类这种“学习能力”的期望诞生的。Meta Learning希望使得模型获取一种“学会学习”的能力,使其可以在获取已有“知识”的基础上快速学习新的任务,如:
????让一个长颈鹿图片的分类器,迅速具有分类其他物体的能力。
对比理解machine learning和meta learning的两个概念。
二、经典的元学习方法——MAML
1、
元学习使用的两种场景
1)元学习的方法与模型无关,适用性强。
任何的一个监督的学习,比如分类回归、强化学习等,凡是用梯度下降来更新参数的,都可以使用这种方法。
2)需要的场景数据少。
在机器学习中,训练单位是一条数据,通过数据来对模型进行优化;数据可以分为训练集、测试集和验证集。
在元学习中,训练单位分层级,第一层训练单位是任务。元学习中要准备许多任务来进行学习,第二层训练单位才是每个任务对应的数据。
2、
元学习的具体算法
1)方法:利用一系列分类器task的训练数据作为训练样本,找到一个最好的全局参数θ,将其迁移到新的任务上,迅速的去学习到一个对新的场景的分类器。
2)算法:以分类任务和回归任务为例:
a)准备N个训练任务(Train Task)、每个训练任务对应的Support Set和Query Set。再准备几个测试任务,测试任务用于评估meta learning 学习到的参数的效果。训练任务和测试任务均从Omniglot中采样产生。
b)初始化一个meta网络的参数为θ。
c)开始执行迭代“预训练” 。
d)通过上一步得到meta网络的参数,该参数可以在测试任务中,使用测试任务的SupportSet对met网络的参数进行finetuing。
e)最终使用测试任务的Query Set评估meta learning的效果。
三、用元学习的方法解决低资源的问题的CMAML
讲者发表ACL2020的:
Learning to customize model structure for few-shot dialogue generation task.
1、
背景知识
1)Few-shot Text Generation应用场景
冷启动
多语言
个性化对话
情感对话
讲者主要针对的就是在个性化对话和情感对话的研究工作。
2)元学习的常见三种方法
基于度量 metric-based:学习核变换参数
基于模型 model-based:一次性输入数据,学习1个模型的参数
基于优化 optimization-based:学习元模型参数
3)MAML特点:
MAML的目标是在应用于新任务时,通过最大化损失函数的灵敏度来找到模型参数的初始化。对于一个目标任务,它的对话模型是通过使用特定于任务的训练样本微调是来自MAML的初始参数获得。
生成式对话模型的目标是构建一个函数,将用户查询映射到它的回复,其中函数由模型结构和参数决定。
MAML仅从参数优化的角度搜索最佳参数设置,而忽略了从结构优化的角度搜索最佳网络结构。
2、
研究目标
基于以上分析,研究的目的是如何调整MAML以适应更大的模型多样性。
讲者及其团队设定了三个目标:
第一,为所有具有不同网络结构和参数的任务定制模型。
第二,每个任务独特的模型结构能够记忆任务特征。
第三,与MAML相比,不需要额外的训练数据。
因此,讲者及其研究团队提出了CMAML,它本质上是一个文本生成模型seq2SPG。
3、
构建对话模型的网络结构——seq2SPG
对于每个任务,相应的生成模型由三部分组成:共享模块、私有模块和门控模块。
1)共享模块:是一个传统的seq2seq,旨在学习一般的生成能力,该模块在任务间共享。
2)私有模块:存储独特的特征,所有的任务都从seq2seq解码器中的同一个mlp开始,然后在训练过程中演化成不同的结构。
3)门控模块:用于平衡前两个模块的贡献,它也在任务之间共享。
4、
训练方法
训练过程分为两个阶段:预训练和定制模型训练。
1)在预培训中,CMAML使用普通的MAML获得一个预训练的对话模型作为所有任务的初始模型,然后讲元训练和元测试交替进行。目前,不同任务的模型具有相同的网络结构和参数。
2)定制模型训练中,共有两个阶段。
第一,对私有模块,使用私有网络剪枝算法来区分每个任务的MLP结构。
第二,再次使用MAML重新训练每个任务的所有三个模块的参数。在这个阶段,私有模块是一个修剪过的MLP结构。
5、
实验数据和模型
在两个数据集上进行实验,Persona-chat和MojiTalk。
在Persona-chat中,把为用户建立对话模型视为一项任务。
在mojitalk中,把用cemoji生成响应视为一项任务。
使用4种类型的Competing Methods:
1)Pretrain-Only
预训练仅表示用来自所有训练任务的数据预训练一个统一的对话生成模型,然后直接在测试任务上测试它。
2)Fine-tune
微调是用特定于任务的数据来微调统一模型。
3)MAML
在两个基础模型上应用MAML,主要使用了传统的seq2seq和讲者团队提出的seq2SPG。
4)CMAML
采用CMAML算法的两种变体,CMAML-Seq2SP’G和CMAML-Seq2SPG。
6、
评估指标
主要使用了四种评估指标:
1)通过评估回复的质量和多样性,以及语义和情感的一致性,衡量模型生成的句子的是否准确。
2)为了验证每种方法对不同任务之间的模型差异,定义了它的三个参数:
diff score 是成对任务的平均模型差异。
Δscore是微调前后方法的模型差异。
Ti和Tj之间的模型差异是将计算参数之间的欧几里德距离将其归一化。
3)除此之外,还使用了人为评估的方法。
7、
实验结果
整体结果表明,微调方法比仅预训练更好,MAML方法在BLEU分数上没有比微调方法更好的表现,但是具有相对较高的Dist-1分数。这表明MAML有助于促进反应的多样性。
在不同的场景设置中进行评估:
由左图表明,对于非基于MAML的方法,任务一致性不会随着数据的增长而提高。
而对于基于MAML的方法,句子质量和任务一致性都随着数据的增长而增加。
由右图表明,当任务不太相似时,基于MAML的方法表现更好。
8、
结论
讲者在研究报告中提出的算法CMAML可以为任务定制模型,其中每个任务具有唯一的网络结构和参数,并且在生成任务中只需要一个或两个数百个训练样本。
每个任务独特的结构能够记忆其特征,相似的任务从模型结构的角度共享训练数据。
CMAML是通用的,并且很好地统一以适应各种few-shot的生成场景。
四、提问和回答
请教下,如何构建不同task?其数据来源是依赖通用数据集吗?
在论文里面,我们主要讨论了2种场景;
1. 个性化对话,每个任务是每位用户的对话系统;
2. 情感对话,每个任务是指带有特定情感(表情)的对话模型。
请问剪枝是怎么做的?剪枝类似于dropout吗?
先稀疏化,后自顶向下剪枝。剪枝跟dropout不一样,dropout是随机的,我们的剪枝部分根据训练预料的阈值删除。
不同通用数据集,对最后具体任务,会存在显著影响吗?
会。对话的长度、task的个数、每个task的sample个数都有影响。这个我们实验里面也讨论了一下,感兴趣可以看看~ ????
相关链接及文献:
Paper:https://www.aminer.cn/pub/5ec49a639fced0a24b4de849/learning-to-customize-model-structures-for-few-shot-dialogue-generation-tasks?conf=acl2020
Code: https://github.com/zequnl/CMAML
整理:唐家欣
审稿:宋伊萍、鸽鸽
排版:田雨晴
AI Time欢迎AI领域学者投稿,期待大家剖析学科历史发展和前沿技术。针对热门话题,我们将邀请专家一起论道。同时,我们也长期招募优质的撰稿人,顶级的平台需要顶级的你,请将简历等信息发至[email protected]!
微信联系:AITIME_HY
AI Time是清华大学计算机系一群关注人工智能发展,并有思想情怀的青年学者们创办的圈子,旨在发扬科学思辨精神,邀请各界人士对人工智能理论、算法、场景、应用的本质问题进行探索,加强思想碰撞,打造一个知识分享的聚集地。
更多资讯请扫码关注
(点击“阅读原文”下载本次报告ppt)
(直播回放:https://b23.tv/KrnCJg)