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

Bert浅谈

优点

首先,bert的创新点在于利用了双向transformer,这就跟openai的gpt有区别,gpt是采用单向的transformer,而作者认为双向transformer更能够融合上下文的信息。这里双向和单向的区别在于,单向只跟当前位置之前的tocken相连,双向与当前位置之后的tocken也有连接。跟ELMo相比的优势在于,transformer对特征的提取能力比lstm要强得多。
在这里插入图片描述

模型输入

首先是对输入的句子做tocken embedding,也就是将句子映射为一维向量,可以是word2vec的结果,猜想一下,如果不是维度过高也可以是one-hot,第二部分segment embedding 是在模型训练过程中自动学习得到的,猜想这里可以用全连接,也可以用transformer,最后是position embedding,主要用以区别“我喜欢妈妈”和“妈妈喜欢我”,虽然这两句话的单词一样,但是因为位置不同,所以含义不同。
在这里插入图片描述

模型参数

BERTBASE (L=12, H=768, A=12, Total Parameters=110M)

BERTLARGE (L=24, H=1024,
A=16, Total Parameters=340M).

L表示层数,H为隐层维度,A为注意力头的数量

两种任务

Masked LM

这个任务主要是随机将某句话的某几个位置做处理,这里的处理可能是3种,80%的概率用[mask]代替,10%的概率保留原来的单词,10%的概率用其他单词代替。就像是英语考试中的完形填空
在这里插入图片描述

Next Sentence Prediction (NSP)

主要利用输入的第一个tocken[cls]和中间的tocken[sep],其中cls用来表示后面一句是否为前一句的下一句,sep表示两个句子的间隔。从文本语料库中随机选择 50% 正确语句对和 50% 错误语句对进行训练。就像是与语文中的句子排序。

参考:BERT模型的详细介绍


http://www.kler.cn/news/134990.html

相关文章:

  • vue使用本地图片设置为默认图
  • 【Django使用】django经验md文档10大模块。第4期:Django数据库增删改查
  • 整形数据和浮点型数据在内存中的存储差别
  • 微服务调用链路追踪
  • 使用Python实现3D曲线拟合
  • Java爬虫的使用案例及简单总结
  • 场景交互与场景漫游-路径漫游(7)
  • 腾讯云轻量数据库性能如何?轻量数据库租用配置价格表
  • JavaScript实现飞机发射子弹详解(内含源码)
  • 超聚变服务器关闭超线程CPU的步骤(完整版)
  • 【开源】基于Vue.js的在线课程教学系统的设计和实现
  • 右键菜单和弹出菜单的区别
  • 基于springboot实现校园在线拍卖系统项目【项目源码】计算机毕业设计
  • 如何在Linux上搭建本地Docker Registry并实现远程连接
  • vscode 推送本地新项目到gitee
  • Linux入门(三)
  • 22. 深度学习 - 自动求导
  • 反射和序列化操作会破坏单例模式
  • redis 介绍1
  • three.js相机调用reset方法复原但无法完全复原
  • docker 部署Redis集群(三主三从,以及扩容、缩容)
  • flink的window和windowAll的区别
  • list转map(根据某个或多个属性分组)
  • 基于SpringBoot+Redis的前后端分离外卖项目-苍穹外卖(六)
  • JAVA必应回答。
  • 参加了南京 GDG 活动:这些精彩的技术讨论,值得与你分享~
  • 基于RFID的自动化仓储设备研发项目可行性研究报告
  • 【Linux基础】中断子系统 -- 内核宏 CONFIG_SPARSE_IRQ
  • leetcode面试经典150题——29 三数之和
  • C++ 继承和派生 万字长文超详解