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 -- 掩饰 遮挡一部分词汇

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

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

相关文章

Eureka 服务注册和服务发现的使用

1. 父子工程的搭建 首先创建一个 Maven 项目&#xff0c;删除 src &#xff0c;只保留 pom.xml 然后来进行 pom.xml 的相关配置 <?xml version"1.0" encoding"UTF-8"?> <project xmlns"http://maven.apache.org/POM/4.0.0"xmlns:xs…

OpenCV:二值化与自适应阈值

目录 简述 1. 什么是二值化 2. 二值化接口 2.1 参数说明​​​​​ 2.2 示例代码 2.3 运行结果 3. 自适应阈值 3.1 参数说明 3.2 示例代码 3.3 运行结果 4. 总结 4.1 二值化 4.2 自适应阈值 相关阅读 OpenCV&#xff1a;图像的腐蚀与膨胀-CSDN博客 简述 图像二值…

Java面试题2025-设计模式

1.说一下开发中需要遵守的设计原则&#xff1f; 设计模式中主要有六大设计原则&#xff0c;简称为SOLID &#xff0c;是由于各个原则的首字母简称合并的来(两个L算一个,solid 稳定的)&#xff0c;六大设计原则分别如下&#xff1a; 1、单一职责原则 单一职责原则的定义描述非…

Win11下帝国时代2无法启动解决方法

鼠标右键点图标&#xff0c;选择属性 点开始&#xff0c;输入启用和关闭

JAVA实战开源项目:在线文档管理系统(Vue+SpringBoot) 附源码

本文项目编号 T 038 &#xff0c;文末自助获取源码 \color{red}{T038&#xff0c;文末自助获取源码} T038&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析 六、核心代码6.1 查…

Python设计模式 - 组合模式

定义 组合模式&#xff08;Composite Pattern&#xff09; 是一种结构型设计模式&#xff0c;主要意图是将对象组织成树形结构以表示"部分-整体"的层次结构。这种模式能够使客户端统一对待单个对象和组合对象&#xff0c;从而简化了客户端代码。 组合模式有透明组合…

算法每日双题精讲 —— 前缀和(【模板】一维前缀和,【模板】二维前缀和)

在算法竞赛与日常编程中&#xff0c;前缀和是一种极为实用的预处理技巧&#xff0c;能显著提升处理区间和问题的效率。今天&#xff0c;我们就来深入剖析一维前缀和与二维前缀和这两个经典模板。 一、【模板】一维前缀和 题目描述 给定一个长度为 n n n 的整数数组 a a a&…

VLLM性能调优

1. 抢占 显存不够的时候&#xff0c;某些request会被抢占。其KV cache被清除&#xff0c;腾退给其他request&#xff0c;下次调度到它&#xff0c;重新计算KV cache。 报这条消息&#xff0c;说明已被抢占&#xff1a; WARNING 05-09 00:49:33 scheduler.py:1057 Sequence gr…

知识管理系统塑造企业文化与学习型组织的变革之路

内容概要 知识管理系统&#xff08;Knowledge Management System, KMS&#xff09;是指组织内部为有效获取、存储、共享和应用知识而建立的结构和技术体系。这一系统不仅是信息技术的运用&#xff0c;更是推动企业文化和学习型组织发展的重要工具。在当今快速变化的商业环境中…

智能汽车网络安全威胁报告

近年来随着智能汽车技术的快速发展&#xff0c;针对智能汽车的攻击也逐渐从传统的针对单一车辆控制器的攻击转变为针对整车智能化服务的攻击&#xff0c;包括但不限于对远程控制应用程序的操控、云服务的渗透、智能座舱系统的破解以及对第三方应用和智能服务的攻击。随着WP.29 …

Python练习(2)

今日题单 吃鱼还是吃肉 PTA | 程序设计类实验辅助教学平台 降价提醒机器人PTA | 程序设计类实验辅助教学平台 幸运彩票 PTA | 程序设计类实验辅助教学平台 猜帽子游戏 PTA | 程序设计类实验辅助教学平台 谁管谁叫爹 PTA | 程序设计类实验辅助教学平台 就不告诉你 PTA | 程…

Ubuntu-手动安装 SBT

文章目录 前言Ubuntu-手动安装 SBT1. SBT是什么?1.1. SBT 的特点1.2. SBT 的基本功能1.3. SBT 的常用命令 2. 安装2.1. 下载2.2. 解压 sbt 二进制包2.3. 确认 sbt 可执行文件的位置2.4. 设置执行权限2.5. 创建符号链接2.6. 更新 PATH 环境变量2.7. 验证 sbt 安装 前言 如果您觉…

240. 搜索二维矩阵||

参考题解&#xff1a;https://leetcode.cn/problems/search-a-2d-matrix-ii/solutions/2361487/240-sou-suo-er-wei-ju-zhen-iitan-xin-qin-7mtf 将矩阵旋转45度&#xff0c;可以看作一个二叉搜索树。 假设以左下角元素为根结点&#xff0c; 当target比root大的时候&#xff…

Golang笔记——常用库context和runtime

大家好&#xff0c;这里是Good Note&#xff0c;关注 公主号&#xff1a;Goodnote&#xff0c;专栏文章私信限时Free。本文详细介绍Golang的常用库context和runtime&#xff0c;包括库的基本概念和基本函数的使用等。 文章目录 contextcontext 包的基本概念主要类型和函数1. **…

Leetcode:350

1&#xff0c;题目 2&#xff0c;思路 首先判断那个短为什么呢因为我们用短的数组去挨个点名长的数组主要用map装长的数组max判断map里面有几个min数组的元素&#xff0c;list保存交集最后用数组返回list的内容 3&#xff0c;代码 import java.util.*;public class Leetcode…

《多线程基础之互斥锁》

【互斥锁导读】互斥锁是大家使用最多的线程同步手段&#xff0c;但仅仅知道怎么用还是不够的&#xff1f;比如&#xff1a;面试官问你"互斥锁是属于内核层还是应用层的同步保护机制&#xff1f;性能怎样&#xff1f;"&#xff0c;"频繁加解锁&#xff0c;会有什…

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

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

Android Studio 正式版 10 周年回顾,承载 Androider 的峥嵘十年

Android Studio 1.0 宣发于 2014 年 12 月&#xff0c;而现在时间来到 2025 &#xff0c;不知不觉间 Android Studio 已经陪伴 Androider 走过十年历程。 Android Studio 10 周年&#xff0c;也代表着了我的职业生涯也超十年&#xff0c;现在回想起来依然觉得「唏嘘」&#xff…

Swing使用MVC模型架构

什么是MVC模式? MVC是一组英文的缩写,其全名是Model-View-Controller,也就是“模型-视图-控制器”这三个部分组成。这三个部分任意一个部分发生变化都会引起另外两个发生变化。三者之间的关系示意图如下所示: MVC分为三个部分,所以在MVC模型中将按照此三部分分成三…

1.Template Method 模式

模式定义 定义一个操作中的算法的骨架&#xff08;稳定&#xff09;&#xff0c;而将一些步骤延迟&#xff08;变化)到子类中。Template Method 使得子类可以不改变&#xff08;复用&#xff09;一个算法的结构即可重定义&#xff08;override 重写&#xff09;该算法的某些特…