论文赏析[TACL18]隐式句法树模型真的能学到句子中有意义的结构吗?(一)

简介: 本文是一篇分析类论文,主要对近年来几种无监督句法分析模型(RL-SPINN和ST-Gumbel)进行了分析,得出了如下三个结论:在句子分类任务上,只有一种模型效果好于传统的树结构模型。这些模型随机性很大,初始化不同,结果也都差距很大。这些模型产生的句法树的平均深度比PTB数据集的平均深度浅。

介绍


最近有很多工作都是利用Tree-RNN来生成句子的隐式句法树,然后利用下游任务来提供监督,这样就不需要句法树的标注了。利用上隐式句法树的信息之后,下游任务的效果的确能变好,但是几乎没有文章分析过,为什么效果会变好?这个隐式句法树真的学的很不错吗?真的学到了语法吗?如果真的学到了语法,那这对句法和语义学研究者帮助很大。如果没有学到语法,那为什么对下游任务也有帮助呢?这是值得深思的问题。

理解任何自然语言,首先都要识别出它的句子中,哪些单词组合出的短语是有意义的。而对于下面这种句子:“I saw the man with the telescope”,就会产生两种语义。一种是“with the telescope”修饰“the man”,另一种是修饰“saw”。而直接给出这句话,是基本没有办法判断属于哪种语义的,所以还是得依赖上下文来判断。

这篇论文分析了四个问题:

  • 隐式句法树提升下游任务性能的程度。
  • 隐式句法树模型对于不同的随机初始化,能学到相似句法树的程度。
  • 模型学到的语法和PTB语法相似的程度。
  • 模型学到的语法和任何可识别的语法规则相近的程度。

模型


这篇论文主要分析了两种模型:SPINN模型及其变体,ST-Gumbel模型。

SPINN模型及其变体


image.png

SPINN模型如图1所示,其实它也是基于转移系统的,没有太大区别。唯一区别就是它提出来不是用来做句法分析的,而是用来对句子编码,来产生句子的向量表示。模型的转移系统的句法监督来自于斯坦福的PCFG Parser,所以不一定完全准确,但是对于下游任务性能提升够用了。

然后是RL-SPINN,和SPINN模型基本完全一样。最大的区别就是转移系统不是用现成的parser来提供监督了,而是用下游任务准确率作为得分来做强化学习进行优化。

还有SPINN-NC(No Connection),取消了tracking模块和composition模块的连接,也就是句法树的表示不依赖buffer里的单词了,这样SPINN模型就退化为了Tree-LSTM了,完全等价。这个变体主要用来和ST-Gumbel模型进行对比,因为ST-Gumbel也是用的Tree-LSTM作为composition模块。

最后一个变体是SPINN-PI-NT(Parsed Input, No Tracking),这个变体模型移除了Tracking模块,同时依赖它的两个模块之间的连接也移除了。这个模型的转移系统就没法预测了,只能根据现成的句法树直接转移。这个变体主要用来对比,用现成的parser和训练出来的parser影响有多大。

ST-Gumbel模型


image.png

这个模型其实就是使用Tree-RNN来计算任意相邻两个结点的得分,然后合并得分最高的两个结点,最后直到只剩一个根节点。如果是有监督学习的话,这样是可行的。但是现在是无监督,所以中间过程的两个结点的得分是没法直接加入到损失函数里的,而中间过程的决策又是离散的,没法计算梯度。所以提出了用ST Gumbel-Softmax来代替传统的softmax,这样就能估计出反向传播的梯度了,而不用强化学习方法了。

其他对比模型


第一个是单向LSTM和RNN

第二个还是SPINN-PI-NT,但是转移序列是随机的,不是正确的。

第三个也是SPINN-PI-NT,但是转移序列对应的是最大深度的句法树和平衡二叉树。

这里对几种模型做一个说明。无句法监督的模型只有RL-SPINN和ST-Gumbel两种。单向LSTM和RNN是和句法树没有任何关系的,只用来学习句子的表示。剩下的SPINN,SPINN-NC和SPINN-PI-NT都是需要句法监督的。

数据集


采用了三个数据集,PTB,SNLI和MultiNLI,并且提前都做了二叉化。更多的实验细节就不说了,直接去看论文吧。

相关文章
|
机器学习/深度学习 自然语言处理 算法
机器学习-特征选择:如何用信息增益提升模型性能?
机器学习-特征选择:如何用信息增益提升模型性能?
679 1
|
运维 测试技术 网络安全
Apache虚拟主机配置详细教程
Apache虚拟主机配置详细教程
979 0
Apache虚拟主机配置详细教程
|
7月前
|
安全 Linux 虚拟化
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
173 0
Palo Alto Cortex XSOAR 8.8 for ESXi - 安全编排、自动化和响应 (SOAR) 平台
|
存储 分布式计算 大数据
大数据 优化数据读取
【11月更文挑战第4天】
315 2
|
11月前
|
存储 NoSQL Linux
linux积累-core文件是干啥的
核心文件是Linux系统在程序崩溃时生成的重要调试文件,通过分析核心文件,开发者可以找到程序崩溃的原因并进行调试和修复。本文详细介绍了核心文件的生成、配置、查看和分析方法
824 6
视频格式转换与DRM解除
随着流媒体平台的普及,用户对视频下载和转换工具的需求不断增加。本文介绍了几款优秀工具,如CleverGet、PlayOn Cloud、CocCut、StreamGaGa和PlayOn Desktop,帮助用户更好地下载、转换和管理视频内容。这些工具不仅提升了视频获取的便利性,还提供了多种选择,满足不同需求。使用时请确保合法合规。
|
XML 前端开发 Java
Spring MVC接收param参数(直接接收、注解接收、集合接收、实体接收)
Spring MVC提供了灵活多样的参数接收方式,可以满足各种不同场景下的需求。了解并熟练运用这些基本的参数接收技巧,可以使得Web应用的开发更加方便、高效。同时,也是提高代码的可读性和维护性的关键所在。在实际开发过程中,根据具体需求选择最合适的参数接收方式,能够有效提升开发效率和应用性能。
342 3
|
SQL 流计算 API
实时计算 Flink版产品使用合集之ClickHouse-JDBC 写入数据时,发现写入的目标表名称与 PreparedStatement 中 SQL 的表名不一致如何解决
实时计算Flink版作为一种强大的流处理和批处理统一的计算框架,广泛应用于各种需要实时数据处理和分析的场景。实时计算Flink版通常结合SQL接口、DataStream API、以及与上下游数据源和存储系统的丰富连接器,提供了一套全面的解决方案,以应对各种实时计算需求。其低延迟、高吞吐、容错性强的特点,使其成为众多企业和组织实时数据处理首选的技术平台。以下是实时计算Flink版的一些典型使用合集。
242 0
|
存储 编解码 监控
一文详解|如何写出优雅的代码
和大家一起探讨一下优雅代码
120970 20
一文详解|如何写出优雅的代码
|
运维 监控 安全
认识SOAR-安全事件编排自动化响应
SOAR是最近几年安全市场上最火热的词汇之一。SOAR究竟是什么,发展历程是什么,能够起什么作用,带着这些问题我们来认识一下SOAR。
1305 0
认识SOAR-安全事件编排自动化响应