Pretraining Methods for Dialog Context Representation Learning

前言

Abstract

本文考察了各种用于学习对话上下文表示的无监督预训练目标, 提出了两种新颖的对话上下文编码器预训练方法,并研究了四种方法。使用MultiWoz数据集对每个预训练目标进行了微调,并在一组下游对话任务上进行了评估,并观察到了出色的性能改进。 进一步的评估表明,我们的预训练目标不仅可以带来更好的性能,而且可以带来更好的收敛性,并且模型需要的数据更少,并且具有更好的领域通用性。

Introduction

目前预训练方法仍处在起步阶段,我们仍然不能完全了解他们的性质。大多数方法都是基于语言模型的,给一个句子,预测当前词,下一个词或者被mask的词。如Word2Vec,Glove,ELMO等。这些方法将自然语言看作是word token的流,需要复杂的模型利用大规模的语料库和庞杂的计算来发现更高级别的依赖关系。BERT模型也是基于语言模型,但是加入了句子对级别的信息,预测两句话是否是连续的。这种方法在预训练时利用了语句之间的关系。但是,在对话上下文建模这种存在多轮的依赖关系的任务上还并没有行之有效的预训练方法,于是本文在这个方面做了一些尝试。本文目的就是研究几个预训练话语级语言表示的方法,本文迈出了建立对话系统预训练方法系统分析框架的第一步。

评估预训练方法的四个假设:

  • 预训练能够在整个可用数据集上进行微调,且提升下游任务
  • 预训练结果需要更好的收敛
  • 预训练将在有限的数据下表现出色
  • 预训练有助于领域通用化

对话与其他文本的区别:

  • 对话必须是语句之间连贯的,并在多轮上达到一个交际的目的。
  • 对话在本质上是互动的,说话者之间有反馈,而且说话者轮流进行发言。

本文的主要贡献:

  • 针对对话上下文表示研究四个不同的预训练方法,包括两个新的方法
  • 在四个下游任务上,综合分析预训练对对话上下文表示的影响

Related Work

这项工作与NLP系统的辅助多任务学习和带预训练的迁移学习的研究紧密相关。

Training with Auxiliary Tasks

结合有用的辅助损失函数来补充主要目标已被证明可以改善深度神经网络模型的性能。一些辅助损失函数专门设计来提高特殊任务的性能。在一些案例中,辅助函数被用来提升模型的泛化能力。经过适当的辅助任务预训练后,模型可以捕获更长的依赖关系。

Transfer Learning with Pretraining

基本过程通常是首先在无监督目标的海量文本数据上预训练功能强大的神经编码器。 第二步是使用更小的域内数据集对特定的下游任务微调此预训练模型。ELMo使用BiLSTM网络来训练双向语言模型来同时预测前一个词和后一个词。OpenAI的GPT使用Transformer网络和BERT进行了两个目标的同时训练:掩蔽语言模型和下一句预测。每个模型均已在GLUE基准上展示了最新的结果。这些利用大规模预训练的模型优于仅使用域内数据的系统。用于学习从输入文本中提取话语级别信息的预训练方法的工作很少。BERT中的下一句话预测损失是朝着这个方向迈出的一步。尽管这些预训练方法擅长于对顺序文本进行建模,但它们并未明确考虑对话的独特话语级功能。因此,我们在研究预训练目标时采取了第一步,以提取对话上下文的更好的话语级表示形式。

Pretraining Objectives

本文定义了一种强有力的表示形式,它可以捕获整个对话历史中的话语级信息以及构成该历史的话语中的话语级信息,在本文的定义下,当表示允许模型在各种下游任务上表现更好时,表示就足够通用了。

  • 一个任意T轮对话(对话历史)的表示符号: c = [ u 1 , . . . , u t ] c = [u_1,...,u_t] c=[u1,...,ut] u i u_i ui是一个话语。
  • 对话回复 R = r 1 , . . . , r M R = {r_1,...,r_M} R=r1,...,rM

Next-Utterance Retrieval(NUR-检索下一句话)

NUR的目的就是在 k k k个候选回复中选择正确的下一句话。对于此任务,本文使用分层编码器来生成对话上下文的表示,方法是首先通过双向长期短期记忆网络(biLSTM)独立运行每个话语,然后使用所得的话语表示来生成整个对话上下文的表示。给定 [ u 1 , . . . u T − 1 ] [u_1,... u_{T-1}] [u1...uT1],NUR的任务是从R中选择正确的下一个话语 u T u_T uT。损失运算公式如下:

u i ^ = f u ( u i ) , i ∈ [ 1 , T − 1 ] [ h 1 , . . . h T − 1 ] = f c ( u 1 , . . . u ^ T − 1 ) r g t = f r ( u T ) r j = f r ( r j ) , r j ∼ p n ( r ) a g t = ( h T − 1 ) T r g t a j = ( h T − 1 ) T r j \hat{u_i}=f_u(u_i), i\in [1,T-1]\\ [h_1,...h_{T-1}]=f_c(u_1,...\hat{u}_{T-1})\\ r_{gt} = f_r(u_T)\\ r_{j} = f_r(r_j),r_j\sim p_n(r)\\ a_{gt} = (h_{T-1})^{T}r_{gt}\\ a_{j} = (h_{T-1})^{T}r_{j} ui^=fu(ui),i[1,T1][h1,...hT1]=fc(u1,...u^

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

墨痕_777

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值