深入理解深度学习——BERT派生模型:跨语言模型XLM(Cross-lingual Language Model)

news2024/11/16 15:52:41

分类目录:《深入理解深度学习》总目录


BERT本应在语义理解上具有绝对优势,但其训练语料均为英语单语,受限于此,早期的BERT只在英语文本理解上有优势。随着全球化进程的加速,跨语言的预训练语言模型也具有非常重要的应用场景。为了探究BERT在跨语言场景中的性能,跨语言语言模型XLM(Cross-lingual Language Model)应运而生。XLM在不改动BERT架构的情况下,通过以下改进,让BERT拥有了跨语言的能力:

  • 分词操作——使用BPE(Byte Pair Encoding)编码。
  • 将大量单语语料扩充为双语平行语料。
  • 用TLM(Translated Language Modeling,翻译语言建模)训练方法替代MLM训练方法。

以上三个改进是为了解决两个问题:

  • 输入文本为多语种时,未登录词过多的问题。
  • 多语种文本之间词义和句义难匹配的问题。

使用BPE编码是为了解决词表中未登录词过多的问题,而在训练语料中加入大量双语平行语料及采用TLM训练方法都是为了关联多语种输入文本的词义和句义。回忆BERT关联两个句子语义的训练方法(NSP),读者不难知晓TLM训练方法的大致框架。

算法细节

BPE

XLM用BPE作为分词工具,将多个语种的文本切割成更细粒度的子词,利用单语种的构词规律与同一语系的语法相似性,极大地降低了词表数量,缓解了推理时未登录词过多的问题(BPE是自然语言处理中较常见的预处理方法)。不同语种的训练语料数量不一致,会导致构建BPE融合词表时各语种中词的权重不平衡的问题,因此在构建BPE融合词表时,需要对训练数据进行重采样,重采样概率为: q i = p i α ∑ j = 1 N p j α , 其中 p i = n i ∑ k = 1 N n k q_i=\frac{p_i^\alpha}{\sum_{j=1}^Np_j^\alpha}, \quad\text{其中}p_i=\frac{n_i}{\sum_{k=1}^N}n_k qi=j=1Npjαpiα,其中pi=k=1Nnink

n i n_i ni表示第 i i i种语言的语料数量, p i p_i pi表示第 i i i种语言的语料占比,对其进行平滑处理得到最终的采样概率 q i q_i qi,其中平滑系数 α \alpha α 0.5 0.5 0.5。通过训练语料重采样构建的BPE词表,既保证了低资源语种在词表构造中占据一定的比例,又不影响高频语种在词表中的地位。

TLM

XLM使用了TLM训练方法。该训练方法通过预测掩码词,让模型学会深层语义信息,与MLM(参考《深入理解深度学习——BERT(Bidirectional Encoder Representations from Transformers):MLM(Masked Language Model)》)不同的是,TLM的输入是两个具有相同含义,但语种不同的句子,即输入语料从单语文本转变成了双语平行语料。如下图所示,将平行语料用分隔符分隔,按照设定好的概率随机替换部分词为[MASK],让模型预测掩码词。如此设置的优势在于:当模型预测掩码词时,不仅可以利用该词的单语语境的上下文,还可以直接利用平行语料中的语义,甚至是同义词。因此,TLM训练方法可以让模型在提取表征向量时学习跨语言的信息编码,让预训练语言模型有了跨语言理解的能力。

除了训练模式的不同,XLM也对位置编码和分割编码做了改动,以便更好地支持TLM训练。首先,对位置编码进行位置重置操作,即在平行语料后置位的语句位置从0开始计数,而非延续前置位句子计数。其次,将分割编码改为语言编码(Language Embeddings),用来区分平行语料中的两个语种。

预训练流程

高质量的平行语料不易获得,语料数量极其受限,不足以让模型获得很强的语义理解能力,而单语语料的获取方式简单且成本低,可以从多种途径(如互联网)获得大量语料,所以XLM采取MLM和TLM交叉训练的方式,在提升模型单语语义理解能力的同时,提升模型跨语言理解的能力。
XLM的训练方法

