【笔记】A Tutorial of Transformers_复旦大学邱锡鹏报告

强推看原视频:https://www.bilibili.com/video/BV1sU4y1G7CN?from=search&amp%3Bamp%3Bamp%3Bseid=416604809063304846&amp%3Bamp%3Bamp%3Bspm_id_from=333.337.0.0

官方pdf:http://valser.org/webinar/slide/slides/%E7%9F%AD%E6%95%99%E7%A8%8B01/202106%20A%20Tutorial%20of%20Transformers-%E9%82%B1%E9%94%A1%E9%B9%8F.pdf

一、Self-attention & Transformer

Attention

原来主流的神经网络:CNN(卷积和、滑动窗口)、RNN(梯度消失问题)都只有局部特征,只能抽取出input sequence的local dependencies

怎么样才能拿到Long-term dependency呢?

答案就是全联接。但全联接的权重如果是固定的话,就无法处理句子不同的长度and插入某个词后句子的依赖关系发生变化,所以需要动态生成权重。

注意力机制(Attention Mechanism):

注意力机制包括两个步骤:

  1. 求得注意力分布:假如有一个查询向量q,我们想要知道输入的x和向量q之间有什么关系,就通过scoring函数来进行x和q之间的关系的打分(最简单的方法就是内积)。求出来的分数可能很大很小,我们把它通过一个softmax,进行一个归一化,得到注意力分布α\alphaα,也可以叫attention matrix。

  2. 求得注意力:这个α\alphaα就是对输入x的权重分布,我们将α\alphaα和对应的x做一个加权和(也可以视为一个期望),就得到了attention。

Self-Attention

把这个attention机制应用在句子建模上:一个句子中,并不是所有的词都是有用的,我们希望可以得到对每个词来说,得到他们在句子中的注意力分布,从而得到这个词在句子中的注意力表示,这个就是self-attention。

Query-Key-Value Model

QKV model简直像拦路虎一样,一开始无法理解为什么要搞出这三个向量出来,各自有什么物理含义。

query就是上文中提到的查询向量,用查询向量去找到相应的索引(Key),把Q、K进行一个打分(这里仍然选择直接用内积计算Scoring function),再求一个softmax,这个就是我们要求的注意力分布。

但是softmax函数有一个特殊性质,如果某个数是非常大的话,它会使得大的更大、小的更小,分布是很sharp的,需要对其进行一个平滑,所以我们加上了一个缩放因子Dk\sqrt{D_k}Dk​​.

最终得到的这个注意力分布再乘以索引(Key)对应的值(Value),就是我们求得的注意力。

Multi-head Self-Attention

可以把它投射到不同的空间去计算他们注意力,在不同空间的QKV是独立的。这个有点像CNN里面的multi-channel,不同的映射在这里是用head来表示。

这种用查询向量去找对应值的方法,就类似于计算机中的寻址,read head / write head,所以就叫multi-head self-attention。

Transformer

Position-wise FFN也可以认为是窗口为1的CNN。

模型可以单独使用encoder(文本分类)、encoder-decoder(机器翻译)、单独只使用decoder(语言模型)。

模型复杂度

Transformer模型的问题在于长度过长(大于512)的时候,模型过于复杂,就无法处理了

二、Transformer的改进与变形

Transformer的改进

  • Model Efficiency

    • 因为不善于处理长文档,从轻量化的attention去处理长文档(e.g. sparse attention variants)

    • 分治法处理长文档,分成不同的segment,再通过某些方式综合起来(e.g. Recurrent and hierarchical mechanism)

  • Model Generalization

    • 模型是一个很灵活的架构,几乎没有先验假设,所以需要大量数据
    • 引入一些卷积、循环神经网络等来正则化
    • pretraining on large-scale unlabeled data
  • Model Adaptation

    • 自适应下游任务或修改

Transformer的变形

