ALBERT论文简读
问题描述
预训练自然语言表征时,增加模型的参数量通常可以是模型在下有任务中性能提升。但是这种做法对硬件设备的要求较高(当下的各种SOTA模型动辄数亿甚至数十亿个参数,倘若要扩大模型规模,这个内存问题是无法回避的),也会显著地降低训练效率(由于通信开销与模型中参数的数量成正比,在分布式训练中训练速度将成为一大瓶颈。简单地增加隐含层单元数,只会适得其反,从而降低效率)。并且随着模型参数的增加,模型性能会先提升,后又会随着参数的增加性能反而变差。

核心方法
为了降低模型训练的系统开销,提升模型的训练效率,且几乎不降低模型效果,本文做如下一些优化:
对嵌入参数进行因式分解(factorized embedding parameterization)。将一个大的词汇嵌入矩阵分解为两个小的矩阵, 将隐藏层的大小与词汇嵌入的大小分离开来(原本认为词汇嵌入学习的是一种上下文无关,无依赖的词嵌入表示;而隐状态学习的是上下文相关的,有上下文依赖的表示;故而应该将其分类开来,同时降低了参数)。此过程其实就是降低了词嵌入向量的长度,使得每个词嵌入向量长度远小于隐状态的向量长度(原bert模型中二者长度相同)。而且在后续增加隐状态的参数时,并不会显著增加词汇嵌入的参数量
跨层参数共享。共享模型不同layer之间的参数,避免模型参数量随着网络深度的增加而增加
- All-shared:在该方法中,与其他编码器的所有子层共享第一个编码器的所有子层的参数
- Shared feedforward network:只与其他编码器层的前馈网络共享第一个编码器层的前馈网络的参数
- Shared attention:只与其他编码层的多头注意力共享第一个编码器层的多头注意力参数。
句子顺序预测(SOP:sentence-order prediction)。在bert中有提出NSP,即预测一个句子是否是另一个句子的下一句。其正样本是两个连续的句子,欺负样本中后一句来自于其他文档,这可能会导致模型根据两句话的主题就能判断后一句子是否是前一句子的next sentence,而并未真正学到语序信息。本文所提SOP的正样本与bert一样,但负样本是将正样本进行对换顺序,从而预测两个句子顺序。
实验结果
对于ALBERT,在不共享参数时,词嵌入的尺寸越大,模型效果越好,但提升幅度并不是很大;在共享参数时,随着嵌入尺寸增大,模型效果先变好,后变差。

不同跨层参数共享的效果,同样使用 ALBERT-base 作为示例模型,all-shared策略(ALBERT-style)、not-shared 策略(BERT-style)及其介于二者之间的中间策略(仅注意力参数共享,FNN不共享;仅FNN参数共享,注意力参数不共享)。总体而言,all-shared型策略使得模型在一定程度上降低了性能,但是下降幅度较小。

在预测下一句任务中,本文总共对比三种策略:没有句子间损失(比如XLNet和RoBERTa)、NSP(比如BERT)、SOP(ALBERT)。从表中可以看出,训练NSP任务,对SOP任务的益处并不明显,正确率只打到52%;而SOP任务则有利于NSP,能使其正确率达到78.9%。更重要的是,SOP对下游任务性能的提升也较为明显。

ALBERT模型默认使用All-shared方式。实验表明,使用参数共享后,每一层的输入嵌入和输入嵌入的L2距离和余弦相似度都比bert平滑得多,证明参数共享能够使模型的参数更加稳定。

