前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >【阅读笔记】用于可控文本生成的句法驱动的迭代拓展语言模型

【阅读笔记】用于可控文本生成的句法驱动的迭代拓展语言模型

作者头像
马上科普尚尚
发布2020-09-24 10:24:41
9830
发布2020-09-24 10:24:41
举报

论文标题:Syntax-driven Iterative Expansion Language Modelsfor Controllable Text Generation 论文出处:ACL2020 原文链接:https://arxiv.org/abs/2004.02211v1 转载请注明出处:学习ML的皮皮虾

Abstract

主流的文本建模方法都是将文本处理为离散的字符序列,尽管这样能够隐式地捕获一定量文本的结构信息,但是这种捕获能力受限于于顺序动态的自回归文本生成。

因此,本文提出了一种新的建模语言的范式:即将句法依赖解析树引入语言模型和文本生成过程中,按照从树的根节点向分支拓展的顺序指导文本生成。

本文实验表明,这种新的范式有效提高了文本生成,其质量和多样性高于顺序生成的语言模型。

Introduction

在当前文本生成任务领域中的主流范式均为从左到右自回归生成离散字符的生成方式。大部分流行的生成式神经语言模型都是基于这种范式构建的。

如RNN,本质上就是顺序模型,在接入teacher force的训练方式后很自然地使用了自回归的生成方法; 再如Transformer,尽管其本身并非顺序的,但也直接针对顺序范式。

这种顺序生成尽管能够最大程度上保留生成语句的连贯性,但是却因梯度消失以及上下文依赖捕获能力欠缺等问题,最终导致生成的内容缺乏一定逻辑性和正确性。

基于此,为了保留原本句子的句法结构,本文作者提出了一种新式的用于文本生成的语言模型:Iterative Expansion Language Model(IELM)

它从树根节点开始,通过迭代扩展树的每一层字符以生成最后的序列,该序列遵循句子句法依赖解析树所定义的字符顺序。

Related Works

在本文作者提到的related works中,我对于两个主题比较感兴趣,特别拿出来做一下归纳总结:

Syntactic Constituent-driven Generation

https://openreview.net/forum?id=rkgOLb-0W

这篇文章提出了一种解析-读取-预测网络,在这种网络中,通过跳连接将组成依赖关系与RNN集成在一起。他们的模型不需要句法监督,但可以通过利用句法距离和结构化注意来了解潜在的依赖结构。

https://www.aclweb.org/anthology/P19-1122/

这篇文章提出了一种句法监督的Transformer,将组成部分分析树的简化形式用作潜在变量,以监督的方式对其进行自回归建模,之后再将其作为输入,用于非自回归生成的Transformer中生成语句。

https://openreview.net/forum?id=B1l6qiR5F7

这篇文章提出了LSTM的一个魔改版本,潜在句子树结构用于通过特殊的“主”输入和忘记门以控制循环单元之间的依赖性。

Insertion-based Generation

http://proceedings.mlr.press/v97/stern19a.html

Insertion Transformer是最近频繁在非自回归生成任务的研究上作为baseline出现,因此若对于非自回归生成有研究的同学可以参考一下。

这篇文章提出的新式Transformer是一个条件生成模型,在其生成过程中,主要是在序列中对应位置插入新的字符,不断迭代插入最终生成目标序列。该模型依据其依赖二叉树的构建方法,同时具备了从左到右的逐字符解码能力以及插入新字符并行解码的能力。

Iterative Expansion LMs

在介绍模型之前,首先介绍模型的输入:

输入词汇表包含终端字符和称为依赖项占位符的特殊标记,每个标记都与一个可能的HEAD依赖关系相关联。具体如图所示:

如上图所示,依赖项占位符为[poss],[nsubj],[advmod],[xcomp],[dobj]以及[ROOT]。

第一次迭代的输入是带有[ROOT]元素的序列。在每次迭代时,模型都将输入词汇表的索引序列作为输入接收,称为“上级序列”(PLT),并且以非自回归方式生成两个新序列,每个序列的长度与输入相同。

第一个输出序列为从词汇表中生成的字符序列。这个序列被称为“下级序列”(NLT)。

第二个输出序列是一个名为扩展占位符的符号序列,它取自一个单独的符号词汇表。此序列称为“下级扩展”(NLE)。

每个扩展占位符都与一个依赖模式相关联,该模式描述对应字符在下一级字符序列中该位置的左、右依赖关系。打个比方,对于上图中第一次迭代like的NLE关系就是[nsubj-advmod-HEAD-xcomp]。

每次迭代之后,模型的输出都会被扩展。拓展内容通过组合来自前一层的字符、预测的下一层字符以及扩展占位符来创建新的序列。

