论文赏析[NAACL19]无监督循环神经网络文法 (URNNG)(二)

简介: 这篇是新鲜出炉的NAACL19的关于无监督循环神经网络文法(URNNG)的论文,在语言模型和无监督成分句法分析上都取得了非常不错的结果,主要采用了变分推理和RNNG。

Generative Model image.png

上面的推理网络采样出了若干个句法树 z ,生成网络的目的就是计算它的联合概率 image.png 。这个其实不难,在之前的RNNG论文笔记中,我已经大致讲过了,可以去复习一下:

Recurrent Neural Network Grammarsgodweiyang.comimage.png

这里稍稍做了一些改进。

首先需要定义一个栈用来存放转移的历史状态,这里定义栈里放的元素为二元组 image.png ,一个是stack-LSTM编码的输出,一个是子树的结构表示。首先需要预测下一步的action是什么,所以取出栈顶的元素 image.png ,预测action的时候只要用到隐含层输出:

image.png

然后根据这个概率预测action是SHIFT还是REDUCE,下面分两种情况讨论。

如果是SHIFT,那么因为是生成模型,所以需要预测下一个移进的单词是什么:

image.png

然后将单词 x 的词向量输入到stack-LSTM中得到下一个时刻的隐含层输出:

image.png

最后将 image.png 推进栈里。

如果是REDUCE,那么首先需要取出栈顶的两个元素  image.png,然后用TreeLSTM计算出两个子结点合并后的子树的表示:

image.png

接着还是计算stack-LSTM下一个时刻的隐含层输出:

image.png

最后将 image.png 推进栈里。

为了防止数值溢出,常规上我们计算联合概率的对数:

image.png

从这个式子可以看出,联合概率定义为所有给定某段单词和action预测下一个单词和给定某段单词和action预测下一个action的概率之积。

如果是监督任务比如RNNG,那么只需要最大化这个联合概率就足够了,但是现在要做无监督,没有 z ,注意别搞混了,推理网络采样出的 z 可不能用来监督哦,因为那本来就不是正确的,所以接下来要采用语言模型来作为最终的目标函数。

Variational Inference

句子 x 的对数概率定义为:

image.png

其中 image.png 是所有合法句法树的集合,但是这里不可能穷举所有的句法树,所以就要用到变分推理,具体的理论知识不仔细介绍了,可以去查阅变分推理相关知识,下面直接推导。

image.png

其中最后一行叫做先验 image.png 的证据下界(ELBO),要想最大化先验,可以最大化这个ELBO,如果我们对这个ELBO变化一下形式可以得到:

image.png

所以这个ELBO和先验就相差了一个KL散度,最大化ELBO的话等价于最小化KL散度,也就是使推理网络产生句法树的概率分布和生成模型尽量接近。

但是这个ELBO还是不好算,尽管它把 image.png 移到了求和符号也就是期望里面,所以转换一下形式:

image.png

因为模型一共有两组参数,一个是推理网络的参数 image.png ,一个是生成网络的参数 image.png ,所以下面分别对两个参数求导。

首先对 image.png 求偏导,因为只有第一项有这个参数,所以偏导为:

image.png

这个偏导可以按照概率 image.png 采样得到:

image.png

然后对 image.png 求偏导,因为有两项含有这个参数,分别求偏导。第二项是熵,它的值其实可以用之前的 image.png 数组算出来,算法如下:

image.png

然后偏导可以交给深度学习库的自动微分,就不用你自己求啦。

至于第一项的偏导可以用类似于策略梯度的方法解决:

image.png

这里最后也是转化为了采样,和策略梯度做法类似,这里加入baseline来提升性能:

image.png

其中 image.png 定义为所有其他的对数联合概率的均值:

image.png

至此所有偏导都已求出来了,两个通过采样得到,一个通过inside算法结果自动微分得到,所以去掉导数符号并相加就得到了最终的损失函数:

image.png

一定要注意,这里的 image.png 在代码实现的时候不能传入梯度,不然的话对 image.png 的偏导就会多出这一项的偏导了!

实验


实验结果这里就不多说了,细节具体看论文吧,就贴两个结果,一个是语言模型:

image.png

可以看出在标准的PTB数据集上,URNNG效果只比监督学习的RNNG和用URNNG损失函数微调后的RNNG效果略差一点,但是在大数据集上,URNNG的优势就体现出来了。

