NLP常见面试题

1、什么是困惑度(perplexity)?它在 NLP 中的作用是什么?
困惑度是一种用于评估语言模型通顺程度的方法,测评困惑度的方法为:对测试集中的句子计算语言模型概率,概率越高则语言模型越好。
在这里插入图片描述
由公式可知,句子概率越大,语言模型越好,迷惑度越小。
2、梯度爆炸和梯度消失是什么?如何解决?
反向传播时,如果网络过深,每层梯度连乘小于1的数,值会趋向0,发生梯度消失。大于1则趋向正无穷,发生梯度爆炸。
梯度爆炸 — 梯度剪裁
梯度剪裁:如果梯度过大则投影到一个较小的尺度上
梯度消失 — 使用ReLU 和 PReLU
其他方法:使用 Batch Normalization 、Xavier 初始化和正交初始化(RNN)
3、SVD 的词向量方法和神经网络的词向量方法有什么区别?
SVD 是线性方法,而神经网络是非线性方法。
4、LSTM 的隐层(hidden)和单元状态(cell state)都有哪些信息?
隐层状态ht保存直至当前时刻的所有信息。单元状态ct保存了下一时刻可能会用到的信息。
5、LSTM 模型的参数数量(包括 bias)
在这里插入图片描述
6、LSTM 和 Transformer 复杂度对比
NLP常见面试题_第1张图片
7、self-attention 有哪些优缺点?
优点:

矩阵相乘一步到位捕捉到全局的联系,解决了长距离依赖。
可以并行计算。
缺点:
不能捕捉语序信息(用 Position Embedding 解决)
8、Adam 有哪些优缺点?
优点,Adam 解决了 SGD 的两大问题:

对于非凸函数,容易陷入局部极小值或者鞍点。
对于所有参数使用相同的学习率(对稀疏数据,应该对出现频率低的特征进行大一些的更新,LR随着更新的次数减小)。
缺点:

训练后期学习率震荡可能导致不收敛
动量机制有可能导致越过全局最优解
9、BatchNorm 和 LayerNorm 的区别?
BatchNorm:计算整个 minibatch 的均值和方差
LayerNorm:对单个样本在每一层的输入计算均值和方差
10、为什么 Transformer 使用 LayerNorm 而不是 BatchNorm?
NLP常见面试题_第2张图片
LayerNorm 不受 Batch Size 的影响,并且它作用在单一样本上的效果比在 batch 上更好。
11、GPT 与 BERT 的区别是什么?
GPT 是单向的,BERT 是双向的。
训练方法不同,GPT 是语言模型使用最大似然,BERT 的训练分为 MLM 和 NSP。
12、过拟合,梯度爆炸、梯度消失怎么办?
过拟合出现的原因:

  1. 训练集的数量级和模型的复杂度不匹配。训练集的数量级要小于模型的复杂度;

  2. 训练集和测试集特征分布不一致;

  3. 样本里的噪音数据干扰过大,大到模型过分记住了噪音特征,反而忽略了真实的输入输出间的关系;

  4. 权值学习迭代次数足够多(Overtraining),拟合了训练数据中的噪声和训练样例中没有代表性的特征。

过拟合的解决方案:
1、降低模型复杂度。2、数据增强。3、正则化(l1, l2)。4、dropout。5、早停。6、集成学习。7、重新清洗数据。
梯度爆炸和消失的原因:
1、深层网络的角度:不同的层学习的速度差异很大,表现为网络中靠近输出的层学习的情况很好,靠近输入的层学习的很慢,有时甚至训练了很久,前几层的权值和刚开始随机初始化的值差不多。因此,梯度消失、爆炸,其根本原因在于反向传播训练法则,属于先天不足。
2、激活函数角度:激活函数在两侧出现梯度消失的情况。
梯度爆炸和消失的解决方案:
1、预训练加微调
2、梯度裁剪。
3、使用其他的激活函数如(relu).
4、batchnorm
5、残差结构
6、LSTM
relu的优点:
– 解决了梯度消失、爆炸的问题
– 计算方便,计算速度快
– 加速了网络的训练
relu的缺点:
– 由于负数部分恒为0,会导致一些神经元无法激活(可通过设置小学习率部分解决)
– 输出不是以0为中心的

你可能感兴趣的:(NLP)