当前位置:   article > 正文

自然语言处理复习

自然语言处理复习

目录

第 3 章 深度学习基础

第 4 章 语言模型+词向量

第 5 章 NLP中的注意力机制

第 6 章 NLP基础任务

第 7 章 预训练语言模型

第 10 章 信息抽取

第 11-1 章 问答系统

第 11-2 章 机器阅读理解


第 3 章 深度学习基础

1. 人工神经网络

Z = sigmoid(W^TX+b)


2. 激活函数

(1)激活函数的作用

为了增强网络的表达能力,需要引入连续的非线性激活函数

(2)激活函数的性质

  • 连续并可导的非线性函数
  • 激活函数及其导函数要尽可能地简单
  • 激活函数的导函数的值域要在一个合适的区间

(3)常用的激活函数

sigmoid函数:\frac{1}{1+exp(-x)}, 值域(0,1)

tanh函数:\frac{exp(x)-exp(-x)}{exp(x)+exp(-x)},值域(-1,1)

ReLU函数:max(0,x),值域[0,正无穷)


3. 前馈神经网络DNN

(1)参数:层间连线权重W1,W2,...,WL;各层偏置b1,b2,...,bL

(2)softmax层:\frac{e^{y_i}}{\sum e^{y_i}}

(3)梯度下降法:

步骤:

1. 定义目标函数(损失函数):用真实值和预测值的误差来定义损失函数,将问题转化为求极值的问题minL(\Theta )

2. 优化目标函数(损失函数):将参数作为变量,通过求极值来确定

常用损失函数:

0-1损失、平方损失、绝对值损失、对数损失、交叉熵损失、Hinge损失、指数损失

交叉熵损失:-\sum y_ilogf(x_i)

问题:

1. 参数初值:尽量随机

2. 学习率:不能太大也不能太小

3. 梯度消失问题:

(1)选择合适的激活函数

(2)用复杂的门结构代替激活函数

(3)残差结构

4. 过拟合问题:

(1)选择合适的正则方法

(2)Dropout

分类:

1. 梯度下降法:每更新一次参数,就需要计算一次全体数据相应参数的偏导数,这个计算量是很大的,函数的收敛速度会在数据量很大的时候会很慢。与SGD不同,每一次参数的改变,都能保证损失函数是朝着全局最小方向移动的。

2. 随机梯度下降法:每更新一次参数,只计算了1个batch的梯度,大大加快了函数的收敛速度。SGD每一次更新参数只考虑了一个数据,可能不会每一次都是朝着全局最优的方向移动,最终可能无法收敛到最小,但是会解决陷入局部最优的问题。

3. mini-batch梯度下降法

复合函数求导:链式法则,反向传播算法


4. 卷积神经网络CNN

局部连接+参数共享(模型参数变少)

(1)参数:卷积核的权值、卷积核的偏置、全连接的权值

(2)卷积层的作用:卷积层用来提取特征。其中局部连接+参数共享,可大大减少参数的个数

(3)池化层的作用:池化层用来特征选择,降低特征数量,并从而减少参数数量。

  • Max Pooling
  • Mean Pooling

(4)卷积神经网络结构上的特性:

  • 局部连接
  • 权重共享
  • 空间或时间上的次采样

这些特性使得卷积神经网络具有一定程度上的平移、缩放和扭曲不变性

(5)卷积神经网络形状变换公式:

OutputShape = (InputShape - KernelSize + 2*padding)/stride + 1

参数个数:(KernelSize * KernelSize * c_{in} + 1)* c_{out}


5. 图卷积神经网络GNN

 


6. 循环神经网络RNN 

(1)循环神经网络核心思想:将处理问题在时序上分解为一系列相同的“单元”,单元的神经网络可以在时序上展开,且能将上一时刻的结果传递给下一时刻,整个网络按时间轴展开。即可变长。

(2)信息传播:

h(t) = sigmod(W_iX + W_hh(t-1) + b)

Y = softmax(W_oh(t))

(3)输入输出结构:

(4)参数学习

BPTT:用反向传播不同的是,循环神经网络存在参数共享问题,从时间步上展开的每层的权重W都应该相同,因此每次都需要同时调整参数。

(5)问题:

1. 梯度消失/爆炸问题:在训练循环神经网络时,更经常出现的是梯度消失问题,训练较难

2. 长期依赖问题:距当前节点越远的节点对当前节点处理影响越小,无法建模长时间的依赖

(6)LSTM:LSTM 通过设计“门”结构实现保留信息和选择信息功能(输入门、遗忘门、输出门)

(7)GRU:输入门和遗忘门合并为更新门(更新门决定隐状态保留放弃部分)(更新门、重置门)

(8)RNN的改进

 


第 4 章 语言模型+词向量

1. 统计语言模型

(1)模型

语言模型:p(S) = \prod_{i=1}^{n}p(w_i|w_1......w_{i-1}),其中S为句子,p(S)为句子的概率

二元模型:p(S) = p(w_1) * p(w_2|w_1) * p(w_3|w_2) * ... * p(w_n|w_{n-1})

n元模型:p(S) = p(w_1,...,w_m) = \prod_{i=1}^{m}p(w_i|w_{i-(n-1)},...,w_{i-1})

(2)参数学习的方法

最大似然估计方法:

 (3)数据平滑

数据匮乏导致的零概率问题。

数据平滑的基本思想:调整最大似然估计的概率值,使零概率增值,使非零概率下调,“劫富济 贫”,消除零概率,改进模型的整体正确率。

数据平滑的方法:加1法、减值法/折扣法、删除减值法

(4)语言模型性能评价

1. 实用方法:根据模型的表现来评价

2. 理论方法:用模型的困惑度来衡量


2. 神经语言模型

(1)基于DNN的模型:NNLM模型

(2)基于RNN的模型:RNNLM模型

