论文赏析[NAACL19]一个更好更快更强的序列标注成分句法分析器(一)

简介: 一个更好更快更强的序列标注成分句法分析器

介绍


这篇论文主要是在之前的那篇论文

Constituent Parsing as Sequence Labelinggodweiyang.com

基础上解决了如下三个问题:

  • 太长的短语预测错误率高。
  • 输出空间太大导致label稀疏性。
  • 贪心解码导致的错误传播。

本文提出的解决方法分别是:

  • 采用融合了相对编码和绝对编码的动态编码。
  • 将预测任务分解为多个子任务。
  • 采用辅助任务和策略梯度。

三大问题以及解决方法


过长短语预测的高错误率


由下面这张图可以看出,当 image.png 太小时,准确率就会大幅下降。这个问题主要体现在过长短语的闭合上,右括号的预测尤其困难。其实这也跟数据稀疏性有很大关系,训练集中过长短语毕竟占少数。

image.png

解决方法就是采用动态编码,如下图所示:

image.png

第一行是相对值编码,第二行是绝对值编码,之前文章都已经解释过了。第三行是结合了上面两种编码的动态编码,具体取值情况是大多数时候都还采用相对值编码,因为毕竟相对值编码空间比较小,可以适当缓解数据稀疏性。但是当满足如下两种情况的时候,就采用绝对值编码:

  • 绝对值 image.png ,也就是说CA的个数不能超过3个,这样也是为了降低数据的稀疏性。
  • 相对值 image.png ,也就是说将上图中准确率比较低的那些负数值全部用绝对值替代了,在句法树中表现为 image.png 所在的子树比 image.png 低两层以上。

输出空间太大导致label稀疏性


这个问题主要是由于三元组 image.png 太稀疏了导致的。假设 image.png ,那么这个三元组的状态空间是 image.png ,可以通过将三元组分解为三个不同的子任务将复杂度降低为 image.png 。最后的损失函数定义为三个子任务的损失之和:

image.png

具体实现上,可以将任务 U 的输出给任务 N 和 C 作为输入。

贪心解码导致的错误传播


这个问题在基于贪心的方法中基本都存在,也就是所谓的一步错步步错,这里主要提出了两种解决方法。

辅助任务 辅助任务主要就是用来帮助主任务学习到一些不太容易学到的信息。这里才用了两个辅助任务,一个是在预测 image.png 的同时再预测一个 image.png ,这样就能往后多预测一步,适当的减少了贪心的影响。另一个方法就是将之前博客写到的句法距离(syntactic distances)加入到模型中一起预测:

image.png

对于不同的辅助任务,最后将他们的损失求和加到最终的损失函数中去:

image.png

策略梯度 这个方法可以从全局的角度来对模型进行优化。假设模型在 t 时刻的状态为 image.png ,输出标签为 image.png ,那么模型选择 image.png 的概率定义为策略 image.png ,模型最终可以获得的奖励为 image.png ,定义为句法树的F1值。

定义句法树的概率为每一步决策的概率之积:

image.png

所以模型最终就是要最大化如下的奖励:

image.png

按照梯度上升的方向更新参数 image.png ,求梯度可得:

image.png

image.png 代入可得:

image.png

其中 image.png 是根据分布 p 采样出来的 n 棵句法树的奖励。

具体实现的时候有好几个小Tips。

第一个就是要将奖励减去一个baseline,这里定义为模型直接根据贪心求得的句法树的F1值:

image.png

这么做的目的就是为了让奖励有正有负,不然全部都是正数的话,因为采样不可能全部采样到,可能会导致高概率的样本概率越来越高,而没有采样到的低概率样本可能奖励非常高,却因此概率越来越低。

第二个Tip就是加入熵作为正则项:

image.png

目的就是使概率尽量不要太小,不然的话采样数不够的话就有可能造成采样不到小概率的样本。

还有就是给策略加入噪声:

image.png

目的同样是加大概率,防止概率太接近于0,当然这个可加可不加。。。

