论文赏析[ICLR18]联合句法和词汇学习的神经语言模型(二)

简介: 一般来说,自然语言是由词汇和句法组成的,但是标准的语言模型一般都只用RNN对词汇进行建模,句法信息都是隐式的学习到的,没有办法显式地拿出来使用。所以本文提出的语言模型的变体可以结合结构上的attention,在中间过程中学习到结构信息,然后这层结构信息可以拿来生成句法树,用来做无监督的句法分析。

证明开始

首先这个概率 image.png 的形式其实是一个狄利克雷过程,有两个特殊值要定义一下,一个是 image.png 时,概率为:

image.png

还有就是当 image.png 时,因为 image.png 实际不存在,所以定义为句法距离无穷大,那么 image.png 定义为0,所以概率为:

image.png

然后可以求出 image.png 的期望(这里论文中又写的一塌糊涂,符号定义都不统一。。。):

image.png

进一步可以写为:

image.png

上面的求和裂项相消可以得到:

image.png

这里也可以验证出 image.png ,所以最终得到下面的门是正确的:

image.png

然后要证明的就是根据这个策略求出的两个单词的关联区间没有交叉(但是可以完全覆盖)。首先放宽一下条件,证明当 image.png 只取0或者1时,性质成立,也就是定义(这里原文又打错了。。。):

image.png

也就是在原来的定义中令 r 为正无穷。这样的话如果 image.png ,那么 image.png 就是1,否则就是0。放宽了条件之后, image.png 取值就只有1和0了,所以求出的 image.png 一定是满足句法距离 image.png 所有位置中最右边的一个。而对于所有的 image.png ,都满足 image.png 。证明也很简单,假设存在两个单词 image.png ,其中 image.png ,它俩的关联区间交叉了,那么假设image.pngimage.png ,而image.png ,所以 image.png 。那么根据定义,有:

image.png

这两个式子显然矛盾,所以证明了在宽松的条件下,这个不交叉的性质是成立的。

另一个极端是令 image.png ,这种情况下 image.png ,最终算下来 image.png 是一个首项为 image.png 公比为2的等比数列。这里的话论文里说最终会形成一棵所有叶子结点都直接连接在根结点上面的句法树,但是我是没看出来为什么,首先这种情况下句法距离 d 对最终的损失函数没有影响了,所以梯度无法传播回来,句法距离 d 应该只受到词向量影响了,最终就是一个普通的语言模型,句法距离最终会是什么样子谁也不知道。

在具体实现时,将 image.png 设为一个中间值,但是这样会产生交叉的关联区间,所以测试的时候再将其设为正无穷。

证明结束

Reading Network


上面的Parsing Network求了半天就是为了得到这个gates image.png ,然后怎么使用呢?既然是语言模型,下面当然要用LSTM来对句子进行编码了。众所周知,在LSTM中有两个隐含层状态 image.png ,所以在这里不直接使用上一个时刻传过来的状态,而是用历史所有时刻的状态信息,再与gates加权后输入到下一时刻。在论文中并没有直接使用gates作为权重,而是计算了一个新的权重,这里称作结构化attention:

image.png

当然这还不是最终的权重,再通过加入gates,定义一个新的结构化intra-attention:

image.png

上面两个式子我也不是很清楚怎么解释,反正最后就用这个权重来对历史状态进行编码:

image.png

最后将加权求和后的隐含层状态作为下一个时刻的隐含层输入,得到新的隐含层表示。

Predict Network


最后就是预测下一个单词是什么了,这里并没有直接用当前时刻 t 的隐含层输出来预测,还是采用了下一个时刻输出对所有历史信息的attention,做加权求和,但是存在一个问题, image.png 的值依赖于 image.png ,也就是依赖于 image.png ,但是这是我们需要预测的,那怎么办呢?论文中就直接用另一套参数直接预测出一个临时的 image.png

image.png

这样就能估计出 image.png 了。最后对历史状态加权求和,然后用一个前馈神经网络预测下一个单词:

image.png

其中 image.png 对加权求和。

实验


具体实验设置啥的去看论文吧,这里就贴几个结果图解释一下。

image.png

上面这个是字符级别的语言模型的结果,PRPN取得了SOTA的结果。

image.png

