NLP相关论点-浅谈

wordpiece

wordpiece的核心思想是将单词打散为字符,根据片段的组合频率,最后单词切分成片段处理,与原来的分词相比,能极大的降低OOV的情况,例如cosplayer,使用分词的话如果出现频率较低则是UNK,但BPE可以将其切分为 cos play er,模型可以根据词根以及前缀等信息,学习到这个词的大致信息,而不是OOV,wordpiece与BPE(子词切分类似)每次从词表中选出两个字词合并成新的子词,与BPE最大的区别是如何选择两个子词进行合并;BPE选择频数最高的相邻子词合并,而wordpiece选择能提升语言模型概率最大的相邻子词加入词表

softmax

  1. 通过softmax函数可以将多酚类的输出值转换为范围在[0,1]、和为1的概率分布。
  2. 引入指数函数对于softmax函数是双刃剑,优点是能够将差距大的数值距离拉的更大。缺点是很容易因为输出节点的输出值比较大而发生数值溢出的现象。
  3. 当使用softmax函数作为输出节点的激活函数的时候,一般使用交叉熵作为损失函数。

sigmoid和softmax的区别和适用范围

  1. 结构上:softmax计算的是一个比重,而softmax只是对每一个输出值进行非线性化。
  2. 结果上:输出都是取值在[0,1]的数,softmax是一个针对输出结果归一化的过程,称为softmax层;而sigmoid只是一个非线性激活过程,称为激活函数。
  3. 应用上:softmax一般用于多分类的结果,一般和one-hot的真实标签配合使用,大多用于网络的最后一层;而sigmoid是原本一种隐层之间的激活函数,但是因为效果比其他激活函数差,目前一般也只会出现在而分类的输出层中,与0 1真实标签配合使用。
  4. 当输出层为一个神经元时,此时会使用sigmoid代替softmax,因为此时还按照softmax公式的话计算值为1。
    在这里插入图片描述

LSTM和GRU的区别

  1. LSTM由输入门、输出门、遗忘门组成。遗忘门的功能是决定应丢弃或保留哪些信息。来自前一个隐藏状态的信息和当前输入的信息同时传递到sigmoid函数中去,输出值介于0-1之间,越接近0意味着越应该丢弃,越接近1越意味着越应该保留。LSTM能够在序列处理中确定哪些信息需要记忆,哪些需要遗忘
  2. GRU由更新门和重置门组成,更新门的作用类似于LSTM中的遗忘门和输入门,他决定了要忘记哪些信息以及哪些信息需要被添加。重置门用于决定遗忘先前信息的程度。GRU的张量运算较少,因此他比LSTM的训练更快一些。
  3. RNN适用于处理序列数据用于预测,但却受到短时记忆的制约,LSTM和GRU采用门结构来克服短时记忆的影响。门结构可以调节流经序列链的信息流。LSTM和GRU被广泛的应用到语音识别、语音合成和自然语言处理等。
  4. GRU参数更少因此更容易收敛,但是数据集很大的情况下,LSTM表达性能更好。
  5. 从结构上来讲,GRU只有两个门(update和reset),LSTM有三个门(forget,input,output),GRU直接将hidden state 传给下一个单元,而LSTM则用memory cell把hidden state包装起来。

损失函数

MSE(Mean Squared Error Loss)均方差损失

  1. MSE均方差损失,最小值为0,最大值为无穷大,Yi与yi分别表示真实值和预测值。**在模型输出与真实高斯分布的假设下,最小化均方差损失函数与极大似然估计 本质上是一致的,所以MSE适合回归任务,不适用于分类任务。
  2. MSE表示预测值与真实值之间的欧氏距离,交叉熵表示的是真实概率分布与预测概率分布之间的差异,线性回归中才有欧氏距离,分类问题中label的值大小在欧式空间是没有意义的,所以MSE适合回归任务。
  3. 当在多分类任务下,MSE对每一个输出结果都看重,而交叉熵只对分类正确的结果看重。MSE与错误的分类有关系,该分类函数能让正确的分类尽量变大,还能让错误的分类变的平均,这对分类问题完全没有必要,但对逻辑回归非常有必要,因为根据欧式距离预测出线的位置,所以交叉熵不适合回归问题。
  4. MSE实际是服从高斯分布的最大似然,交叉熵是服从多项式分布的最大似然,所以MSE更适合回归,交叉熵更适合分类。
    在这里插入图片描述

