自然语言处理NLP面试问题

  • 前言
  • 一、机器学习相关模型
  • 1、朴素贝叶斯
  • 1-1、相关概念介绍
  • 1-2、贝叶斯定理
  • 1-3、贝叶斯算法的优缺点
  • 1-4、拓展延伸
  • 1-4-1、MLE(最大似然)
  • 1-4-2、MAP(最大后验概率)
  • 2、逻辑回归
  • 2-1、推导目标函数
  • 2-2、求梯度
  • 2-3、逻辑回归实战
  • 3、SVM
  • 4、k临近
  • 5、决策树
  • 6、集成方法。
  • 7、CRF
  • 8、HMM
  • 9、解释一下正则化
  • 二、深度学习相关模型
  • 1、CNN
  • 2、RNN
  • 3、LSTM
  • 4、textcnn
  • 5、transformer
  • 6、bert
  • 6-1、bert
  • 6-2、bert衍生模型
  • 6-2-1、Albert
  • 6-2-2、Roberta
  • 6-2-3、XLNET
  • 6-2-4、ERNIE
  • 6-3、bert激活函数
  • 6-4、bert的其他一些问题
  • 三、自然语言处理过程中使用的技巧以及方法
  • 1、Batch Normalization 优缺点
  • 2、分词
  • 3、各种激活函数优缺点
  • 4、word2vec原理
  • 四、以问题为导向
  • 1、如何解决维度灾难?
  • 2、GDBT和XGboost区别、改进?
  • 3、Bert和GPT的区别
  • 4、Bert的优化机制
  • 五、
  • 总结



前言

提前准备总归是好的嘛,为未来做准备!简单的模型对应简单的环境,而复杂的模型对应复杂的环境。由简单模型到复杂模型:LR-SVM-神经网络-深度学习。模型的复杂度源于:模型本身的选择、模型参数的个数、模型的参数空间选择、模型拟合的样本个数。


一、机器学习相关模型

1、朴素贝叶斯

1-1、相关概念介绍

先验概率(边缘概率):某个事件发生的概率,即通过经验来判断事情发生的概率。
条件概率(后验概率):事件A在事件B已经发生条件下的发生概率。
联合概率:两个事件共同发生的概率。
nlp面试问题 nlp算法面试题_自然语言处理
nlp面试问题 nlp算法面试题_条件概率_02
条件独立
nlp面试问题 nlp算法面试题_人工智能_03
注意:朴素贝叶斯定理假设特征之间相互独立。

1-2、贝叶斯定理

贝叶斯原理:实际上就是求解后验概率。

贝叶斯公式(根据联合概率求得)

nlp面试问题 nlp算法面试题_人工智能_04


推导贝叶斯公式

nlp面试问题 nlp算法面试题_条件概率_05

nlp面试问题 nlp算法面试题_人工智能_06


根据上边两个条件概率公式即可推导出贝叶斯公式。

1-3、贝叶斯算法的优缺点

优点
1、对小规模数据的表现很好,能处理多分类任务,适合增量式训练。
2、算法简单,训练速度快。

缺点
1、对缺失数据不太敏感。
2、因为朴素贝叶斯模型假设了属性之间相互独立,这在实际应用中往往是不成立的,在属性之间相关性比较大的时候,分类效果并不好。适合属性之间相关性较小的样本。
3、需要首先知道先验概率。如果先验概率是假设的,那么往往预测结果不会那么准确。
4、对于输入数据的表达形式很敏感。

1-4、拓展延伸

1-4-1、MLE(最大似然)

理解:假设数据服从某个分布(模型已知),但是参数未知,这个时候我们希望对这个参数进行估计,而MLE的思想就是找到一个参数值,使得每条样本出现的概率最大。
似然函数
总体X为离散型时:
nlp面试问题 nlp算法面试题_人工智能_07
那么要优化的目标为:
nlp面试问题 nlp算法面试题_nlp面试问题_08

总体X为连续型时:
nlp面试问题 nlp算法面试题_自然语言处理_09

