在NLP中深度学习模型何时需要树形结构?

在NLP中深度学习模型何时需要树形结构?

前段时间阅读了Jiwei Li等人[1]在EMNLP2015上发表的论文《When Are Tree Structures Necessary for Deep Learning of Representations?》,该文主要对比了基于树形结构的递归神经网络(Recursive neural network)和基于序列结构的循环神经网络(Recurrent neural network),在4类NLP任务上进行实验,来讨论深度学习模型何时需要树形结构。下面我将通过分享这篇论文以及查看的一些相关资料来讨论一下我们何时需要树形结构知识。

1 句法分析树

根据不同的标注树库,句法分析树主要有两种形式:1) 短语结构树(Constituent Tree) 和2) 依存结构树(Dependency Tree)。下面举个简单的例子,"My dog likes eating sausage." 使用Stanford parsing tool进行句法分析可以得到如下结果:

在NLP中深度学习模型何时需要树形结构?_第1张图片

我们将其可视化后,短语结构树和依存树分别为:

在NLP中深度学习模型何时需要树形结构?_第2张图片

论文[1]中指的树形结构即为NLP中句法分析后得到的句法树结构。

2 对比模型

在论文中,主要分了两大组模型进行对比实验,具体的是:

  • Standard tree models (standard Recursive neural models), standard sequence models (standard Recurrent neural models), standard bi-directional sequence models (bi-directional recurrent neural models).
  • LSTM tree models[2], LSTM sequence models vs LSTM bi-directional sequence models.

每组就是三个模型,树模型,单向序列模型和双向序列模型,具体的模型大家可以查阅文献,下面我只给出标准模型的结构图。

Standard Recursive/Tree Models

在NLP中深度学习模型何时需要树形结构?_第3张图片

Standard Recurrent/Sequence Models

在NLP中深度学习模型何时需要树形结构?_第4张图片

Bidirectional Recurrent Models

在NLP中深度学习模型何时需要树形结构?_第5张图片

3 实验数据

该文在NLP领域中4种类型5个任务进行了实验,具体的实验数据大家可以从论文中查阅,这里我主要分析一下每个任务的特点,以及最后实验的结果:

  • Sentiment Classification on the Stanford Sentiment Treebank

    这是一个细粒度的情感分类问题,根据Stanford的句法树库,在每一个节点上都标注了情感类型,所以实验分为了句子级别和短语级别,从结果来看,树形结构对于句子级别有点帮助,对于短语级别并没什么作用。

  • Binary Sentiment Classification

    这同样是一个情感分类问题,与上面不同的是,它只有二元分类,并且只有在句子级别上进行了标注,且每个句子都比较长。实验结果是树形结构并没有起到什么作用,可能原因是句子较长,而且并没有丰富的短语级别标注,导致在长距离的学习中丢失了学习到的情感信息。

  • Question-Answer Matching

    这个任务是机智问答,就是给出一段描述一般由4~6句组成,然后根据描述给出一个短语级别的答案,例如地名,人名等。在这个任务上,树形结构也没有发挥作用。

  • Semantic Relation Classification

    这个任务是给出两个句子中的名词,然后判断这两个名词是什么语义关系。树形结构的方法在这个任务上有明显的提升。

  • Discourse Parsing

    是一个分类任务,特点是其输入的单元很短,树形结构也没有什么效果。

结论

通过上面的实验,作者总结出下面的结论。

需要树形结构:

  1. 需要长距离的语义依存信息的任务(例如上面的语义关系分类任务)Semantic relation extraction
  2. 输入为长序列,即复杂任务,且在片段有足够的标注信息的任务(例如句子级别的Stanford情感树库分类任务),此外,实验中作者还将这个任务先通过标点符号进行了切分,每个子片段使用一个双向的序列模型,然后总的再使用一个单向的序列模型得到的结果比树形结构的效果更好一些。

不需要树形结构:

  1. 长序列并且没有足够的片段标注任务(例如上面的二元情感分类,Q-A Matching任务)
  2. 简单任务(例如短语级别的情感分类和Discourse分析任务),每个输入片段都很短,句法分析可能没有改变输入的顺序。

此外,哈工大的车万翔在哈工大的微信公众号也发表了《自然语言处理中的深度学习模型是否依赖于树结构?》[3],其中提到了"即使面对的是复杂问题,只要我们能够获得足够的训练数据"也可以无需树形结构。

通过这篇论文和车老师的博文以及一些相关资料,句法树形结构是否需要值得我们关注,我们应该根据自己做的任务以及句法分析的优缺点进行判断,我自己总结如下:

句法分析能够带给我们什么?

  • 长距离的语义依赖关系
  • 包含语言学知识的序列片段
  • 简化复杂句子提取核心

句法分析的缺点

  • 自身分析存在错误,引入噪声
  • 简单任务复杂化
  • 句法分析时间长

 

主要参考文献

[1]     J. Li, M.-T. Luong, D. Jurafsky, E. Hovy, When Are Tree Structures Necessary for Deep Learning of Representations?, EMNLP. (2015) 2304–2314.

[2]     K.S. Tai, R. Socher, C.D. Manning, Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks, Acl-2015. (2015) 1556–1566.

[3] 哈工大车万翔:自然语言处理中的深度学习模型是否依赖于树结构?

你可能感兴趣的:(在NLP中深度学习模型何时需要树形结构?)