论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息

简介: 论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息

论文地址

PaLM: A Hybrid Parser and Language Model[1]

介绍

本文介绍了如何将一个句法分析器融入到神经网络语言模型中,这样在利用了句法信息增强语言模型效果的同时,还可以去掉句法上的监督信号,用来无监督地生成句法树。

其实将句法信息加入到语言模型中地思想之前就有了,比如PRPN(Shen et al.[2])和ON-LSTM(Shen et al.[3])。而本文提出了一种新的融入句法信息的方法,相比于之前的两个模型,主要有如下优点:

  • 更加符合直觉、更加轻巧,不需要很复杂的解码算法。
  • 在LSTM中加入的attention信息可以用句法信息来监督,可解释性更强,可以和语言模型联合训练。
  • 如果没有句法信息监督也不要紧,模型可以无监督预测出句法树。

模型

span attention

模型中的attention是怎么做的呢?在  时刻,模型关注以  结尾的所有 span 。但是为了减少运算量,这里只考虑最短的  个 span ,也就是  。

首先采用普通的 RNN 来获得  时刻的隐层表示 ,然后采用双向 WFSA-RRNN (Peng et al.[4])进一步得到表示, WFSA-RRNN 的单元更新公式如下:

然后 span  的表示  可以计算为:

这个式子其实是从下面这个式子推算而来的:

具体计算过程就不在这里看了,详见论文附录,其实就是用的 WSFA-RRNN 的单元更新公式化简得到的。

注意上面向量都省略了前向箭头!

下面就是计算所有 span 表示的算法伪代码:

可以看出复杂度还是挺高的,但是可以用 GPU 并行加速。

然后就是计算attention了。首先令  为向量 前后向拼接得到,表示 span [i, j] 的最终向量表示。那么在  时刻,上下文向量  可以表示为:

其中  定义为:

最后拼接  和  作为最后的隐层输出。

总结一下,计算步骤是这样的:

  • 首先用一个标准的RNN计算得到隐层表示  。
  • 然后将  输入到一层的双向 WSFA-RRNN 中,得到表示  ,并且用上述算法进一步得到 span 的表示。
  • 最后对所有以  结尾的 span 表示加权求和,得到下一时刻的隐层表示,并预测下一个单词。

生成句法树

这就和以往自顶向下解码句法树的算法一样了,对于 span ,寻找使得右儿子得分最高的 split  即可:

而如果是有监督的话,对于每个位置  ,都会预测一个 attention ,并且有一个 gold 的左边界 。注意这里的  不一定是 one-hot 的,因为在一棵句法树中,一个右端点可能对应着很多不同的左端点。最终的损失函数为:

而这里的句法树监督其实可以用现成的 parser ,或者直接用左右二叉树之类的就行了,主要目的是为了提升语言模型性能。

下图就是一个简单的例子:

实验

这是一篇短文,所以实验就很简单了。

首先是PTB上的语言模型困惑度:

然后是WikiText2上的语言模型困惑度:

两个实验都可以看出加了句法树监督的语言模型效果更好,而无监督隐式的语言模型效果也还可以。注意这里的AWD-LSTM指的是之前提出的一种LSTM变体(Merity et al.[5])。看得出来这些模型参数量其实没多大差别,而如果句法信息乱加监督(比如用右二叉树),效果反而会变差。

接着是无监督句法分析的效果:

可以发现效果还是很差的,只比随机的二叉树好了那么一丢丢。比之前的 PRPN 差许多,和 DIROA 相比就更不用谈了(Drozdov et al.[6])。这也说明了对语言模型有用的句法信息可能并不符合 PTB 句法树结构。

最后还分析了左结合多还是右结合多:

可以看出,基本全部都是右结合,也就是attention基本都聚焦在了 span 的最左边的单词。具体原因作者也不知道,留着未来探索。

后记

