Transformer的前世今生 day03(Word2Vec、如何使用在下游任务中)

前情回顾

  • 由上一节,我们可以得到:
    • 任何一个独热编码的词都可以通过Q矩阵得到一个词向量,而词向量有两个优点:
      • 可以改变输入的维度(原来是很大的独热编码,但是我们经过一个Q矩阵后,维度就可以控制了)
      • 相似词之间的词向量有了关系
  • 但是,在NNLM(神经网络语言模型的一种)中,词向量是一个副产品,即主要目的并不是生成词向量,而是去预测下一个词是什么,所以它对预测的精度要求很高,模型就会很复杂,也就不容易去计算Q矩阵和词向量
  • 模型图如下:
    在这里插入图片描述
  • 因此提出了一个专门生成词向量的神经网络语言模型----Word2Vec

Word2Vec

  • 主要目的是生成词向量,模型图如下:
    在这里插入图片描述
  • 虽然NNLM和Word2Vec基本一致,不考虑细节,网络架构基本一致
  • 但是由于Word2Vec的主要目的是生成词向量,那么对预测精度的要求可以放低,甚至只要合理,就算有多个结果也可以,因此模型不会很复杂,也就是可以更容易的计算出Q矩阵和词向量
  • 所以对比NNLM,Word2Vec不用预测更准确,只需要可以正常的进行一个反向传播,可以去掉激活函数,加快计算速度,如下:
    在这里插入图片描述
  • Word2Vec的缺点:
    • 词向量不能表示一词多义,如果我们在训练中给某一个词选择了一个词向量,但是在测试中,同样的词可能会有其他意思,那模型仍然不知道这个位置应该填入什么词,如下:
      在这里插入图片描述

CBOW

  • 给出一个词的上下文,预测这个词,如下:
    在这里插入图片描述
  • 由于Q矩阵和词向量的产生在INPUT到PROJECTION的过程中,且CBOW会有更多的Q矩阵和词向量,也就意味着它生成词向量的效率更高,如下:
    在这里插入图片描述

Skip-gram

  • 给出一个词,得到这个词的上下文,如下:
    在这里插入图片描述
  • 相反,在Skip-gram中,我们得到Q矩阵和词向量的效率会低一些
    在这里插入图片描述

如何将词向量使用在下游任务中

  • Word2Vec是预训练模型,而预训练模型分为两种:假设给出任务A和任务B,其中对于任务A我们已经得出了一个良好的模型A,而任务B由于数据集太小或训练太复杂等其他原因,无法解决,即无法得出模型B
    • 我们可以使用模型A,来辅助解决任务B
    • 或者使用模型A,来加快模型B的生成
  • 词向量大多数用在第二种,加快模型B的生成
    在这里插入图片描述
  • 在经典的NLP领域中:在将输入X、Y传入网络后,从W(独热编码,是一种一一对应的表查询,不是预训练)到隐藏层需要经过一个Q矩阵,而这个Q矩阵可以使用Word2Vec预训练好的Q矩阵,并直接得到词向量,然后进行接下来的具体任务
  • 在我们使用Word2Vec的Q矩阵也有两种方式
    • 冻结:不改变Q矩阵
    • 微调:随着任务的改变,在模型的训练过程中,改变Q矩阵
  • 以后的transformer和BERT都是用在预训练这一块,而其他的网络结构是根据任务的不同进行改变的,也就意味着在相同的任务下,我们可以通过改变预训练来找到创新点。

参考文献

  1. 06 Word2Vec模型(第一个专门做词向量的模型,CBOW和Skip-gram)

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

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

相关文章

day29|leetcode|C++|491. 非递减子序列|46. 全排列|47. 全排列 II

Leetcode 491. 非递减子序列 链接:491. 非递减子序列 thought: 设 stack 中最后一个值的位置为 last。如果 stack 为空,则 last -1。 设当前正在处理的位置为 pos。如果在 nums 的子区间 [last1, pos) 中,存在和 nums[pos] 相同的值&…

Kafka broker

1. zk中存储的kafka信息 /kafka/brokers/ids存储了在线的broker id。 /kafka/brokers/topics/xxx/partitions/n/state存储了Leader是谁以及isr队列 /kafka/controller辅助Leader选举,每个broker都有一个controller,谁先在zk中注册上,谁就辅助…

Autosar MCAL配置——Fls

文章目录 一、FLS基础知识二、达芬奇配置2.1 创建Fls模块2.2 FlsGeneralFlsDataFlash2.3 FlsConfigSet0FlsSector2.4 FlsPublishInfomation一、FLS基础知识 主要提供对Flash的读,写,擦相关操作服务;如果底层硬件支持的话,也提供一些配置接口来设置擦/写保护功能。 flash操…

低成本养号降低封号风险,这种方式你试过了吗?

众所周知,对于那些主要依赖海外社交媒体平台(如Facebook脸书、推特X、Instagram等)进行引流和投广、谷歌上架应用等拓展海外业务、主要赚海外money的朋友们而言,账号一旦被封,就会严重影响业务进程,甚至可能…

腾讯云服务器多少钱一年?价格表新鲜出炉(2024)

