https://zhuanlan.zhihu.com/p/35252733

可以先看看上面知乎文章里面的例子

Socher 等人于2012和2013年分别提出了两种区分词或短语类型的模型,即SU-RNN(Syntactically-Untied RNN)和MV-RNN(Matrix-Vector RNN)。

1)SU-RNN对不同类型的组合节点使用不同的组合参数,如ADJ与NN组合时,使用WADJ-NN

但是,相同的节点类型也未必可以共享同一套组合参数,如同样是形容词,“好”和“坏”与其它词在组合时,获得的结果应该是不同的。

2)因此,MV-RNN将这种不同体现在每个节点上,而非不同种类的节点。它认为,每个节点除了需要使用向量表示外,还需要使用一个矩阵来表示,其中向量表示节点自身的属性,而矩阵则表示其在组合时,对另一个节点的操作。例如,“红”与“苹果”组合的结果是“红苹果”,它仍然是一种“苹果”,只是属性发生了一些改变,可以通过将“红”的矩阵与“苹果”的向量相乘获得“红苹果”的向量。

然而MV-RNN对每个节点除赋予一个向量外,还需要赋予一个矩阵,其中涉及到太多的参数需要学习,所以往往学习的并不充分。

3)为了获得更好的学习效果,Socher等人于2013年提出了RNTN(Recursive Neural Tensor Networks)模型,即使用张量(Tensor)来表示组合参数。常用的三阶张量可以被理解为多个矩阵构成的向量,其中每个矩阵可以被认为是某种类型的组合操作,最终组合在一起。通过张量,既可以减少所需学习的参数,也可以表示丰富的组合操作,因此RNTN模型也取得了较好的效果。在细粒度情感分析任务上,将MV-RNN获得的44.4%的准确率,提高到了45.7%。其中细粒度情感分类指的是将句子所表达的情感,如褒贬等划分为5个级别,对应的是评论网站对商品打分的星级。

Socher等人以上一系列的工作都充分利用了自然语言树结构的特性,因此事先需要对输入的文本进行句法分析操作,然而由于句法分析自身并不完美,其个别错误的分析结果必然对上述模型的应用带来不良的效果。

所以有一些学者,试图将模型构筑在非树结构之上,并取得了非常好的结果。

4)如Le and Mikolov于2014年提出了Paragraph Vector模型,将著名的word2vec模型扩展到更长的文本之上,并在相同的情感分类任务上,将准确率进一步提高到48.7%。Kim于同年使用了更简单的单层CNN(Convolutional Neural Networks)模型,在Dropout等技术的帮助下,也获得了48.0%的准确率。在其它自然语言处理任务上,Zeng等人(2014)以及Zhou和Xu(2015)也在不使用句法分析的条件下,超越了基于树结构的传统模型(非深度学习模型)。

以上的工作是否就证明了,面向自然语言处理的深度学习模型真的不需要树结构了呢?结论并没有那么简单,基于树结构的模型也在不断的发展

5)Tai等人2015年提出了Tree-LSTM模型,将序列的LSTM模型扩展到树结构上,即可以通过LSTM的忘记门机制,跳过(忘记)整棵对结果影响不大的子树,而不仅仅是一些可能没有语言学意义的子序列。由于有了树结构的帮助,就更容易对长距离节点之间的语义搭配关系进行学习,从而取得了更好的准确率(50.6%)。此工作也被Zhou和Xu(2015)所关注,并在其论文的最后说明,如果在其模型中使用树结构,也许会取得更好的效果。当然,是否会如其所愿还需要进一步的研究。

其中需要说明的是,在细粒度情感分类任务中,Li等提出可以使用标点符号这一简单的特征,将句子分割成小的片段,然后构建层次化Bi-LSTM模型,即对每个小片段使用Bi-LSTM建模,获得其表示。然后再使用一个Bi-LSTM模型将各个小片段的表示统一建模,获得整个句子的表示。经过这种简单的操作,一定程度上提高了序列模型的性能,使其又超过了树结构模型的性能。