参考链接
https://blog.csdn.net/ljp1919/article/details/101680220
https://blog.csdn.net/yjw123456/article/details/120275965
ALBERT论文简读的更多相关文章
- 【论文简读】 Deep web data extraction based on visual
<Deep web data extraction based on visual information processing>作者 J Liu 上海海事大学 2017 AIHC会议登载 ...
- 简读《ASP.NET Core技术内幕与项目实战》之3:配置
特别说明:1.本系列内容主要基于杨中科老师的书籍<ASP.NET Core技术内幕与项目实战>及配套的B站视频视频教程,同时会增加极少部分的小知识点2.本系列教程主要目的是提炼知识点,追求 ...
- 论文泛读:Click Fraud Detection: Adversarial Pattern Recognition over 5 Years at Microsoft
这篇论文非常适合工业界的人(比如我)去读,有很多的借鉴意义. 强烈建议自己去读. title:五年微软经验的点击欺诈检测 摘要:1.微软很厉害.2.本文描述了大规模数据挖掘所面临的独特挑战.解决这一问 ...
- ICCV 2019|70 篇论文抢先读,含目标检测/自动驾驶/GCN/等(提供PDF下载)
虽然ICCV2019已经公布了接收ID名单,但是具体的论文都还没放出来,为了让大家更快得看论文,我们汇总了目前已经公布的大部分ICCV2019 论文,并组织了ICCV2019论文汇总开源项目(http ...
- React v16-alpha 从virtual dom 到 dom 源码简读
一.物料准备 1.克隆react源码, github 地址:https://github.com/facebook/react.git 2.安装gulp 3.在react源码根目录下: $npm in ...
- 论文速读(Chuhui Xue——【arxiv2019】MSR_Multi-Scale Shape Regression for Scene Text Detection)
Chuhui Xue--[arxiv2019]MSR_Multi-Scale Shape Regression for Scene Text Detection 论文 Chuhui Xue--[arx ...
- 论文速读(Jiaming Liu——【2019】Detecting Text in the Wild with Deep Character Embedding Network )
Jiaming Liu--[2019]Detecting Text in the Wild with Deep Character Embedding Network 论文 Jiaming Liu-- ...
- 论文速读(Yongchao Xu——【2018】TextField_Learning A Deep Direction Field for Irregular Scene Text)
Yongchao Xu--[2018]TextField_Learning A Deep Direction Field for Irregular Scene Text Detection 论文 Y ...
- 【论文速读】Cong_Yao_CVPR2017_EAST_An_Efficient_and_Accurate_Scene_Text_Detector
Cong_Yao_CVPR2017_EAST_An_Efficient_and_Accurate_Scene_Text_Detector 作者和代码 非官方版tensorflow实现 非官方版kera ...
- 论文泛读 A Novel Ensemble Learning-based Approach for Click Fraud Detection in Mobile Advertising [1/10]
title:新的基于集成学习的移动广告作弊检测 导语:基于buzzcity数据集,我们提出了对点击欺诈检测是基于一组来自现有属性的新功能的一种新方法.根据所得到的精度.召回率和AUC对所提出的模型进行 ...
随机推荐
- 震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒
摘要:震网病毒主要是通过改变离心机的转速,来破坏离心机,并影响生产的浓缩铀质量. 本文分享自华为云社区<[安全技术]震网(Stuxnet)病毒深度解析:首个攻击真实世界基础设施的病毒(1)[原创 ...
- Python对字典进行赋值操作时报错:“Cannot assign to function call”解决方案
今天编程时对字典进行赋值操作时报错"Cannot assign to function call": 翻译一下就是无法分配函数调用的空间. 我很纳闷,因为前面都可以正常调用dict ...
- 文献阅读01:由I类HLA转录缺失导致的联合免疫治疗的获得性癌症耐药性
背景 Merkel cell carcinoma:梅克尔细胞癌又名皮肤小梁状癌.原发性皮肤神经内分泌癌.皮肤原发性小细胞癌及皮肤APUD瘤. HLA:MHC基因产物在不同细胞表面表达,通常称之为MHC ...
- StartAllBack使用教程
StartAllBack简介 StartAllBack是一款Win11开始菜单增强工具,为Windows11恢复经典样式的Windows7主题风格开始菜单和任务栏,功能包括:自定义开始菜单样式和操作, ...
- 有效的字母异位词&两个数组的交集& 快乐数& 两数之和
一.有效的字母异位词 242. 有效的字母异位词 1.方法概述 因为本题中字符串只包含小写字母,就可以定义一个数组来记录字符串中字符出现的次数.遍历第一个字符串,用charAt拿到对应的小写字母然后减 ...
- 2.2.vue用法在uniapp中的使用_
开发的H5页面可以用div,但是适应小程序的用法,得参考uniapp的组件章节,用view包裹.
- 限流器算法实现(JUC原子类使用实践)
系列文章目录和关于我 一丶限流器存在的意义 在高并发系统中,出于系统保护角度考虑,通常会对流量进行限流. 限流*的目的是在遇到流量高峰期或者流量突增(流量尖刺)时,通过对流量速率进行限制,当达到限制速 ...
- windows C++
#include <Windows.h> LRESULT CALLBACK WndProc(HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lPar ...
- 2021级《JAVA语言程序设计》上机考试试题6
首先管理员页面 代码: <%@ page language="java" contentType="text/html; charset=UTF-8" p ...
- LinkedList内部实现原理
LinkedList内部实现原理 java list 同ArrayList内部原理一样 我们先创建一个LinkedList对象LinkedList<String> li = new Lin ...