交叉熵损失Cross Entropy Loss

  1. 交叉熵用于度量两个概率分布间的差异性,交叉熵能够衡量同一个随机变量中的两个不同概率分布的差异程度,在机器学习中表示为真实概率分布与预测概率分布之间的差异
  2. 交叉熵的值越小,模型预测效果就越好
  3. 交叉熵经常搭配softmax、sigmoid等激活函数使用,将输出的结果进行处理,预测范围在0-1,使其多个分类的预测值和为1,再通过交叉熵来计算损失。
    在这里插入图片描述

BERT、RoBERTa、XLNet、ALBERT、ERNIE的区别

BERT

  1. BERT是堆叠了12层transformer的Encoder模块,设计了两个任务完成预训练。
  2. Masked LM:随机mask掉15%的token,其中80%用[MASK]替换,10%随机替换为其他token、10%保留原单词。
  3. Next Sentence Prediction(NSP),二分类的下句预测任务,分析两句话之间的关系。对于每个样本来说都是由A和B两句话构成,其中的情况B确实为A的下一句话(标签为IsNext),另外的情况是B为语料中其他的随机句子(标签为NotNext),然后模型来预测B是否为A的下一句话。

ERNIE

  1. 通过实体和短语mask能够学习语法和句法信息的语言模型。
  2. 在ERNIE中,由多个字组成的phrase或者entity当成一个统一单元,相比于bert基于字的mask,这个单元当中的所以字在训练的时候,统一被mask,对比直接将知识类的query映射成向量然后直接加起来,ERNIE通过统一mask的方式可以在潜在的学习到知识的依赖以及更长的语义依赖来让模型更具泛化性

XLNet

  1. 使用transformer-xl代替了transformer,能获取更长距离的依赖信息
  2. 改动了预训练阶段,BERT在此阶段使用了15%的MASK标志,而XLNet使用PLM重新排列组合,输入序列X,这样不需要MASK标志,能不改变输入顺序,不改变原文就能同时看到上下文信息,他的方式是使用双流自注意力结构
  3. BERT利用上下文单词预测下一个单词,XLNet上下文单词被限制在两个方向,向前或向后。

RoBERTa

  1. 在模型的规模、算力、和数据上:更长的额训练时间,更大的batch size、更多的训练数据。
  2. 在训练方法上:去掉NSP任务,使用动态MASK,对文本编码(用更大的byte级别的BPE)
  3. 动态MASK:BERT依赖随机mask和预测token。原版的BERT实现在数据预处理期间执行一次mask得到一个静态mask。而RoBERTa使用动态掩码,每次向模型输入一个序列时都会生成新的mask模式。这样在大量数据不断输入的过程中,模型会逐渐适应不同的mask机制,学习不同的语言表征。
  4. 去掉NSP:RoBERTa去除了NSP任务,每次输入连续多个句子,直到最大长度512(可以跨文章)。

ALBERT

  1. 两种减少参数的方法:矩阵分解、参数共享
    1. 矩阵分解:在两个大维度之间加入一个小维度,从O(V * H)变为O(V * E + E * H),其中H远大于E,以达到降维的作用
    2. 参数共享:交叉层参数共享
  2. 用SOP代替NSP,SOP补偿了一部分因为embedding和FFN共享而损失的性能。NSP将主题预测和连贯性预测融合起来学习比较困难,而**SOP将副样本换成了同一篇文章中两个逆序的句子,进而消除主题预测。
  3. 使用n-grem MASK

