NLP自然语言处理通识

目录

ELMO

一、ELMo的核心设计理念

1. 静态词向量的局限性

2. 动态上下文嵌入的核心思想

3. 层次化特征提取

二、ELMo的模型结构与技术逻辑

1. 双向语言模型(BiLM)

2. 多层LSTM的层次化表示

三、ELMo的运行过程

1. 预训练阶段

2. 下游任务微调

四、ELMo的突破与局限性

1. 技术突破

2. 局限性

五、ELMo的历史影响

六、典型应用场景

Bert

一、BERT的核心设计理念

1. 对上下文建模的彻底革新

2. 预训练-微调范式(Pre-training + Fine-tuning)

3. 任务驱动的预训练目标

二、BERT的模型架构与技术逻辑

1. 基于Transformer的编码器堆叠

2. 输入表示设计

3. 预训练任务详解

三、BERT的运行过程

1. 预训练阶段

2. 微调阶段

四、BERT的技术突破与局限性

1. 革命性贡献

2. 局限性

五、BERT的历史地位与后续发展

1. NLP范式转变

2. 关键衍生模型

六、BERT的典型应用场景

七、与ELMo的关键对比


前言:

ELMO

一、ELMo的核心设计理念

1. 静态词向量的局限性
  • 问题根源:传统词向量(如Word2Vec、GloVe)为每个词赋予固定表示,无法处理一词多义(Polysemy)。
  • 例证:单词"bank"在"river bank"和"bank account"中含义不同,但静态词向量无法区分。
2. 动态上下文嵌入的核心思想
  • 核心理念:词义应由其所在上下文动态生成,而非静态编码。
  • 技术路径:通过双向语言模型(BiLM)捕捉上下文信息,生成层次化的词表示。
3. 层次化特征提取
  • 语言学假设:不同神经网络层可捕捉不同粒度的语言特征(如词性、句法、语义)。
  • 创新点:将LSTM不同层的输出线性组合,构建最终的词表示。

二、ELMo的模型结构与技术逻辑

1. 双向语言模型(BiLM)
  • 前向LSTM:建模从左到右的序列概率

  • 后向LSTM:建模从右到左的序列概率

  • 联合优化目标:最大化双向对数似然:

2. 多层LSTM的层次化表示
  • 底层特征:LSTM底层输出捕捉局部语法特征(如词性、形态)。
  • 高层特征:LSTM顶层输出捕捉全局语义特征(如句间关系、指代消解)。
  • 特征融合:通过可学习的权重 组合各层表示:

三、ELMo的运行过程

1. 预训练阶段
  • 输入:大规模语料(如1B Word Benchmark)
  • 任务目标:通过双向语言模型预测下一个词(前向)和上一个词(后向)
  • 参数保存:保留LSTM各层的权重及字符卷积网络的参数。
2. 下游任务微调
  • 特征注入方式
  • 静态模式:固定ELMo权重,将词向量拼接至任务模型的输入层。
  • 动态模式:允许ELMo参数在任务训练中微调(需权衡计算成本)。
  • 多任务适配:适用于分类、问答、NER等多种任务,通过调整权重 优化特征组合。

四、ELMo的突破与局限性

1. 技术突破
  • 动态词向量:首次实现基于上下文的动态词表示。
  • 双向建模:通过独立训练的双向LSTM间接捕捉全局上下文。
  • 层次化特征:验证了不同网络层的语言学意义。
2. 局限性
  • 浅层双向性:前向/后向LSTM独立训练,未实现真正的交互式双向建模。
  • LSTM效率瓶颈:长序列建模能力受限,训练速度慢于Transformer。
  • 上下文长度限制:受LSTM记忆容量影响,长距离依赖捕捉不足。

五、ELMo的历史影响

1. 预训练范式的先驱:证明了语言模型预训练+任务微调的可行性。

2. BERT与GPT的基石:启发了基于Transformer的双向预训练模型(BERT)和自回归模型(GPT)。

3. 特征可解释性研究:推动了对神经网络层次化语言特征的探索(如探针任务分析)。

六、典型应用场景

