前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >收藏!编码器中如何融入结构信息?这几篇论文一定不要错过

收藏!编码器中如何融入结构信息?这几篇论文一定不要错过

作者头像
godweiyang
发布于 2020-03-24 02:59:49
发布于 2020-03-24 02:59:49
8440
举报
文章被收录于专栏:算法码上来算法码上来

引言

编码器已经成为了很多 NLP 模型中的基本结构。不管你是做机器翻译,还是做句法分析,不管你是需要得到单词的上下文表示,还是需要得到句子的表示,你都需要一个强有力的编码器。输入一个句子,编码器最终输出每个单词的表示或者整个句子的表示。

而近些年来 NLP 领域用的比较多的编码器有 CNN ,RvNN ,RNN (尤其是 LSTM)和 Transformer 等等,今天我们主要关注最后两个。在编码器中加入结构信息有很多种用途。一是利用结构信息增强编码器的结构表示,进而提高下游任务的性能。二可以无监督学习出句子的句法树(如果融入的是句法结构信息的话)。

下面就给大家简要分享几篇融入了结构信息的编码器的论文。

01

Neural Language Modeling by Jointly Learning Syntax and Lexicon[1]

代码地址: https://github.com/yikangshen/PRPN

论文解读: https://godweiyang.com/2019/03/31/iclr18-prpn/

本文提出了一种新的语言模型叫做 PRPN ,隐式地建模句法树信息。具体实现上,模型分为了三个部分:Parsing 模块、Reading 模块和 Predict 模块。其中 Parsing 模块用 CNN 来预测相邻两个单词的句法距离(概念详见 Straight to the Tree: Constituency Parsing with Neural Syntactic Distance[2]),通过句法距离就可以还原出句子的句法树了。Reading 模块用来建模上下文,同时还融入了前面时刻预测出来的句法距离信息。Predict 模块用来预测下一个单词是什么,做语言模型。

02

Unsupervised Latent Tree Induction with Deep Inside-Outside Recursive Autoencoders[3]

代码地址: https://github.com/iesl/diora

论文解读: https://godweiyang.com/2019/07/25/diora/

这篇论文提出了 DIORA 模型,主要使用 inside-outside 算法来计算每个 span 的表示和得分。其中 inside 过程其实就是自底向上计算所有 span 的得分和表示,而 outside 过程自顶向下计算 span 表示。最后目标函数也和其他模型有所不同,一般目标函数不是语言模型就是下游任务,但是这里用 outside 过程得到的所有单词的表示和得分来计算损失函数,也就是最大化每个单词的所有可能的句法树的得分总和。

03

Unsupervised Recurrent Neural Network Grammars[4]

代码地址: https://github.com/harvardnlp/urnng

论文解读: https://godweiyang.com/2019/04/20/naacl19-urnng/

本文提出了 URNNG 模型,用变分方法和 RNNG 来做无监督句法分析。具体实现上是用两个网络,第一个是 inference 网络,来推理出句子对应的隐变量(也就是句法树)的条件概率。然后再用生成网络 RNNG 来建模句子和隐变量的联合概率。最后对这个联合概率求和得到句子的概率,也就是用语言模型来作为目标任务。

04

Ordered Neurons: Integrating Tree Structures into Recurrent Neural Networks[5]

代码地址: https://github.com/yikangshen/Ordered-Neurons

论文解读: https://kexue.fm/archives/6621

这篇论文是 ICLR2019 的最佳论文之一,主要思想是赋予 LSTM 的神经元层级信息,对神经元排序(有序神经元),同时引入两个新的门控单元(主遗忘门和主输入门),来建模句子的层级结构信息。模型基于的最主要的指导思想就是:层级越高,颗粒度越粗,那么它在句子中的跨度就越大。输入一个单词之后,判断单词的层级和历史层级之间的大小关系,然后看情况更新参数的不同维度,低层保留历史信息,高层直接用输入信息覆盖,中间部分就用普通的 LSTM 更新。

05

PaLM: A Hybrid Parser and Language Model[6]

代码地址: https://github.com/Noahs-ARK/PaLM

论文解读: https://godweiyang.com/2020/01/09/emnlp19-palm/

本文在 LSTM 中融入 attention ,对于每个单词,都计算它和左边所有单词的 attention ,然后利用这个 attention 来融合历史信息,增强当前时刻的上下文表示。在解码句法树的时候,自顶向下解码,对于某个 span ,只需要贪心地找出使右儿子 span 得分最大的那个 split 就行了。至于这个 attention ,有没有句法树监督都是可以的,实际上没有句法树监督的话对语言模型效果更好。