Dropout

  1. 在训练阶段,Dropout通过在每次迭代中丢弃一些神经元来改变网络的结构,以实现训练不同结构神经网络的目的。
  2. 在测试阶段,Dropout会使用全部的神经元。
  3. 相当于之前训练的不同结构的网络都参与了对最终结果的投票,以获得更好的效果。
  4. Dropout能够减少神经元之间复杂的共适应关系,由于Dropout每次丢弃的神经元时随机选择的,所以每次保留下来的网络会包含不同的是警员,这样在训练过程中,网络权值的更新不会依赖于隐节点之间的固定关系,换句话说,网络中每个神经元不会对另一个特定神经元的激活非常敏感,这使得网络能够学习到一些更加泛华的特征
  5. 在RNN中,对于同一个序列,在其所有时刻的循环连接上采用相同的丢弃方法,也就是说不同时刻丢弃的连接时相同的。
  6. Dropout可以应用在普通循环神经结构、长短期记忆网络、门控循环单元等网络中的任何门控单元或隐藏状态向量中。
  7. Dropout时非常重要的环节过拟合的方法。

RNN

  1. 在RNN中,所有循环或重复的结构都共享参数,对于不同时刻的输入,循环神经网络都执行相同的操作。这种共享机制不仅可以极大的减少网络需要学习的参数数量,而且使得网络可以处理长度不固定的输入序列。
  2. 由于这种循环(重复)的结构设计,让网络丧失了学习很久之前信息的能力,这就是循环神经网络中的长期依赖问题
  3. 由于重复使用相同的循环模块,导致网络在信息前向传播和误差反响传播的过程中都出现了矩阵的幂容易造成信息/梯度的消失或爆炸
  4. 解决长期依赖的方式:选择合适的初始化权重和激活函数、加入正则化项等。在时间维度添加跳跃连接构造具有较长延迟的RNN,采用长短期记忆网络,采用其他门控循环单元等。

LSTM

  1. RNN随着输入序列长度的增加,网络无法学习和利用序列中 较久之前的信息,即长期依赖问题。RNN仅有一个隐藏状态单元ht,且不同时刻隐藏状态单元的参数是相同(共享)的。
  2. LSTM在普通的循环神经网络的基础上,增加了一个元细胞状态单元ct,在不同时刻有可变的连接权重,以解决RNN中的梯度小时或爆炸问题。隐藏单元ht和元细胞状态ct二者配合形成长短期记忆。
  3. LSTM引入了门控单元,门控是神经网络学习到的用于控制信号的存储、利用和舍弃的单元。
  4. 对于每个时刻t,LSTM有输入门it,遗忘门ft,和输出们ot,共三个门控单元。每个门控单元的输入包括当前时刻的序列信息xt和上一时刻的隐藏单元ht-1。
  5. 3个门控单元的计算方式相同,(都相当于一个全连接层),仅有权重矩阵和偏置向量不同,常用sigmoid激活函数。
  6. 通过将门控单元与信号数据做逐元素相乘可以控制信号通过门控后要保留的信息量。当门控单元的状态为0,信号会被全部丢弃;当状态为1时,信号会被全部保留;当状态在0-1之间时,信号则会被部分保留。
  7. LSTM通过门控单元以及元细胞状态单元的线性自循环,给梯度的长距离持续流通提供了路径。
  8. LSTM中遗忘门和输出门的激活函数十分重要,删除任何一个激活函数都会对性能造成较大的影响。
  9. LSTM拥有两个状态单元(隐藏状态单元和元细胞状态单元)。

GRU

  1. GRU仅有一个隐藏单元ht,共有两个门控单元(重制门rt和更新门zt),每个门控单元的输入包括当前时刻的序列信息xt和上一时刻的隐藏状态单元ht-1。
  2. 重置门决定先前的隐藏状态单元是否被忽略。更新门控制当前隐藏状态单元是否需要被新的隐藏状态单元更新。GRU用一个更新门实现了遗忘和记忆两个功能。
  3. GRU可以取得与LSTM相当甚至更好的性能,并具有更快的收敛速度。

