NLP基础知识整理

输入 → 预处理

分词

  • 粒度划分:word-level、char-level、subword-level

常见的三种编码方法{BPE、WordPiece、ULM}

BPE 字节对编码

一种数据压缩方法,通过迭代地合并最频繁出现的字符或字符序列来实现分词目的

WordPiece

WordPiece 是 BPE 的一种变体,不同点:WordPiece 基于概率生成新的subword而不是下一最高频字节对

ULM

SentencePiece

编码(词表征)

  • one-hot,最最基础的编码方式,词典多大,向量维数多大;

  • word2vec,词向量模型,用于将词转换为向量表示;

    基于两种不同的训练词向量的方法,又可以分为 CBOW模型 和 skip-Gram模型

    • CBOW,使用上下文来预测当前词的生成概率
    • skip-Gram,使用当前词来预测上下文词的生成概率
  • Glove,基于全局词频统计,统计的是固定语料信息

  • ELMO,针对多义词在不同语境下,不同语义时的表征作出了处理;

【word2vec则是根据局部语料库训练】
【损失函数上的差异:word2vec - 带权重的交叉熵,权重固定;glove - 最小平方损失函数,权重可以做映射变化】

归一化(normalization)

batch normalization(BN)

layer normalization(LN)

在NLP中,普遍采用的都是LN,直观上的原因是LN效果更好

处理

超级重要的模型框架 --- Transformer  

基础模型

CNN

DNN

RNN

LSTM

GRU

Transformer

结构相关

| Encoder-Decoder | Encoder | Decoder |

细分

Casual Decoder
Prefix Decoder
相同:都是基于Decoder-only的模型框架;
区别:注意力机制的设计不同,Casual Decoder采用单向注意力

进阶模型

BERT

GPT1、2、3

Embedding -> Masked Mutil Self Attention -> LN -> Feed Forward -> LN -> Prediction + task Classifierpin
生成式预训练(无监督) + 判别式任务精调(有监督)

InstructGPT

ChatGPT

GPT-4

BART (facebook)

结合了bert 和 gpt
新的训练方法
对训练样本加入噪声,模型的任务是重构数据样本;
降噪自编码器

目前的大模型

(GPT-4目前人类之下唯一真神)

三大主流开源大型

  • LLaMA、LLaMA2,出自Meta,

    衍生模型

  • ChatGLM,清华大学THUNLP,

  • BLOOM,BigScience团队,22年7月

重点关注的模型:T5、GPT

T5

任务相关

距离特征

向量是数据建模后的特征值v,特征向量之间的差距常用于用于分类、相似性匹配等任务中

  • 欧几里得距离,两点之间的直线距离;
  • 曼哈顿距离,各个坐标系距离之和;|x2-x1| + |y2-y1|【在高维空间中,效果比欧几里得距离更好】
  • 切比雪夫距离,各坐标系距离中的最大值;max(|x2-x1|,|y2-y1|)
  • 余弦距离(也即余弦相似性),计算两个n维空间向量之间角度的余弦,取值范围在[-1,1],-1为完全不相似,1为完全相似;

训练

优化 { 梯度下降、计算损失 }

负采样(Negative Sampling)

context-target为样本,以正确对 orange-juice 作为正样例,控制context,随机选择错误的target作为训练样本,这类错误的训练样本提取过程称为负采样;

目标:降低训练成本

输出

评估

不同任务的评估方法各不相同

摘要任务

ROUGE

分类任务

acc、准确率、召回率、F1-score

(其它)后处理

归一化|标准化(Normalization)

为了方便数据进行处理,将数据转换成(0,1)或(-1,1)之间