NLP自然语言处理通识

目录

ELMO

一、ELMo的核心设计理念

[1. 静态词向量的局限性](#1. 静态词向量的局限性)

[2. 动态上下文嵌入的核心思想](#2. 动态上下文嵌入的核心思想)

[3. 层次化特征提取](#3. 层次化特征提取)

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

[1. 双向语言模型(BiLM)](#1. 双向语言模型(BiLM))

[2. 多层LSTM的层次化表示](#2. 多层LSTM的层次化表示)

三、ELMo的运行过程

[1. 预训练阶段](#1. 预训练阶段)

[2. 下游任务微调](#2. 下游任务微调)

四、ELMo的突破与局限性

[1. 技术突破](#1. 技术突破)

[2. 局限性](#2. 局限性)

五、ELMo的历史影响

六、典型应用场景

Bert

一、BERT的核心设计理念

[1. 对上下文建模的彻底革新](#1. 对上下文建模的彻底革新)

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

[3. 任务驱动的预训练目标](#3. 任务驱动的预训练目标)

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

[1. 基于Transformer的编码器堆叠](#1. 基于Transformer的编码器堆叠)

[2. 输入表示设计](#2. 输入表示设计)

[3. 预训练任务详解](#3. 预训练任务详解)

三、BERT的运行过程

[1. 预训练阶段](#1. 预训练阶段)

[2. 微调阶段](#2. 微调阶段)

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

[1. 革命性贡献](#1. 革命性贡献)

[2. 局限性](#2. 局限性)

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

[1. NLP范式转变](#1. NLP范式转变)

[2. 关键衍生模型](#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 -- 掩饰 遮挡一部分词汇

相关推荐
英国翰思教育7 分钟前
留学毕业论文如何利用不同问题设计问卷
人工智能·深度学习·学习·算法·学习方法·论文笔记
西猫雷婶16 分钟前
python学opencv|读取图像(四十七)使用cv2.bitwise_not()函数实现图像按位取反运算
开发语言·python·opencv
gaoenyang76052541 分钟前
探索高效图像识别:基于OpenCV的形状匹配利器
人工智能·opencv·计算机视觉
背太阳的牧羊人1 小时前
分词器的词表大小以及如果分词器的词表比模型的词表大,那么模型的嵌入矩阵需要被调整以适应新的词表大小。
开发语言·人工智能·python·深度学习·矩阵
人工智能教学实践1 小时前
无人机红外热成像:应急消防的“透视眼”
人工智能·目标跟踪
QQ_7781329742 小时前
ChatGPT高效处理图片技巧使用详解
人工智能·chatgpt
码界筑梦坊2 小时前
基于Django的豆瓣影视剧推荐系统的设计与实现
后端·python·django·毕业设计
fmdpenny3 小时前
前后分离Vue3+Django 之简单的登入
后端·python·django
MYT_flyflyfly3 小时前
计算机视觉之三维重建-单视几何
人工智能·数码相机·计算机视觉
知识鱼丸3 小时前
machine learning自定义数据集使用框架的线性回归方法对其进行拟合
人工智能·机器学习·线性回归