首页 > 其他分享 >[NAACL19]基于DIORA的无监督隐式句法树归纳

[NAACL19]基于DIORA的无监督隐式句法树归纳

时间:2022-11-29 11:36:16浏览次数:62  
标签:NAACL19 短语 inside outside PTB DIORA 句法树 模型

论文地址:

​Unsupervised Latent Tree Induction with Deep Inside-Outside Recursive Autoencoders​

代码地址:

​iesl/diora​


今天要分享的这篇论文来自NAACL2019,主要利用inside-outside算法推理出给定句子的句法树,不需要任何的监督,也不需要下游任务作为目标函数,只需要masked语言模型就行了。

介绍

无监督句法分析是现在比较热门,也有很多东西可做的方向。有监督的已经做得非常好了,感觉做不下去了,所以做一做无监督的试试。

这篇论文主要用inside-outside算法算出每个span的表示和分数,然后最大化每个叶子结点的分数,类似于bert的masked语言模型。不用像之前的工作那样,需要最后得到句子和短语的表示,然后用来做下游任务。

本文模型简称叫DIORA,也就是Deep Inside-Outside Recursive Autoencoders。inside步骤其实类似chart parser的前向过程,outside步骤用来重构每个单词。

DIORA在好几个数据集上都取得了非常大的提升。

为了理解这篇论文,推荐先去看一下inside-outside算法:

​Inside-outside Algorithm in PCFG​

DIORA

[NAACL19]基于DIORA的无监督隐式句法树归纳_数据集

[NAACL19]基于DIORA的无监督隐式句法树归纳_结点_02

Outside过程

outside其实计算方法和inside很类似,只是不是通过短语[NAACL19]基于DIORA的无监督隐式句法树归纳_结点_03的两个儿子来计算了,而是通过它的父亲结点和兄弟结点计算。

首先看一下下面这张模型图:


[NAACL19]基于DIORA的无监督隐式句法树归纳_ide_04

左边是inside过程,右边是outside过程

[NAACL19]基于DIORA的无监督隐式句法树归纳_数据集_05

目标函数

[NAACL19]基于DIORA的无监督隐式句法树归纳_ide_06


[NAACL19]基于DIORA的无监督隐式句法树归纳_ide_07

CKY解码算法

实验

无监督成分句法分析

首先是在二叉化后的PTBMultiNLI数据集上的结果:


[NAACL19]基于DIORA的无监督隐式句法树归纳_ide_08

PTB测试集结果


[NAACL19]基于DIORA的无监督隐式句法树归纳_结点_09

MultiNLI结果

+PP表示做了后处理,也就是预测的时候去掉标点,最后直接把标点连接到根结点,这样效果会好很多。

从PTB数据集结果可以看出,DIORA+PP的提升是最大的(ON-LSTM由于论文发表时没有出代码,所以没有实现),而其他几个模型提升很小甚至还有下降(PRPN-LM)。

并且DIORA产生出的句法树的平均深度是最深的,这也是由于这个模型和前两个模型(PRPN、ON-LSTM)的区别导致的,前两个模型并没有显式地对句法结构进行建模,没有办法得到没有短语结构的表示,而DIORA是按照常规的句法分析的框架来做的,可以显式地得到每个短语的表示与得分。

MultiNLI结果类似,但是有个区别就是,这个数据集的句法树不是标准的,而是通过斯坦福的parser生成的,所以不一定对。所以这个数据集其实考量的是模型对另一个已知模型的拟合能力。

然后是WSJ-10WSJ-40上面的结果,也就是PTB中长度不超过10和40的句子组成的数据集:


[NAACL19]基于DIORA的无监督隐式句法树归纳_结点_10

WSJ-10和WSJ-40结果

这里为了和之前的论文统一,没有进行二叉化,所以预测出来的句法树F1值有个上限,就是上表中的UB值。可以看出WSJ-40效果还是不错的,但是在WSJ-10上面没有一个神经网络方法能超过之前的传统方法(CCM和PRLG),说明句子长度过短,神经网络的学习能力还有待提高。

无监督短语分割

这个任务就是看模型识别出了句子中有多少个短语,其实包含在刚刚的句法树结构中了。数据集还是用的PTB,结果如下:


[NAACL19]基于DIORA的无监督隐式句法树归纳_数据集_11

PTB短语分割召回率

可以看出除了两个短语类型,其他短语类型识别出的召回率还是很高的。

短语相似度

短语相似度任务是这样的,首先用DIORA算出每个短语的表示,然后两两短语之间算cos相似度,对于一个短语,如果与它最相似的K个短语的label和它一样,那么这个短语就预测对了。下表是在CoNLL2000和CoNLL2012数据集上的准确率:


[NAACL19]基于DIORA的无监督隐式句法树归纳_结点_12

短语相似度结果

其中ELMo分为三种设置,CI表示只输入短语的每个单词然后取平均得到短语表示,SI表示输入一整个短语,最后一个就是输入整个句子了。DIORA的话用短语的inside和outside表示拼接得到。

结果表明,CoNLL2000中DIORA效果最好,但是CoNLL2012的话ELMo效果最好,这也说明了DIORA在细粒度的语料上还有提升空间。还有一点奇怪的就是,在CoNLL2012上,ELMo-CI的效果竟然比ELMo-SI还要好,这也是没法解释的。

最后就是一些模型设置,比如TreeLSTM和MLP对效果的影响,这些部分就去看论文吧。

总结

未来工作主要放在:

  • 提升细粒度语料准确度。
  • 训练更大语料,增加额外的目标函数
  • 跨领域、跨语言。

标签:NAACL19,短语,inside,outside,PTB,DIORA,句法树,模型
From: https://blog.51cto.com/godweiyang/5894600

相关文章