【笔记】A Tutorial of Transformers_复旦大学邱锡鹏报告相关推荐

  1. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络

    Datawhale 作者:邱锡鹏,复旦大学教授 寄语:本文梳理了深度学习知识体系,分为机器学习.神经网络和概率图模型,同时对机器学习算法类型.深度学习原理框架等进行了梳理,帮助大家更好地学习和入手深度 ...

  2. 复旦大学邱锡鹏教授:NLP预训练模型综述

    ©PaperWeekly 原创 · 作者|王馨月 学校|四川大学本科生 研究方向|自然语言处理 引言 随深度学习的发展,多种神经网络都被应用在 NLP 任务中,比如 CNN.RNN.GNN 和 att ...

  3. 复旦大学邱锡鹏教授:语言模型即服务,走向大模型的未来

    来源:智源社区 作者:智源社区 整理:周致毅 人类一直期待AI能在处理自然语言方面大放异彩,语言大模型在近些年已逐渐成为NLP领域的标配.随着模型的扩张,当前大模型的调用已变成上游厂商开放API供下游 ...

  4. 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  5. 复旦大学邱锡鹏:若优化顺利,MOSS三月底开源;库克或被踢出苹果董事会;华为云联合CSDN发布智能化编程助手Snap|极客头条...

    「极客头条」-- 技术人员的新闻圈! CSDN 的读者朋友们早上好哇,「极客头条」来啦,快来看今天都有哪些值得我们技术人关注的重要新闻吧. 整理 | 梦依丹 出品 | CSDN(ID:CSDNnews ...

  6. ACL 2021 | 复旦大学邱锡鹏组:面向不同NER子任务的统一生成框架

    ©作者 | 刘兴贤 学校 | 北京邮电大学硕士生 研究方向 | 自然语言处理 论文题目: A Unified Generative Framework for Various NER Subtasks ...

  7. 复旦大学邱锡鹏教授:词法、句法分析研究进展综述

    本文为第十六届自然语言处理青年学者研讨会 YSSNLP2019 报告<词法.句法分析研究进展综述>的简要文字整理,本报告主要回顾词法.句法领域的最新研究进展. 关于报告人: 邱锡鹏,复旦大 ...

  8. 开放下载!复旦大学邱锡鹏教授发布教科书《神经网络与深度学习》

    点击"小詹学Python","星标"或"置顶" 关键时刻,第一时间送达 本文转载自"机器之心" 从2016到2019,根 ...

  9. 句法依存分析_复旦大学邱锡鹏教授:词法、句法分析研究进展综述

    本文为第十六届自然语言处理青年学者研讨会 YSSNLP2019 报告<词法.句法分析研究进展综述>的简要文字整理,本报告主要回顾词法.句法领域的最新研究进展. 关于报告人: 邱锡鹏,复旦大 ...

  10. 复旦大学邱锡鹏教授发布《神经网络与深度学习》教材,配备代码和章节练习...

    雷锋网(公众号:雷锋网) AI 科技评论按,近日,复旦大学计算机科学学院副教授邱锡鹏发布了一本<神经网络与深度学习>教材,这份学习资源一经发布就广受好评.目前,该资源在 github 上已 ...

最新文章

  1. python有用知识
  2. 尝试做了个Chrome浏览器的扩展程序,显示extensions的页面
  3. 计算机信息安全与病毒6,信息安全与计算机病毒……毕业.docx
  4. WPF:从WPF Diagram Designer Part 4学习分组、对齐、排序、序列化和常用功能
  5. Linux下CMAKE编译jsoncpp,c – 如何为jsoncpp编写cmake模块?
  6. 清除浮动塌陷的4种经典套路
  7. new一个对象的过程中发生了什么
  8. Windows Server 2016 AD中新建组织单位、组、用户
  9. 字符串的切割操作(strtok,split)
  10. 类型xxx 无法反序列化。缺乏对应的数据成员。
  11. Java大型工程项目管理系统源码,原生APP源码,建筑工程管理源码
  12. OpenCms中文网(www.opencms.org.cn)因所在电信机房所有服务器80端口被封而中断
  13. VSCODE 远程编译调试ARM开发板
  14. 如何理解模块、组件和对象
  15. Java校验身份证号码的工具类
  16. Pytorch实现Deep Mutual Learning网络
  17. 文件批量重命名的方法,图解很多文件改名
  18. AndroidStudio子线程更新UI的几种方式
  19. 计算机屏幕出现条纹w7,电脑屏幕出现条纹,教您电脑屏幕出现条纹怎么办
  20. ubuntu打不开了怎么办_Ubuntu 16.04的Software center打不开的解决办法

热门文章

  1. 游戏角色开始动起来了,真帅!【python 游戏实战 03】
  2. redies用途和使用场景
  3. Linux gd库安装步骤说明
  4. Google Chrome(谷歌浏览器)安装使用
  5. .net 2.0安装包打不开_腾讯悄悄发布 Linux QQ,版本 2.0 Beta
  6. 开源成语答题小程序红包设置教程
  7. 【Java性能调优】(性能调优流程)从系统评估到性能调优
  8. 找maven本地仓库
  9. 【AT91SAM9261EK】u-boot 2022 tftpboot 烧写根文件系统
  10. 报表比对常用excel方法