自然语言处理NLP面试问题
前言
提前准备总归是好的嘛,为未来做准备!简单的模型对应简单的环境,而复杂的模型对应复杂的环境。由简单模型到复杂模型:LR-SVM-神经网络-深度学习。模型的复杂度源于:模型本身的选择、模型参数的个数、模型的参数空间选择、模型拟合的样本个数。
一、机器学习相关模型
1、朴素贝叶斯
1-1、相关概念介绍
先验概率(边缘概率):某个事件发生的概率,即通过经验来判断事情发生的概率。
条件概率(后验概率):事件A在事件B已经发生条件下的发生概率。
联合概率:两个事件共同发生的概率。
p
(
x
,
y
)
=
p
(
x
)
p
(
y
∣
x
)
p(x, y)=p(x)p(y|x)
p(x,y)=p(x)p(y∣x)
p
(
x
,
y
)
=
p
(
y
)
p
(
x
∣
y
)
p(x, y)=p(y)p(x|y)
p(x,y)=p(y)p(x∣y)
条件独立:
p
(
x
,
y
∣
z
)
=
p
(
x
∣
z
)
p
(
y
∣
z
)
p(x,y|z) = p(x|z)p(y|z)
p(x,y∣z)=p(x∣z)p(y∣z)
注意:朴素贝叶斯定理假设特征之间相互独立。
1-2、贝叶斯定理
贝叶斯原理:实际上就是求解后验概率。
贝叶斯公式(根据联合概率求得):
推导贝叶斯公式:
根据上边两个条件概率公式即可推导出贝叶斯公式。
1-3、贝叶斯算法的优缺点
优点
1、对小规模数据的表现很好,能处理多分类任务,适合增量式训练。
2、算法简单,训练速度快。
缺点
1、对缺失数据不太敏感。
2、因为朴素贝叶斯模型假设了属性之间相互独立,这在实际应用中往往是不成立的,在属性之间相关性比较大的时候,分类效果并不好。适合属性之间相关性较小的样本。
3、需要首先知道先验概率。如果先验概率是假设的,那么往往预测结果不会那么准确。
4、对于输入数据的表达形式很敏感。
1-4、拓展延伸
1-4-1、MLE(最大似然)
理解:假设数据服从某个分布(模型已知),但是参数未知,这个时候我们希望对这个参数进行估计,而MLE的思想就是找到一个参数值,使得每条样本出现的概率最大。
似然函数:
总体X为离散型时:
L
(
θ
)
=
∏
i
=
1
n
p
(
x
i
;
θ
)
L(θ) = \prod_{i=1}^n p(x_i; θ)
L(θ)=i=1∏np(xi;θ)
那么要优化的目标为:
a
r
g
m
a
x
∏
i
=
1
n
p
(
x
i
∣
θ
)
argmax \prod_{i=1}^n p(x_i| θ)
argmaxi=1∏np(xi∣θ)
总体X为连续型时:
L
(
θ
)
=
∏
i
=
1
n
f
(
x
i
;
θ
)
L(θ) = \prod_{i=1}^n f(x_i; θ)
L(θ)=i=1∏nf(xi;θ)
注意:最大似然估计会寻找关于 θ的最可能的值(即,在所有可能的θ取值中,寻找一个值使这个采样的“可能性”最大化)。
1-4-2、MAP(最大后验概率)
理解:在MLE的基础之上,我们还有一个额外的信息,就是我们知道这个参数也服从某个分布,MAP就是加上这个条件,对我们的参数进行估计。
2、逻辑回归
逻辑回归是一种分类方法,主要用于二分类问题,使用逻辑函数(即Sigmoid函数)。
g
(
z
)
=
1
1
+
e
−
z
g(z)= \frac {1}{1+e^{-z}}
g(z)=1+e−z1
原始的条件概率为(w是设定好的向量矩阵,x是特征表示为的向量,b是偏置项。)
p
(
Y
∣
X
)
=
w
T
x
+
b
p(Y|X) = {w^T}x+b
p(Y∣X)=wTx+b
上述两个式子结合,可以将条件概率和逻辑回归联系到一起,则在特征X的条件下,被划分为Y类别的概率是:
p
(
Y
∣
X
)
=
1
1
+
e
−
w
T
x
+
b
p(Y|X)= \frac {1}{1+e^{-{w^T}x+b}}
p(Y∣X)=1+e−wTx+b1
Sigmoid函数如图所示:
如果是二分类的情况,则有:
p
(
y
=
1
∣
x
,
w
)
=
1
1
+
e
−
w
T
x
+
b
p(y=1|x, w)= \frac {1}{1+e^{-{w^T}x+b}}
p(y=1∣x,w)=1+e−wTx+b1
p
(
y
=
0
∣
x
,
w
)
=
1
−
p
(
y
=
1
∣
x
,
w
)
p(y=0|x, w)= 1-p(y=1|x, w)
p(y=0∣x,w)=1−p(y=1∣x,w)
即:
p
(
y
=
0
∣
x
,
w
)
=
e
−
w
T
x
+
b
1
+
e
−
w
T
x
+
b
p(y=0|x, w)= \frac {e^{-{w^T}x+b}}{1+e^{-{w^T}x+b}}
p(y=0∣x,w)=1+e−wTx+be−wTx+b
把y=1和y=0的两个式子合并可以得到:
p
(
y
∣
x
,
w
)
=
p
(
y
=
1
∣
x
,
w
)
y
[
1
−
p
(
y
=
1
∣
x
,
w
)
]
1
−
y
p(y|x, w)= p(y=1|x, w)^y[1-p(y=1|x, w)]^{1-y}
p(y∣x,w)=p(y=1∣x,w)y[1−p(y=1∣x,w)]1−y
2-1、推导目标函数
目的:我们需要最大化目标函数。找出使得目标函数最大的w和b。
引入最大似然:
∏
i
=
1
m
p
(
y
i
∣
x
i
,
w
)
=
∏
i
=
1
m
p
(
y
=
1
∣
x
i
,
w
)
y
i
[
1
−
p
(
y
=
1
∣
x
i
,
w
)
]
1
−
y
i
\prod_{i=1}^{m} {p(y^{i}|x^{i}, w)= \prod_{i=1}^{m} p(y=1|x^{i}, w)^{y^{i}}[1-p(y=1|x^{i}, w)]^{1-y^{i}}}
i=1∏mp(yi∣xi,w)=i=1∏mp(y=1∣xi,w)yi[1−p(y=1∣xi,w)]1−yi
两边取自然对数可得:
∑
i
=
1
m
[
y
i
l
o
g
p
(
y
=
1
∣
x
i
,
w
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
y
=
1
∣
x
i
,
w
)
)
]
\sum_{i=1}^{m} {[y^i log p(y=1|x^{i},w)+(1-y^{i})log(1-p(y=1|x^{i}, w))]}
i=1∑m[yilogp(y=1∣xi,w)+(1−yi)log(1−p(y=1∣xi,w))]
最大化原函数等价于求最小化函数:
−
1
m
∑
i
=
1
m
[
y
i
l
o
g
p
(
y
=
1
∣
x
i
,
w
)
+
(
1
−
y
i
)
l
o
g
(
1
−
p
(
y
=
1
∣
x
i
,
w
)
)
]
-\frac{1}{m}\sum_{i=1}^{m} {[y^i log p(y=1|x^{i},w)+(1-y^{i})log(1-p(y=1|x^{i}, w))]}
−m1i=1∑m[yilogp(y=1∣xi,w)+(1−yi)log(1−p(y=1∣xi,w))]
将
p
(
y
=
1
∣
x
i
,
w
)
p(y=1|x^{i},w)
p(y=1∣xi,w)表示为:
h
(
x
i
)
h(x^{i})
h(xi)
则最终的目标函数为:
J
(
W
,
b
)
=
−
1
m
∑
i
=
1
m
[
y
i
l
o
g
h
(
x
i
)
+
(
1
−
y
i
)
l
o
g
(
1
−
h
(
x
i
)
)
]
J(W,b)= -\frac{1}{m}\sum_{i=1}^{m} {[y^i log h(x^{i})+(1-y^{i})log(1-h(x^{i}))]}
J(W,b)=−m1i=1∑m[yilogh(xi)+(1−yi)log(1−h(xi))]
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。
f
(
x
)
=
θ
0
+
θ
1
x
+
θ
2
x
2
+
θ
3
x
3
+
θ
4
x
4
f(x) = θ_0+ θ_1x+θ_2x^2+θ_3x^3+θ_4x^4
f(x)=θ0+θ1x+θ2x2+θ3x3+θ4x4
线性回归模型的代价函数:代价函数=损失函数+正则化项
J
(
θ
)
=
1
2
m
[
∑
i
=
1
m
(
h
θ
(
x
i
)
−
y
i
)
2
+
λ
∑
j
=
1
n
θ
j
2
]
J(θ) = \frac{1}{2m}[\sum_{i=1}^m (h_θ(x^{i})-y^i)^2+λ \sum_{j=1}^n θ_j^2]
J(θ)=2m1[i=1∑m(hθ(xi)−yi)2+λj=1∑nθj2]
备注:λ是正则化参数,参数越大,则对其惩罚的力度也越大,相应的会把所有的参数最小化,能起到规范的作用。
θ
2
θ^2
θ2平方是为了求导方便。
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、聊天系统:
类型:闲聊,专业领域问答,任务型(基于特定任务,多轮对话)。
任务型机器人:意图识别、词槽填充、对话管理。
强化学习,适合多轮对话。
五、
公司:
专业做nlp技术的,卖技术。
百度实习算法岗
参考文献:
贝叶斯公式由浅入深大讲解—AI基础算法入门.
详解最大似然估计(MLE)、最大后验概率估计(MAP),以及贝叶斯公式的理解.
百度百科——最大似然估计.
决策树笔记(入门).
机器学习(二):决策树原理及代码实现.
决策树(Decision Tree,DT).
总结
12月31日✌,和好兄弟去看反贪风暴5,就是静安附近的电影票价格太贵了,不对,应该说贵的离谱。