随着模型逐个读入语料中的词w1 ;w2 ….隐藏层不断地更新为h(1),h(2)….. ,通过这种迭代推进方式,每个隐藏层实际上包含了此前所有上文的信息,相比NNLM 只能采用上文n元短语作为近似,RNNLM包含了更丰富的上文信息,也有潜力达到更好的效果。

RNNLM优点:

  • RNNLM 模型可以保留每个词的全部历史信息,不需简化为n-gram
  • 引入词向量作为输入后不需要数据平滑

3. 词向量(浅层)

(1)词表示

  • 符号表示
  • 离散表示       

                one-hot表示

                词袋模型:用该词在文档中出现的频数表示该词 

                TF-IDF:用该词在文档中的占比来表示该词

  • 分布式表示:用一个词的附近的其他词来表示该词

                基于计算的分布式表示:如SVD分解;耗空间过大,稀疏等问题

                基于预测的分布式表示

(2)词向量

NNLM模型词向量

方法:采用低维稠密向量降维,|D|为定义的词向量的维度,|V|为词表大小

NNLM模型的作用: 在训练语言模型同时也训练了词向量

RNNLM模型词向量

方法:采用低维稠密向量降维,|D|为定义的词向量的维度,|V|为词表大小

RNNLM 模型的作用:在训练语言模型同时也训练了词向量

C&W模型词向量

核心思想:采用直接对n元短语打分的方式替代语言模型中求解条件概率的方法:对于语料中出现过的n元短语,对其打高分;对于语料中没有出现的随机短语,对其打低分。通过这种方式,C&W模型可以更直接地学习得到符合分布假说的词向量。

特点:C&W 模型的目标函数是求目标词w与其上下文c的联合打分,而其他模型均为根据上下文c,预测目标词w。

 

C&W 模型在运算速度上优于NNLM模型,但在许多语言学任务上,效果不如其它模型

CBOW模型词向量

Skip-gram模型词向量

 (3)经典模型总结

 

(4)词向量的特点

语义相似的词,其词向量空间距离更相近

相似关系词对的词向量之差也相似:如V(hotter) - V(hot) \approx V(bigger) - V(big)


4. 神经语言模型相比统计语言模型的优势

统计语言模型:

1. 由于参数数量问题需要对词 i 的历史简化 n-gram 

2. 需要数据平衡

神经语言模型:RNNLM可以解决所有上述问题


第 5 章 NLP中的注意力机制

1. 注意力机制概述

注意力机制就是加权求和机制,是神经网络中的一个组件,可以单独使用,但更多地用作网络中的一部分。对于集合Key,求相对于Query各个元素的权重,然后按权重相加形成Query要的结果


2. 传统注意力机制

(1)模块结构

输入:Query(Q)、Key(K)

输出:Attention-Value(Att-V)

步骤:

1. 计算f(Q,K)注意力打分函数):

2. 计算对于Q各个Ki的权重,softmax(f(Q,K))

3. 计算输出,各Ki乘以自己的权重,然后求和

(2)模块训练

将模块放到整体模型中,不需要额外的训练数据权重可以由模块中 的参数学到

(3)模块评价

放到各个任务中检验,通过任务指标的提升证明模块的效果

(4)模块应用

网络中有“求和”的地方都可以用,如 图卷积, 机器翻译等

(5)注意力模块的优点

  • 让任务处理系统找到与当前任务相关的显著的输入信息,并按重要性进行处理,从而提高输出的质量。
  • 不需要监督信号,可推理多种不同模态数据之间的难以解释、隐蔽性强、复杂映射关系,对于先验认知少的问题,极为有效。
  • 解决长距离依赖问题 ,提升任务性能

(6)注意力模块的作用

等权处理 - > 加权处理 -> 提升任务效果


软注意力soft attention:在求注意力分配概率分布的时候,对于输入句子X中任意一 个单词都给出个概率,是个概率分布。

硬注意力hard attention:直接从输入句子里面找到某个特定的单词,然后把目标句子单词和这个单词对齐,而其它输入句子中的单词硬性地认为对齐概率为0

全局注意力global attention:Decode端Attention计算时要考虑输入Encoder端序列中所有的词

局部注意力local attention:Local Attention Model本质上是Soft AM和 Hard AM的一个混合或折衷。 一般首先预估一个对齐位置Pt,然后在Pt左右大小为D的窗口范围来取类似于Soft AM的概率分布。


3. 注意力编码机制

通过建立序列各元素之间的关联关系形成一种序列表示(按元素之间关系对序列进行编码);或通过不同序列元素之间的关联关系形成不同序列间的融合表示。

(1)单一向量编码

将输入序列按规则编码成单一向量表示。如,句表示/篇章表示 ,某词的上下文表示等

(2)不同序列间编码

将2个序列编码成二者的融合的表示序列, 如,匹配任务和阅读理解任务常用的融合层表示

(3)同一序列自编码

利用多头自注意力编码对一个句子编码可以起到类似句法分析器的作用。如Transformer的编码端

 


第 6 章 NLP基础任务

1. 文本分类

文本分类是NLP中的常见的重要任务之一,应用广泛,在很多领域发挥着重要作用,例如垃圾邮件过滤、舆情分析以及新闻分类等。

神经网络分类方法:

  • 基于词袋的文本分类

        简单对文本序列中每个词嵌入进行平均/加总,作为整个序列的表示。 这种方法的缺点是丢失了词序信息。对于长文本,神经词袋模型比较 有效。但是对于短文本,神经词袋模型很难捕获语义组合信息

  • 基于卷积神经网络文本分类(TextCNN/DPCNN/Char-CNN/VDCNN)

        通过多个卷积层和子采样层,抽取序列的 n-gram特征信息,最终将得到特征信息合并成一个固定长度的向量作为整个序列表示。

  • 基于循环神经网络文本分类(TextRNN/TextRCNN)

        将文本序列看作时间序列,不断更新,最后得到整个序列的表示。这种表示中包含的是序列的顺序信息。RNN属于“biased model”,一个句子中越往后的词重要性越高,这有可能影响最后的分类结果,因为对句子分类影响最大的词可能处在句子任何位置。

  • 基于attention机制文本分类

        通过注意力机制对序列进行编码,最后得序列的表示,这种表示包含 的是词与词之间的关联关系

  • 基于预训练模型的文本分类

        通过预训练模型形成句表示,然后将该句表示作为分类的输入

  • 基于图卷积神经网络文本分类

        根据任务对原文本加入附加信息并构建原文本与附加信息的关系图(将附加 的结构信息融入文本),然后利用图卷积的方法提取文本有效的特征表示