XLM在BERT的基础上探究了跨语言预训练语言模型的实现方向,效果显著。在一些跨语言的文本分类任务上,XLM均达到了SOTA效果,而在无监督机器翻译领域,使用XLM的参数作为Transformer Encoders和Decoders的初始化值,也具有非常好的效果。总体而言,XLM基本具备了跨语言预训练语言模型的能力,输入不同语种的文本后,都能抽象出通用的表征向量。

参考文献:
[1] Lecun Y, Bengio Y, Hinton G. Deep learning[J]. Nature, 2015
[2] Aston Zhang, Zack C. Lipton, Mu Li, Alex J. Smola. Dive Into Deep Learning[J]. arXiv preprint arXiv:2106.11342, 2021.
[3] 车万翔, 崔一鸣, 郭江. 自然语言处理:基于预训练模型的方法[M]. 电子工业出版社, 2021.
[4] 邵浩, 刘一烽. 预训练语言模型[M]. 电子工业出版社, 2021.
[5] 何晗. 自然语言处理入门[M]. 人民邮电出版社, 2019
[6] Sudharsan Ravichandiran. BERT基础教程:Transformer大模型实战[M]. 人民邮电出版社, 2023
[7] 吴茂贵, 王红星. 深入浅出Embedding:原理解析与应用实战[M]. 机械工业出版社, 2021.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/676869.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

seldom之数据驱动

seldom之数据驱动 如果自动化某个功能,测试数据不一样而操作步骤是一样的,那么就可以使用参数化来节省测试代码。 seldom是我在维护一个Web UI自动化测试框,这里跟大家分享seldom参数化的实现。 GitHub:GitHub - SeldomQA/seld…

idea设置项目编码为utf8

设置当前项目的编码为utf8 File -> Settings -> Editor -> File Encoding: 设置新建项目的编码为utf8 File -> New Projects Setup -> Settings for New Projects:

Flutter系列(九)ListView实现新闻列表和正文布局

基础工程: Flutter系列(四)底部导航顶部导航图文列表完整代码_摸金青年v的博客-CSDN博客 相关文章: Flutter系列(七)ListView 图文列表详解_flutter 图文列表_摸金青年v的博客-CSDN博客 一、前言 本文用flutter实现新闻…

注册 Google 邮箱(最新:保姆级教程)

文章目录 1、我们使用浏览器打开谷歌邮箱官网(gmail.google.com),进入谷歌邮箱的登录主页,我们点击左下方的创建账号按钮,选择个人用途 2、在进入的界面我们不要着急填写资料,我们先修改语言,点…

(2023,3D 场景生成器 Infinigen)使用程序化生成的无限逼真世界

Infinite PhotorealisticWorlds using Procedural Generation 公众号:EDPJ 目录 0. 摘要 1. 简介 2. 相关工作 3. 方法 4. 实验 参考 S. 总结 S.1 主要思想 S.2 方法 S.3 场景生成 0. 摘要 我们介绍 Infinigen,一个自然世界逼真 3D 场景的…

Verilog | 除法--试商法

