[标题]
Dependency-based syntax-aware word representations
它的父亲:Syntax-Enhanced Neural Machine Translation with Syntax-Aware Word
[代码地址]
https://github.com/zhangmeishan/DepSAWR
[知识储备]
什么是异质性(heterogeneity):
什么是同质性(homogeneous):
dependency trees与constituent trees的转化:
什么是BIAFFINE DEPENDENCY PARSING: https://arxiv.org/pdf/1611.01734.pdf
什么是LAS:
什么是bootstrap resampling:
[一些问题]
Tree-RNN and Tree-Linearization approaches是什么?
目录
一、背景与概览
1.0 引言
聚合了丰富的依赖语法,而不是使用单一的解析树输出(利用了一个训练好的解析器的中间影藏层)
把上面得到的输出和常规的词向量做concatenate
1.1 相关研究
The importance of Syntactic information:
依赖语法能够缩短单词序列内部,单词和单词之间的距离,就比如下图中,future和boomers的距离从6,经过lot这个单词,变成了2.
统计学习方法:(这完全不懂)
神经网络方法:
- Tree-RNN:尽管这些方法是有效的,但由于依赖树的异质性,这些方法存在严重的效率低下问题(异构的树不能同batch)。
- Tree-Linearization:这些方法首先将分层树输入线性化为顺序符号,同构的同时,也保留了语法信息。
上述神经网络的缺点是:使用parser建模了唯一一颗最好的解析树,给下游任务带去误差.
1.2 贡献点
提出以下模型:直接把Input送入Encoder(这该怎么送…),输出的向量经过归一化?简单的后处理?,然后和word embedding进行拼接? 进一步送入Decoder,预测同时,语法标签应该也要被送入Decoder(毕竟是标注好的数据,为何不用?),然后干什么就不知道了.
sentence classification task : BiLSTM+dependency syntax+ELMo or BERT representations
sentence matching task : ESIM+dependency syntax+ELMo or BERT representations
equence labeling task :BiLSTM-CRF+dependency syntax+ELMo or BERT representations
machine translation task : RNN-Search(?) / Transformer
复现了Tree-RNN和Tree-Linearization用于比较
1.3 相关工作
1.3.1 Tree-RNN
与Tree-RNN的不同点:
- 采用dependency trees而不是constituent trees
- 使用 non-leaf compositions
- 定义聚合操作,支持任意数量的子节点的递归组合
需要注意的是:
- x_i是 a concatenation of word embedding and dependency label embedding(这里的dependency labeling是什么?)
- {L,R}意味着什么?
- 输出是h↑和h↓的concatenation
Tree-RNN的缺点是由于依赖树的异质性,批处理困难.
1.3.2 Tree linearization
进行以下两步操作:
- 维护已处理栈和未处理队列,最后合并相应的shift-reduce操作,得到symbols序列
- 将序列送入序列LSTM
流程如下:从This开始,通过SH action把单词加入Stack,如果遇到一个单词,它有自己的左子树,则从右往左,依次执行RL,来建立单词和单词之间的连边(左子树的head会被reduce),遍历到最后一个单词之后,开始往回走,找到有自己的右子树的单词,依次(从左往右?)执行RR(右子树的head会被reduce),最后加入PR.
关于embedding:
- SH
- 使用word embedding的,保持不变
- 使用contextualized embedding(ELMo and BERT)的,使用关联词的embedding(first subword?)
- 其它符号有自己的向量表示
啊,模型的公式化描述如下,序列被送入上层网络。
二、模型
2.1 BiAffine dependency parser
- 3个BILSTM
- 2个MLP(for head & child)
- BiAffine是否也是一个MLP有待考证,head和label是如何计算损失?
2.2 Dep-SAWR
过程:
- 虚线部分没有training object,当然也可以选择finetune
- 和BERT等一样,Encoder-Decoder是一个预训练好的网络(embedding+3bilstm+2mlp+?)
- 每一层的隐层输出都包含了不同的上下文信息(更偏重语法信息?),本文做了融合:
- 得到的 o D e p − S A W R A o^{Dep-SAWRA} oDep−SAWRA与原来的embedding做concatenation,再送入上层网络
特点:
- extendable to other structural knowledge of language体现在哪儿?
- 与Tree-RNN和Tree-Linearization不同,前者直接编码语法树;后者隐式地蕴含语法树,所以错误传播更少。
三、实验与评估
3.1 任务一:Sentence classification
word embedding+bilstm+pooling,其中,词嵌入部分尝试了glove、bert和elmo
3.2 任务二:Sentence matching
以ESIM模型为例:
3.3 任务三:sequence labeling
以BILSTM+CRF为例
3.4 任务四:machine translation
RNN-search \ Transformer
只在Seq2Seq的左侧aggregate syntax information
四、 实验细节
- 在三种语言上进行了实验
- 四种任务:
- 句子分类
- 句子对分类
- 序列标注
- 机器翻译
- 关于bert
- 定义权重,加权求和所有层
- 平均了word piece来得到单词的向量表示
- 训练BiAffine dependency parsing model的语料
五、实验结果
5.1 句子分类
- 融入了语法信息效果更好、各种语言上都有提升
- 三种语法模型中,DepSAWR效果最好
- DepSAWR更加得高效,因为:
- requiring no full parsing
- conveniently batching
- 其它模型都利用了联合任务的外部信息
- 还做了Syntax probing(语法探索)
- Bigram Shift:识别句子中的词是否有颠倒
- Tree Depth:预测句子所构成的树(dependency? constituency?)中,root距离非root的最长距离
- Top Constituent:预测句子所构成的成分分析树中,S下面的成分类别
- 结果如下,BERT已经包含了丰富的语法信息
5.2 句子对分类
好
5.3 序列标注
- 对于SRL任务,在基准系统中采用了dependency-based scheme(?),增加了谓词位置编码predicate position embedding(?)
- 特别的,BERT的结果不是很好,而且加入了语法信息的提升也不是很大,说明了BERT中可能包含了重叠的语法信息
5.4 机器翻译
- 为了降低翻译的难度,减小词表大小,采用BPE(32000次合并),这也带来了不一致性(embedding怎么办):
- Dep-SAWRS对所有子词都重复它所属的词
- Tree-RNN将非尾部的子词指向尾部的词
- Tree-Linearization不需要改变
- 英语-越南语比中文-英语的提升小,原因可能是作为source language的英语,其语法规则更加严格
- 一般而言,预训练的模型用于下游任务时,如果下游任务的训练集规模较大,性能的提升会略小(语义的作用被削弱)
六、分析
不同的使用模式:
- finetune会变差,会使得提供语法信息的预训练网络的作用与其它网络相重合。也反过来说明了语法的重要…
- 使用单层会变差
不同的句子长度:
- 对于很短的句子,依存语法会被限制
- 实验结果表明,随着句子长度的增大,三种语法增强模型的性能下降(?),但下降速度远远不如baseline(√)
不同的parsing训练集大小:
- 一般来说,训练集越小,parser效果越差,下游任务效果也越差
- 但也有特例,parser效果越差,不确定性也越高,下游反而可能会有上升