Seq2Seq

  1. Seq2Seq能将一个可变长序列映射到另一个可变长序列。适用于输入序列和输出序列长度不一样的时刻。
  2. seq2seq基于编码-解码。由于输入输出序列长度不一,所以整个过程需要拆分为对序列的理解和翻译两个步骤,也就是编码和解码
  3. 在应用中,编码器和解码器可以用两个不同的循环神经网络实现,并进行共同训练。
  4. 在训练阶段,可以通过最大化对数似然概率来实现模型的输出解码序列尽可能正确。

存在的问题:
1. 随着序列长度的增加,编码和解码过程中的梯度消失或梯度爆炸问题会更加严重。
2. 由于只用固定大小的状态向量来连接编码模块和解码模块,这就要求编码器将整个输入序列的信息压缩到状态向量中,存在信息损失,序列越长,信息量越大,损失也就越大,从而导致解码器翻译失败。
解决方案:

  1. 将待翻译序列的顺序颠倒后输入编码器,编码器得到的状态向量能更好的关注并保留原句中考前的单词,解码时考前单词的准确率就会提升。由于序列间的依赖关系使考前的单词准确率更为重要,这种方法能使模型更好的处理长句子。
  2. 在处理t时刻的数据时只关注对t时刻有用的信息,也可以提高性能。采用注意力机制,解码器在不同时刻采用的状态向量不再是不变的,而是根据不同时刻的信息动态调整的。

CNN

卷积神经网络如何实现非线性

使用激活层(激励),不然在卷积都是线性变换。所谓激励实际上是对卷积层的输出结果做一次非线性映射,常用sigmoid、tanh、relu

卷积的含义

图像和滤波矩阵做内积操作

CNN简介

  1. CNN是多层感知机(MLP)的变种,采用局部连接和共享权值的方式,减少了权值的数量使得网络易于简化,降低了过拟合的风险。使图像可以直接作为网络的输入。
  2. 通过结构重组和减少权值将特征抽取功能融合进多层感知机,省略识别前复杂的图像特征抽取过程。

CNN各层的作用

  1. 卷积层:提取特征
  2. 池化层pooling:对数据进行收集(多变少)并总结(最大值或平均值)
  3. 全连接层:对前一层线性组合,线性变换。
  4. 激活层:对特征进行非线性变换,赋予神经网络深度的意义,例如sigmoid、tanh、relu

图神经网络GNN

  1. 图神经网络是符号主义和非符号主义相结合的产物,将规则、知识 引入神经网络,使得网络具备了可解释性和推理能力。
  2. 图神经网络可以看作卷积神经网络在图graph上的扩展,将卷积的思想从欧几里得域迁移到非欧几里得域。
  3. 拉普拉斯矩阵的特征值可以类比频域中的频域,而特征向量可以类比为频域中的基波。
  4. 基于图的机器学习任务主要有:点分类、边预测、图分类。
  5. 图神经网络具备:推断关系的能力、充分利用训练数据、模型的输出与节点标号无关。

XGB和LGB的区别

  1. xgboost基于一种划分时对数值进行预排序presort,因此不能处理类别型特征,这种方法好处是能够精确找到分裂点但时间复杂度很高。Light GBM(LGB)基于hist直方图,对于连续性特征将其类别化k类,然后进行hist统计,根据直方图离散值的统计来寻找最优分割点
  2. xgboost生成策略是广度优先level-wise,而LGBM采用的策略是leaf-wise策略,只对能带来最大增益的节点进行分裂。
  3. 分类结果权重上xgb和lgb是基于分类起的错误率有关
  4. RF是并行训练,所有分类器之间没有关系;但是GBDT是串行的,下个分类器是基于上个分类器。