注意:最大似然估计会寻找关于 θ的最可能的值(即,在所有可能的θ取值中,寻找一个值使这个采样的“可能性”最大化)。

1-4-2、MAP(最大后验概率)

理解:在MLE的基础之上,我们还有一个额外的信息,就是我们知道这个参数也服从某个分布,MAP就是加上这个条件,对我们的参数进行估计。

2、逻辑回归

逻辑回归是一种分类方法,主要用于二分类问题,使用逻辑函数(即Sigmoid函数)。

nlp面试问题 nlp算法面试题_人工智能_10

原始的条件概率为(w是设定好的向量矩阵,x是特征表示为的向量,b是偏置项。)

nlp面试问题 nlp算法面试题_人工智能_11

上述两个式子结合,可以将条件概率和逻辑回归联系到一起,则在特征X的条件下,被划分为Y类别的概率是:

nlp面试问题 nlp算法面试题_nlp面试问题_12

Sigmoid函数如图所示:

nlp面试问题 nlp算法面试题_自然语言处理_13


如果是二分类的情况,则有:

nlp面试问题 nlp算法面试题_nlp面试问题_14

nlp面试问题 nlp算法面试题_nlp面试问题_15

即:

nlp面试问题 nlp算法面试题_人工智能_16

把y=1和y=0的两个式子合并可以得到:

nlp面试问题 nlp算法面试题_面试_17

2-1、推导目标函数

目的:我们需要最大化目标函数。找出使得目标函数最大的w和b。
引入最大似然
nlp面试问题 nlp算法面试题_nlp面试问题_18
两边取自然对数可得:
nlp面试问题 nlp算法面试题_人工智能_19
最大化原函数等价于求最小化函数:
nlp面试问题 nlp算法面试题_条件概率_20
nlp面试问题 nlp算法面试题_nlp面试问题_21表示为:nlp面试问题 nlp算法面试题_nlp面试问题_22
则最终的目标函数为:
nlp面试问题 nlp算法面试题_面试_23

2-2、求梯度

2-3、逻辑回归实战

3、SVM

SVM(一般不会手推,说一下最大间隔、KKT,核)

4、k临近

5、决策树

  • 定义:决策树是一种机器学习的方法,比较常用的决策树有ID3、C4.5和CART,CART的分类效果一般优于其他决策树。
  • 特征:决策树是一种树形结构,其中每个内部结点表示一个属性上的判断,每个分支代表一个判断结果的输出,最后每个叶结点代表一种分类结果。

优点

  • 使用简单的决策规则建立决策树模型,这个过程比较容易被理解。
  • 决策树模型可以可视化,比较直观。
  • 应用范围比较广,既可用于分类也可用于回归。
  • 能够处理数值型和连续的样本特征。

缺点

  • 容易在训练数据中生成复杂的树结构,很容易造成过拟合,而剪枝可以缓解过拟合。常用的方法是限制树的高度。

ID3

  • 以信息论为基础,使用信息增益来选择属性,从而实现对数据的归纳分类;根据信息增益运用自顶向下的贪心策略是ID3建立决策树的主要方法。
  • 优点
  • 建立的决策树规模比较小
  • 查询速度比较快
  • 灵活方便。
  • 缺点
  • 信息增益倾向于取值较多的特征,容易造成误差
  • 没有考虑连续值
  • 无法处理有缺失值的数据
  • 没有考虑过拟合的问题。
  • 容易受到异常值的干扰

C4.5

  • 基于ID3改进的一个分类决策树算法。
  • 改进
  • 不仅使用信息增益,还用信息增益率来选择属性,克服了ID3算法选择属性时偏向选择取值多的属性的不足。
  • 可以对不完整数据进行处理。
  • 在决策树的构造过程中进行剪枝。
  • 优点
  • 支持处理连续值
  • 缺点
  • 容易受到异常值的干扰

CART算法


6、集成方法。

7、CRF

8、HMM

9、解释一下正则化

