在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进行句法分析可以得到如下结果:

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

论文[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

Standard Recurrent/Sequence Models

Bidirectional Recurrent Models

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中深度学习模型何时需要树形结构?的更多相关文章

  1. 深度学习模型调优方法(Deep Learning学习记录)

    深度学习模型的调优,首先需要对各方面进行评估,主要包括定义函数.模型在训练集和测试集拟合效果.交叉验证.激活函数和优化算法的选择等. 那如何对我们自己的模型进行判断呢?——通过模型训练跑代码,我们可以 ...

  2. NLP与深度学习(四)Transformer模型

    1. Transformer模型 在Attention机制被提出后的第3年,2017年又有一篇影响力巨大的论文由Google提出,它就是著名的Attention Is All You Need[1]. ...

  3. 『深度应用』NLP机器翻译深度学习实战课程·零(基础概念)

    0.前言 深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内 ...

  4. 『深度应用』NLP机器翻译深度学习实战课程·壹(RNN base)

    深度学习用的有一年多了,最近开始NLP自然处理方面的研发.刚好趁着这个机会写一系列NLP机器翻译深度学习实战课程. 本系列课程将从原理讲解与数据处理深入到如何动手实践与应用部署,将包括以下内容:(更新 ...

  5. NLP与深度学习(一)NLP任务流程

    1. 自然语言处理简介 根据工业界的估计,仅有21% 的数据是以结构化的形式展现的[1].在日常生活中,大量的数据是以文本.语音的方式产生(例如短信.微博.录音.聊天记录等等),这种方式是高度无结构化 ...

  6. NLP与深度学习(五)BERT预训练模型

    1. BERT简介 Transformer架构的出现,是NLP界的一个重要的里程碑.它激发了很多基于此架构的模型,其中一个非常重要的模型就是BERT. BERT的全称是Bidirectional En ...

  7. AI佳作解读系列(一)——深度学习模型训练痛点及解决方法

    1 模型训练基本步骤 进入了AI领域,学习了手写字识别等几个demo后,就会发现深度学习模型训练是十分关键和有挑战性的.选定了网络结构后,深度学习训练过程基本大同小异,一般分为如下几个步骤 定义算法公 ...

  8. 『高性能模型』Roofline Model与深度学习模型的性能分析

    转载自知乎:Roofline Model与深度学习模型的性能分析 在真实世界中,任何模型(例如 VGG / MobileNet 等)都必须依赖于具体的计算平台(例如CPU / GPU / ASIC 等 ...

  9. 利用 TFLearn 快速搭建经典深度学习模型

      利用 TFLearn 快速搭建经典深度学习模型 使用 TensorFlow 一个最大的好处是可以用各种运算符(Ops)灵活构建计算图,同时可以支持自定义运算符(见本公众号早期文章<Tenso ...

随机推荐

  1. c# vue 跨域get post cookie等问题

    背景介绍: 开发微信公共号时前后端分离,后台用C#开发,前端使用vue框架,数据采用axios传输 具体问题: 1:前后端分离造成的跨域访问问题 2:跨域后cookie传输和设置问题 解决方案: 1: ...

  2. WebService之XFire和SOAP实例(基于JAVA)

    开发环境:jdk1.6 + Tomcat7 + MyEclipse10 源码下载地址张贴在文章最后面:首先是使用WSDL协议实现:这里使用XFire XFire一个免费.开源的SOAP框架,它构建了P ...

  3. css3动画效果:1基础

    css动画分两种:过渡效果transition .关键帧动画keyframes 一.过渡效果transition 需触发一个事件(如hover.click)时,才改变其css属性. 过渡效果通常在用户 ...

  4. 【MarkDown】使用Html样式和折叠语法

    MarkDown很方便,但基本语法有些不足:比如无法使用折叠语法,无法让文字有不同的颜色. 这些功能可以实现,不过需要使用Html语法进行扩展.这篇文章主要是整理一下这些技巧,方便更好的使用. 一.折 ...

  5. FineReport----日期处理

    日期处理:http://help.finereport.com/doc-view-819.html DAYSOFMONTH(date):返回当日的该月天数 DATEDELTA(Today(),-1): ...

  6. 测试一个服务器的性能,客户要求向数据库(Sqlserver2012)内 1000/s(每插入一千条数据) 的处理能力

    通过jmeter很简单就可以完成,可以参考我以前的一篇文章<jmeter创建数据库(Sqlserver2012)测试>. 前提条件:一个数据库:test   数据库下面有一张表:user  ...

  7. 并发测试 java.lang.OutOfMemoryError: GC overhead limit exceeded Xms Xmx 阻塞请求 单节点 请求分发 负载均衡

    at javax.servlet.http.HttpServlet.service(HttpServlet.java:705) at javax.servlet.http.HttpServlet.se ...

  8. javascript变量声明提升和函数声明提升

    在ES6之前,JavaScript没有块级作用域(一对花括号{}即为一个块级作用域),只有全局作用域和函数作用域.变量提升即将变量声明提升到它所在作用域的最开始的部分. JS的解析过程分为两个阶段:预 ...

  9. IIS设置文件 Robots.txt 禁止爬虫

    robots.txt用于禁止网络爬虫访问网站指定目录.robots.txt的格式采用面向行的语法:空行.注释行(以#打头).规则行.规则行的格式为:Field: value.常见的规则行:User-A ...

  10. iOS学习之七牛云存储应用

    前言 七牛云存储,是专为移动时代开发者打造的数据管理平台,为互联网网站和移动App提供数据的在线托管.传输加速以及图片.音视频等富媒体的云处理服务. 七牛云官网http://www.qiniu.com ...