2. 文本匹配

(1)复述识别

又称释义识别,是判断两段文本是不是表达了同样的语义,这一类场景一般建模成分类问题。

(2)文本蕴含识别

给定一个前提文本(text),根据这个前提去推断假说文本(hypothesis)与 文本的关系,关系有:蕴含关系(entailment),矛盾关系(contradiction), 中立关系(entailment)。这一类场景一般建模成多分类问题。

(3)问答

根据Question在段落或文档中查找Answer,这类场景常常会被建模成分类问题; 还有一类是根据Question从若干候选中找出正确答案,这类场景常常会被建模成排位( ranking )问题。

(4)对话

与QA 类似,但是比QA更复杂,由于引入了历史轮对话,需要考虑在历史轮的限制下回复是否合理。一般建模为分类或排位问题。

(5)信息检索

信息检索是一个更为复杂的任务,往往会有Query—Tittle,Query—Document的形 式(Query可能是一个Document)检索需要计算相似度和排序一般建模为排位问题。

深度学习文本匹配方法:自动提取出词语之间的关系特征并结合短语匹配中的结构信息和文本匹配 的层次化特性,更精细地描述文本匹配问题。


3. 序列标注

(1)序列标注问题概述

序列标注方法:“将输入的语言序列转化为标注序列”,通过标注序列标签含义来解决问题。

命名实体识别:将给定的输入序列中的的命名实体(如人名、地名等)识别出来

信息抽取(实体识别):将给定的输入序列中的特定信息抽取出来

词性序列标注:将给定的输入序列中词的词性标出来

(2)马尔可夫模型

马尔可夫链:

马尔可夫模型:

p(S_0,S_1,...,S_T) = \prod_{t=1}^{T}p(S_t|S_{t-1})p(S_0)

马尔可夫模型三元组M = (S,\pi ,A ),S为模型中状态的有限集合,A为与时间无关的状态转义概率矩阵,\pi为初始状态空间的概率分布

例如:

(3)隐马尔可夫模型HMM

该模型是一个双重随机过程,我们不知道具体的状态序列(即不知道S),只知道状态转移的概率(即只知道A),即模型的状态转换过程是不可观察的(隐蔽的) ,而可观察事件的随机过程是隐蔽状态转换过程的随机函数。

隐马尔可夫模型五元组\lambda = (S,O,\pi ,A,B),其中S为状态集合,O为每个状态可能的观察值,A为状态转移矩阵,B为给定状态下观察值的概率分布,\pi为初始状态

HMM的特点:

  • HMM的状态是不确定或不可见的,只有通过观测序列的随机过程才能表现出来
  • 观察到的事件与状态并不是一 一对应,而是通过一组概率分布相联系
  • HMM是一个双重随机过程,两个组成部分:

        马尔可夫链:描述状态的转移,用转移概率描述。

        一般随机函数:描述状态与观察序列间的关系, 用观察值概率描述。

HMM的三个假设:

  • 马尔可夫性假设(状态构成一阶马尔可夫链)
  • 不动性假设(状态与具体时间无关)
  • 输出独立性假设(输出仅与当前状态有关)

HMM的结构:

HMM的评估问题: 

 序列概率P(O|\lambda )的定义:

计算P(O|\lambda )

(1)前向算法:利用动态规划使用递归来降低计算复杂度

时间复杂度:O(N^2T)

 

HMM的解码问题:

 viterbi搜索算法:利用动态规划使用递归来降低计算复杂度

HMM在序列标注中的应用:

例1:

 

例2:

(4)神经网络序列标注模型

双向RNN+softmax模型存在的问题:输出之间彼此独立。

双向RNN+softmax改进:双向RNN+CRF


4. 序列生成

序列生成任务是NLP中的常见的重要任务之一,应用非常广泛,例如机器翻 译‚自动文摘、机器阅读理解、对话生成 、自动生成字幕等多项任务。

(1)Seq2Seq模型的输出产生方式

  • 生成式模型Decoder

        根据编码端形成的输入表示和先前时刻产生成的输出tokens,生成当前输出 token ( 编码端和解码端有各自词表,二者可相同或不同 。解码端需处理 集外词OOV,一般用UNK 代替)

    分类:基本RNN架构生成框架、RNN+Attention架构生成框架、Transformer架构生成模型

  • 选择式模型Decoder

        根据编码端形成的输入表示和先前时刻产生成的输出tokens,从输入端选择 一个token作为输出 token ( 解码端和编码端词表相同)

  •  选择-生成式模型Decoder

        根据编码端形成的输入表示和先前时刻产生成的输出tokens,生成或从输入 端选择当前输出token ( 编码端和解码端有各自词表,二者可相同或不同 。 解码端需处理集外词OOV,一般用UNK 代替,该方法可有效的处理输出端 的OOV 问题)

(2)生成式模型Decoder

  • 基本RNN架构生成模型

  • RNN+Attention架构生成模型

 

  • Transformer架构生成模型

transformer模型特点:

  • 全部采用Attention机制
  • 克服了RNN无法并行计算的缺点,可以高度并行,训练速度快;
  • 具有捕捉长距离依赖的能力,有较高的建模能力

transformer模型结构:

  • 编码端:6层Attention堆叠,包含2个子层(Multi-head attention 和Feed Forward Network)
  • 解码端:6层Attention堆叠,包含3个子层(Multi-head attention ,cross-attention和 Feed Forward Network)
  • 交叉注意力部分:解码端的每一层与编码端的最后输出层做 cross-attention