当输出中有[pad](下级字符或下级扩展)时,这意味着在计算损失函数时将忽略该位置的输出。这是因为,每次迭代获得拓展的序列都会进行一次计算,已经计算过的字符或拓展,则不需要被重复计算。

另一点值得注意的是,由于占位符[HEAD]代表某个分支的开始,同时也代表了上一个分支的结束,因此在这种通过依赖树分支迭代生成的过程中不需要特定的结束符号(如</s>或<eos>等)。

Tree Sequentialization

由于单个词汇可能会有多重直接依赖项,因此上一部分提到的依赖解析树([nsubj-advmod-HEAD-xcomp])可能无法很好地进行迭代拓展:

因此,作者又提出了一种改进的树序列化的方法,即保证对于每一个终端[HEAD]词,最多只有一个左侧依赖项和一个右侧依赖项,以保证每次迭代的拓展顺利进行:

这种新的树序列化方法极大地降低了迭代生成过程中的并行程度:

上图展示了对于同一句子的三种句法解析树:序列化树、非序列化树、标准二叉树(log2n)的深度和对应句子的长度的比率分布。

可以看出,尽管树序列化对生成的并行程度,但它降低了数据的稀疏性,并允许模型处理如:单词的依赖项数量较大,以至于模型无法正确捕获依赖关系的结构,比如枚举:“I bought a pair of shoes, an umbrella, a beautiful jacket and a bracelet.”

Extension to Subword-level Vocabularies

为了便于捕获依赖关系,作者还提出了一个进一步分解的办法:对于每个单词,将其节点分解为该单词包含的子单词(Subwords)节点,并重新排列树,以使旧单词节点的头部现在成为第一个子单词节点的头部,而每个后续子单词都取决于前一个单词:

Neural Architecture

本节介绍了作者具体实现模型的一些关键组成部分的实现方式:

在baseline的选择上,由于Transformer的并行特性,本文的模型都是基于Transformer构建的,并且为了生成双重输出:字符序列(NLT)和拓展序列(NLE),对于以上两种序列的生成过程作者提出了两种做法:

  • 独立生成终端字符和扩展(independent generation ofterminals and expansions):把最终的隐层状态传入两个不同的映射网络用于生成关于终端字符词汇表的分布以及拓展占位符词汇表的分布。
  • 条件生成终端字符(conditioned generation of terminals):首先根据中间层的隐层状态解码得到对应的一组拓展占位符ID,然后通过一个可训练的embedding层获得推展占位符的embedding表示。这些embedding被添加到当前隐层状态编成新的隐层状态,用作后续层的输入。

对于解码时,按照上文设计,对于NLT和NLE的解码,理应有两个不同的词表,而为了实践上的便利,这里作者设计将两个词表融合在一起,即最终解码的softmax时则将所有拓展占位符的概率进行覆盖mask。

在引入依赖信息时,作者在编码表示时在原有的embedding层中添加了一个可学习终端位置的embedding编码head position embedding,该编码为每个词的编码加入了其对应终端head位置的编码。

而对于self-attention,作者再次提出了两种变体结构:

标准self-attention的可视性矩阵

  • 不受限的attention(unconstrained attention):对于原本的self-attention来说,为了确保训练时的因果性,往往会mask目标词之后的字符,然而此处解除了这个限制:将要预测的目标词可以获取整个输入的词序列,即上一次迭代生成的词汇。
  • 受限的attention(constrained attention):这种变体利用自注意矩阵来迫使每个预测词只关注它们的HEAD词,递归地直到句子的ROOT词。

受限的attention每次迭代的可视性矩阵

Training

对于IELM的训练,首先明确模型的主要输入是依赖项解析树某一级别上的字符(PLT),而输出则包括了两项:下级字符(NLT)和下级拓展(NLE)。

其次输入还包括了依赖项索引序列(主要用于head position embedding)以及用于受限attention的mask序列。

训练在mini-batch中进行;由于“可训练单元”是一个层次转换,在数据随机重排后,训练批次由来自许多不同句子的不同层次组成。

该模型使用最大似然估计进行训练,使用字符和扩展占位符的类别交叉熵,然后将两个子损失都加入到最终损失中。同时,在先前迭代中生成的字符会在当前的输出中显示为[PAD]令牌,并在计算loss中被忽略。

Inference and Text Generation

IELM的推理同样也是迭代进行的。初始状态是一批[ROOT]字符,其head position初始化为表示根节点的特殊值,并且在受限attention中,包括一个mask序列,其具有该批次中每个句子中单个节点的自相关性。

在每次迭代中,模型都会生成终端字符和扩展占位符的概率分布。而字符序列则会根据拓展占位符序列进行拓展。并且,如果仍然有未完成的分支,这些就会成为下一个迭代的输入。