06

Tree Transformer: Integrating Tree Structures into Self-Attention[7]

代码地址: https://github.com/yaushian/Tree-Transformer

论文解读: https://godweiyang.com/2020/01/06/emnlp19-tree-transformer/

本文和 Transformer 主要区别就是在每一层的 attention 之外还添加了一个成分 attention ,用来表示两个单词属于同一个短语之内的概率。最后总的 attention 就是原来的 attention 和成分 attention 做元素乘,这样的话同一个短语之间的 attention 就比较大,而不同短语之间的 attention 就很小。最后要想解码句法树的话,就还是用句法距离的算法,自顶向下解码句法树。

07

Multi-Granularity Self-Attention for Neural Machine Translation[8]

本文提出了多粒度的 Self-Attention 网络,也就是把原始的 Transformer 中的不同的 head 变成了不同的粒度。将一个句子分成了多个不重叠的短语,然后用 CNN 之类网络得到每个短语的表示,然后把单词当作 query ,短语当作 key ,做 self-attention 得到每个单词的粗粒度上下文表示。不同的短语切分方式对应着不同的粒度,可以用 n-gram 方式切分短语,也可以用句法树的不同层来切分短语。最后把不同粒度的单词表示拼在一起就行了。

08

You Only Need Attention to Traverse Trees[9]

这篇论文思想也不复杂,论文目的是要设计一个能够编码句法树的网络,最终得到句子的向量表示,来给下游任务用。对于成分句法树,某个结点的表示可以由它的所有子结点做 self-attention ,然后经过一系列变换得到。对于依存句法树,某个单词的表示可以由它的父亲单词和所有儿子单词做 self-attention ,然后经过一系列变换得到。其实网络结构整体上看和递归神经网络是很像的,只是结点的结合函数借用了 Transformer 中的 self-attention ,模型名字作者也称为了 Tree-Transformer 。

09

Tree-Transformer: A Transformer-Based Method for Correction of Tree-Structured Data[10]

这篇文章并没有发出来,只是挂在了 arxiv 上,所以写的也是有很多错误的。主要提出了一个 Tree to Tree 的模型(类比 seq to seq 模型),按照 top-down 的顺序对一个句法树(或者代码的语法树等等)进行编码,然后 decoder 再按照 top-down 的顺序生成出一棵句法树。和普通的 Transformer 区别就是把中间的 feed-forward network 替换成了他这里的 tree conv block ,用来结合一个结点、它的父亲结点和所有兄弟结点的表示,如果没有的话就用零向量替代。

10

Tree-Structured Attention with Hierarchical Accumulation[11]

代码地址: https://github.com/nxphi47/tree_transformer

这篇论文 reviewer #1 也说了,写的公式符号有点晦涩难懂,不是很清楚。结构复杂,如果不公开源码很难实现。反正我也是看得云里雾里的,一头雾水。大致思想就是用一个矩阵,列数正好就是句子长度,每一行就对应了句法树的一个结点,外加一行叶子结点。矩阵中某一行,如果对应结点子树包含了某个单词,那一列就是有结点的特征向量的,否则就是零向量。然后对矩阵先按行做累和,再按列做加权求和,最后得到每个结点的向量表示。然后就是怎么把它融入到 Transformer 中了,写的是真的晦涩难懂,有兴趣的去看原论文吧。

11

StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding[12]

论文解读: https://zhuanlan.zhihu.com/p/103207343

这是阿里巴巴司罗老师团队改进的一种 BERT 模型,叫做 StructBERT 。主要就是在原本的 BERT 基础上新增加了两个预训练任务。一个是单词级别的,最大化长度为 K 的一段子句的正确词序的概率。一个是句子级别的,分为预测下一个句子、上一个句子和不同文档的随机句子三种。

参考资料

[1]

ICLR18: Neural Language Modeling by Jointly Learning Syntax and Lexicon: http://arxiv.org/abs/1711.02013

[2]

ACL18: Straight to the Tree: Constituency Parsing with Neural Syntactic Distance: http://aclweb.org/anthology/P18-1108

[3]

NAACL19: Unsupervised Latent Tree Induction with Deep Inside-Outside Recursive Autoencoders: https://www.aclweb.org/anthology/N19-1116/