transformer模型的encoder的输入:

        词向量的embedding + positional encoding

transformer模型的encoder的输出:

        词向量的深层表示,作为decoder里每一层中多头注意力层的K和V

transformer模型的decoder的输入:

        词向量的embedding + positional encoding

transformer模型的decoder的输出:

        输出结果

transformer模型的训练:

transformer模型的预测:

(3)选择式模型Decoder

生成式模型Decoder的缺点:输出词表是固定的,无法解决输出词表需按输入情况动态变化的问题

  • 指针网络:

  • 指针网络的应用:指针网络在 NLP 领域有广泛的用途,如文本摘要,阅读理解等从输入序列选 输出序列的一系列复制类型的任务。指针网络也适合用于解决OOV(out of vocabulary)类问题

(4)选择-生成式模型Decoder

指针网络的缺点:输出直接从输入中选择,输出词表与输入词表相同,无法处理输出需要产生输入词表以外词的情况。

生成网络的缺点:高度的依赖词的的表征,当遇到OOV(Out-of-vocabulary)会出现 表达不准确。而实际应用中,有些场合仅仅需对该生僻词逐字保留即可

(5)序列生成模型评价指标

  • BLEU值:

  • RGOUGE值:

 (6)序列生成模型存在问题

曝光偏差问题(Exposure Bias):一旦在预测前缀的过程中存在错误,会导致错误传播,使得后续生成的序列也会偏离真实分布。

解决方法:Scheduled Sampling:在训练过程中,混合使用真实数据和模型生成数据 。

训练-评价目标不一致的问题:序列生成模型一般采用和任务相关的指标来进行评价,比如BLEU、GOUGE等,而训练时使用最大似然估计,这导致训练目标和评价方法不一致。

解决方法:可采用强化学习的策略进行模型训练


第 7 章 预训练语言模型

预训练语言模型是采用迁移学习的方法(归纳迁移学习)通过自监督学习从大规模数据中获得与具体任务无关的预训练模型 ,然后用训练好的预训练 模型提高下游任务的性能的一种数据增强法。

1. 预训练,精调范式(pre-train, fine-tune)

训练过程:

  • 第一个阶段Pre-training:利用大型语料库完成预训练模型非监督学习
  • 第二个阶段fine-tuning:针对特定任务在相应数据集中进行监督学习,通过 Fine-tuning 技术来适配具体任务。

(1)EMLO模型

(2)GPT

GPT 采用了 Transformer 的 Decoder 部分,并且每个子层只有一个 Masked Multi Self-Attention(768 维向量和 12 个 Attention Head)和一个 Feed Forward (无普通transformer解码器层的编码器-解码器注意力子层) ,模型共叠加使用了 12 层的 Decoder

 训练过程:

  • 第一个阶段 Pre-training :主要利用大型语料库完成非监督学习;

  • 第二个阶段 Fine-tuning:针对特定任务在相应数据集中进行监督学习,通过 Fine-tuning 技术来适配具体任务。

上图是对不同任务进行微调的输入转换。

  • 将所有的结构化输入转换为 Token 序列,
  • 然后使用预训练模型(Transformer)进行处理,
  • 最后使用线性和 Softmax 层完 成特定的监督学习任务。 

微调调参方式: 

(3)BERT

BERT是多任务学习:

  • 语言模型任务
  • 判断两个文本谁在前谁在后

使用堆叠的双向Transformer Encoder,在所有层中共同依赖于左右上下文基 础版是12个Encoder (12层 );高级版24个Encoder (24层 )

训练过程:

  • 第一个阶段 Pre-training:主要利用大型语料库完成非监督学习

(1)基于MLM的训练方法

        随机遮住15%的单词作为训练样本。其中:80%用 masked token 来代替, 10%用随机的一个词来替换,10%保持这个词不变。

        

(2)基于NSP的训练方法

        正样本和负样本比例是1:1,50%的句子是正样本,即给定句子A和B,B是A的实际语境下一句;负样本:在语料库中随机选择的句子作为B。通过两个特定的 token[CLS]和[SEP]来串接两个句子,该任务在[CLS]位置输出预测

        

优化目标:Total loss = Masked Language Model loss + Next Sentence Prediction loss

  • 第二个阶段 Fine-tuning:针对特定任务在相应数据集中进行监督学习,通过 Fine-tuning 技术来适配具体任务。
  1. 分类任务匹配任务利用[CLS]位置的embedding
  2. 序列标注任务利用每个 token 的输出 embedding
  3. 序列生成任务(选择式生成)第二句 token 输出 embedding

(4)BART

BERT的缺点:具备双向语言理解能力的却不具备做生成任务的能力。

GPT的缺点:拥有自回归特性的却不能更好的从双向理解语言。

BART:采用标准Transformer结构

训练方法:

  • Pre - Training

五种加噪音的方法:

  1. Token Masking:与BERT的[Mask]策略相同
  2. Token Deletion:随机删除某些ToKen,相比较于Token Masking 模型必须决定哪个位置是遗漏的。
  3. Text Infilling:同时选中连续的 Token 替换为一个[MASK], 或在原始数据种随机插入MASK Token (没有数据缺失情况下)模型不知道[Mask]对应多少 Token,也不知道Token 是否有效(让模型学习能力强大)
  4. Sentence Permutation:将一个文档种的句子之间顺序打乱。
  5. Document Rotation:从文档中随机选一个Token作为整个文档的起始Token, 对文档轮换,此任务训练模型以识别文档的开始Token。
  • Fine-tuning

(5)T5

给整个 NLP 预训练模型领域提供了一个通用框架,把所有NLP任务都转化成一种形 式(Text-to-Text),通过这样的方式可以用同样的模型,同样的损失函数,同样的训练过程,同样的解码过程来完成所有 NLP 任务。

T5的输入输出格式:

训练过程:

  • Pre - Training

