当前位置: 首页 > news >正文

NLP论文速读(斯坦福大学)|使用Tree将语法隐藏到Transformer语言模型中正则化

论文速读|Sneaking Syntax into Transformer Language Models with Tree Regularization

论文信息:

简介:

        本文的背景是基于人类语言理解的组合性特征,即语言处理本质上是层次化的:语法规则将词级别的意义组合成更大的成分的意义,然后再组合成句子。然而,当前的神经模型,如变换器(Transformers),缺乏对这种树状结构的直接归纳偏差。尽管变换器在大规模数据上进行预训练以实现合理的泛化,但最新的研究表明,即使是最先进的大型语言模型(LLMs)仍然在组合性泛化方面存在困难,即在新环境中理解熟悉的词汇。因此,引入语法归纳偏差可能会在变换器语言模型中实现更稳健和数据高效的学习。

        本文的动机是基于以下几个方面:首先,人类语言处理的层次化特征表明,语法结构在语言理解中起着关键作用。其次,尽管变换器模型在处理大量数据时表现出色,但它们在组合性泛化方面仍存在不足。因此,本文旨在通过引入语法归纳偏差来增强变换器模型的语法泛化能力,同时保持模型的表达能力和推理效率。此外,本文还希望通过这种方法提高模型在少数据情况下的样本效率。

论文方法:

图片

        本文提出了一种名为TREEREG的方法,这是一种辅助损失函数,用于将输入句子的成分句法分析转换为对向量隐藏状态的一组可微分的正交性约束。

        TREEREG通过以下步骤实现:

        Span Contextual Independence Score (SCIN):对于任何跨度,通过量化独立性来定义SCIN。具体来说,对于一个跨度Si;j,其独立性通过其表示向量与上下文表示向量的正交性来衡量。

        TREEREG Loss:给定一个句子S,TREEREG损失(LTR)偏向于提高所有成分句法分析中的跨度的SCIN,同时降低其他跨度的SCIN。具体来说,对于一个成分Si;j,首先计算分割分数s(i, q, j),然后使用这些分数计算跨度级别的对数损失l(i,j)。LTR是所有成分的跨度级别损失l(i,j)的总和。

        恢复解析树:在推理过程中,可以使用自顶向下的贪婪解码算法从隐藏状态中恢复由TREEREG约束编码的唯一解析树。

论文实验:

图片

        实验部分涉及训练变换器语言模型(LMs)来执行两个诊断任务:时态变化(Tense Inflection, TI)和疑问句形成(Question Formation, QF)。这些任务是从PCFGs(概率上下文无关文法)中派生出来的。

        1)时态变化(TI):模型接收一个过去时态的输入,并需要生成相同输入的现在时态版本。评估指标是目标动词正确变化的比例。

         2)疑问句形成(QF):模型需要将一个陈述句转换为疑问句。评估指标是解码疑问句的第一个词的准确性。

        Table 1显示了在TI和QF任务上的评估结果,包括平均测试准确性(Avg. Acc.)、最佳测试准确性(Best Acc.)以及测试性能收敛所需的平均迭代次数(itr.)。

        时态变化(TI)

         Base LM:平均准确性为47.2%,最佳准确性为71.1%,平均收敛迭代次数为427k。

         TREEREG LM:平均准确性为90.4%,最佳准确性为98.3%,平均收敛迭代次数为391k。

        疑问句形成(QF)

        Base LM:平均准确性为42.1%,最佳准确性为66.9%,平均收敛迭代次数为460k。

        TREEREG LM:平均准确性为99.6%,最佳准确性为100.0%,平均收敛迭代次数为43k。

论文链接:

https://arxiv.org/abs/2411.18885

http://www.lryc.cn/news/499146.html

相关文章:

  • 再谈多重签名与 MPC
  • CTF学习24.11.19[音频隐写]
  • vue的watch是否可以取消? 怎么取消?
  • 23、枚举
  • Java基本概念
  • C++学习——如何析构派生类
  • SpringCloud与Dubbo的区别
  • C# 设计模式--建造者模式 (Builder Pattern)
  • leetcode 23. 合并 K 个升序链表
  • 【Redis】深入解析Redis缓存机制:全面掌握缓存更新、穿透、雪崩与击穿的终极指南
  • SQL语法——DQL查询
  • 云计算.运维.面试题
  • 基于vue和vite的计算器
  • 《OpenCV:视觉世界的魔法钥匙》
  • 部署kafka并通过python操作
  • 【JAVA】Java高级:数据库监控与调优:SQL调优与执行计划的分析
  • 【单片机开发】MCU三种启动方式(Boot选择)[主Flash/系统存储器(BootLoader)/嵌入式SRAM]
  • 跨库移植 SQL
  • (软件测试文档大全)测试计划,测试报告,测试方案,压力测试报告,性能测试,等保测评,安全扫描测试,日常运维检查测试,功能测试等全下载
  • Vue前端开发-路由跳转及带参数跳转
  • 服务器上安装 Node.js
  • 在阿里云/Linux环境搭建Gitblit服务
  • MicroBlaze软核开发(二):GPIO
  • threejs相机辅助对象cameraHelper
  • Luma 视频生成 API 对接说明
  • 服务器数据恢复—EVA存储硬盘磁头和盘片损坏离线的数据恢复案例
  • 【Python】深入探索Python类型检查:掌握 `typing` 模块的高级用法
  • Android学习15--charger
  • 顶会新宠!KAN-LSTM完美融合新方案
  • JS中对象的浅拷贝,深拷贝和引用