强化学习

  1. 强化学习由智能体(agent,也叫代理)和**环境(environment)组成。智能体代表有行动能力的物体(机器人、无人车、算法本身),环境指的是执行动作时所处的场景。
  2. 强化学习中,外部环境提供的信息很少。且没有带标签的监督信息,智能体需要不断**“试错”来尝试不同的动作。通过自身的经历,采取的策略在交互过程中获得奖励或惩罚的信号**。
  3. 学习算法分为:监督学习、无监督学习、强化学习
    1. 监督学习:能直接获得监督信号的反馈,以此来指导学习过程,对未知数据进行预测。
    2. 无监督学习:任务是找到数据本身的规律或隐藏结构。例如无监督会挖掘用户之前读过的文章特征,并推荐类似的文章。
    3. 强化学习:会与用户不断交互,先推送少量的文章给客户,根据用户的反馈情况构建一个知识图谱,据此确定给用户推荐的文章,并不断更新维护上述知识图谱。

BERT对比word2vec的优点

  1. BERT是大规模预训练的,上下文根据transformer的attention计算。一个词在不同的上下文中词向量不同词向量是上下文相关的。
  2. word2vec根据词频计算词向量。不可以解决一词多义,词向量是固定不变的。

LSTM的三个门是什么,如何解决梯度消失问题

  1. 输入、输出、遗忘
  2. 梯度消失的原因:求梯度反向传播的时候每层神经网络都会乘sigmoid的导数。随着层数的增多求导结果越来越小就是梯度消失的原因,大于1的话梯度会变大造成爆炸。
  3. LSTM把导数相乘改成了相加。因为LSTM对记忆的操作是相加的,线性的,使得不同时序的记忆对当前的影响相同,为了让不同时序的记忆对当前影响变得可控,LSTM引入了输入门和输出门,之后有人对LSTM进行了扩展,引入了遗忘门。
  4. 遗忘门设置为1或5,反向传播不乘系数上下文信息完整传递,抑制梯度消失。但由于有的上下文信息是无关紧要的,所以训练动态调整遗忘门参数。

欠拟合/过拟合 原因/优化方案

过拟合

  1. 现象:训练时候效果很好,损失函数数值可以降的很低,但是到测试数据集的时候表现较差
  2. 原因:原因是过分依赖于现有训练数据集的特征造成的。
  3. 解决方案:1.扩增数据集。2.数据清洗。3.降低模型复杂度。4.设置Early stopping在模型对训练数据集迭代收敛之前停止迭代来防止过拟合。5.设置dropout随机屏蔽一些训练神经元。6.使用正则化 在目标函数之后加上对应的范数(L0、L1、L2)。7.调参 学习率等。

欠拟合

  1. 现象:训练和测试效果都不好
  2. 原因:测试样本的特性没有学到,或者是模型过于简单无法拟合或区分样本。
  3. 解决方案:1.模型复杂化(添加多项式特征、使用更复杂的算法或模型)2.(添加强表达能力的特征)。3.减小正则化参数。4.调参(学习率等)

数据增强的方法

  1. EDA(同义词替换、随机插入、随机替换、随机删除、回译)
  2. 受限变分自编码器VAE在回译的中间过程加一些噪声
  3. 文本生成、对抗生成
  4. 条件生成、使用模型判断可以替换的位置,然后再生成可以替换的词语
  5. UDA(Unsupervised Data Augmentation)使用的语言增强技术–Back-translation:回译能够在保存语义不变的情况下,生成多样的句式。
  6. 图像的话 翻转,旋转,裁剪,缩放,平移,抖动。