1. 命名实体识别(NER):动态词向量显著提升实体边界识别精度。

2. 文本分类:通过组合不同层次特征捕捉局部与全局语义。

3. 语义相似度计算:上下文敏感的词表示改善句子匹配效果。

tips:ELMO过程属于无监督学习,RNN base模型预测下一个词的位置,而不是下一个词是否为正确的词

ELMOtransformer没有关系BiLSTM有关系每次input词汇词嵌入(转换为词向量)

Bert

一、BERT的核心设计理念

1. 对上下文建模的彻底革新
  • 问题驱动:传统模型(如ELMo、GPT)的单向或浅层双向性限制了对上下文的全局理解。
  • 核心思想:通过深度双向Transformer实现全上下文交互建模,消除方向性偏差。
2. 预训练-微调范式(Pre-training + Fine-tuning)
  • 统一架构:同一模型结构适配多种下游任务,无需任务特定结构调整。
  • 参数复用:预训练阶段学习通用语言知识,微调阶段注入领域/任务知识。
3. 任务驱动的预训练目标
  • Masked Language Model (MLM):随机遮蔽15%的输入词,迫使模型基于全上下文预测被遮蔽词。
  • Next Sentence Prediction (NSP):学习句子间关系,增强对篇章级语义的理解。

二、BERT的模型架构与技术逻辑

1. 基于Transformer的编码器堆叠
  • 基础配置
  • BERT-base: 12层Transformer, 768隐藏维度, 12注意力头(110M参数)
  • BERT-large: 24层Transformer, 1024隐藏维度, 16注意力头(340M参数)
  • 双向注意力机制:每个词可同时关注序列中所有其他词(包括前后位置)。
2. 输入表示设计
  • Token Embeddings:WordPiece分词(30k词表),处理未登录词(如"playing"→"play"+"##ing")。
  • Segment Embeddings:区分句子A/B(用于NSP任务)。
  • Position Embeddings:学习绝对位置编码(最大512长度)。
  • 特殊标记:`[CLS]`(分类标记)、`[SEP]`(句子分隔符)、`[MASK]`(遮蔽符)。
3. 预训练任务详解

三、BERT的运行过程

1. 预训练阶段
  • 数据源:BooksCorpus(8亿词) + 英文维基百科(25亿词)。
  • 训练策略       
    • 动态遮蔽:每个epoch重新随机遮蔽词,提升鲁棒性。
    • 80-10-10规则:被遮蔽词中80%替换为`[MASK]`,10%替换为随机词,10%保留原词。
  • 优化参数:Adam(β₁=0.9, β₂=0.999),学习率1e-4,batch size=256/512。
2. 微调阶段
  • 任务适配方式
  • 句子对任务(如STS):使用`[CLS]`标记的嵌入进行相似度计算。
  • 序列标注任务(如NER):使用每个token的最后一层输出。
  • 问答任务(如SQuAD):输出段落中答案的起始/结束位置概率。
  • 轻量级调整:通常仅需在预训练模型顶层添加1-2个全连接层。

四、BERT的技术突破与局限性

1. 革命性贡献
  • 深度双向性:突破LSTM/单向Transformer的上下文建模限制。
  • 通用表征能力:在11项NLP任务中刷新SOTA(GLUE基准提升7.7%绝对准确率)。
  • 长距离依赖建模:自注意力机制有效捕捉跨句子依赖关系。
2. 局限性
  • 预训练-微调数据分布差异:MLM的`[MASK]`标记在微调时不存在,导致训练-应用偏差。
  • 计算资源消耗:BERT-large预训练需16个TPU训练4天(成本约7,000美元)。
  • 生成能力缺失:仅支持编码任务,无法直接生成文本(后由UniLM、BART等改进)。

五、BERT的历史地位与后续发展

1. NLP范式转变
  • 预训练成为标配:推动"预训练大模型+下游任务轻量化"成为NLP主流范式。
  • 多模态扩展:催生跨领域模型如VideoBERT(视频)、BioBERT(生物医学)。