可以参考的论文:

Socher 等人于2012和2013年分别提出了两种区分词或短语类型的模型,即SU-RNN(Syntactically-Untied RNN)和MV-RNN(Matrix-Vector RNN)。

Socher等人于2013年提出了RNTN(Recursive Neural Tensor Networks)模型,即使用张量(Tensor)来表示组合参数。

Le and Mikolov于2014年提出了Paragraph Vector模型,将著名的word2vec模型扩展到更长的文本之上,并在相同的情感分类任务上,将准确率进一步提高到48.7%。

Kim于2014年使用了更简单的单层CNN(Convolutional Neural Networks)模型,在Dropout等技术的帮助下,也获得了48.0%的准确率。

在其它自然语言处理任务上,Zeng等人(2014)以及Zhou和Xu(2015)也在不使用句法分析的条件下,超越了基于树结构的传统模型(非深度学习模型)。

Tai等人2015年提出了Tree-LSTM模型,将序列的LSTM模型扩展到树结构上,即可以通过LSTM的忘记门机制,跳过(忘记)整棵对结果影响不大的子树,而不仅仅是一些可能没有语言学意义的子序列。

此工作也被Zhou和Xu(2015)所关注,并在其论文的最后说明,如果在其模型中使用树结构,也许会取得更好的效果。

Li等人(2015)在多个自然语言处理任务中,对序列模型(如双向LSTM)和树模型(如Tree-LSTM)进行了深入的对比。

Bowman等人(2015)研究结果甚至一定程度上证明,序列模型(LSTM)能够发现隐含的树结构。

[5].Richard Socher, Cliff Lin, Andrew Y. Ng, and Christopher D. Manning. Parsing Natural Scenes and Natural Language with Recursive Neural Networks. ICML 2011.
[7].Richard Socher, Brody Huval, Christopher D. Manning and Andrew Y. Ng. Semantic Compositionality through Recursive Matrix-Vector Spaces. EMNLP 2012.
[8].Richard Socher, Danqi Chen, Christopher D. Manning, Andrew Y. Ng. Reasoning With Neural Tensor Networks for Knowledge Base Completion. NIPS 2013.

[6].Richard Socher, John Bauer, Christopher D. Manning and Andrew Y. Ng. Parsing with Compositional Vector Grammars. ACL 2013.

[9].Kai Sheng Tai, Richard Socher and Christopher D. Manning. Improved Semantic Representations From Tree-Structured Long Short-Term Memory Networks. ACL 2015.
[11].Jie Zhou and Wei Xu. End-to-end learning of semantic role labeling using recurrent neural networks. ACL 2015.
[1].Samuel R. Bowman, Christopher D. Manning, and Christopher Potts. Tree-structured composition in neural networks without tree-structured architectures. arXiv manuscript 1506.04834. 2015.

5)《Vinyals O, Kaiser L,Koo T, et al. Grammar as a foreign language[J]. arXiv preprint arXiv:1412.7449,2014.》

把LSTM用于句法分析任务,文章把树状的句法结构进行了线性表示,从而把句法分析问题转成翻译问题,然后套用机器翻译的seq2seq框架使用LSTM解决