另一个是无监督成分句法分析,这里是用的全部长度的测试集:

image.png

这个任务上URNNG效果是最好的。

结论


和之前两篇语言模型做无监督成分句法分析类似,这篇论文用推理网络学习句法树的概率分布并采样句法树,再用生成网络计算这些句法树和句子的联合概率,最后用变分推理最大化句子的概率,也就是学习出一个好的语言模型。

这篇论文的工作还是挺令人惊叹的,融合了inside算法、RNNG、变分推理等等知识。本来我变分推理听老师讲了好几次了都云里雾里的,看了这篇论文后总算弄懂了一点了,不过所了解的还是很少,EM算法、VAE之类的高级境界根本不会。。。


相关文章
|
2月前
|
机器学习/深度学习 资源调度 算法框架/工具
AI-ANNE: 将神经网络迁移到微控制器的深度探索——论文阅读
AI-ANNE框架探索将深度学习模型迁移至微控制器的可行路径,基于MicroPython在Raspberry Pi Pico上实现神经网络核心组件,支持本地化推理,推动TinyML在边缘设备中的应用。
181 10
|
2月前
|
机器学习/深度学习 边缘计算 算法
SEENN: 迈向时间脉冲早退神经网络——论文阅读
SEENN提出一种时间脉冲早退神经网络,通过自适应调整每个样本的推理时间步数,有效平衡脉冲神经网络的准确率与计算效率。该方法基于置信度判断或强化学习策略,在保证高精度的同时显著降低能耗与延迟,适用于边缘计算与实时处理场景。
156 13
|
2月前
|
机器学习/深度学习 缓存 算法
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
2025年华为杯A题|通用神经网络处理器下的核内调度问题研究生数学建模|思路、代码、论文|持续更新中....
376 1
|
6月前
|
人工智能 算法 异构计算
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
近日,阿里云基础网络技术5篇论文被NSDI 2025主会录用。研究涵盖大模型训练网络故障诊断、仿真、容器网络性能诊断、CDN流控算法智能选择及GPU解耦推理优化等领域。其中,《Evolution of Aegis》提出增强现有体系+训练过程感知的两阶段演进路线,显著降低故障诊断耗时;《SimAI》实现高精度大模型集群训练模拟;《Learning Production-Optimized Congestion Control Selection》通过AliCCS优化CDN拥塞控制;《Prism》设计全新GPU解耦推理方案;《ScalaCN》解决容器化RDMA场景性能问题。
279 7
阿里云基础网络技术5篇论文入选全球网络顶会NSDI
|
6月前
|
canal 负载均衡 智能网卡
阿里云洛神云网络论文入选SIGCOMM'25主会,相关实习生岗位火热招聘中
阿里云飞天洛神云网络的两项核心技术Nezha和Hermes被SIGCOMM 2025主会录用。Nezha通过计算网络解耦实现vSwitch池化架构,大幅提升网络性能;Hermes则提出用户态引导I/O事件通知框架,优化L7负载均衡。这两项技术突破解决了云网络中的关键问题,展现了阿里云在网络领域的领先实力。
1053 2
|
8月前
|
前端开发 Java 关系型数据库
基于ssm的网络直播带货管理系统,附源码+数据库+论文
该项目为网络直播带货网站,包含管理员和用户两个角色。管理员可进行主页、个人中心、用户管理、商品分类与信息管理、系统及订单管理;用户可浏览主页、管理个人中心、收藏和订单。系统基于Java开发,采用B/S架构,前端使用Vue、JSP等技术,后端为SSM框架,数据库为MySQL。项目运行环境为Windows,支持JDK8、Tomcat8.5。提供演示视频和详细文档截图。
247 10
|
8月前
|
负载均衡 数据中心 芯片
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
NSDI'24 | 阿里云飞天洛神云网络论文解读——《LuoShen》揭秘新型融合网关 洛神云网关
278 0
|
2月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
304 0
|
2月前
|
机器学习/深度学习 传感器 算法
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
【无人车路径跟踪】基于神经网络的数据驱动迭代学习控制(ILC)算法,用于具有未知模型和重复任务的非线性单输入单输出(SISO)离散时间系统的无人车的路径跟踪(Matlab代码实现)
181 2

热门文章

最新文章