2. 关键衍生模型
  • RoBERTa:移除NSP任务,扩大batch size和训练数据,性能进一步提升。
  • ALBERT:通过参数共享(跨层参数)和嵌入分解降低内存消耗。
  • DistilBERT:知识蒸馏技术压缩模型体积(保留95%性能,体积减少40%)。

六、BERT的典型应用场景

1. 语义搜索:计算query-document语义相关性(Google Search 2019年应用)。

2. 智能问答:基于段落理解的答案抽取(如Google Assistant)。

3. 文本分类:情感分析、垃圾邮件检测等。

4.实体链接:将文本中的实体链接到知识库(如Wikipedia)。

bert应用

词性标注情感分类

七、与ELMo的关键对比

训练bert的方法

linear multi-class classifier -- softmax

MASK -- 掩饰 遮挡一部分词汇

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

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

二进制安卓清单 binary AndroidManifest - XCTF apk 逆向-2

XCTF 的 apk 逆向-2 题目 wp,这是一道反编译对抗题。 题目背景 AndroidManifest.xml 在开发时是文本 xml,在编译时会被 aapt 编译打包成为 binary xml。具体的格式可以参考稀土掘金 MindMac 做的类图(2014),下面的博…

Mac Electron 应用签名(signature)和公证(notarization)

在MacOS 10.14.5之后,如果应用没有在苹果官方平台进行公证notarization(我们可以理解为安装包需要审核,来判断是否存在病毒),那么就不能被安装。当然现在很多人的解决方案都是使用sudo spctl --master-disable,取消验证模式&#…

stack 和 queue容器的介绍和使用

1.stack的介绍 1.1stack容器的介绍 stack容器的基本特征和功能我们在数据结构篇就已经详细介绍了,还不了解的uu, 可以移步去看这篇博客哟: 数据结构-栈数据结构-队列 简单回顾一下,重要的概念其实就是后进先出,栈在…

【Rust自学】15.0. 智能指针(序):什么是智能指针及Rust智能指针的特性

喜欢的话别忘了点赞、收藏加关注哦,对接下来的教程有兴趣的可以关注专栏。谢谢喵!(・ω・) 15.0.1 指针的基本概念 指针是一个变量在内存中包含的是一个地址,指向另一个数据。 Rust 中最常见的指针是引用&#xff0c…

单调栈算法

文章目录 题目概述题目详解739.每日温度1475.商品折扣后的最终价格84.柱状图中最大的矩形 题目概述 单调栈:栈,并且栈是有序的 单调栈的两种写法: 左 -> 右,或者右 -> 左 建议使用左到右的写法 及时去掉无用元素&#xff0c…

vue-有关于TS与路由器

title: vue(TS)路由器 date: 2025-01-28 12:00:00 tags:- 前端 categories:- 前端Vue3-第二部分 这里是代码中出现TS的,后面是路由器 现在先上代码,步步分析。 eg1-props的使用 步步分析代码(先理解,再实践) 框架…

【AI编辑器】字节跳动推出AI IDE——Trae,专为中文开发者深度定制

目录 一、背景 二、核心特性 2.1 AI驱动的代码自动生成 2.2 智能问答与代码补全 2.3 多语言支持 2.4 插件与扩展 三、架构 四、下载使用 4.1 下载与安装 4.2 界面与配置 五、应用实践 5.1 快速生成代码 5.2 智能问答与调试 5.3 团队协作与代码审查 六、与Cursor…

(done) ABI 相关知识补充:内核线程切换、用户线程切换、用户内核切换需要保存哪些寄存器?

由于操作系统和编译器约定了 ABI,如下: 编译器在对 C 语言编译时,会自动 caller 标注的寄存器进行保存恢复。保存的步骤通常发生在进入函数的时候,恢复的步骤通常发生在从函数返回的时候。 内核线程切换需要保存的寄存器&#…

把本地搭建的hexo博客部署到自己的服务器上

配置远程服务器的git 安装git 安装依赖工具包 yum install -y curl-devel expat-devel gettext-devel openssl-devel zlib-devel安装编译工具 yum install -y gcc perl-ExtUtils-MakeMaker package下载git,也可以去官网下载了传到服务器上 wget https://www.ke…