tree-lstm初探的更多相关文章

  1. awesome-nlp

    awesome-nlp  A curated list of resources dedicated to Natural Language Processing Maintainers - Keon ...

  2. (转)Awesome PyTorch List

    Awesome-Pytorch-list 2018-08-10 09:25:16 This blog is copied from: https://github.com/Epsilon-Lee/Aw ...

  3. (zhuan) Recurrent Neural Network

    Recurrent Neural Network 2016年07月01日  Deep learning  Deep learning 字数:24235   this blog from: http:/ ...

  4. 26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL

    26 THINGS I LEARNED IN THE DEEP LEARNING SUMMER SCHOOL In the beginning of August I got the chance t ...

  5. 《Graph Neural Networks: A Review of Methods and Applications》阅读笔记

    本文是对文献 <Graph Neural Networks: A Review of Methods and Applications> 的内容总结,详细内容请参照原文. 引言 大量的学习 ...

  6. 【ASE高级软件工程】第二次结对作业

    重现baseline 我们选择重现CODEnn模型(论文:Deep Code Search),因为它结构简单.端到端可训练,且相比其它方法拥有较高的性能. Baseline原理 为了根据给定的quer ...

  7. ASE第二次结对编程——Code Search

    复现极限模型 codenn 原理 其原理大致是将代码特征映射到一个向量,再将描述文字也映射到一个向量,将其cos距离作为loss训练. 对于代码特征,原论文提取了函数名.调用API序列和token集: ...

  8. 自然语言处理资源NLP

    转自:https://github.com/andrewt3000/DL4NLP Deep Learning for NLP resources State of the art resources ...

  9. Decision tree(决策树)算法初探

    0. 算法概述 决策树(decision tree)是一种基本的分类与回归方法.决策树模型呈树形结构(二分类思想的算法模型往往都是树形结构) 0x1:决策树模型的不同角度理解 在分类问题中,表示基于特 ...

  10. 蒙特卡罗方法、蒙特卡洛树搜索(Monte Carlo Tree Search,MCTS)初探

    1. 蒙特卡罗方法(Monte Carlo method) 0x1:从布丰投针实验说起 - 只要实验次数够多,我就能直到上帝的意图 18世纪,布丰提出以下问题:设我们有一个以平行且等距木纹铺成的地板( ...

随机推荐

  1. SQLServer “无法对数据库'XX' 执行删除,因为它正用于复制”的解决方法

    修改数据库某个字段的长度时出现: “无法修改表.无法对 表'dbo.N_Client_content' 执行 删除,因为它正用于复制.” 不能直接对该数据库进行操作,通过alter 的办法来修改,问题 ...

  2. Swagger2使用参考

    GitHub例子: 参考博客: https://blog.csdn.net/sanyaoxu_2/article/details/80555328 http://www.cnblogs.com/Joi ...

  3. JS访问或设置cookie的方法+跨域调用方法

    无意中从163网站获取的JS访问或设置cookie的方法,Log到日志上以防遗忘 //COOKIE功能检查function fCheckCookie(){    if(!navigator.cooki ...

  4. vivado 创建PS工程

    前言 本文简要介绍在vivado中创建PS工程.单纯使用zynq芯片的PS部分就像使用普通ARM芯片一样,只是多了建立Zynq硬件系统这一个步骤.vivado创建PL工程参见此处 新建工程 与viva ...

  5. 【HAOI 2012】高速公路

    Problem Description \(Y901\) 高速公路是一条重要的交通纽带,政府部门建设初期的投入以及使用期间的养护费用都不低,因此政府在这条高速公路上设立了许多收费站. \(Y901\) ...

  6. Linux md5sum 的用法

    MD5 算法常常被用来验证网络文件传输的完整性,防止文件被篡改.MD5 全称是报文摘要算法,此算法对任意长度 的信息逐位计算,产生一个二进制长度为 128 位(十六进制长度 32 位)的报文摘要,不同 ...

  7. centos install jdk

    =========== 查询jdk版本 ===========yum search jdk =========== 安装jdk 64位开发版 ===========yum -y install jav ...

  8. [C#]中获取当前程序运行路径的方法

    获取当前程序运行路径: ①//获取当前 Thread 的当前应用程序域的基目录,它由程序集冲突解决程序用来探测程序集.string str = System.AppDomain.CurrentDoma ...

  9. [easyUI] 列表

    一. 简述: 对一个层级的ul/ol进行调用menu()函数,即可简单做成层叠列表. 二. 实例: <ul id="menu3"> <li>Menu1 &l ...

  10. 一段曾经处理datetime的代码

    前记:主要是数据库存储记录时一个属性是以"2019-01"这样的年月进行存储的,当需要根据A年月到B年月取出相关记录时,filter()直接range()是不行的,不是数值区间或者 ...