获得了完整的 T5 模型,还有它的训练方法。

  1. Transformer Encoder-Decoder 模型;
  2. BERT-style 式的破坏方法;
  3. Replace Span 的破坏策略;
  4. 15 %的破坏比;
  5. 3 的破坏时小段长度。
  • Fine - tuning


2. 预训练,提示,预测范式(pre-train, Prompt, Predict)

不通过目标工程使预训练的语言模型(LM)适应下游任务,而是将下游任务建模的方式重新定义(Reformulate),通过利用合适prompt 实现不对预训练语言模型改动太多,尽量在原始 LM上解决任务的问题

Prompt主要问题:

  • 输入端:怎么样选取合适的Prompt,适配不同任务,同时把模型潜能激发 出来(怎么 把Prompt结合输入的句子构成模型的输入)

        两种形式:

                1. 完形填空:「这个饼不错 ],太 [Z],

                2. 前缀提示:「好好学习」,翻译成英文:[Z]

  • 输出端:模型的输出( Answer)可能与标签不同,拿到answer后如何往 标准化的Y(标签空间)映射

        常见answer形式:

                1. Token:预训练 LM 词汇表中的一个 token,或者词汇子集;

                2. Span:短的 multi-token span,这些通常与 cloze prompt 一起使用;

                3. 句子或文档:这些通常与前缀 prompt 一起使用。

  • Prompting训练策略:怎样利用Prompt机制精调模型(第四范式的微调)

        1. Promptless Fine-tuning:直接使用下游任务进行训练,不用prompt,更新预训练参 数;优点-简单,不需要设计prompt;缺点-小数据集上容易过拟合或者不稳定

        2. Tuning-free Prompting:基于prompt直接生成答案,无需调参。优点-简单高效;缺 点-需要较重的prompt设计

        3. Fixed-LM Prompt Tuning:固定预训练参数,调整prompt参数,使下游任务更好作 用于prompt的产生;优点-适合小样本学习;缺点-不适合零样本学习,prompt模版 通常不再是人工设计的

        4. Fixed-Prompt LM Tunin:固定prompt参数,调整预训练参数

        5. Prompt+LM Fine-tuning:调整prompt参数,调整预训练参数。适合大数据集,小数 据集易过拟合


NLP的四个范式:

第一范式指的是引入神经网络之前NLP领域的处理方法,提取出自然语言语料库中的一些特征,利用特定的规则或数学、统计学的模型来对特征进行匹配和利用,进而完成特定的NLP任务。常见的方法比如贝叶斯、veterbi算法、隐马尔可夫模型等等,来进行序列分类、序列标注等任务。

第二范式指的是神经网络引进之后,预训练模型出现之前NLP领域的研究方法,这类方法不用手动设置特征和规则,节省了大量的人力资源,但仍然需要人工设计合适的神经网路架构来对数据集进行训练。常见的方法比如CNN、RNN、机器翻译中的Seq2Seq模型等等。

第三范式指的是先在大的无监督数据集上进行预训练,学习到一些通用的语法和语义特征,然后利用预训练好的模型在下游任务的特定数据集上进行fine-tuning,使模型更适应下游任务。GPT、Bert、XLNet等模型都属于第三范式,其特点是不需要大量的有监督下游任务数据,模型主要在大型无监督数据上训练,只需要少量下游任务数据来微调少量网络层即可。

第四范式指的是将下游任务的建模方式重新定义,通过合适的prompt来实现直接在预训练模型上解决下游任务,这种模式需要极少量(甚至不需要)下游任务数据,使得小样本、零样本学习成为可能。

第三范式和第四范式的区别:第三范式的fine-tuning过程是调整预训练模型,使其更加匹配下游任务,那么第四范式就正好相反,prompt过程则是调整下游任务,使其更加匹配预训练模型。也就是第三范式是预训练模型迁就下游任务,而第四范式是下游任务迁就预训练模型。


第 10 章 信息抽取

1. 信息抽取概述

信息抽取:从自然语言文本中抽取指定类型的实体、 关系、 事件等事实信息,并形成结构化数据输出的文本处理技术

从处理文档类型分为:

  • 结构化数据(Structured Data):一般指带有严格格式信息的数据,如:数据库中的表格,以及XML数据等等。
  • 半结构化数据(Semi.-structured Data):指带有一定格式信息,但又不很明确的数据,如网页、论文、邮件等
  • 无结构数据(Un-structured Data): 主要指完全没有结构信息的自由文本 (Free Text)

从发展时间和处理文档分为:

  • 限定域信息抽取:处理的文档给定(无结构信息的自由文本),抽取的实体,实体关系,事件类型给定。
  • 开放域信息抽取: 针对互联网范围,实体,关系和事件的类型不确定

2. 实体识别与抽取

(1)限定域命名实体识别

  • 限定实体类别:限定识别七类命名实体 (人名、 机构名、 地名、 时间、日期、 货币和百分比)
  • 限定目标文本:封闭文本语料(有标注)

NER可以分成两个子任务:

(1)发现命名实体(实体边界识别) (2)分类命名实体(确定实体类别 )

  • 基于规则或字典的方法

  • 统计学习方法

  •  基于神经网络方法

用序列标注方法解决。

  • 优势 : 神经网络可自动提取特征。
  • 模型:CNN+RNN,RNN+CRF ,BERT 等

        利用BERT,实验中命名实体识别可达到 96%以上的准确率,

        但在真实的应用环境中, 命名实体识别的性能会不理想 ,主要局限如下:

  • 真实世界中许多实体类型更多、 更细,
  • 存在实体类别是未知、 或随时间演化的情况
  • 文本不规范、 存在很多噪音

(2)开放域命名实体识别

  • 不限定实体类别:可以是任何类型的实体。如 维基百科条目等
  • 不限定目标文本:大规模开放语料。如 Web页面,真实世界信息(无标注)

任务:给定某一类别的实体实例, 从大规模开放语料中抽取同一类别其他实体实例

例如:给出<北京,上海,广州>(称为“种子”) 找出其他城市<武汉,沈阳,深圳>

步骤:

问题:

  •  初始信息少:语义类别难以确定。在没有给定语义类别标签情况下,种子实体可能会同时属于多个语义类,使得目标语义类别的确定非常困难。
  • 目前的自定义模板和简单统计得到的上下文模板对语义类别的描述能力有限:目前模板主要包括自定义的语义模板及简单统计得到的上下文模板。这类模板与特定的数据格式和上下文密切相关对语义类别的描述能力有限。
  • 数据源的质量层次不齐:目前实体抽取数据源有普通网页、查询日志、维基百科等,这些数据源的质量层次不齐,严重影响了实体抽取的性能;对文档的预处理效果也 会影响抽取性能,如,分词问题:未知实体往往在分词过程中被分开等。
  • 缺乏公认的评测,造成不同方法之间横向可比性差。

3. 实体消歧

歧义:一个实体指称项可对应到多个真实世界实体(或实体概念)

同指:表示两个或两个以上的词或短语指向相同对象

任务:实体消歧共指消解

实体消歧难点:

  • 实体消歧目标不明确
  • 指称项的歧义性
  • 指称项的多样性

实体消歧方法:

  • 实体聚类消歧法

基本思想:同一指称项具有近似的上下文利用聚类算法进行消歧。把所有实体指称项按其指向的目标实体进行聚类,使每一个实体指称项对应到一个单独的类别

具体有:词袋模型(Bagga et al., COLING, 1998)、语义特征(Pederson et al., CLITP, 2005) 、社会化网络(Bekkerman et al., WWW, 2005) 、维基百科的知识(Han and Zhao, CIKM, 2009) 、多源异构语义知识融合

  • 实体链接消歧法

基本思想:实体链接指的是将文本中的指称项正确链接到知识库中正确的目标实体 (一个实体名通常会指代知识库中的多个实体。)

步骤:

  1. 候选实体的发现:给定实体指称项,链接系统根据知识、规则等信息找到实体指称项的所有候选实体
  2. 候选实体的链接:系统根据指称项和候选实体之间的相似度等特征,选择相似度最大的候选实体

具体有:

  • 单一实体链接:BOW模型 (Honnibal TAC 2009, Bikel TAC 2009) 、加入候选实体的类别特征( Bunescu et al., EACL 2006)、加入候选实体的流行度等特征( Han et al., ACL 2011)
  • 协同实体链接:利用实体之间类别的共现特征( Cucerzan, EMNLP 2007)、利用实体之间链接关系( Kulkarni et al., KDD 2009)、利用同一篇文档中不同实体之间存在的语义关联特征 ( Han et al.,SIGIR 2011)

4. 关系抽取

关系抽取是自动识别由一对概念和联系这对概念的关系构成的相关三元组

例如:

比尔盖茨是微软的CEO   结果:CEO(比尔盖茨, 微软)、

信工所在树村路              结果:Located-in (信工所, 树村路)

分类:

  • 按实体间关系抽取流程分为:

(1)流水线式抽取(Pipline):把关系抽取的任务分为两个步骤:首先做实体识别,再抽取出两个实体的关系。

(2)联合抽取(Joint Extraction):一步到位,同时做好了实体和关系的抽取。

两种方法局限性:流水线式抽取会导致误差在各流程中传递和累加,而联合抽取的方式则实现难度更大。

  • 按实体间关系是否明确定义分为:

(1)限定域关系抽取任务:给定实体关系类别, 给定语料, 来抽取目标关系对

特点:专家标注语料, 语料质量高;抽取的目标类别已经定义好;有公认的评价方式

实现算法:手写规则, 监督学习算法

(2)非限定域关系抽取任务:限定域的实体关系抽取任务需要预先定义关系类型体系,然而定义一 个全面的实体关系类型体系是很困难的。非限定域实体关系抽取技术 不先定义关系类别,关系类别自动获取

特点:文本:有噪音、有冗余的海量网络数据;不限定关系类别

实现算法:半监督学习算法( Bootstrapping/Distant Supervision),无监督算法

分类:

a. 利用知识库:利用已有知识库中现有实体关系作为辅助信息来进行实体关系抽取。实体之间关系不限定,但实体间关系明确,主要根据知识库中的关系定义

b. 开放域抽取:实体间关系不明确,根据任务需关系类别自动获取

  • 按实体间关系抽取实现算法分为:

(1)手写规则

(2)监督学习算法

(3)半监督学习算法

(4)无监督算法

(1)限定域关系抽取

  • 规则方法:首先构建规则,通常信息为:词汇、句法、语义等分析时,用模式匹配文本片段

优点:准确度比较高(一旦匹配,基本正确)

缺点:召回率与准确率呈跷跷板,准确率高时,覆盖性难以保证规则的构建需要“专家级”人参与,且工作量巨大

  • 基于统计的抽取方法:将关系实例转换成高维空间中的特征向量或直接用离散结构来表示, 在标注语料库上训练生成分类模型, 然后再识别实体间关系

基于特征向量的方法、基于核函数的方法

  • 基于神经网络的抽取方法:设计合理的网络结构, 从而捕捉更多的特征信息, 进而准确的进行关系分类

单一关系抽取(流水线):先对自然语言文本进行进行实体标记给出实体,然后根据标记好实体的句子进行关系的分类。

联合抽取:同时进行实体识别和关系的抽取

(2)非限定域关系抽取

  • 利用知识库

远程监督关系抽取基于假设:对于一个已有的知识图谱(论文用的Freebase)中的一个三元组(由一对实体和一个关系构成),假设外部文档库(论文用的 Wikipedia)中任何包含这对实体的句子,在一定程度上都反映了这种关系。

在这个假设的基础上,远程监督算法可以基于一个标注好的小型知识图谱, 给外部文档库中的句子标注关系标签,相当于做了样本的自动标注,因此是一种半监督的算法。

