/*版权声明:可以任意转载,转载时请标明文章原始出处和作者信息.*/

author: 张俊林

推导和表示一篇文章的语义对于自然语言处理来说是个很基础也很重要的工作。推导文档语义可以用无监督的方法,也可以用有监督的方法。所谓“无监督的方法”,就比如可以直接把构成文档的单词Word Embedding直接累加或者累加后求均值这种简单粗暴的方式来推导文档语义。而有监督的方法,则是对于某个特定的分类任务,通过训练实例来训练模型参数的方式来学习推导出文档的语义,其实也就是文档级别的特征来表达的文档语义。这个其实简单想一想也可以推导出有监督的效果肯定比无监督的效果好,毕竟有监督任务学习目标很明确而不是像无监督学习那么漫无目的的乱学习。


那么我们把注意力的焦点放在有监督任务中,对于这类任务,如何推导出文档的语义表示呢?一篇文档和单纯一个句子有很大的不同,因为句子是由线型序列陆续出现的字词构成的,而文档是由多个句子序列构成的,明显相对句子而言包含更丰富以及粒度更大的一些信息,比如句子关系等。


|一级/二级/三级神经网络结构


一种最直接的表达是在看待文档的时候,也不用考虑它是怎么构成的,直接把句子这个级别忽略掉,不论文章包含多少个句子,只把文档看做是由单词的线性序列构成的。其实就是把一篇文章看成一个非常长的句子,概念上类似于图1展示的两层一级结构。目前很多工作其实都是这么做的。

1 一级文档结构


另外一种比较符合直觉的思路是要考虑到文章的层级结构关系,就是说文章是由段落构成的,段落是由句子构成的,而句子是由单词序列构成的(图2)。就是把文章整体看做是一个四层的树状网络结构,可以称之为“三级结构”。当然,也可以把段落这个级别忽略掉,把文章看做是由句子构成的,而句子是由单词序列构成的,也就是把三级结构简化成(单词-句子-文档)两级结构。

2 三级文档结构

对于文章级别的建模来说,标准的三级结构应该是:

第一级:ComposeModelLevel1(字词)->Semantic(句子)

第二级:ComposeModelLevel2(句子)->Semantic(段落)

第三级:ComposeModelLevel3(段落)->Semantic(文章)

当然,也可以忽略掉段落这个层级,简化成二级结构:

第一级:ComposeModelLevel1(字词)->Semantic(句子)

第二级:ComposeModelLevel2(句子)->Semantic(文章)

第一级是通过模型来研究如何根据字词来组成一个句子的语义;第二级是探讨如何根据句子的语义表达来综合出段落的语义;第三级别是探讨如何根据段落来组合出文章的语义;理论上,三个ComposeModel可以是不同的模型,比如有些地方用CNN,有些地方用RNN,当然也可以是相同的模型,比如统一用LSTM来建模,但是模型参数不同,所以本质上其实也是不同的模型。当然,目前的研究一般会省略掉段落这个级别,将问题简化为二级结构,其神经网络结构如图3所示,其中由字词推导句子语义的第一级结构可以用CNN/RNN等网络结构,由句子推导文档语义的第二级结构也可以用可能的网络结构,比如CNN或者RNN等模型来构建。

3 二级神经网络结构

本质上这三个ComposeModel都是探讨如何由小粒度的语言单位组合出更高力度语言单位的语义表示的方法,但是因为语言的复杂性,很明显单词语义如何构造出句子语义和由句子语义组合构造文章语义应该是有差别的。最简单的例证是由字词构成句子要考虑单词之间的语法关系;而句子之间的关系则是另外一种思路,一般是考虑句子之间的顺序关系及句子间的语义一致性,所谓“语义一致性(Coherence)”也就是说相互连接的句子在语义上是平滑的而且接近于讲的是一个事情,而不是像下面的三个连续句子表达的语义:

句子1:看了《太阳的后裔》,终于可以换新老公了,宋仲基欧巴等我思密达。

句子2:热烈庆祝特朗普当选最后一届美国总统啊。

句子3:宋慧乔其实长得也就那样吧,居然敢跟本宫抢老公,也不照照镜子思密达。

看完给人神经病院发生暴动后成功越狱人士在发言的感觉,这种感觉其实就是“语义不一致”给人的感觉。但是很明显的一点是:第二个层级的Compose Model在组合时考虑的因素应该不会是句法关系,而是句子间关系。

另外,从感觉上看,因为句子表达顺序对于文章语义是有意义的特征,所以第二级和第三级,尤其是第二级和第三级在推导文章语义过程中,直觉上应该采用RNN模型,这样可以把顺序关系表达进文章语义中。尤其是对于有些应用来说,顺序关系是重要的特征,比如情感分类任务。


|二级结构性能确实比一级结构好吗


