当前位置: 首页 > news >正文

Transformer详解一:transformer的由来和先导知识

目录

  • 参考资料
  • 前言
  • 一、预训练
  • 二、神经网络语言模型(NNLM):预测下一个词
    • one-hot编码的缺陷
    • 词向量(word embedding)
  • 三、Word2Vec模型:得到词向量
    • CBOW
    • Skip-gram
    • Word2Vec和NNLM的区别
    • Word2Vec的缺陷
  • 四、ELMO模型:通过预训练得到词向量

参考资料

感谢我的互联网导师:水论文的程序猿
参考资料和图片来源:Transformer、GPT、BERT,预训练语言模型的前世今生(目录)
预训练语言模型的前世今生 - 从Word Embedding到BERT
B站教学视频:预训练语言模型(Transformer、BERT)的前世今生

前言

一、预训练

在这里插入图片描述

通过 ImageNet 数据集我们训练出一个模型 A,由于上面提到 CNN 的浅层学到的特征通用性特别强,我们可以对模型 A 做出一部分改进得到模型 B(两种方法):

  1. 冻结:浅层参数使用模型 A 的参数,高层参数随机初始化,浅层参数一直不变,然后利用领导给出的 30 张图片训练参数
  2. 微调:浅层参数使用模型 A 的参数,高层参数随机初始化,然后利用领导给出的 30 张图片训练参数,但是在这里浅层参数会随着任务的训练不断发生变化

二、神经网络语言模型(NNLM):预测下一个词

one-hot编码的缺陷

  1. 独热编码无法计算词语之间的相似度(余弦相似度),比如fruit为[1,0,0,0,0,0,0,0], banana为[0,0,0,0,0,0,0,1],这两个词在词义上有从属关系,但是若计算余弦相似度,则为0.

  2. 如果使用独热编码来对词汇进行存储的话,占用的存储空间会很大,3000个词就需要一个3000*3000的独热编码矩阵。

在这里插入图片描述

w1*Q = c1

词向量(word embedding)

神经网络的副产品:词向量

使用Q矩阵来降维,如果Q矩阵足够小,如维度为30001,那么30003000的词向量与Q矩阵相乘就会变成一个3000*1的向量,这就是一个词向量。

词向量优势:可以选择词向量的维度,可以求两个词之间的相似程度

在这里插入图片描述

三、Word2Vec模型:得到词向量

主产品:得到词向量
在这里插入图片描述

CBOW

给出词的上下文,预测到当前词。

Skip-gram

给出一个词得到该词的上下文。

Word2Vec和NNLM的区别

NNNL -> 重点是预测下一词,双层感知机softmax(w2(tanh((w1(xQ)+b1)))+b2)

Word2Vec -> CBOW 和 Skip-gram 的两种架构的重点都是得到一个 Q 矩阵,softmax(w1 (xQ) +b1),得到词向量

Word2Vec的缺陷

词向量无法做到一个单词的多义性。

e.g. 苹果有水果中的苹果和苹果手机两个意思,但是如果在训练时训练出来的词向量是代表水果苹果的意思,那么在应用预测这个词时就只有水果的意思而没有手机的意思。

四、ELMO模型:通过预训练得到词向量

改进无法识别多义词的问题。
在这里插入图片描述
ELMO:可以把词语的上下文信息融合在Q矩阵中,将词的上下文信息叠加起来形成一个词向量,从而解决在不同语境中一个词语可以有不同意思的问题。

在这里插入图片描述

http://www.lryc.cn/news/229413.html

相关文章:

  • 数字化产品经理的金字塔能力模型
  • 这 11 个 for 循环优化你得会
  • JVM字符串常量池StringTable
  • 【华为OD题库-010】寻找矿堆的最大价值-Java
  • 在PyTorch中使用CUDA, pytorch与cuda不同版本对应安装指南,查看CUDA版本,安装对应版本pytorch
  • copilot 产生 python工具函数并生成单元测试
  • 缓存与数据库双写一致性几种策略分析
  • Spring全家桶源码解析--2.6 Spring scope 限制bean的作用范围
  • python 文本纠错库pycorrector的使用(API变更,许多介绍文章已不可用)
  • 【C++初阶(七)】类和对象(下)
  • Linux上C++通过LDAP协议使用kerberos认证AES加密连接到AD服务器
  • 开源供应链管理系统 多供应商批发管理系统方案及源码输出
  • 2yocto 自启动程序(服务)
  • AI 绘画 | Stable Diffusion 进阶 Embeddings(词嵌入)、LoRa(低秩适应模型)、Hypernetwork(超网络)
  • 【汇编】计算机的组成
  • asp.net学生宿舍管理系统VS开发sqlserver数据库web结构c#编程Microsoft Visual Studio
  • [C++]Leetcode17电话号码的字母组合
  • OpenBMC Uboot下使用TFTP升级系统
  • 巨量千川「全域推广」指南来袭!助力商家开拓新流量
  • 视频剪辑助手:轻松实现视频随机分割并提取音频保存
  • java注解的作用
  • css中的hover用法示例(可以在vue中制作鼠标悬停显示摸个按钮的效果)
  • labview实现仪器的控制visa
  • 说说React Router有几种模式?实现原理?
  • laravel5+版本aes128加解密
  • Spark的转换算子和操作算子
  • 传奇手游天花板赤月【盛世遮天】【可做底版】服务端+自主授权+详细教程
  • TP触摸屏调试
  • 11-13 spring整合web
  • 基于C#开发的任天堂 Switch 开源模拟器