ACL 2020 | 面向序列标注任务的“集百家所长”多语种模型来了!

2023-11-01 08:30

本文主要是介绍ACL 2020 | 面向序列标注任务的“集百家所长”多语种模型来了!,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

上海科技大学和阿里巴巴发布了一篇被ACL2020收录的论文《Structure-Level Knowledge Distillation For Multilingual Sequence Labeling》,论文针对在自然语言处理中的序列标注任务中,多语种模型的表现不及各个语种单独的模型做出了改进,通过知识蒸馏的手段,从各个单语种模型中学习到结构层级的知识,训练一个新的多语种模型,缩短了多语种模型跟各个语种单独模型之间的差距。在4个任务的15个数据集上,文章提出的模型表现都优于多个经典的baseline模型。同时,对于那些缺乏数据的小语种具有较强的泛化能力。

图1 论文信息

论文链接:

https://arxiv.org/pdf/2004.03846.pdf​arxiv.org

 

简介

序列标注是自然语言处理的一类重要的任务,常见的有命名实体识别,词性标注等等,它能够提供一些额外的信息,从而对于下游的自然语言处理任务有着重要影响。大多数当前的序列标注任务都是针对单个语种的,当需要把模型跨语种迁移到那些缺乏语料的语种上时依旧需要训练单独的模型。全世界有7000多种语种,在每个语种上都单独训练一个模型是非常消耗时间跟精力的事情,其中还有很多小语种是严重缺乏足够的训练语料的。因此,训练一个针对多语种的模型显得十分必要,于是MultilingualBERT横空出世。不过,它的效果比不上各个单语种模型,这是因为单语种模型利用了各种强大的预训练好的词表征能力。

对此,文章利用了知识蒸馏,将各个具有强大表征能力的单语种模型的知识迁移到一个多语种模型。知识蒸馏,是通过训练一个student模型去尽可能的模仿teacher模型的预测,希望得到一个较小较快的student模型,同时尽可能具备teacher模型强大的预测能力。

背景

在BiLSTM-CRF中,给定一个输入序列 [公式]和它对应的预测标签 [公式] ,,通过BiLSTM得到的上下文表达可以表示为 [公式] ,则对应的条件概率可以按以下公式计算。其中 [公式] 跟 [公式] 是相应的状态跟转移函数的参数, [公式] 是序列开始的标记。

公式一:

公式二:

相应的负对数似然函数可以表示为:公式三:

最常见的知识蒸馏方法的损失函数如下公式四所示,后续实验中提及的Emission模型就是已经这样的方式得到。公式四:

方法

关于如何从多个单语种模型中通过蒸馏出结构层级的知识从而学习到一个多语种的序列标注模型,文章提出两种方法,一种是Top-K蒸馏,是通过近似最小化teacher跟student的结构层级概率分布得到的,另一种是后验蒸馏,通过聚合结构层级的知识到局部后验概率分布,然后通过最小话两者的局部后验概率分布得到。详情可见图2。

图2 论文模型图

Top-K蒸馏通过维特比算法,得到预测得分最高的K个预测序列,将他们通过公式五的方式计算,可以得到student模型的概率分布关于teacher模型的概率分布的条件期望的一个有偏估计。其中 [公式] , [公式] 分别表示student模型与teacher模型的预测结果。

公式五:

在基本的Top-K方法中,当K变大后效果会变得愈发糟糕。一种改进的方式是加权Top-K,如公式六和公式七所示,其基本思想就是对K个不同的预测序列赋予不同的权重,得分越高的序列赋予更高的权重。

公式六:

公式七:

在Top-K的方法中,当K增大时计算量会增加,进而速度会变慢。文章由此提出另一种方法后验蒸馏,具体的计算方法如公式八和公式九所示。

公式八:

公式九:

当选定好蒸馏方法后,对于任何语种的语料数据,会利用单语种的teacher模型去计算得到Top-K的预测序列或者后验分布,然后多语种的student模型会从这些硬标签跟软标签去联合学习,最小化如下的损失函数,如公式十所示,依次遍历所有语种,训练得到一个多语种的student模型。

公式十:

实验结果

文章在四种不同的序列标注任务中进行了实验,对应的数据集有CoNLLNER,WikiAnnNER,UniversalDependencies和AspectExtraction。具体实验结果如图2所示。其中,Baseline指的是没有经过知识蒸馏而训练得到的多语种模型,Emission模型指的是KD采用Emission的模型,Top-K、Top-WK和Posterior指的是文章提出来的新模型,Pos.+Top-WK指的是混合了Top-WK跟Posterior的模型。

主要有以下六个结论:

  • 在大部分实验中,采用BiLSTM-CRF的多语种模型效果要优于采用BiLSTM-Softmax的多语种模型。这也跟当前序列标注任务的现状是一致的。
  • 单语种的teacher模型效果要优于多语种的student模型。大概率是因为单语种的模型拥有强大的词嵌入,能够提供额外的信息,而这时多语种的student模型所不具备的。
  • Emission模型不具备迁移知识的能力,在大部分数据集上表现都不及baseline模型。
  • Top-K跟Top_WK都要优于baseline模型,其中Top-WK的效果要优于Top-K。
  • Posterior在大部分数据集上都取得最好的效果。
  • Top-WK+Posterior的效果介于Top-WK和Posterior之间。