训练方法:用命名实体识别工具,把训练语料库中句子的实体识别出来。 如果多个句子包含了两个特定实体,而且这两个实体是Freebase中的实体对(对应有一种关系),那么基于远程监督的假设,认为这些句子都表达了这种关系。于是从这几个句子中提取文本特征,拼接成一个向量,作为这种关系的一个样本的特征向量,用于训练分类器。

分类器的特征:

  • 词法特征:词法特征描述的是实体对中间或两端的特定词汇相关的信息
  • 句法特征:论文中的句法特征就是对句子进行依存句法分析(分析词汇间的依存关系,如并列、从属、递进等),得到一条依存句法路径,再把依存句法路径中的各成分作为向量,拼接起来。

  • 实体标签特征:论文中做命名实体识别用的是斯坦福的NER工具包。把两个实体的标签也作 为特征,拼接起来。

优点:

  • 单独的某个句子可能仅仅包含了这个实体对,并没有表达Freebase中的关系,那么综合多个句子的信息,就可以降低噪音数据的影响。
  • 可以从海量无标签的数据中获取更丰富的信息,提高分类器的准确率

远程监督的提出使得快速、大规模构建关系抽取数据集变为了可能

缺点:

假设中如一个实体对在Freebase中,只要句子中出现了这个实体对,就假定关系为Freebase中的这种关系,这种假设条件太强,会引入很多噪音

远程监督最大的问题在于样本噪声

基于深度学习的远程监督方法目前的几种基本思路:

  • 隐式处理噪声:在训练过程中,通过对bag中的样本进行软加权等方式来降低标签噪声样本的影响,这类方法一般需要特殊设计的模型,但效果普遍较好。
  • 显式处理噪声:在进行模型训练前,先通过一定的方式来检测噪声样本并进行处理, 得到一个处理后的数据集,并用这个数据集训练一个关系抽取模型。这类方法一般比较难,普遍采用强化学习等方式进行。但这类方法的优点在于应用性比较强,可以将处理好的数据集应用于任何一个模型中,从而提升模型的关系抽取效果。
  • 外部信息辅助:可以认为远程监督的标签是一种比较弱的监督信息,在此基础上可以加入一些外部的辅助信息,如将图谱补全任务加入进行联合学习;或者加入一些无监督、弱监督的信息等,来辅助进行关系抽取,消除噪声的影响。
  • 开放域关系抽取

步骤:

  1. 预处理模块:对网页进行正文提取,然后把正文转换成带自然语言标记( 断句, 分词、词性标注、命名实体识别 ) 的句子集合。
  2. 生成候选三元组模块:生成候选的三元组。
  3. 生成关系指示词词表模块:从候选三元组得到的候选关系指示词集合。但其中包含了大量的噪声,为了提高关系指示词抽取的准确率,对候选关系指示词集合需进行排序和过滤 
  4.  去噪:生成去噪后的关系指示词词表
  5. 实体关系类型体系自动构建: 选择一聚类方法对关系指示词进行聚类。如,层次聚类、近邻传播算法等

5. 事件抽取

主要研究如何从描述事件信息的文本中抽取出用户感兴趣的事件信息并以结构化的形式呈现出来(从无结构化数据中抽取结构化事件信息)

事件基本元素:时间,地点,人物,原因,结果

事件抽取相关概念:

事件抽取任务步骤:

  • 事件检测:触发词识别,触发词类型分类

(1)候选事件的抽取:

  1. 预处理所要分析的文章,包括分句和分词
  2. 针对每一个句子,查看组成它的词语是否有“触发词”
  3. 若存在触发词,则认为这个句子是一个候选事件,候选事件类别为触发词所对应的类型。

(2)候选事件的分类:

  1. 根据触发词将候选事件分类
  2. 采用最大熵分类器利用触发词+其他特征对候选事件分类
  • 元素抽取:元素识别,元素角色分类 

        事件类别的确定后,就可获得该类事件的模板,即获得了要抽取的论元角 色标签。论元角色由论元与触发词之间的语义关系决定,大部分情况下为 实体、时间和数值,所以论元角色的识别就是判断事件句中的实体、时间 和数值(以下简写作etv)是否为论元,如果是则分配相应的角色。实际是一 个多分类问题

        序列标注问题:实现方法可采用CRF模型进行论元角色识别

(1)模式匹配的方法

(2)基于概率统计的方法

(3)神经网络的方法:利用神经网络自动从文本中获取特征进而完成事件抽取


第 11-1 章 问答系统

问答系统(QA)是一个人与计算机交互的过程。其中包括了解用户的需求,(通常以自然语言查询语句表示);从选定的资源中检索相关的文档、数据或知识,产生相应答案并以有效的方式回答问题。


1. 专家系统

问题限定领域;数据基于结构化领域知识数据。它们的后台有一个数据库,保存系统可提供的各种数据。而在用户提问时,系统把用户的问题转换成SQL查询语句,从数据库中查询到数据提供给用户。


2. 检索式问答系统

问题领域开放,基于非结构化Web数据;检索内容为简短的词或词组

(1)问题分析模块

  • 检测问题类型、答案类型、关注点、关系等
  • 问题改写为查询,输入搜索引擎

(2)文档与段落检索模块

  • 检索相关文档
  • 相关文档划分为片段,对片段进行排序

(3)答案抽取模块

  • 在相关片段中抽取备选答案
  • 对备选答案进行排序

(1)流水线方式的问答系统

  • Document Retriever
  1. 计算文档的TF-IDF加权的unigram/bigram 向量表示
  2. 基于问题和文档的向量表示的相似度,对文档排序,选择Top K 文档
  • Document Reader

        特点:将答案抽取转化为抽取式阅读理解问题

        输入:一个文档段落,一个自然语言描述的问题

        输出:段落中抽取的答案片段

(2)端到端方式的问答系统

  • Retriever-Reader的联合学习
  • 基于预训练的Retriever-Free方法

特点:

  • 在非结构化数据上的大规模预训练模型在不需要检索外部知识的情况下,在开放域QA上获得了和有监督方法匹敌的效果
  • 模型效果很大程度上受模型规模的影响。一个11B T5模型的效果和基于3个Bert的 DPR模型(330M)效果相近