上面提到了两种不同的看待文档的视角:长句子视角(一级结构)和树状结构(二级和三级结构)。那么我现在关心的问题是:对于分类问题,到底是用一级结构分类任务性能就足够好了?还是说三级结构优于二级结构,且二级结构优于一级结构?所以找到了相关的论文,重点关注其实验部分,因为这可以分析出上面问题的答案,我能找到的有三篇讲述层级结构的论文,基本都是(单词-句子-文档)二级结构,这不重要,我们关心二级结构性能是否优于一级结构就可以了。


首先看第一篇论文:Modelling,Visualising and Summarising Documents with a Single Convolutional Neural Network这篇论文采用了二级结构,一级句子建模和二级文档建模都采用CNN来做,我个人觉得如果两级都采用CNN感觉意义不大,因为感觉第二级CNN并没有引入什么新的信息,本质上CNN都是学的N-GRAM片段作为特征,CNN从其机制上学不了特征间的顺序关系,所以套上多层感觉意义不太大。这个论文实验部分只对比了这个模型和随机模型的效果是有提升的,但是并没有做二级结构和一级结构的对比,所以感觉说服力不足,因为也许这个提升完全是因为引入了CNN而不是由于二级结构导致的,所以感觉总体而言从方法到实验都有点问题。


这个论文基本上不太能回答上述的问题。


再来看第二篇论文,A Hierarchical Neural Autoencoder for Paragraphsand Documents 这个论文使用二级结构构建Autoencoder来学习再现文章内容,实验部分结果如下图:

说明了采用两级结构(Hierarchical)的神经网络效果要优于一级(Standard)的结构,加上Attention效果更好(Hierarchical+Attention)。但是毕竟这是一个非监督的生成任务,至于用在监督环境下是否二级结构优于一级结构其实这个论文并没有给出答案。而且我个人觉得有一种解释在这种生成型任务中二级效果好于一级的原因:可能是一级结构的Decoder生成内容太长所以效果不好,而二级结构每个句子都分别生成内容,长度自然减少到句子级。这很可能是二级优于一级的原因。所以,其实这个论文也不太能回答上面提到的问题。


然后来看第三篇论文,Document Modeling with Gated Recurrent Neural Network for Sentiment Classification ,这是用多级文档结构来做文档级的情感分类问题的,在一级结构分别采用了CNNLSTM,而二级结构采用了类似于LSTMGRU的模型。

这个论文的实验比较丰富, 从上面的实验数据中可以分析得出如下结论:有监督的CNN一级文档建模(蓝框Convolutional NN一行)效果明显好于无监督的单词Word Embedding直接叠加求均值的方式(蓝框SVM+AverageSG),这个符合预期,因为毕竟一个是有监督的一个是无监督的,有监督的好于无监督的很正常,而且SVM+AverageSG比其它简单选取特征但是有监督的效果都差也说明了这点;层级建模(红框的两个模型)效果也要显著好于非层级建模(Convolutional NN),而第一级用LSTM(LSTM-GRNN那行)效果要稍微好于CNN模型(Conv-GRNN),这说明单词级的顺序关系对于情感分类也是有意义的。而如果将Conv-GRNN效果和Convolutional NN效果对比也能分析出一些结论,因为两者的区别是:Conv-GRNN采用两层结构,第一层句子语义组合采用CNN,第二级句子推导文档语义采用类似于GRU的策略;而Convolutional NN类似于用CNN来只做一级语义推导的模型。而两者的性能差异完全是由于第二级的RNN策略产生的,所以这说明句子级的RNN模型对于情感分析是很重要的。


这个实验感觉应该缺少一个基于LSTM的一级层级结构实验效果做对比,尽管可以证明一级层级结构使用CNN是明显不如多层结构的,但是如果是一级层级结构使用LSTM,比CNN能够多捕获单词顺序依赖信息,按理说应该比那个Convolutional NN效果好,如果能够补充这个实验那么多层结构效果优于单层结构就能够更有说服力,因为也许有可能红框内两个实验效果好于一级CNN模型是由于RNN能够捕获特征顺序信息导致的提升,而并不一定是由于二级结构优于一级结构导致的。虽然在一定程度上说明了层级结构的优势,但是其实说服力也不足够强,也不能完全回答最初提出的那个问题。


综合上面文献的实验结果,其实目前我觉得这个问题起码对于我来说还没有太明确的答案,那么到底是否在有监督学习任务下二级结构效果明确就比一级结构好呢?这个问题还需要继续关注。

扫一扫关注微信号:“布洛卡区” ,深度学习在自然语言处理等智能应用的技术研讨与科普公众号