相关文章
|
2月前
|
机器学习/深度学习 人工智能
类人神经网络再进一步!DeepMind最新50页论文提出AligNet框架:用层次化视觉概念对齐人类
【10月更文挑战第18天】这篇论文提出了一种名为AligNet的框架,旨在通过将人类知识注入神经网络来解决其与人类认知的不匹配问题。AligNet通过训练教师模型模仿人类判断,并将人类化的结构和知识转移至预训练的视觉模型中,从而提高模型在多种任务上的泛化能力和稳健性。实验结果表明,人类对齐的模型在相似性任务和出分布情况下表现更佳。
68 3
|
机器学习/深度学习 人工智能 自然语言处理
全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵
本文浅试Meta开源的大型AI语言模型『Galactica』,带大家体验安装与多场景使用。Galactica被称为“最懂科学的智能NLP模型”,能够预测蛋白质标注!创建讲义!解释数学公式!全都会!
313 1
全都会!预测蛋白质标注!创建讲义!解释数学公式!最懂科学的智能NLP模型Galactica尝鲜 ⛵
|
机器学习/深度学习 算法
【论文写作分析】之五《融合类别特征扩展与N-gram子词过滤的fastText短文本分类》
【论文写作分析】之五《融合类别特征扩展与N-gram子词过滤的fastText短文本分类》
【论文写作分析】之五《融合类别特征扩展与N-gram子词过滤的fastText短文本分类》
【论文写作分析】之四《基于ALBERT-TextCNN模型的多标签医疗文本分类方法》
【论文写作分析】之四《基于ALBERT-TextCNN模型的多标签医疗文本分类方法》
231 0
【论文写作分析】之四《基于ALBERT-TextCNN模型的多标签医疗文本分类方法》
|
机器学习/深度学习 自然语言处理
|
机器学习/深度学习 自然语言处理
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(一)
之前其实有很多工作将句法信息融入到了RNN中,例如ON-LSTM和PRPN,用来隐式建模句法结构信息,同时提升语言模型的准确率。本文尝试将句法信息融入到Transformer中,用来赋予attention更好的解释性。同时可以无监督的预测出句子的句法树,并且相比于一般的Transformer,语言模型的性能有所提高。
190 0
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(一)
|
机器学习/深度学习 自然语言处理 算法
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(二)
之前其实有很多工作将句法信息融入到了RNN中,例如ON-LSTM和PRPN,用来隐式建模句法结构信息,同时提升语言模型的准确率。本文尝试将句法信息融入到Transformer中,用来赋予attention更好的解释性。同时可以无监督的预测出句子的句法树,并且相比于一般的Transformer,语言模型的性能有所提高。
276 0
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(二)
|
自然语言处理 算法
论文赏析[NAACL19]基于DIORA的无监督隐式句法树归纳(一)
今天要分享的这篇论文来自NAACL2019,主要利用inside-outside算法推理出给定句子的句法树,不需要任何的监督,也不需要下游任务作为目标函数,只需要masked语言模型就行了。
464 0
论文赏析[NAACL19]基于DIORA的无监督隐式句法树归纳(一)
|
机器学习/深度学习 自然语言处理 算法
论文赏析[NAACL19]基于DIORA的无监督隐式句法树归纳(二)
今天要分享的这篇论文来自NAACL2019,主要利用inside-outside算法推理出给定句子的句法树,不需要任何的监督,也不需要下游任务作为目标函数,只需要masked语言模型就行了。
465 0
论文赏析[NAACL19]基于DIORA的无监督隐式句法树归纳(二)
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)
本文定义了一种新的树的序列化方法,将树结构预测问题转化为了序列预测问题。该序列用相邻两个结点的公共祖先(CA)数量和最近公共祖先(LCA)的label来表示一棵树,并且证明了这个树到序列的映射是单射但不是满射的,但是提出了一系列方法来解决这个问题。
134 0
论文赏析[EMNLP18]用序列标注来进行成分句法分析(二)