[4]

NAACL19: Unsupervised Recurrent Neural Network Grammars: http://arxiv.org/abs/1904.03746

[5]

ICLR19: Ordered Neurons: Integrating Tree Structures into Recurrent Neural Networks: http://arxiv.org/abs/1810.09536

[6]

EMNLP19: PaLM: A Hybrid Parser and Language Model: http://arxiv.org/abs/1909.02134

[7]

EMNLP19: Tree Transformer: Integrating Tree Structures into Self-Attention: http://arxiv.org/abs/1909.06639

[8]

EMNLP19: Multi-Granularity Self-Attention for Neural Machine Translation: http://arxiv.org/abs/1909.02222

[9]

ACL19: You Only Need Attention to Traverse Trees: https://www.aclweb.org/anthology/P19-1030/

[10]

CoRR19: Tree-Transformer: A Transformer-Based Method for Correction of Tree-Structured Data: http://arxiv.org/abs/1908.00449

[11]

ICLR20: Tree-Structured Attention with Hierarchical Accumulation: https://openreview.net/pdf?id=HJxK5pEYvr

[12]

ICLR20: StructBERT: Incorporating Language Structures into Pre-training for Deep Language Understanding: https://openreview.net/pdf?id=BJgQ4lSFPH

作者简介:godweiyang知乎同名华东师范大学计算机系硕士在读,方向自然语言处理深度学习。喜欢与人分享技术与知识,期待与你的进一步交流~

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-02-19,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 算法码上来 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
【论文解读】EMNLP2019-多粒度自注意力机制
Multi-Granularity Self-Attention for Neural Machine Translation[1]
zenRRan
2020/03/05
9490
【论文解读】EMNLP2019-多粒度自注意力机制
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
PaLM: A Hybrid Parser and Language Model[1]
godweiyang
2020/03/24
3200
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
【ACL2020】一种新颖的成分句法树序列化方法
「论文地址:」A Span-based Linearization for Constituent Trees[1] 「代码地址:」https://github.com/AntNLP/span-linearization-parser[2] 「PPT地址:」https://godweiyang.com/2020/08/30/acl20-yangwei-parsing/ACL2020.pdf[3]
godweiyang
2020/09/01
4900
【ACL2020】一种新颖的成分句法树序列化方法
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案
https://www.aclweb.org/anthology/D19-1098.pdf
godweiyang
2020/03/24
5890
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案
成分句法分析综述(第二版)
成分句法分析近年来取得了飞速的发展,特别是深度学习兴起之后,神经句法分析器的效果得到了巨大的提升。一般来说,句法分析器都可以分为编码模型和解码模型两个部分。编码模型用来获取句子中每个单词的上下文表示,随着表示学习的快速发展,编码模型也由最初的LSTM逐渐进化为了表示能力更强的Transformer (VaswaniSPUJGKP17)。而解码模型方面,也诞生了许多不同类型的解码算法,比如基于转移系统(transition-based)的解码算法(WatanabeS15, CrossH16, LiuZ17a),基于动态规划(chart-based)的解码算法(SternAK17, KleinK18)和基于序列到序列(sequence-to-sequence)的解码算法(BengioSCJLS18, Gomez-Rodriguez18)等等。
godweiyang
2020/03/24
7570
成分句法分析综述(第二版)
Transformers Assemble(PART III)
第四篇也非常有趣提出将独立的词向量替换成自变量为位置的函数,引入了复数空间综合了词向量和位置向量」
NewBeeNLP
2020/08/26
6120
Transformers Assemble(PART III)
万字长文带你一览ICLR2020最新Transformers进展(上)
原文链接:http://gsarti.com/post/iclr2020-transformers/
朴素人工智能
2020/05/22
6860
万字长文带你一览ICLR2020最新Transformers进展(上)
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析
Straight to the Tree:Constituency Parsing with Neural Syntactic Distancegodweiyang.com
godweiyang
2020/03/24
9060
论文赏析[ACL18]直接到树:基于神经句法距离的成分句法分析
深入理解BERT Transformer ,不仅仅是注意力机制
BERT是google最近提出的一个自然语言处理模型,它在许多任务检测上表现非常好。如:问答、自然语言推断和释义而且它是开源的。因此在社区中非常流行。
大数据文摘
2019/04/09
7220
深入理解BERT Transformer ,不仅仅是注意力机制
论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?
论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?| 韦阳的博客godweiyang.com
godweiyang
2020/03/24
5030
论文赏析[ACL18]一个句子向量表示究竟可以塞进多少语言性质?
不只有BERT!盘点2018年NLP令人激动的10大想法
最近,爱尔兰的NLP研究科学家Sebastian Ruder写一篇文章,基于12篇经典论文盘点了2018年NLP领域令人激动的十大想法。
量子位
2018/12/28
6990
论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
Neural Language Modeling by Jointly Learning Syntax and Lexicongodweiyang.com
godweiyang
2020/03/24
3680
论文赏析[ICLR18]联合句法和词汇学习的神经语言模型
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles
Dynamic Oracles for Top-Down and In-Order Shift-Reduce Constituent Parsinggodweiyang.com
godweiyang
2020/03/24
5950
论文赏析[EMNLP18]针对自顶向下和中序移进归约成分句法分析的Dynamic Oracles
一文概述 2018 年深度学习 NLP 十大创新思路
AI 科技评论按:Sebastian Ruder 是一位 NLP 方向的博士生、研究科学家,目前供职于一家做 NLP 相关服务的爱尔兰公司 AYLIEN,同时,他也是一位活跃的博客作者,发表了多篇机器学习、NLP 和深度学习相关的文章。最近,他基于十几篇经典论文盘点了 2018 年 NLP 领域十个令人激动并具有影响力的想法,并将文章发布在 Facebook 上。AI 科技评论编译如下:
AI研习社
2019/01/09
4130
【ACL 2020】腾讯AI Lab解读三大前沿方向及入选的20篇论文
自然语言理解是腾讯 AI Lab 的主要研究方向之一,研究能力也一直处于业界领先水平。总体而言,腾讯 AI Lab 的研究内容囊括从自然语言理解到生成的整个链条,另外还涉及到对 AI 系统可解释性以及算法底层机制等理论研究。相关研究成果也一直在通过研究论文、开放数据集和开源代码的形式向 NLP 及 AI 社区分享。
zenRRan
2020/07/09
1.2K0
【ACL 2020】腾讯AI Lab解读三大前沿方向及入选的20篇论文
从想法到实干,2018年13项NLP绝美新研究
前一段时间,Sebastian Ruder 介绍了他心中 10 个最有影响力的想法,并且每一个都提供了具体论文与核心思想。正如 Ruder 所说,他的清单必然是主观的,主要涵盖了迁移学习和泛化相关的想法。其中有的想法在过去一年非常受关注,大家围绕这些完美的观点展开了很多研究工作与实践。而有的想法并不是当前趋势,不过它们有可能在未来变得流行。因此,机器之心在 Ruder 介绍的基础上,重点关注今年的前沿趋势,并推荐一些真正好用的 NLP 新工具。
机器之心
2019/01/02
5670
「自然语言处理NLP」的“高光时刻” --- 28篇标志性论文
自然语言处理专家elvis在medium博客上发表了关于NLP在2019年的亮点总结。对于自然语言处理(NLP)领域而言,2019年是令人印象深刻的一年。在这篇博客文章中,我想重点介绍一些我在2019年遇到的与机器学习和NLP相关的最重要的故事。我将主要关注NLP,但我还将重点介绍一些与AI相关的有趣故事。标题没有特别的顺序。故事可能包括论文,工程工作,年度报告,教育资源的发布等。
深度学习技术前沿公众号博主
2020/05/18
6430
「自然语言处理NLP」的“高光时刻” --- 28篇标志性论文
腾讯论文入选 AI 国际顶会,详细解读 NLP 研究成果
论文地址:https://arxiv.org/pdf/2105.11269.pdf
AI科技大本营
2021/09/03
6960
NAACL19 | 无监督循环神经网络文法 (URNNG)
AI 科技评论按,本文作者韦阳,本文首发于知乎专栏自然语言处理与深度学习,AI 科技评论获其授权转载。
AI科技评论
2019/05/20
7020
NAACL19 | 无监督循环神经网络文法 (URNNG)
盘点 2018 年自然语言处理 10 个激动人心的想法
这篇文章翻译自 KDnuggets, 作者: Sebastian Ruder, 是 insight_centre 的 NLP PhD,aylien 的研究员
杨熹
2019/01/28
6970
盘点 2018 年自然语言处理 10 个激动人心的想法
推荐阅读
相关推荐
【论文解读】EMNLP2019-多粒度自注意力机制
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档