在对字符和扩展占位符概率分布进行采样之前,作者对<unk>字符和占位符进行了屏蔽,以避免生成它们。

Probabilities from the Language Model

与顺序LM按照链式法则

来分解一个句子的生成概率不同。

IELM需要借助句子的依赖解析树来计算其生成概率。给定一个依赖树

,考虑到在特定迭代中字符预测是相互独立的,但又依赖于前面迭代中的字符预测,故将句子概率近似分解为:

其中,

表示在上一次迭代中生成的字符序列

以及拓展序列

同样地,还可以通过加入拓展占位符的概率来计算句子和树的联合概率:

而要计算最终的句子和树的联合概率,需要计算所有可能出现的依赖树

,而这是不现实的,因此作出假设,所有

的和由最有可能出现的树

决定,故IELM的最终句子和依赖树联合概率计算方法可近似为:

这样的近似让IELM计算语料库级别的句子困惑度成为可能,然而这样近似的困惑度必然是大于等于其真正对所有可能进行计算的方法得到的困惑度。

Experiment Setup

结合以上阐述的方法,在本章节,作者首先做出说明:除了明确说明,实验条件设置为,采用不受限的attention,采用head position embeddings以及条件生成终端字符方法,并且对于依赖树采用序列化方法。

Unconditional Text Generation

这项实验评估方法借鉴了以下文章的方法:

https://arxiv.org/abs/1811.02549

建立了模型的softmax温度(temperature)和质量-多样性-权衡之间的自然关系:较低的温度产生较少的多样性,较高的质量样本;较高的温度增加分布的熵,并产生更多的多样性,较低的质量模型。

因此综上所述,本文的评估目标就是在不同的模型最终softmax温度值

下生成质量和多样性都较高的文本。

对于质量的评估,作者采用了

分数来评估;

而对于多样性,作者采用了

分数来评估,这个分数是使用生成的其他句子作为参考进行计算。

通过设置不同的温度值

,对每个值选取2000个样本进行实验,以结果质量为横坐标,结果多样性为纵坐标,其具体结果如下:

特别的,当

时:

消融实验:

基于AWD-LSTM和GPT-2计算出的困惑度,并在更多数据上进行训练,本文模型生成的文本质量更高。

并且从消融实验中可以看出,受限的attention在非自回归生成中并没有太好的表现;对于字符序列和拓展序列的生成方式上,条件生成所产生的效果要由于分开生成;Head position embedding的引入并没有带来较大的提升。

而一些自监督的Refinement实验反而不像其他自回归语言模型一样对模型的表现带来了提升,而是降低了模型的表现。

Conclusion

这篇文章总体看来,介绍了一种新的用于生成的语言模型,具体优势总结起来如下:

  • 采用非自回归的生成方法,比自回归顺序生成节省了至少一半的生成步骤,效率极大提升。
  • 本文提出的非自回归生成语言模型无论是质量上还是多样性上都可以与传统语言模型不相上下甚至某些指标更胜一筹,可见非自回归模型的潜力。
  • 借助了句法依赖解析树来指导生成:与以往在编码输入文本的过程中隐式捕获依赖关系不同,这种做法显示地将句法信息作为输入强制约束了整个生成过程中的依赖关系指向,保证了生成内容的逻辑性和准确性。

但是其缺点也很明显:

  • 在文中提出的句法依赖解析树的构造还是相对复杂的,对于数据的预处理工作量较大,同时某些特定句法的标注可能需要专家知识。
  • 某些传统语言模型极大受益并得到验证的自监督训练方法在非自回归模型中无法使用,没有替换的手段对其进行进一步训练。

关于非自回归生成预训练语言模型,还有一篇文章可供参考:

https://arxiv.org/abs/2005.00558v1

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2020-09-21,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 人工智能前沿讲习 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • Syntactic Constituent-driven Generation
  • https://openreview.net/forum?id=rkgOLb-0W
  • 这篇文章提出了一种解析-读取-预测网络,在这种网络中,通过跳连接将组成依赖关系与RNN集成在一起。他们的模型不需要句法监督,但可以通过利用句法距离和结构化注意来了解潜在的依赖结构。
  • Insertion-based Generation
  • Extension to Subword-level Vocabularies
  • Neural Architecture
  • Inference and Text Generation
  • Probabilities from the Language Model
  • Experiment Setup
  • Unconditional Text Generation
  • Conclusion
相关产品与服务
NLP 服务
NLP 服务(Natural Language Process,NLP)深度整合了腾讯内部的 NLP 技术,提供多项智能文本处理和文本生成能力,包括词法分析、相似词召回、词相似度、句子相似度、文本润色、句子纠错、文本补全、句子生成等。满足各行业的文本智能需求。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档