NLP自然语言处理通识
目录
ELMO
一、ELMo的核心设计理念
1. 静态词向量的局限性
2. 动态上下文嵌入的核心思想
3. 层次化特征提取
1. 双向语言模型(BiLM)
2. 多层LSTM的层次化表示
三、ELMo的运行过程
1. 预训练阶段
2. 下游任务微调
四、ELMo的突破与局限性
1. 技术突破
2. 局限性
五、ELMo的历史影响
六、典型应用场景
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模型预测下一个词的位置,而不是下一个词是否为正确的词


ELMO和transformer没有关系,和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 -- 掩饰 遮挡一部分词汇


相关文章:
NLP自然语言处理通识
目录 ELMO 一、ELMo的核心设计理念 1. 静态词向量的局限性 2. 动态上下文嵌入的核心思想 3. 层次化特征提取 1. 双向语言模型(BiLM) 2. 多层LSTM的层次化表示 三、ELMo的运行过程 1. 预训练阶段 2. 下游任务微调 四、ELMo的突破与局限性 1. 技术突破 2. …...
Time Constant | RC 和 RL 电路中的时间常数
注:本文为 “Time Constant” 相关文章合辑。 机翻,未校。 How To Find The Time Constant in RC and RL Circuits June 8, 2024 💡 Key learnings: 关键学习点: Time Constant Definition: The time constant (τ) is define…...
无心剑七绝《除夕快乐》
七绝除夕快乐 除旧迎新瑞气扬 夕阳烂漫映红妆 快言美酒佳肴味 乐享天伦福满堂 2025年1月28日 平水韵七阳平韵 无心剑这首七绝以“除夕快乐”为题,巧妙地运用了藏头手法,将“除夕快乐”四字分别嵌入诗的每一句首字,构思精巧,富有新…...
Object类(3)
大家好,今天继续给大家介绍一下object类中的方法,那么话不多说,来看。 hashcode()这个方法,帮我们算了一个具体的对象位置,这里面涉及到数据结构,简单认为它是个内存地址,然后调用Integer.toHexString ()将这个地址以16进制输出。 该方法是一…...
Vue.js组件开发-实现下载动态进度条
在Vue.js中,可以通过创建一个自定义组件来实现下载动态进度条。这个组件可以接收下载的进度作为prop,并根据这个进度动态地更新进度条。 首先 需要创建一个Vue组件,比如DownloadProgressBar.vue: <template><div clas…...
GPU上没程序在跑但是显存被占用
原因:存在僵尸线程,运行完但是没有释放内存 查看僵尸线程 fuser -v /dev/nvidia*关闭僵尸线程 pkill -9 -u 用户名 程序名 举例:pkill -9 -u grs python参考:https://blog.csdn.net/qq_40206371/article/details/143798866...
2007-2020年各省国内专利申请授权量数据
2007-2020年各省国内专利申请授权量数据 1、时间:2007-2020年 2、来源:国家统计局、统计年鉴 3、指标:行政区划代码、地区名称、年份、国内专利申请授权量(项) 4、范围:31省 5、指标解释:专利是专利权的简称&…...
常见端口的攻击思路
端口号端口说明攻击方向21/22/69FTP/TFTP文件传输协议匿名上传/下载、嗅探、爆破2049NFS服务配置不当139Sanba服务爆破、远程代码执行389Ldap目录访问协议注入、匿名访问、弱口令22SSH远程连接爆破、SSH映射隧道搭建、文件传输23Telnet远程连接爆破、嗅探、弱口令3389RDP远程桌…...
python:洛伦兹变换
洛伦兹变换(Lorentz transformations)是相对论中的一个重要概念,特别是在讨论时空的变换时非常重要。在四维时空的背景下,洛伦兹变换描述了在不同惯性参考系之间如何变换时间和空间坐标。在狭义相对论中,洛伦兹变换通常…...
电路研究9.2.3——合宙Air780EP中FTP——FTPGET 命令使用方法研究
怎么说呢,之前也是看的,但是也很迷茫,感觉上虽然是对的,但是无法联系到应用里面,今天研究一下FTP 命令使用方法吧。 15.29 使用方法举例 这里发现下面那些看的不懂呢,于是就返回FTP的应用了。 9.5.4 FTP 应…...
HTML 标题
HTML 标题 引言 HTML(超文本标记语言)是构建网页的基础,而标题则是网页中不可或缺的元素。标题不仅能够帮助用户快速了解网页内容,还能够对搜索引擎优化(SEO)产生重要影响。本文将详细介绍HTML标题的用法…...
npm cnpm pnpm npx yarn的区别
npm、cnpm、pnpm、npx、yarn 这几个工具都与 Node.js 项目的包管理和命令执行相关,它们的区别具体如下: 本质与功能定位 npm:是 Node.js 官方的包管理工具,提供了安装、卸载、更新、发布等全方位的包管理功能,还能通…...
redis缓存和springboot缓存包冲突怎么办
如果Redis缓存与Spring Boot缓存包发生冲突,可以采取以下几种解决方案: 排除Spring Boot缓存包:在pom.xml文件中排除Spring Boot的缓存依赖,以避免与Redis缓存冲突。例如: <dependency><groupId>org.spr…...
ANSYS学习笔记(十)网格质量的诊断和提高
网格质量的好坏不能单纯只看meshing给出的网格质量结果,要根据实际的计算物理场景来判断,需要求解的地方物理量大梯度的位置网格越密越好。 网格质量:在有限网格数量限制下,离散误差小的网格是好网格,是高质量网格。网…...
ChatGPT 搜索测试整合记忆功能
据 TestingCatalog 报道,OpenAI 正在测试 ChatGPT 搜索的整合记忆功能,被命名为 “Memory in search”2。以下是关于该功能的具体情况123: 功能特点 个性化搜索:启用该功能后,ChatGPT 能利用存储的记忆数据࿰…...
在Ubuntu上使用Apache+MariaDB安装部署Nextcloud并修改默认存储路径
一、前言 Nextcloud 是一款开源的私有云存储解决方案,允许用户轻松搭建自己的云服务。它不仅支持文件存储和共享,还提供了日历、联系人、任务管理、笔记等丰富的功能。本文将详细介绍如何在 Ubuntu 22.04 LTS 上使用 Apache 和 MariaDB 安装部署 Nextcl…...
2024收尾工作
目录 开场白 栈与队列 LeetCode232. 用栈实现队列 LeetCode225. 用队列实现栈 LeetCode102. 二叉树的层序遍历 LeetCode103. 二叉树的锯齿形层序遍历 堆(优先级队列) 堆排序 LeetCode215. 数组中的第 k 个最大元素 总结 开场白 今天是除夕&…...
搭建Spring Boot开发环境
JDK(1.8及以上版本) Apache Maven 3.6.0 修改settings.xml 设置本地仓库位置 <localRepository>D:/repository</localRepository> 设置远程仓库镜像 <mirror><id>alimaven</id><name>aliyun maven</name&…...
JavaScript系列(48)-- 3D渲染引擎实现详解
JavaScript 3D渲染引擎实现详解 🎮 今天,让我们深入探讨JavaScript的3D渲染引擎实现。通过WebGL和现代JavaScript技术,我们可以构建一个功能完整的3D渲染系统。 3D渲染基础概念 🌟 💡 小知识:3D渲染引擎的…...
jmeter中对接口进行循环请求后获取相应数据
1、工作中遇到一个场景就是对某个单一接口进行循环请求,并需要获取每次请求后返回的相应数据; 2、首先就在jmeter对接口相关组件进行配置,需要组件有:循环控制器、CSV数据文件设置、计数器、访问接口、HTTP信息头管理器、正则表达…...
网络工程师 (4)存储系统
一、多级存储结构 (一)组成 寄存器: 寄存器是与CPU直接协调工作的高速存储器,用于加速存储器的访问速度。它通常用于存放操作数或作为地址寄存器,以加快地址转换速度。寄存器的数量有限,一般在几个到几百个…...
论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(六)(完结)
Understanding Diffusion Models: A Unified Perspective(六)(完结) 文章概括指导(Guidance)分类器指导无分类器引导(Classifier-Free Guidance) 总结 文章概括 引用: …...
oracle比较一下统计信息差异吧
统计信息发生了哪些变化? 从上次收集到最近一次收集有什么不同? set long 999999 longc 99999 line 100 select report, maxdiffpct from table(dbms_stats.diff_table_stats_in_history(SYS,T1,to_timestamp(2025-01-22 09:01:46,YYYY-MM-DD hh24:mi:s…...
Hive:内部表和外部表,内外转换
内部表和外部表 内部表示例 给表添加数据 外部表示例 给表添加数据 外部表示例 用location指定表目录位置,那么表的位置在实际指定的位置,但是可以被映射 外部表和内部表的区别 删除表后使用show tables in shao; 已经没有被删除的表,说明元数据已经被删除(mysql里面存放),但是…...
P1030 [NOIP2001 普及组] 求先序排列(c++)详解
题目链接:P1030 [NOIP2001 普及组] 求先序排列 - 洛谷 | 计算机科学教育新生态 思路: 1.先确定跟节点 2.根据根节点,划分出左右子树 中:BADC 后:BDCA 分析: 根据后序遍历࿰…...
Mac cursor设置jdk、Maven版本
基本配置 – Cursor 使用文档 首先是系统用户级别的设置参数,运行cursor,按下ctrlshiftp,输入Open User Settings(JSON),在弹出的下拉菜单中选中下面这样的: 在打开的json编辑器中追加下面的内容: {"…...
提升企业内部协作的在线知识库架构与实施策略
内容概要 在当前快速变化的商业环境中,企业对于提升内部协作效率的需求愈显迫切。在线知识库作为信息存储与共享的平台,成为了推动企业数字化转型的重要工具。本文将深入探讨如何有效打造与实施在线知识库,强调架构设计、知识资产分类管理及…...
单链表专题(上)
链表的定义与创建 线性表: 1. 物理结构上不一定是线性的 2. 逻辑结构上一定是线性的 链表是一种物理存储结构上非连续,非顺序的存储结构 链表也是线性表的一种,但是在物理结构上不是连续的 链表是由一个一个的节点组成,需要数…...
.NET MAUI 入门学习指南
引言 在当今移动应用和跨平台开发的热潮中,.NET MAUI(Multi - platform App UI)应运而生,为开发者提供了一种高效、统一的方式来构建跨多个平台(如 iOS、Android、Windows 等)的原生应用。它整合了 Xamarin.Forms 的优点,并在此基础上进行了诸多改进和创新,使得开发者…...
Vue3.5 企业级管理系统实战(三):页面布局及样式处理 (Scss UnoCSS )
本章主要是关于整体页面布局及样式处理,在进行这一章代码前,先将前两章中的示例代码部分删除(如Home.vue、About.vue、counter.ts、App.vue中引用等) 1 整体页面布局 页面整体布局构成了产品的框架基础,通常涵盖主导…...
