论文赏析[EMNLP19]如何在Transformer中融入句法树信息?这里给出了一种解决方案(二)

简介: 之前其实有很多工作将句法信息融入到了RNN中,例如ON-LSTM和PRPN,用来隐式建模句法结构信息,同时提升语言模型的准确率。本文尝试将句法信息融入到Transformer中,用来赋予attention更好的解释性。同时可以无监督的预测出句子的句法树,并且相比于一般的Transformer,语言模型的性能有所提高。

实验


首先是在WSJ测试集上的无监督句法分析结果:

image.png

可以看到Tree-Transformer效果还是好于之前的ON-LSTM和PRPN的,虽然比在NLI上训练的DIORA略差,但也情有可原,毕竟人家训练集大,而且是全局解码, 甚至还达到了URNNG的效果。而层数选择10层是效果最好的。

然后是在WSJ10测试集上的无监督句法分析结果:

image.png

可以看到,长度很短的时候Tree-Transformer效果就甚至不如PRPN了,和ON-LSTM相比其实也半斤八两。论文并没有分析原因,甚至都没有提这个。

然后是采用不同的层做出来的无监督句法分析结果:

image.png

可以看到,最小递归到第三层的时候结果最好,而看的层数越少,也就是只看高层的,效果非常的差。只看单独一层的效果也不大行,这都说明了高层的表示更加的抽象,其实不大适宜句法信息的表示。而低层又太接近单词层面了,都是表面信息。这其实和最近的一篇解释bert中attention含义的论文结果一致,中间层的attention表示的是句法信息。

最后是语言模型的困惑度结果:

image.png

这里就只和普通的Transformer相比了,结果还是更好的。因为这里得用masked LM做目标函数,所以没法和ON-LSTM、PRPN等语言模型相比。

其他关于attention解释性等讨论详见论文,我觉得没有多大意思,attention的可解释性最近争论一直很大,强行解释没有意义。

结论


本文提出的Tree Transformer用成分先验表示两个单词属于同一个短语的概率,然后和self-attention联合决定两个单词之间的attention。并且提出了一种解码出句法树的算法,但是还存在着一些问题。

文中说尝试过用Transformer预训练Tree Transformer,这样loss下降的更低了,拟合的更好,但是解码出的句法树效果更差了。这其实是有道理的,之前见过一篇分析论文,提到了语言模型训练的好,并不一定代表着句法树学的好,这两者不能划等号。所以今后如何选择更好更合适的损失函数,值得研究。

这里面还有一些文章可以做,我总感觉本文模型的attention计算方式还是挺牵强的,特别是得分归一化那里,强行将单词左右邻居视为两种不同的角色。下一步工作我可以在上面进行改进,换一种全新的attention计算方式试试,另外损失函数上面考虑到前一篇文章提到的乱序问题,可以尝试用还原词序作为目标任务。



相关文章
|
人工智能 负载均衡 数据可视化
10分钟上手全球开源模型冠军 Qwen3
阿里通义千问Qwen3在最新全球AI基准测试中智能水平位列全球前五,开源第一,且成本优势显著,推理成本仅为DeepSeek-R1的1/3、Claude 3.7的1/20。Qwen3支持119种语言,具备强大的代码和数学能力,同时提供思考与非思考两种模式无缝切换,适合复杂与简单任务。通过阿里云百炼平台,用户可在10分钟内快速搭建Qwen3模型服务,结合Cherry Studio客户端实现便捷交互。本文详细介绍了Qwen3的部署、体验及工具调用能力,帮助用户轻松上手。
|
人工智能 监控
unsloth微调LLama3,指令遵循优化模型独家秘籍
【10月更文挑战第15天】在人工智能领域,LLama3是一款基于Transformer架构的先进语言模型,通过大量数据训练,学习了语言的模式和规律。然而,面对特定任务时,仍需微调以提升性能。unsloth工具为此提供了极大便利,通过数据增强、正则化、学习率调整等优化策略,有效提升了LLama3的指令遵循能力。本文将介绍如何利用unsloth对LLama3进行微调,包括数据准备、模型加载、微调过程及性能监控等步骤。
444 4
|
开发工具 C++
qt开发技巧与三个问题点
本文介绍了三个Qt开发中的常见问题及其解决方法,并提供了一些实用的开发技巧。
370 0
|
人工智能 监控 并行计算
Stable Diffusion火影数据集训练:SwanLab可视化训练
**使用Stable Diffusion 1.5模型训练火影忍者风格的文生图模型。在22GB显存的GPU上,通过Huggingface的`lambdalabs/naruto-blip-captions`数据集进行训练,利用SwanLab进行监控。所需库包括`swanlab`, `diffusers`, `datasets`, `accelerate`, `torchvision`, `transformers`。代码、日志和更多资源可在GitHub和SwanLab找到。训练涉及数据下载、模型配置、训练过程可视化及结果评估。**
Stable Diffusion火影数据集训练:SwanLab可视化训练
|
机器学习/深度学习 存储 计算机视觉
基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
基于YOLOv8深度学习的西红柿成熟度检测系统【python源码+Pyqt5界面+数据集+训练代码】目标检测、深度学习实战
|
存储 Kubernetes 调度
K8S常见的持久化(存储)方案用法详解
K8S常见的持久化(存储)方案用法详解
1068 3
|
传感器 机器学习/深度学习 自动驾驶
【多模态融合】CRN 多视角相机与Radar融合 实现3D检测、目标跟踪、BEV分割 ICCV2023
本文介绍使用雷达与多视角相机融合,实现3D目标检测、3D目标跟踪、道路环境BEV分割,它是来自ICCV2023的。CRN,全称是Camera Radar Net,是一个多视角相机-雷达融合框架。 通过融合多视角相机和雷达的特性,生成语义丰富且空间精确的BEV特征图。实现3D物体检测、跟踪和BEV分割任务。
1544 57
|
NoSQL Java Redis
若依如何使用(基本环境的配置)
若依如何使用(基本环境的配置)
|
缓存 JavaScript
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
vue 页面缓存 keep-alive(含配置清除页面缓存 exclude,局部缓存,动态缓存,路由控制缓存 $route.meta.keepAlive)
1372 0