自然语言处理NLP面试问题

自然语言处理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、贝叶斯定理

贝叶斯原理:实际上就是求解后验概率。
贝叶斯公式(根据联合概率求得)

自然语言处理NLP面试问题
推导贝叶斯公式
自然语言处理NLP面试问题
根据上边两个条件概率公式即可推导出贝叶斯公式。

; 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 ∏n ​p (x i ​;θ)
那么要优化的目标为:
a r g m a x ∏ i = 1 n p ( x i ∣ θ ) argmax \prod_{i=1}^n p(x_i| θ)a r g ma x i =1 ∏n ​p (x i ​∣θ)

总体X为连续型时:
L ( θ ) = ∏ i = 1 n f ( x i ; θ ) L(θ) = \prod_{i=1}^n f(x_i; θ)L (θ)=i =1 ∏n ​f (x i ​;θ)

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

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 −z 1 ​
原始的条件概率为(w是设定好的向量矩阵,x是特征表示为的向量,b是偏置项。)
p ( Y ∣ X ) = w T x + b p(Y|X) = {w^T}x+b p (Y ∣X )=w T x +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 −w T x +b 1 ​
Sigmoid函数如图所示:

自然语言处理NLP面试问题
如果是二分类的情况,则有:
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 −w T x +b 1 ​
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 −w T x +b e −w T x +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 ∏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
两边取自然对数可得:
∑ 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 ​[y i l o g p (y =1∣x i ,w )+(1 −y i )l o g (1 −p (y =1∣x i ,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))]}−m 1 ​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 ))]
将p ( y = 1 ∣ x i , w ) p(y=1|x^{i},w)p (y =1∣x i ,w )表示为:h ( x i ) h(x^{i})h (x i )
则最终的目标函数为:
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 )=−m 1 ​i =1 ∑m ​[y i l o g h (x i )+(1 −y i )l o g (1 −h (x i ))]

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 ​+θ1 ​x +θ2 ​x 2 +θ3 ​x 3 +θ4 ​x 4
线性回归模型的代价函数:代价函数=损失函数+正则化项
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 (θ)=2 m 1 ​[i =1 ∑m ​(h θ​(x i )−y i )2 +λj =1 ∑n ​θj 2 ​]
备注:λ是正则化参数,参数越大,则对其惩罚的力度也越大,相应的会把所有的参数最小化,能起到规范的作用。θ 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原理

请查看我的另一篇博客文章——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,就是静安附近的电影票价格太贵了,不对,应该说贵的离谱。

Original: https://blog.csdn.net/weixin_42475060/article/details/122257934
Author: ㄣ知冷煖★
Title: 自然语言处理NLP面试问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/528642/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球