图3 实验结果图

换句话说,可以归纳为:Posterior>Top-WK+Posterior>Top-WK>Top-K>Baseline>Emission.

总结

文章的主要贡献是,在序列标注任务中,提出了两种结构层级上的知识蒸馏手段,Top-K蒸馏跟后验蒸馏,能够从单语种的teacher模型中蒸馏出知识,学习出一个多语种的student模型。在4个不同任务的25个数据集上,验证了文章提及的这两种方法相对于原有的方法都有一定的提升。

高效可行的多语种模型训练方法,对于数量众多的语言种类而言,不必再去对每种语言训练一个单独的模型,是一种行之有效的解决方法。同时,对于那些相对小众的语种,也具备较强的泛化能力。文章提出的这些方法,在序列标注任务中具有一定的前景,能为下游的一些自然语言处理任务。例如,情感分析、意图识别等提供一定的帮助,值得后续更多更深入的研究。

这篇关于ACL 2020 | 面向序列标注任务的“集百家所长”多语种模型来了!的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/321774

相关文章

0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型的操作流程

《0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeekR1模型的操作流程》DeepSeekR1模型凭借其强大的自然语言处理能力,在未来具有广阔的应用前景,有望在多个领域发... 目录0基础租个硬件玩deepseek,蓝耘元生代智算云|本地部署DeepSeek R1模型,3步搞定一个应

Deepseek R1模型本地化部署+API接口调用详细教程(释放AI生产力)

《DeepseekR1模型本地化部署+API接口调用详细教程(释放AI生产力)》本文介绍了本地部署DeepSeekR1模型和通过API调用将其集成到VSCode中的过程,作者详细步骤展示了如何下载和... 目录前言一、deepseek R1模型与chatGPT o1系列模型对比二、本地部署步骤1.安装oll

最长公共子序列问题的深度分析与Java实现方式

《最长公共子序列问题的深度分析与Java实现方式》本文详细介绍了最长公共子序列(LCS)问题,包括其概念、暴力解法、动态规划解法,并提供了Java代码实现,暴力解法虽然简单,但在大数据处理中效率较低,... 目录最长公共子序列问题概述问题理解与示例分析暴力解法思路与示例代码动态规划解法DP 表的构建与意义动

关于最长递增子序列问题概述

《关于最长递增子序列问题概述》本文详细介绍了最长递增子序列问题的定义及两种优化解法:贪心+二分查找和动态规划+状态压缩,贪心+二分查找时间复杂度为O(nlogn),通过维护一个有序的“尾巴”数组来高效... 一、最长递增子序列问题概述1. 问题定义给定一个整数序列,例如 nums = [10, 9, 2

Spring AI Alibaba接入大模型时的依赖问题小结

《SpringAIAlibaba接入大模型时的依赖问题小结》文章介绍了如何在pom.xml文件中配置SpringAIAlibaba依赖,并提供了一个示例pom.xml文件,同时,建议将Maven仓... 目录(一)pom.XML文件:(二)application.yml配置文件(一)pom.xml文件:首

如何在本地部署 DeepSeek Janus Pro 文生图大模型

《如何在本地部署DeepSeekJanusPro文生图大模型》DeepSeekJanusPro模型在本地成功部署,支持图片理解和文生图功能,通过Gradio界面进行交互,展示了其强大的多模态处... 目录什么是 Janus Pro1. 安装 conda2. 创建 python 虚拟环境3. 克隆 janus

本地私有化部署DeepSeek模型的详细教程

《本地私有化部署DeepSeek模型的详细教程》DeepSeek模型是一种强大的语言模型,本地私有化部署可以让用户在自己的环境中安全、高效地使用该模型,避免数据传输到外部带来的安全风险,同时也能根据自... 目录一、引言二、环境准备(一)硬件要求(二)软件要求(三)创建虚拟环境三、安装依赖库四、获取 Dee

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

DeepSeek模型本地部署的详细教程

《DeepSeek模型本地部署的详细教程》DeepSeek作为一款开源且性能强大的大语言模型,提供了灵活的本地部署方案,让用户能够在本地环境中高效运行模型,同时保护数据隐私,在本地成功部署DeepSe... 目录一、环境准备(一)硬件需求(二)软件依赖二、安装Ollama三、下载并部署DeepSeek模型选

解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题

《解决IDEA使用springBoot创建项目,lombok标注实体类后编译无报错,但是运行时报错问题》文章详细描述了在使用lombok的@Data注解标注实体类时遇到编译无误但运行时报错的问题,分析... 目录问题分析问题解决方案步骤一步骤二步骤三总结问题使用lombok注解@Data标注实体类,编译时