试商法 采用试商法实现除法运算,对于32位的除法,需要至少32个时钟周期才能得到除法结果。下面是试商法的一般过程。 设被除数是m,除数是n,商保存在s中,被除数的位数是k,其计算步骤如下(为了便…

leetcode814. 二叉树剪枝(java)

二叉树剪枝 leetcode814. 二叉树剪枝题目描述DFS 深度优先遍历 二叉树专题 leetcode814. 二叉树剪枝 来源:力扣(LeetCode) 链接:https://leetcode.cn/problems/binary-tree-pruning 题目描述 给你二叉树的根结点 root &#xff0c…

《机器学习公式推导与代码实现》chapter17-kmeans

《机器学习公式推导与代码实现》学习笔记,记录一下自己的学习过程,详细的内容请大家购买作者的书籍查阅。 聚类分析和k均值聚类算法 聚类分析(cluster analysis)是一类经典的无监督学习算法,在给定样本的情况下,聚类分析通过度量…

【半监督:交叉分辨率:解纠缠】

Cross-Resolution Semi-Supervised Adversarial Learning for Pansharpening (用于泛锐化的交叉分辨率半监督对抗学习) 现有的基于深度神经网络(DNN)的方法已经产生了良好的泛锐化图像。然而,监督DNN为基础的泛锐化方…

卷积是什么

参考: 【官方双语】那么……什么是卷积?https://www.bilibili.com/video/BV1Vd4y1e7pj/ [建议看完] x.1 一维卷积 一维卷积,即对于两个向量的卷积,就是将向量翻转后,从前向后滑动,相乘再相加。 x.2 二维卷…

Spring Boot启动原理

Spring Boot的自动配置为我们提供了快捷方便的方式来运行Spring应用,但很多开发者对其内部启动原理还不是很明白。这篇博客旨在解开Spring Boot的神秘面纱,帮助大家理解它的启动原理。 入口类和注解 我们的Spring Boot应用通常从一个主类开始&#xff…

感知机(Perceptron)底层原理

1.感知机(Perceptron)底层原理 声明:笔记来源于《白话机器学习的数学》 感知机是接受多个输入后将每个值与各自权重相乘,最后输出总和的模型。 单层感知机因过于简单,无法应用于实际问题,但它是神经网络和深…

8个很少用,但却很好用的 Python 库!

本文介绍一些我们可能很少听过,但是对于特定问题或者特定任务来说,可能会非常有帮助的 Python 库 技术交流 技术要学会分享、交流,不建议闭门造车。一个人可以走的很快、一堆人可以走的更远。 好的文章离不开粉丝的分享、推荐,文…

黑马程序员前端 Vue3 小兔鲜电商项目——(六)二级分类页

文章目录 二级路由配置模版代码配置路由关系跳转配置 面包屑导航实现封装接口渲染数据 分类基础列表实现准备接口渲染数据 列表筛选实现无限加载实现定制路由 scrollBehavior 二级路由配置 模版代码 创建 src\views\SubCategory\index.vue 文件,添加以下代码&…

云服务器部署企业版openGauss,本地Data Studio远程连接

1.下载安装包 在华为云上租一台服务器,操作系统选:openEuler 20.03 64bit (64-bit) 获取openGauss Server安装包,企业版:软件包链接 使用xshell连接服务器,准备软硬件安装环境。准备软硬件安装环境 教程 下载Data …

javaee 过滤器加cookie实现自动登录

思路 如上图,如果勾选了自动登录,在登录时,就将用户名和密码存储到cookie中,当下次访问首页时,过滤器先拦截请求,获取下cookie中的账号密码,然后如果cookie中的账号密码有效就将登录信息存储到…

Paddle FastDeploy 执行Cmake 时错误处理方法

1.Paddle FastDeploy 在cmake 时的命令执行报错处理 命令是参考官网的,如下: git clone https://github.com/PaddlePaddle/FastDeploy.git cd FastDeploy mkdir build && cd build cmake .. -G "Visual Studio 16 2019" -A x64 \-DENABLE_ORT_BA…

【MyBatis-Plus】入门案例与简介

1,MyBatisPlus入门案例与简介 1. 入门案例 MybatisPlus(简称MP)是基于MyBatis框架基础上开发的增强型工具,旨在简化开发、提供效率。 开发方式 基于MyBatis使用MyBatisPlus基于Spring使用MyBatisPlus基于SpringBoot使用MyBatisPlus SpringBoot刚刚我…

工资管理系统(学校期末作业)

一、 题目要求 1、需求分析 工资信息存放在文件中,提供文件的输入、输出等操作;要浏览,提供显示、排序操作;查询功能要求实现查找操作;提供键盘式选择菜单以实现功能选择。 2、总体设计 系统可分为信息输入、信息添…

洛谷 P2782 友好城市 排序 动态规划

题目描述 有一条横贯东西的大河,河有笔直的南北两岸,岸上各有位置各不相同的N个城市。北岸的每个城市有且仅有一个友好城市在南岸,而且不同城市的友好城市不相同。每对友好城市都向政府申请在河上开辟一条直线航道连接两个城市,但…