3. 社区问答系统

根据用户所提问题,找到社区中与之相应的答案

(1)问题分析

        在问题分析部分,与问答式检索系统的问题分析部分基本一样, 区别在专家系统和问答式检索系统一般都只能处理客观、事实类型的问题。而在社区问答数据中有大量的主观类型的问题,主观问题没有标准答案,而且答案可以多个

(2)信息检索部分

        在信息检索部分,与问答式检索系统不同,基于问题答案对的问答系统已经有了问题和对应的答案,不必在文本中搜寻答案,因此在检索部 分只需找到和问题类似的问题,然后返回答案或者相似问题列表即可。

        关键问题:问题答案对的检索模型(查找相似问题)、问题答案对的相似性判断(查找最优答案)

(3)答案抽取部分

        在答案抽取部分,由于问题答案对已经有了答案,答案抽取最重要的工作就是判断答案的质量。

特点:

  • 包含丰富的元数据,包括用户类型、问题类型、问题发布时间等
  • 问题和答案的文本一般较长,包含大量噪声
  • 答案质量差距很大

优势:

  • 解决个性化、开放域、异构、精确的问题
  • 社区用户相比机器能够更精准理解问题、更高质量回答问题
  • 不断积累丰富的知识

4. 知识库(知识图谱)问答系统

给定自然语言问题,通过对问题进行语义理解和解析,利用知识库进行查询、推理得出答案。

技术挑战:

(1)语言多样性

  • 相同问题有多种语言表达方式
  • 需要把问题映射到知识图谱的实体上

(2)知识图谱搜索规模大

  • 一些freebase中实体包含>160,000邻居

(3)大量复合性问题

解决方法:

(1)语义解析

        偏语言学的方法,主体思想是将自然语言转化为一系列形式化的逻辑形式(logic form),通过对逻辑形式进行自底向上的解析,得到一 种可以表达整个问题语义的逻辑形式,通过相应的查询语句在知识库中进行查询,从而得出答案。

(2)信息抽取

        通过提取问题中的实体,通过在知识库中查询该实体可以得到以该实体节点为中心的知识库子图,子图中的每一个节点或边都可以作为候选答案,通过观察问题依据某些规则或模板进行信息抽取,得到问题特征向量,建立分类器通过输入问题特征向量对候选答案进行筛选, 从而得出最终答案。

(3)向量建模

        根据问题得出候选答案,把问题和候选答案都映射为分布式表达,通过训练数据对该分布式表达进行训练,使得问题和正确答案的向量表达的得分(通常以点乘为形式)尽量高,模型训练完成后则可根据候选答案的向量表达和问题表达的得分进行筛选,得出最终答案。

(4)表示学习法

        问题主题抽取→ 知识子图抽取 → 知识子图表示 → 问题-知识相关性计算

        优点:不需要定义大量模板,端到端学习

        缺点:回答复杂问题差,缺乏可解释性

优势:

  • 人工构建的知识库确保了答案的准确性
  • 常识或“简单”问题容易在知识图谱中找到答案

局限性:

  • 依据知识图谱能够回答的问题十分有限

第 11-2 章 机器阅读理解

1. 机器阅读理解概述

        机器阅读理解其实和人阅读理解面临的问题是类似的,不过为了降低任务难度, 很多目前研究的机器阅读理解都将世界知识排除在外,采用人工构造的比较简单的数据集,在给定的文本或相关内容(事实)的基础上,要求机器根据文本的内容,对相应的问题作出回答;一般回答的是一些非事实性的、高度抽象的需要对语言理解的问题

机器阅读理解与问答系统的区别:

问答系统(QA)考察系统的文本匹配信息抽取能力;

机器阅读理解(MRC)考察系统对于文本细致化的语言理解能力推理能力

机器阅读理解任务分类:

(1)完形填空

  • 提供:文本C,且一个词或实体 a ( a∈C ) 被移除
  • 任务:使用正确的词或实体进行填空(最大化条件概率 P(a |C - {a} )

(2)多项选择

  • 提供:文本C,问题Q ,候选答案列表 A={a1, a2 ,…. an }
  • 任务:从A中选择正确的答案ai (最大化条件概率 P(ai |C ,Q ,A )

(3)片段抽取

  • 提供:文本C,问题Q ,其中 C = {t1, t2 ,…. tn }
  • 任务:从C中抽取连续的子序列 {ti, ti+1 ,…. ti+k } (1 ≤i ≤i+k≤ n) 做为正确答案 (最大化条件概率 P(a |C ,Q )

(4)自由问答(文本生成)

  • 提供:文本C,问题Q
  • 任务:根据文本内容和问题生成答案 a ,a可以是C的子序列,也可以不是C的子序列。 (最大化条件概率 P(a |C ,Q )

阅读理解实现方法:

  • 传统特征工程方法

        优点:解释性强,每一部分的结果都能直观的展现出来

        缺点:需要大量人工构建的特征,特征本身具有局限性;

  • 深层语义图匹配方法

        优点:引入了深层次的语义结构,能够捕捉深层面的语义信息;

                   语义建模方式解释性好,每一部分的语义都能很直观地表示出来;

        缺点:语义结构的定义与问题相关;

                   语义结构的定义十分依赖于人工特征的干预;

                   属于领域相关的方法,应用范围有很大的局限性;

  • 深度神经网络方法

        优点:各种语义单元被表示为连续的语义空间上的向量,可以有效地解决语义稀疏性以及复述的问题;建立一种End-to-End的网络模型;改善了传统方法中的错误级联和语义匹配问题;自动学习文本的语义表示、语义组合以及问答的过程;

        缺点:缺乏引入外部知识进行更深层次推理机制;需要更加复杂的网络模型对MRC过程进行建模与刻画;


2. 神经网络机器阅读理解基本框架

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/小蓝xlanll/article/detail/468885
推荐阅读
相关标签
  

闽ICP备14008679号