71-《颠茄》

颠茄 颠茄,别名:野山茄、美女草、别拉多娜草,拉丁文名:Atropa belladonna L.是双子叶植物纲、茄科、颠茄属多年生草本,或因栽培为一年生,根粗壮,圆柱形。茎下部单一,带紫色&#xff…

二次封装的方法

二次封装 我们开发中经常需要封装一些第三方组件,那么父组件应该怎么传值,怎么调用封装好的组件原有的属性、插槽、方法,一个个调用虽然可行,但十分麻烦,我们一起来看更简便的方法。 二次封装组件,属性怎…

计算机组成原理(2)王道学习笔记

数据的表示和运算 提问:1.数据如何在计算机中表示? 2.运算器如何实现数据的算术、逻辑运算? 十进制计数法 古印度人发明了阿拉伯数字:0,1,2,3,4,5,6&#…

npm启动前端项目时报错(vue) error:0308010C:digital envelope routines::unsupported

vue 启动项目时,npm run serve 报下面的错: error:0308010C:digital envelope routines::unsupported at new Hash (node:internal/crypto/hash:67:19) at Object.createHash (node:crypto:133:10) at FSReqCallback.readFileAfterClose [as on…

「 机器人 」仿生扑翼飞行器中的“被动旋转机制”概述

前言 在仿生扑翼飞行器的机翼设计中,模仿昆虫翼的被动旋转机制是一项关键技术。其核心思想在于:机翼旋转角度(攻角)并非完全通过主动伺服来控制,而是利用空气动力和惯性力的作用,自然地实现被动调节。以下对这种设计的背景、原理与优势进行详细说明。 1. 背景:昆虫的被动…

防御保护第一次实验:安全策略配置

一、实验拓扑 二、实验要求 三、需求分析 1.创建两个vlan 2.在ENSP中配置基于时间的ACL实现对于办公区PC访问OA Server的时间限制(工作日早8到晚6)。 3.通过配置基于MAC地址的ACL来实现对于生产区PC访问Web Server的限制(除PC3外不能访问&am…

[权限提升] Windows 提权 — 系统内核溢出漏洞提权

关注这个框架的其他相关笔记:[内网安全] 内网渗透 - 学习手册-CSDN博客 0x01:系统内核溢出漏洞提权介绍 注意:提权很容易让电脑蓝屏,所以如果是测试的话,提权前最好做好系统备份。 溢出漏洞就像是往杯子里装水 —— 如…

Dest1ny漏洞库:用友 U8 Cloud ReleaseRepMngAction SQL 注入漏洞(CNVD-2024-33023)

大家好,今天是Dest1ny漏洞库的专题!! 会时不时发送新的漏洞资讯!! 大家多多关注,多多点赞!!! 0x01 产品简介 用友U8 Cloud是用友推出的新一代云ERP,主要聚…

在线课堂小程序设计与实现(LW+源码+讲解)

专注于大学生项目实战开发,讲解,毕业答疑辅导,欢迎高校老师/同行前辈交流合作✌。 技术范围:SpringBoot、Vue、SSM、HLMT、小程序、Jsp、PHP、Nodejs、Python、爬虫、数据可视化、安卓app、大数据、物联网、机器学习等设计与开发。 主要内容:…

【Linux权限】—— 于虚拟殿堂,轻拨密钥启华章

欢迎来到ZyyOvO的博客✨,一个关于探索技术的角落,记录学习的点滴📖,分享实用的技巧🛠️,偶尔还有一些奇思妙想💡 本文由ZyyOvO原创✍️,感谢支持❤️!请尊重原创&#x1…

Qt Designer and Python: Build Your GUI

1.install pyside6 2.pyside6-designer.exe 发送到桌面快捷方式 在Python安装的所在 Scripts 文件夹下找到此文件。如C:\Program Files\Python312\Scripts 3. 打开pyside6-designer 设计UI 4.保存为simple.ui 文件,再转成py文件 用代码执行 pyside6-uic.exe simpl…