BERT如何优化

  1. 微调,调参(batch_size、激活函数、学习率、dropouy等)
  2. 改进掩藏语言模型:BERT模型中,对文本的预处理都按照最小单位进行了切分。例如对英文文本的预处理采用了Google的wordpiece方法以解决其未登录词问题,在MLM中掩盖的对象多数情况下为词根(subword),并不是完整的词;对于中文则直接按字切分,直接对单个字进行掩盖。这种掩盖策略导致了模型对于词语信息学习的不完整。针对这一不足改进了MLM掩盖策略,使用全词覆盖。
  3. 引入降噪自编码器DAE,DAE是一种具有降燥功能的自编码器,旨在将含有噪声的输入数据还原为干净的原始数据。对于语言模型来说,就是在原始语言中加入噪声数据,再通过模型学习进行噪声的去除以恢复原始文本。
  4. 融合外部特征加入模型:例如融合外部知识,特征向量拼接
  5. BERT的改进模型RoBERTa、ALBert等

BERT如何解决长文本

  1. 截断法,直接截断510,但是会损失信息
  2. sliding Window(滑动窗口),sliding Window即把文档分成有重叠的若干段,然后每一段都当作独立的文档送入BERT进行处理,最后再对于这些独立文档得到的结果进行整合
  3. 用XLNET代替BERT

相似度计算的方法有哪些

  1. 用向量计算余弦相似度
  2. BM25
  3. 对比学习
  4. TFIDF
  5. 欧氏距离
  6. 边界距离
  7. 曼哈顿距离

CRF

结合最大熵和隐马尔可夫的优点,发用维特比算法,动态规划思想,进行解码取得分最大值,获取标签约束性,保证合法性。


自己做笔记使用!
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 自然语言处理(Natural Language Processing,简称NLP)是计算机科学与人工智能领域的一个重要研究方向,目的是让计算机能够理解、处理和生成人类的自然语言。NLP-100例是一份经典的NLP问题集合,包含了各种与自然语言处理相关的问题和挑战。 这份NLP-100例涵盖了从基础的文本处理到更高级的自然语言理解和生成的问题。例如,其中包括了文本预处理、词频统计、语法分析、词性标注、实体识别、情感分析、机器翻译等任务。 NLP-100例的目的是帮助研究者和开发者更好地理解NLP领域的核心问题和技术,同时提供一些典型的案例和数据集供实践和研究使用。通过完成这些例题,可以锻炼自己在NLP领域的能力和技术,提高对自然语言的处理和理解能力。 此外,NLP-100例也为研究者提供了一个可以与其他人交流和探讨的平台。研究者可以使用相同的数据集和问题进行实验和评估,从而更好地了解NLP技术的优劣和进展。 总之,NLP-100例是一个对NLP进行实践和研究的重要资源。通过解决这些例题,可以深入理解自然语言处理的基础和技术,掌握各种NLP任务的方法和技巧。同时,它也是一个促进交流和合作的平台,为NLP研究者提供了一个共同的基础和语言。 ### 回答2: 自然语言处理(Natural Language Processing,简称NLP)是研究计算机与人类自然语言之间的交互的一门学科。NLP-100例指的是日本的一个NLP入门教程,包含了100个常见的NLP问题和对应的解答。 NLP-100例涵盖了从文本处理到语义理解等多个方面的问题。其中,一些例子包括:文本的分词、词性标注、句法分析、语义角色标注和文本分类等。 以分词为例,分词是将一段连续的文本分割成词语的过程。在NLP-100例中,可以通过使用Python中的分词工具NLTK(Natural Language Toolkit)来实现分词功能。 另外,对于文本的词性标注,NLP-100例提供了使用POS(Part-Of-Speech)标记对文本中的每个词进行词性标注的方法。可以使用NLTK提供的POS标注工具来实现。 此外,NLP-100例还包括了语义角色标注的问题,语义角色标注是为了确定句子中的谓语动词所承担的语义角色,如施事者、受事者、时间等。可以使用Stanford CoreNLP工具包来实现语义角色标注。 最后,NLP-100例还介绍了文本分类的问题,文本分类是将文本划分到预定义的类别中。可以使用机器学习算法,如朴素贝叶斯或支持向量机(SVM)等来进行文本分类。 通过学习NLP-100例,我们可以了解到自然语言处理的基本方法和技术,并且可以利用这些技术来解决相关的自然语言处理问题。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值