有那些方法推广网站,烟台网站制作设计,大学生帮别人做网站,yw77731域名查询Dialog Studio 是达摩院NLP-小蜜Conversational AI团队研发的面向开发者的智能对话开发平台#xff0c;目前已经在云#xff08;多省市政务12345热线、中移动10086、金融、医疗等#xff09;、钉钉#xff08;通过钉钉官方智能工作助理服务几百万企业#xff09;、集团内目前已经在云多省市政务12345热线、中移动10086、金融、医疗等、钉钉通过钉钉官方智能工作助理服务几百万企业、集团内淘宝优酷等十几个BU、淘宝天猫商家以及Lazada东南亚6国大规模应用。
为了应对疫情基于 Dialog Studio 紧急开发的智能疫情外呼机器人截止3月底总共呼出了1600多万通电话帮助23个省筛查出了18万健康异常的人员对话完成率高达90%在人民网“人民战疫”大赛评为唯一的一等奖。
围绕 Dialog Studio我们有系列文章
【1】一个中心三大原则 – 小蜜这样做智能对话开发平台
【2】自然语言理解-从规则到深度学习
【3】Few-shot Learning 最新进展
【4】EMNLP 2019: 基于 Few-shot learning 的对话意图识别
【5】Dialog Studio - 新一代智能对话开发平台
【6】对话用户模拟器最新进展
【7】小蜜团队万字长文对话管理模型最新研究进展
【8】ACL 2020: 基于元学习和人机协同的端到端对话模型
背景 端到端对话模型近几年得到了学术界和工业界的广泛关注详见可参考《小蜜团队万字长文对话管理模型最新研究进展》相比 pipeline 式的对话系统端到端对话系统可以直接利用对话日志进行训练不需要人工设计特定的语义标签因此更具备可扩展性。 我们在 Dialog Studio 上已经实现了端到端的对话模型并且在政务、疫情等业务中落地应用。一个省信访外呼对话例子如下
上述例子是一个满意度回访调查的场景由于没有复杂的知识推理、语义解析等是端到端对话系统特别适用的场景。一般来说端到端对话模型可分为检索式和生成式检索式模型就是给定对话历史从预定义回复候选集合中选出最佳回复作为当前系统输出生成式模型则是给定对话历史直接生成回复。两种方式都可以通过和用户多轮交互完成最终的对话任务。
然而尽管端到端对话模型简单易用但是在实际应用中仍然面临着两大常见问题
Data Scarcity Problem端到端模型一般需要大量的训练数据且场景越复杂需求越大。在云小蜜 Dialog Studio 中的ToB 的业务不少新场景一开始是没有可用的高质量对话日志的比如我们已经在政务12345 场景 和 114 移车场景上积累了大量的对话可以当我们做省信访外呼场景时一开始只有很少的对话可以使用。因此如何利用已有场景的丰富数据训练一个端到端模型使其可以快速迁移到缺少数据的新场景上是一个很大的挑战。
Covariate Shift Effect有限的离线训练数据和真实的在线测试数据之间存在数据分布的差异性会导致系统在线表现不佳和离线测试效果不匹配这种差异性主要来自于未见的用户行为例如新槽值、新意图、复杂句等。例如下图中训练数据中从未出现过“喂内容是什么我忘了反馈什么了” 类似的用户语句一旦真实上线模型很容易预测出错误的结果从而影响用户体验。尤其是当数据量少的时候模型对于在线数据的鲁棒性会进一步下降。因此如何解决线上线下数据不匹配提高端到端对话模型的鲁棒性是另一大挑战。
实际上在云小蜜的业务中不少场景都存在训练数据少的问题而客户又需要我们的对话系统能够达到可直接上线的标准。因此综合来看我们希望提出一种新的对话系统以及对应的训练方法能够兼具备面对新场景的快速适应性 fast adaptability和稳健的在线表现 reliable performance能够在低训练资源下依旧能够保证较好的线上效果。
技术方案 通过前期调研我们发现应对数据少的问题的常用方法有元学习、数据增强等应对训练和测试对话数据不一致的问题的常用方法有人机协同[1]、在线学习[2]等。最终我们选择将元学习meta-learning方法和人机协同human-machine collaboration方法结合提出了元对话系统Meta-Dialog System, MDS利用元学习系统能够在少量训练数据上进行快速学习解决 Data Scarcity Problem利用人机协作模型可以在对话中请求人工客服帮助以保证系统达到可接受的线上水平降低 Covariate Shift Effect。相关成果已经发表至 ACL2020 [3]该系统有望在有辅助人工客服且缺数据的新场景中得到应用。
2.1 问题定义 由于回复内容可控我们采用检索式端到端对话模型该对话任务是一个分类任务给定预定义的回复候选集基于对话历史选择正确回复。如下图所示模型一般包含 1历史编码器History encoder 对整个对话历史进行编码提取对话状态向量常见模型有 MemN2NHierarical RNN 等 2回复编码器 Response encoder对每个回复进行编码提取句向量3预测器根据对话状态向量和回复句向量判断出正确的回复通常就是计算余弦相似度给出。
而在人机协同的框架下端到端对话模型会多出一个判决器模块用于判定当前对话是否转人工如果转人工则交给人工客服解答否则模型自己给出答案。如下图所示
2.2. 模型详解 我们沿用了上述的模型结构 [1]但是在每个模块和训练方法上都进行的改进创新。整个 MDS 的框架如下
和 [1, 4] 一致对于历史编码器我们采用了一个 MemN2N 模型对于回复编码器我们使用了一个简单的词向量相加的句向量。模型预测器的部分我们选择了large margin cosine loss [7] 作为损失函数 LLMC\mathcal{L}_{LMC}LLMC因为它可以学习更有鉴别性的特征discriminative features。针对请求人工的判决器我们在 [1] 的基础之上提出了一个新的 reward 设置使用增强学习来进行优化 LRL\mathcal{L}_{RL}LRL。最终我们使用 MAML [5] 方法对 LLRLLLMC\mathcal{L} \mathcal{L}_{RL} \mathcal{L}_{LMC}LLRLLLMC 进行联合优化帮助模型找到一组合适的参数使得预测器和判决器一起快速适应新场景。
2.2.1. Learning to Switch 设第 iii 个数据为 did_idi, 该对话状态向量为 sis_isi 回复候选集为 R\mathcal{R}R, 每个回复的句向量设为 rkr_krk, 判断器的输出整体考虑了 sis_isi 的信息以及它和各个 rkr_krk 的 attention 信息具体计算如下
σ\sigmaσ 是 sigmoid function, FC(⋅)FC(\cdot)FC(⋅) 是一个全连接网络WWW 是个 trainable matrix。得到判决器的预测结果后我们需要设计合适的 reward 使用增强学习来优化。直观来看一个理想的判决器应当是模型预测错时多转人工模型预测对时少转人工这样就能保证整体的转人工率低且整体 turn ACC (请求人工也算对)高。 reward 设置设一个batch data 为 mathcalDd1,d2,...di,...mathcal{D}{d_1, d_2, ...d_i, ...}mathcalDd1,d2,...di,... 我们将模型预测错误的 did_idi 设为正样本labelTrue 预测正确的设为负样本 labelFalse 判决器判断转人工的数据设为预测正样本 predictionTrue, 判断不转人工的设为预测负样本predictionFalse, 然后计算出正样本和负样本的 F1 score再取平均得到整个 batch 的 得分 score(D)score(\mathcal{D})score(D), 其中每个数据 did_idi 分配到的 reward riscore(D)−score(D−di)r_iscore(\mathcal{D})-score(\mathcal{D}-d_i)riscore(D)−score(D−di)。 RL 的优化我们选择 policy gradient method。
2.2.2. MAML 训练 得到整体的损失函数 LLRLLLMC\mathcal{L} \mathcal{L}_{RL} \mathcal{L}_{LMC}LLRLLLMC 后我们采用 MAML 算法优化整个模型。
首先需要构造元任务 (meta-task)步骤如下
采样 K 个对话场景 每个场景对应一个对话任务 每个对话任务采样 N 个对话数据作为支撑集supoort setN 个数据作为问询集query set 然后 MDS 的 MAML 优化如下
实验结果 为验证模型在新场景的迁移能力我们需要多场景的端到端对话数据集。在评估时依次选取一个场景作为目标场景剩余的作为训练场景利用 MAML 预训练模型meta trainning 完毕之后 再在目标场景上进行小样本的迁移实验。最终结果是每个场景去平均后得到。
3.1. 数据集构造 3.1.1 Extended-bAbI 原始的 bAbI [4] 因为是单场景的对话且初步实验效果发现将其中的 Task1-5 作为元任务效果不佳。因此我们仿造 bAbI 模拟生成了一个更大的多场景端到端数据集称作 extended-bAbI。包含场景有餐馆、机票、酒店、电影、音乐、旅游、天气等 7 个场景每个场景的训练集/开发集/测试集为 1500/500/1000 个完整对话。 音乐和天气场景的两个对话例子如下所示
3.1.2. MultiWOZ MultiWOZ [6] 是最近提出的大型任务对话数据集也可以用于进行模型评估。为了将 MultiWOZ 简化成 bAbI 对话任务我们只使用包含 single-domain 的对话并且进行去词汇化利用 dialog label 将槽值替换成特定 token再将 dialog act 进行一定的规整最终得到端到端对话数据。一个对话例子如下所示。
3.2. Baselines Mem\textbf{Mem}Mem: 利用 MLE 训练的一个 MemN2N 模型。 MetaMem\textbf{MetaMem}MetaMem: 利用 MAML 训练的 一个 MemN2N 模型。MetaMem\textbf{MetaMem}MetaMem 和 Mem\textbf{Mem}Mem 都没有请求人工的判决器。 MemC\textbf{MemC}MemC论文[1] 的人机协同模型。该模型的训练准则和损失函数和我们都不一样。 IDS\textbf{IDS}IDS论文[8] 提出的 incremental dialog system 该模型的判决器是一个变分自编码器通过估计对话的不确定性来判断是否请求人工。 MDS-switch\textbf{MDS}_\text{-switch}MDS-switch: MDS 去掉判决器部分。 MDSmle\textbf{MDS}_\text{mle}MDSmle: MDS 保持模型一致但是训练方法采用 MLE。 MDSrand\textbf{MDS}_\text{rand}MDSrand: MDS 的判决器替换成一个 请求人工率一致的 random classifier, 3.3. 实验结果和分析 在extended-bAbI 上的结果如下表所示
request 是请求人工率accuracy 是含转人工的整体 turn ACC即转人工或模型预测正确均算对。 可以看到MDS 的表现优于所有的基线模型平均在新场景上仅需 10 个对话就可以达到 90% 以上的turn ACC。 使用请求人工的判决器的模型显著好于不使用或者使用random判决器的模型说明人机协同框架在提高模型整体表现起到重要作用。利用元学习的模型相比不使用元学习的模型在效果上也有稳定的提高。
MultiWOZ 上的实验结果如下表所示
由于MultiWOZ是真实的人人对话因此所有模型的表现都有合理的下降但是 MDS 相比其他模型依然有明显的优势在请求人工率相近的情况下有更高的 turn ACC。
总结和展望 本文主要介绍了如何结合 元学习方法 和 人机协同 方法 提高端到端对话模型在新场景上的快速适应能力和预测效果。对于元学习方法我们采用了 MAML 算法在多场景的对话数据集上进行实验。实验表明利用 MAML 可以很好地帮助模型的判决器和预测器一起找到合适的初始化参数以更快地迁移到新的场景中去。未来我们将探索利用更强大的编码模型如 BERT更好的 reward 设计并把我们的元学习对话系统落地到云小蜜的真实业务中去。
参考文献 [1] Rajendran J, Ganhotra J, Polymenakos L C. Learning End-to-End Goal-Oriented Dialog with Maximal User Task Success and Minimal Human Agent Use. ACL, 2019. [2] Liu B, Tur G, Hakkani-Tur D, et al. Dialogue learning with human teaching and feedback in end-to-end trainable task-oriented dialogue systems. NAACL, 2018. [3] Dai Y, Li H, et al. Learning Low-Resource End-To-End Goal-Oriented Dialog for Fast and Reliable System Deployment. ACL, 2020. (to be appeared) [4] Bordes A, Boureau Y L, Weston J. Learning end-to-end goal-oriented dialog. ICLR, 2016. [5] Finn C, Abbeel P, Levine S. Model-agnostic meta-learning for fast adaptation of deep networks. ICML, 2017. [6] Eric M, Goel R, Paul S, et al. Multiwoz 2.1: Multi-domain dialogue state corrections and state tracking baselines[J]. arXiv preprint arXiv:1907.01669, 2019. [7] Lin T E, Xu H. Deep unknown intent detection with margin loss[J]. ACL, 2019. [8] Wang W, Zhang J, Li Q, et al. Incremental learning from scratch for task-oriented dialogue systems. ACL, 2019.
原文链接 本文为阿里云原创内容未经允许不得转载。