多级神经网络结构表达文档语义性能更好吗相关推荐

  1. 【测试报告】Java文档搜索引擎性能测试报告

    [测试报告]Java文档搜索引擎性能测试报告 10个线程---300秒(5分钟) 概要 吞吐量 响应时间 随时间变化 20个线程---300秒(5分钟) 概要 吞吐量 响应时间 随时间变化 10个线程 ...

  2. 计算机软件专业与甲骨文关系,基于本体的甲骨文专业文档语义标注方法-计算机应用与软件.PDF...

    第30卷第10期 计算机应用与软件 Vol30No.10 2013年10月 ComputerApplicationsandSoftware Oct.2013 基于本体的甲骨文专业文档语义标注方法 吴 ...

  3. ES 5.x Bulk update重复的文档id性能低下

    现在很多公司(包括我们自己)将ES用作数据库数据的索引,将多个数据库的数据同步到ES是非常常见的应用场景.所以感觉这个问题可能会困扰不止一个用户,而官方的文档也没有对update的底层机制及局限做特别 ...

  4. ES 5.x bulk update重复的文档ID性能低下分析

    目前很多公司将ES作为数据库数据的索引,将多个数据库的数据同步到ES是非常常见的应用场景.所以感觉问题可能会困扰不止一个用户,而官方的文档没有对update底层机制作了详细的说明,特将该问题整理成文章 ...

  5. 无界文档| 我们尝试让文档变得更有格调一点!

    文件管理这事,从移动互联网刚兴起的时候就有"乱"的苗头.不同电脑上的文件.手机上的文件.PAD上的文件- 多设备的文件管理尤为困难. 好的「文件管理」是可以做到一个设备随时查看所有 ...

  6. jsdoc api文档_创建更好的JSDoc文档

    jsdoc api文档 Writing code documentation is one of the most relaxing experiences of my work as a back ...

  7. 怎样将pdf压缩得很小?如何把pdf压缩到最小?怎么把pdf压缩到最小?如何把pdf文档压缩变小?怎么将pdf文档压缩至更小?怎么把pdf压缩到最小方法软件网站有哪些?

    怎么把pdf压缩到最小?现在我们现在使用pdf文件的时候也是比较多的,碰到一些比较大的pdf文件我们上传会有限制,不知道怎么压缩pdf文件的大小,今天小编就为大家介绍一个压缩pdf大小的超级简单的方法 ...

  8. 文件上传服务器jvm调优,JVM性能调优解决方案(12页)-原创力文档

    精品文档 JVM性能调优解决方案(总结) 一.引言 本文的读者是技术支持人员.阅读本文后,你将理解 jboss 的启动脚本文件 (run.sh )中有一系列的 JVM配置参数的含义,以及如何调整它们, ...

  9. Spark 性能优化指南(官网文档)

    精选30+云产品,助力企业轻松上云!>>> 点击蓝色"大数据每日哔哔"关注我 加个"星标",第一时间获取大数据架构,实战经验 阅读本文大概需要 ...

最新文章

  1. java gc full gc_记一次Java服务频繁Full GC的排查过程
  2. 跑得比TensorBoard快多了,极简可视化工具Aim发布 | Reddit高热
  3. php 动态多维数组长度,怎么在php中利用count获取多维数组的长度
  4. [JavaWeb-HTTP]HTTP_请求消息_请求头请求体
  5. java 内部变量_java 中的内置数据类型
  6. python函数定义及调用-Python函数及变量的定义和使用
  7. MR Shuffle流程 入门
  8. 值传递和引用传递_C++ 中的值传递和引用传递
  9. BP算法和RNN_RNN/LSTM BPTT详细推导以及梯度消失问题分析
  10. json字符串和字典的区别
  11. 【Linux】ubuntu18.04 安装英伟达显卡驱动
  12. 输入框有值无法输入问题
  13. cesium 添加广告牌
  14. 网络安全等级保护备案申请指南(杭州)
  15. 51单片机ROM和RAM
  16. 什么是soft wrap,什么是IDEA的soft wrap,如何设置IDEA默认所有类型的文件都自动换行(如何设置用IDEA打开markdown文件不自动换行)
  17. mybatispuls 如何通过时间进行范围查询
  18. 《魔兽》审批 文化部出版署到底谁说了算?
  19. 用matlab绘制克莱因瓶,克莱因瓶怎么装水动态四维模拟图 克莱因瓶为什么装不满怎么倒水...
  20. 使用深度学习预测员工流失率

热门文章

  1. frida hook so层方法大全
  2. python之闭包的实现
  3. OS- -文件系统(二)
  4. 多媒体技术 PI 第二期:OSS 圆桌预告
  5. easyVMAF:在自然环境下运行VMAF
  6. 腾讯云快直播——超低延迟直播技术方案及应用
  7. C/C++学习之路: 多态
  8. 1.RTMP流媒体服务器搭建
  9. 快速实现一个分布式定时器
  10. HTTP progressive download渐进式传输