原文链接:
Neural Language Modeling by Jointly Learning Syntax and Lexicon
论文地址:
Neural Language Modeling by Jointly Learning Syntax and Lexicon
代码地址:
最近开始转向去看看一些无监督的成分句法分析论文,看看能否有一些启发QAQ。这篇博客摸鱼划水写了整整四天才写完,好累啊啊啊。
介绍
一般来说,自然语言是由词汇和句法组成的,但是标准的语言模型一般都只用RNN对词汇进行建模,句法信息都是隐式的学习到的,没有办法显式地拿出来使用。所以本文提出的语言模型的变体可以结合结构上的attention,在中间过程中学习到结构信息,然后这层结构信息可以拿来生成句法树,用来做无监督的句法分析。
那么为什么要做无监督的句法分析呢?主要原因还是一些小语种标注语料太少了甚至没有,不能用监督句法分析来做。而且无监督句法分析学到的信息还可以用来增强语言模型或者更为下游的任务的性能,使它们能更好的融合句法结构信息。
本文提出的模型(PRPN)主要有如下三个组成部分:
- 可微分的Parsing Network 主要用来学习句子的句法距离(syntactic distance),这个在之前的博客中有讲到,是同一个组做的工作,链接:Straight to the Tree: Constituency Parsing with Neural Syntactic Distance 然后产生出门函数(gate function),也就是句子中每个词的权重,这样跑RNN的时候就没有必要考虑之前的所有信息了,只需要考虑句法距离最近的,也就是同一个短语中的信息。这里可微分后面会详细讲到,也就是不能直接预测离散的序列,不然梯度没办法反向传播,所以预测的是一个分布。
- Reading Network。 这个部分就和普通的RNN差不多,区别就是利用了上面的attention,然后每个时刻的输入不仅仅是上一个时刻的隐含层状态,还包括了历史所有相关的隐含层状态。
- Predict Network。 最后预测下一个词也不是直接采用当前时刻的隐含层输出,而是采用所有attention后的历史隐含层信息。
最后模型训练好之后,用Parsing Network学习到的句法距离就可以产生出无监督的句法树,当然这里只能产生unlabeled的句法树,也就是说,无监督的成分句法分析都是只评测unlabeled F1值,因为nonterminal信息实在是无法无监督的预测出来,除非结合外部标注器或者人工制定规则?
由于我觉得这篇论文写作有点粗糙,很多地方写的很乱,甚至还有公式变量和图片不对应,所以下面的公式我有些自行修改过了,如果觉得有疑问的,可以参考原文,并且告诉我。
动机
下图是一个输入句子及其对应的句法树示例:
下图是模型的Reading Network和Predict Network大致框架:
但是因为这是离散的决策,没法传递梯度,所以之后会介绍用概率来替代这里的0和1。
模型
这里我不按照论文上的顺序讲,论文是倒序,变量定义都得看完整篇论文才出来,实在是看的太杂乱了。。。
Parsing Network
最后得到的句法距离反映出了相邻两个词之间的语义相关程度,如果距离比较大,说明两个词可能位于两个不同的短语中,否则就位于同一个短语。一个形象化的句法距离就是相邻两个单词的最近公共祖先的高度。
下面这个图就是一个例子,卷积核窗口宽度为2:
这里要提几点证明,可看可不看。
证明开始
实验
具体实验设置啥的去看论文吧,这里就贴几个结果图解释一下。
上面这个是字符级别的语言模型的结果,PRPN取得了SOTA的结果。
上面这个是词级别的语言模型的结果,除了那个用了4层LSTM和跨越连接的模型(参数多)外,PRPN效果是最好的。
当然我最关心的还是无监督成分句法分析上面的结果:
目前为止,无监督成分句法分析的标准做法还是用WSJ10数据集(也就是长度小于等于10的句子),然后用unlabeled F1评测。可以看到,PRPN效果只能说一般般,不是很好。
其实我也很疑惑,这里的无监督句法分析全靠Parsing Network产生的句法距离来产生,但是一个关键问题是句法距离并没有监督,唯一的监督信号来自于最后Predict Network的语言模型,那么这个句法距离真的能够学习到真实的句法距离吗?我比较怀疑,不过效果证明,这个对语言模型还是有帮助的,对无监督成分句法分析的话不好说。
总结
这篇论文几个review都给出了还算不错的评价,思想是不错的,但是和其中一个review观点一样,我觉得文章写得太烂了,一堆的笔误,逻辑很混乱,即使这已经是review后修改过的版本了,还是有一堆错误。
过两天再看一篇ICLR2019的还是这个组的PRPN的改进版本,看看到底有何改进。不过真要搞无监督句法分析的话,还是老老实实去做聚类吧。
标签:词汇,Network,PRPN,模型,句法分析,监督,句法,ICLR18 From: https://blog.51cto.com/godweiyang/5978521