正则化:将系数估计朝0的方向进行约束、调整或者缩小。也就是说,正则化可以在学习过程中降低模型复杂度和不稳定程度,从而避免过拟合的危险。(即正则化是给损失函数加上一些限制。避免其过拟合)
过拟合函数:过拟合函数往往都是一个高阶多项式,正则化的目的就是使得高次项系数尽可能的为0或者是接近于0。
nlp面试问题 nlp算法面试题_自然语言处理_24
线性回归模型的代价函数:代价函数=损失函数+正则化项
nlp面试问题 nlp算法面试题_自然语言处理_25
备注:λ是正则化参数,参数越大,则对其惩罚的力度也越大,相应的会把所有的参数最小化,能起到规范的作用。nlp面试问题 nlp算法面试题_条件概率_26平方是为了求导方便。
L1、L2正则化:又叫做L1范数、L2范数。目的是对损失函数加上一个约束,减小其解的范围。
L1正则化:逼迫更多w为0,变得稀疏。(Lasso回归)
L2正则化:逼迫所有w尽可能趋向于0但是不为0,顾及到了每一个点。(岭回归)

二、深度学习相关模型

1、CNN

2、RNN

3、LSTM

lstm结构图

4、textcnn

5、transformer

transformer结构图

6、bert

6-1、bert

6-2、bert衍生模型

6-2-1、Albert
6-2-2、Roberta
6-2-3、XLNET
6-2-4、ERNIE

6-3、bert激活函数

6-4、bert的其他一些问题

bert以及衍生模型

三、自然语言处理过程中使用的技巧以及方法

1、Batch Normalization 优缺点

2、分词

3、各种激活函数优缺点

4、word2vec原理


四、以问题为导向

1、如何解决维度灾难?

维度灾难:指的是在建模的过程中,随着特征数量的增多,计算量呈指数级增长的一种现象。
如何解决:主成分分析法PCA、线性判别法LDA、拉普拉斯特征映射。

2、GDBT和XGboost区别、改进?

3、Bert和GPT的区别

结构上的区别:Bert的网络结构类似于Transformer的Encoder部分,而GPT类似于Transformer的Decoder部分。
预训练任务的区别:Bert的预训练任务中,Bert主要使用“填空题”的形式来完成预训练,随机盖住一些输入文字,被mask的部分是随机决定的。而GPT要做的任务是,预测接下来,会出现什么。

4、Bert的优化机制

Bert模型是欠训练的,可以考虑训练的时间更长,添加更多的训练数据,每一批次的训练数据增大。训练更长的句子。

梯度下降
学习率
各个激活函数:Sigmoid、Tanh、Relu、Leaky Relu、Elu
attention
self-attention

去除噪声、数据获取

数据不平衡的处理:重采样、上采样、下采样等等。
文本表示:tf-idf(公式)
词袋模型
word2vec:CBOW,Skip-Gram(公式、训练技巧)
word2vector负采样时为什么要对频率做3/4次方
改进后的word2vec
fasttext,glove,elmo

序列标注:
基于概率模型的方法:HMM,MEMM,CRF(画图,比较差异)
基于深度学习的方法:bi-lstm+CRF

关系抽取:
应用场景:知识图谱。
方法:Bootstrap(半监督方法)
深度学习方法:

熟悉hadoop、spark对海量数据进行处理。

大型任务:
1、文本聚类:
方法:划分法、层次法、基于密度的方法、基于网格的方法。
场景应用案例:数据整理,数据挖掘,用户画像,数据可视化。
2、文本分类:
机器学习:
模型融合的方法:
深度学习的方法:
应用场景:垃圾邮件二分类,新闻主题分类,多标签多分类。
3、文本摘要:
抽取式的
压缩式的
重组法
4、语言生成:
基于概率统计:
基于深度学习:
任务:写诗机器人,聊天任务中的语言生成。
5、机器翻译:
关键技术:编码器-解码器注意力机制。
6、聊天系统:
类型:闲聊,专业领域问答,任务型(基于特定任务,多轮对话)。
任务型机器人:意图识别、词槽填充、对话管理。
强化学习,适合多轮对话。