其实这篇短文和我 ACL 的工作挺像的,着实让我惊了一身冷汗(希望 ACL 能中,加油!)。

不过这篇还是有些小瑕疵的,比如最大考虑长度  ,这个值在语言模型的训练时用到了,但是分析无监督句法树的时候就去掉限制了,其实会影响无监督句法分析性能的。不过也不要紧,毕竟本文任务不是做句法分析。

再比如算 attention 是要对所有分数做归一化的,但是句法分析又采用了没有归一化的得分来解码,原因是因为一个右边界对应着多个左边界,所以不能用 attention 解码。但其实这个 attention 在做有监督句法信息的时候, gold 的就不是归一化的,也就是非 one-hot 的。总之这里做的挺粗糙的,也没有设计的很优雅。

相关文章
|
5月前
|
自然语言处理 数据挖掘
必知的技术知识:EMNLP2021基于Prompt的方面级情感分析研究【转载以学习、回忆】
必知的技术知识:EMNLP2021基于Prompt的方面级情感分析研究【转载以学习、回忆】
24 0
|
6月前
|
人工智能 自然语言处理 安全
ChatGPT 之言情作家:第十二章到第十九章
ChatGPT 之言情作家:第十二章到第十九章
57 0
|
人工智能 安全 机器人
研究者意外发现DALL-E 2在用自创语言生成图像:全文黑话,人类都看不懂
研究者意外发现DALL-E 2在用自创语言生成图像:全文黑话,人类都看不懂
132 0
|
机器学习/深度学习 监控 自动驾驶
差点被ECCV错过的Oral论文:视频理解新框架,仅用微调的「成本」,达到预训练的「全能」
差点被ECCV错过的Oral论文:视频理解新框架,仅用微调的「成本」,达到预训练的「全能」
148 0
|
编解码 定位技术 计算机视觉
新的换脸模型FaceShifter论文的简单而完整的解释(一)
新的换脸模型FaceShifter论文的简单而完整的解释(一)
266 0
新的换脸模型FaceShifter论文的简单而完整的解释(一)
|
编解码
新的换脸模型FaceShifter论文的简单而完整的解释(二)
新的换脸模型FaceShifter论文的简单而完整的解释(二)
432 0
新的换脸模型FaceShifter论文的简单而完整的解释(二)
|
机器学习/深度学习 算法 数据挖掘
【一文读懂Hinton最新论文】胶囊网络9大优势4大缺陷(视频+PPT)
10月26日,深度学习元老Geoffrey Hinton和他的团队NIPS2017 Capsule论文《Dynamic Routing Between Capsules》在arxiv上发表,介绍了全新的胶囊网络模型,以及相应的囊间动态路由算法。
4798 0
|
机器学习/深度学习 自然语言处理 算法
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
本文介绍了如何将一个句法分析器融入到神经网络语言模型中,这样在利用了句法信息增强语言模型效果的同时,还可以去掉句法上的监督信号,用来无监督地生成句法树。
163 0
论文赏析【EMNLP19】语言模型效果不好?也许你可以给它添加一点句法信息
|
机器学习/深度学习 自然语言处理 算法
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(二)
之前其实有很多工作将句法信息融入到了RNN中,例如ON-LSTM和PRPN,用来隐式建模句法结构信息,同时提升语言模型的准确率。本文尝试将句法信息融入到Transformer中,用来赋予attention更好的解释性。同时可以无监督的预测出句子的句法树,并且相比于一般的Transformer,语言模型的性能有所提高。
271 0
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(二)
|
机器学习/深度学习 自然语言处理
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(一)
之前其实有很多工作将句法信息融入到了RNN中,例如ON-LSTM和PRPN,用来隐式建模句法结构信息,同时提升语言模型的准确率。本文尝试将句法信息融入到Transformer中,用来赋予attention更好的解释性。同时可以无监督的预测出句子的句法树,并且相比于一般的Transformer,语言模型的性能有所提高。
182 0
论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(一)