腾讯云服务器多少钱一年?61元一年起。2024年最新腾讯云服务器优惠价格表,腾讯云轻量2核2G3M服务器61元一年、2核2G4M服务器99元一年可买三年、2核4G5M服务器165元一年、3年756元、轻量4核8M12M服务器646元15个月、4核16G10M配置32元1个月、312元一年、8核…

【研究僧总结】回顾第1095个创作日

目录 前言一. 机缘二. 日常三. 展望 前言 感觉刚过1024不久,现在又来个1095创作日 一. 机缘 研究僧一直在找平台做笔记,方便之后的回顾总结,也让各位网友见证你我的成长,相互学习 止不住的写文止不住的成长,大家共同…

Docker 之 数据卷

目录 1. 数据卷是什么 1.1 运行一个带有容器卷存储功能的容器实例 2.能干什么 3. 容器卷案例 3.1 宿主机vs容器之间映射添加容器卷 3.1.1 命令添加: 3.1.2 查看数据卷是否挂载成功 3.1.3 容器和宿主机之间数据共享 3.2 读写规则映射添加说明 3.2.1 读写&…

java系统部署到Linux

1、安装java 1.8JDK 卸载Open JDK 首先,我们先检查系统是否自带了 JDK。输入命令 java -verison批量删除 rpm -qa | grep java | xargs rpm -e --nodeps下载并安装JDK 我们在 user 目录下建立一个新的 java文件夹,用来存放 JDK文件。 jdk下载地址 …

快速上手 Elasticsearch:Docker Compose 部署详解

最近面试竞争日益激烈,Elasticsearch作为一款广泛应用的中间件,几乎成为面试中必考的知识点。最近,AIGC也备受关注,而好多的AI项目中也采用了Elasticsearch作为向量数据库,因此我们迫切希望学习Elasticsearch。对于学习…

全球首位AI程序员Devin的诞生及其对程序员职业未来的影响

写在开头 在人工智能(AI)的浪潮下,全球首位AI程序员Devin的出现,无疑为软件开发领域带来了前所未有的变革。Devin不仅是一个编程工具,更是一个标志性的里程碑,预示着AI技术在编程领域的应用将更加广泛和深…

Docker简介及用途,为什么要使用Docker?Docker容器和虚拟机的区别?

Docker简介 前言 前端有必要学习Docker吗?有!!不仅要学Docker,还要学习Kubernetes (K8s),Jenkins 那问题来了,Docker,k8s,jenkins到底要先学习那个呢?当然是Docker 总结来说,先学习…

typescript关键知识点总结(一)

一 聊聊typescript的核心原理 TypeScript 是一种基于 JavaScript 的强类型编程语言,它使得在前端项目开发过程中更加严谨且流畅,一定程度上保证了大型前端项目程序的健壮性。 但是 TypeScript 并不可以直接运行,而是需要转换成 JavaScript 代码才可以在 Node.js 或浏览器环…

C++初阶:STL容器list的使用与初版自实现

目录 1. list的接口与使用1.1 默认成员函数1.2 迭代器与容量相关成员函数1.3 存储数据操作相关成员函数1.4 其他list操作成员函数 2. list的自实现2.1 list的自实现功能2.2 list的结点结构2.3 list的迭代器2.3 list的结构2.4 list迭代器的运算符重载2.5 list的成员函数 3. cons…

双指针(滑动窗口)-算法刷题

一.移动零(. - 力扣(LeetCode)) 算法思想 : 设置两个指针left,right,将数组分为三块[0,left]为不为0的元素,[left1,right-1]为0元素,[right,num.size()-1]为未扫描的区域&#xff0c…

第四百二十二回

文章目录 1. 概念介绍2. 思路与方法2.1 实现思路2.2 实现方法 3. 示例代码4. 内容总结 我们在上一章回中介绍了"自定义标题栏"相关的内容,本章回中将介绍自定义Action菜单.闲话休提,让我们一起Talk Flutter吧。 1. 概念介绍 我们在这里提到的…

从零开始一步一步掌握大语言模型---(3-词表示-word representation)

词表示和语言模型 词表示是指把自然语言里面最基本的单位,也就是词,将其转换为机器所能理解的过程。 词表示的目的: 1. 计算词之间的相似度; 2. 推理词之间的关系。 1.最早是如何表示一个词呢? 设目标词是X&#…

day3-QT

1>使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函。将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin",密码是…

JS操作元素的内容

对象.innerText 属性 对象.innerHTML 属性 <body><div classbox>文字</div><script>//首先获取元素const box document.querySelector(.box)console.log(box.innerText)</script> </body> 1.元素innerText属性 将文本内容添加到标签任…

【Redis知识点总结】(六)——主从同步、哨兵模式、集群

Redis知识点总结&#xff08;六&#xff09;——主从同步、哨兵模式、集群 主从同步哨兵集群 主从同步 redis的主从同步&#xff0c;一般是一个主节点&#xff0c;加上多个从节点。只有主节点可以接收写命令&#xff0c;主节点接收到的写命令&#xff0c;会同步给从节点&#…

unblock with ‘mysqladmin flush-hosts‘ 解决方法

MySql Host is blocked because of many connection errors; unblock with mysqladmin flush-hosts 解决方法 环境:linux,mysql5.5.21 错误:Host is blocked because of many connection errors; unblock with mysqladmin flush-hosts 原因: 同一个ip在短时间内产生太多…