albert相对BERT而言主要有三个改进方向:

1、对Embedding因式分解

在BERT中,词向量维度E和隐层维度H是相等的。而词嵌入学习的是单词与上下文无关的表示,而隐层则是学习与上下文相关的表示。显然后者更加复杂,需要更多的参数,也就是说模型应当增大隐层大小  ,或者说满足  。在实际中,词表V通常非常大,如果E=V,随着BERT模型的增大,E也会随着H不断增加,导致embedding matrix的维度  非常巨大。

在Albert中,想要打破  与  之间的绑定关系,从而减小模型的参数量,同时提升模型表现。词表V到隐层H的中间,使用一个小维度做一次尺度变换:先将单词投影到一个低维的embedding空间  ,再将其投影到高维的隐藏空间  。这使得embedding matrix的维度从  减小到  。当 时,参数量减少非常明显。

2、参数共享

通过层与层之间的参数共享也是albert减少参数量的一个方法。

bert的每一层参数独立,当层数增加时,参数量也会明显上升,albert将所有层的参数进行共享,即只学习一层的参数量,极大地减小模型的参数量,提升训练速度。

3、SOP任务

Albert对BERT的预训练任务Next-sentence prediction (NSP)进行了改进。

下一句预测(Next-sentence prediction,NSP):正样本为文章中上下相邻的两个句子,负样本为从两篇文档中各自选取一个句子。

句子顺序预测(Sentence-order prediction,SOP):正样本为文章中上下相邻的两个句子,负样本为一篇文档中的两个连续的句子,并将它们的顺序交换

NSP任务相对简单: 模型在判断两个句子的关系时不仅考虑了两个句子之间的连贯性(coherence),还会考虑到两个句子的话题(topic)。而两篇文档的话题通常不同,模型会更多的通过话题去分析两个句子的关系,而不是句子间的连贯性,这使得NSP任务变成了一个相对简单的任务。

Albert学习记录的更多相关文章

  1. Quartz 学习记录1

    原因 公司有一些批量定时任务可能需要在夜间执行,用的是quartz和spring batch两个框架.quartz是个定时任务框架,spring batch是个批处理框架. 虽然我自己的小玩意儿平时不 ...

  2. Java 静态内部类与非静态内部类 学习记录.

    目的 为什么会有这篇文章呢,是因为我在学习各种框架的时候发现很多框架都用到了这些内部类的小技巧,虽然我平时写代码的时候基本不用,但是看别人代码的话至少要了解基本知识吧,另外到底内部类应该应用在哪些场合 ...

  3. Apache Shiro 学习记录4

    今天看了教程的第三章...是关于授权的......和以前一样.....自己也研究了下....我觉得看那篇教程怎么说呢.....总体上是为数不多的精品教程了吧....但是有些地方确实是讲的太少了.... ...

  4. UWP学习记录12-应用到应用的通信

    UWP学习记录12-应用到应用的通信 1.应用间通信 “共享”合约是用户可以在应用之间快速交换数据的一种方式. 例如,用户可能希望使用社交网络应用与其好友共享网页,或者将链接保存在笔记应用中以供日后参 ...

  5. UWP学习记录11-设计和UI

    UWP学习记录11-设计和UI 1.输入和设备 通用 Windows 平台 (UWP) 中的用户交互组合了输入和输出源(例如鼠标.键盘.笔.触摸.触摸板.语音.Cortana.控制器.手势.注视等)以 ...

  6. UWP学习记录10-设计和UI之控件和模式7

    UWP学习记录10-设计和UI之控件和模式7 1.导航控件 Hub,中心控件,利用它你可以将应用内容整理到不同但又相关的区域或类别中. 中心的各个区域可按首选顺序遍历,并且可用作更具体体验的起始点. ...

  7. UWP学习记录9-设计和UI之控件和模式6

    UWP学习记录9-设计和UI之控件和模式6 1.图形和墨迹 InkCanvas是接收和显示墨迹笔划的控件,是新增的比较复杂的控件,这里先不深入. 而形状(Shape)则是可以显示的各种保留模式图形对象 ...

  8. UWP学习记录8-设计和UI之控件和模式5

    UWP学习记录8-设计和UI之控件和模式5 1.日历.日期和时间控件 日期和时间控件提供了标准的本地化方法,可供用户在应用中查看并设置日期和时间值. 有四个日期和时间控件可供选择,选择的依据如下: 日 ...

  9. UWP学习记录7-设计和UI之控件和模式4

    UWP学习记录7-设计和UI之控件和模式4 1.翻转视图 使用翻转视图浏览集合中的图像或其他项目(例如相册中的照片或产品详细信息页中的项目),一次显示一个项目. 对于触摸设备,轻扫某个项将在整个集合中 ...

随机推荐

  1. Spring学习(十)Spring知识点汇总

    一.基础概念 Q:Spring是什么? 定义:Spring是一个轻量级的IoC(控制反转)和AOP容器框架. 目的:用于简化企业应用程序的开发,使得开发者只需要关心业务需求. 常见的配置方式: 基于X ...

  2. Mac Catalina 下 gdb codesign问题解决

    在 macOS 上,无法直接使用 gdb 进行 debug. 这是因为 Darwin 内核在你没有特殊权限的情况下,不允许调试其它进程.调试某个进程,意味着你对这个进程有完全的控制权限,所以为了防止被 ...

  3. PageRank算法(网页排名)

    Google用它来体现网页的相关性和重要性

  4. Django 联合唯一UniqueConstraint

    from django.db import models class UserAttention(models.Model): watcher = models.ForeignKey('user.Us ...

  5. EF Entity Framework Core DBContext中文文档

    Add(Object) 以添加状态开始跟踪给定的实体和任何其他尚未被跟踪的可访问实体,以便在调用SaveChanges()时将它们插入数据库.使用State设置单个实体的状态. Add<TEnt ...

  6. Arduino各开发板

    参考来源:https://www.arduino.cn/thread-42417-1-1.html 查了好久,发现除了奈何等等几位大神总结过arduino各板子之间的性能.差异,没有很新的分析文章,在 ...

  7. HTML,Dreamweaver中的大小写

    一般都不讲究,结果昨天在做框架网页的时候,这个target目标窗口却讲究起来大小写,开始没注意,mainframe和mainFrame居然不一样,涨姿势了! 2020.10.14

  8. BUUCTF-数据包中的线索 1

    打开题目里面一个pcapng的文件,于是我们拖进wireshark流量分析一波 发现有http的流量,于是我们过滤http 让后追踪http,然后发现base64的编码, 于是我们看到了base64编 ...

  9. 【C/C++编程入门学习】C语言结构体硬核玩法分享,一切皆是数据!

    前言 对于结构体的应用太多了,今天这篇文章我主要为大家总结平时关于结构体的一些独特硬核小技巧,对于结构体更多优秀的编程表现,如果你对结构体的基础知识还不具备的话得回头看一下专栏教程或者自己找本书籍学习 ...

  10. matplotlib 设置标题 xy标题等

    import matplotlib.pyplot as plt import matplotlib as mpl baseclass=[1,2,3,4] name = ['class1','class ...