上面这个是词级别的语言模型的结果,除了那个用了4层LSTM和跨越连接的模型(参数多)外,PRPN效果是最好的。

当然我最关心的还是无监督成分句法分析上面的结果:

image.png

目前为止,无监督成分句法分析的标准做法还是用WSJ10数据集(也就是长度小于等于10的句子),然后用unlabeled F1评测。可以看到,PRPN效果只能说一般般,不是很好。

其实我也很疑惑,这里的无监督句法分析全靠Parsing Network产生的句法距离来产生,但是一个关键问题是句法距离并没有监督,唯一的监督信号来自于最后Predict Network的语言模型,那么这个句法距离真的能够学习到真实的句法距离吗?我比较怀疑,不过效果证明,这个对语言模型还是有帮助的,对无监督成分句法分析的话不好说。

总结


这篇论文几个review都给出了还算不错的评价,思想是不错的,但是和其中一个review观点一样,我觉得文章写得太烂了,一堆的笔误,逻辑很混乱,即使这已经是review后修改过的版本了,还是有一堆错误。

过两天再看一篇ICLR2019的还是这个组的PRPN的改进版本,看看到底有何改进。不过真要搞无监督句法分析的话,还是老老实实去做聚类吧。


相关文章
|
存储 运维 监控
Apollo中的身份验证与授权:保护你的数据
Apollo中的身份验证与授权:保护你的数据
|
存储 JSON 人工智能
Spring 5 中文解析测试篇-WebTestClient
本章节主要描述:Spring 5 中文解析测试篇-WebTestClient。
849 0
|
存储 安全 数据安全/隐私保护
在Docker中,Docker安全么?
在Docker中,Docker安全么?
|
关系型数据库 MySQL Linux
Linux下搭建MySQL主从复制之一主一从架构
Linux下搭建MySQL主从复制之一主一从架构
403 0
|
11月前
|
存储 SQL 大数据
从数据存储到分析:构建高效开源数据湖仓解决方案
今年开源大数据迈向湖仓一体(Lake House)时代,重点介绍Open Lake解决方案。该方案基于云原生架构,兼容开源生态,提供开箱即用的数据湖仓产品。其核心优势在于统一数据管理和存储,支持实时与批处理分析,打破多计算产品的数据壁垒。通过阿里云的Data Lake Formation和Apache Paimon等技术,用户可高效搭建、管理并分析大规模数据,实现BI和AI融合,满足多样化数据分析需求。
|
存储 监控 Linux
【一键解锁神秘力量!】CentOS 7 磁盘分区与挂载终极指南 —— 从零到英雄的磁盘管理实战秘籍!
【8月更文挑战第9天】随着业务扩展和技术进步,服务器硬盘容量需求增加。本文通过实例介绍如何在CentOS 7中管理大容量硬盘(如1TB)。首先确认未使用的硬盘(如`/dev/sdb`),然后使用`fdisk`创建分区(一个200GB的日志分区和一个剩余空间的用户文件分区)。接着使用`mkfs.ext4`格式化分区,并创建挂载点(如`/mnt/log`和`/mnt/userfiles`)。最后,通过修改`/etc/fstab`实现分区的永久挂载。注意事项包括备份数据、合理规划分区以及定期监控磁盘使用情况等。这些步骤有助于高效管理和利用磁盘空间。
697 1
|
机器学习/深度学习 算法 数据可视化
花朵识别系统python+TensorFlow+Django网页界面+深度学习模型+卷积网络算法【完整代码】
花朵识别系统,基于Python实现,深度学习卷积神经网络,通过TensorFlow搭建卷积神经网络算法模型,并对数据集进行训练最后得到训练好的模型文件,并基于Django搭建可视化操作平台。
416 0
|
监控 搜索推荐 Go
万字详解!在 Go 语言中操作 ElasticSearch
本文档通过示例代码详细介绍了如何在Go应用中使用`olivere/elastic`库,涵盖了从连接到Elasticsearch、管理索引到执行复杂查询的整个流程。
407 0
自适应高度的表格UICollectionView
自适应高度的表格UICollectionView
233 0
|
监控 Java 流计算
Java Thread dump和Head dump 文件分析
Java Thread dump和Head dump 文件分析
234 0