NLP面试题目汇总1-5

1.有哪些文本表示模型,它们各有什么优缺点?

  文本表示模型是研究如何表示文本数据的模型,输入是语料库(文档)。
知识点:

  • 词袋模型
  • TF-IDF
  • N-gram

词袋模型与N-gram

  最基本的文本表示模型是词袋模型(Bag of Words)。基本思想是把每篇文章看成一袋子词,并忽略每个词出现的顺序。具体来看:将整段文本表示成一个长向量,每一维代表一个单词。该维对应的权重代表这个词在原文章中的重要程度。
词袋模型
  常用TF-IDF计算权重。公式为:
T F − I D F ( t , d ) = T F ( t , d ) ∗ I D F ( t ) TF-IDF(t,d)=TF(t,d)*IDF(t) TFIDF(t,d)=TF(t,d)IDF(t)
  其中TF(t,d)为单词t在文档中出现的频率,IDF(t)是逆文档频率,用来衡量单词t对表达语义所起的重要性。表示为
I D F ( t ) = l o g 文 章 总 数 包 含 单 词 t 的 文 章 总 数 + 1 IDF(t)=log\frac{文章总数}{包含单词t的文章总数+1} IDF(t)=logt+1
  直观的解释是如果一个单词在非常多的文章里面都出现,那么它可能是一个比较通用的词汇,对于区分某篇文章特殊语义的贡献较小,因此对权重做一定惩罚。
  缺点 单词程度的划分有时候并不是一个好的做法。比如Natural Language Processing一词,单个单词拆分的语义与三个词连续出现的语义并不相同。
  改进 通常可将连续出现的N个单词构成的词组作为一个特征放到向量表示中去。构成N-gram模型

主题模型

  主题模型用于从文本库中发现有代表性的主题(得到每个主题上的词的分布特性),并且能够计算出每篇文章的主题分布。

词嵌入与深度学习模型

  词嵌入是一类将词向量化的模型的统称,核心思想是将每个单词都映射成地位空间上的一个稠密向量。低维空间上的每一个单词也可以看做是一个隐含的主题,只不过不像主题模型中那么明显。
  对有N个单词的文档,词嵌入用K维向量映射单词,可以得到一个N*K的矩阵来表示这篇文档。但是还需要抽象出更高层的特征,通常使用深度学习来得到更高维的特征。

2.Word2vec是如何工作的?它和LDA有什么区别和联系?

  谷歌2013年提出的word2vec是目前最常用的词嵌入模型之一。word2vec实际上是一种浅层的神经网络模型,它有两种网络结构,分别是CBOW和skip-gram。
知识点

  • word2vec
  • LDA

word2vec

  CBOW目标是根据上下文出现的单词预测当前词的生成概率。而Skip-gram根据当前词预测上下文各词的生成概率。

其中 w ( t ) w(t) w(t)是当前所关注的词, w ( t − 2 ) , w ( t − 1 ) , w ( t + 1 ) , w ( t + 2 ) w(t-2),w(t-1),w(t+1),w(t+2) w(t2),w(t1),w(t+1),w(t+2)是上下文单词,这里前后滑动窗口大小均设为2。
  CBOW和skip-gram都可以表示为有输入层、映射层、输出层组成的浅层神经网络。
  输入层中每个单词是由独热编码表示。所有词均表示一个N维向量,N为词汇表中单词的总数。在向量中,每个单词对应的维度为1,其余维度为0。
  在映射层中,K个隐含单元的值可以由N维输入向量以及连接输入和隐含单元的NK维权重矩阵计算得到。
  输出层向量的值可以由隐含层向量(K维),以及连接隐含层和输出层之间的K
N维权重矩阵计算得到。输出层也是一个N维向量,每一维与词汇表中的一个单词对应。最后对输出层向量应用Softmax函数,可以得到每个单词的生成概率。
  接下来需要训练神经网络权重,使得所有单词的整体生成概率最大化。共有两大参数:从输入层到隐含层的一个维度为NK的权重矩阵,从隐含层到输出层的一个维度为KN的权重矩阵。学习权重可以使用BP算法实现。
  训练得到维度为N * K和K * N的两个权重矩阵之后,可以选择其中一个作为N个词的K维向量表示。
  但是由于Softmax激活函数存在归一化项的缘故,推导出来的迭代公式需要对词汇表中的所有单词进行遍历,使得迭代过程非常缓慢。由此产生了Hierarchical SoftmaxNegative Sampling两种方法。

word2vec与LDA区别

  首先,LDA是按照文档中单词的共现关系来对单词按照主题聚类,也可以理解为对“文档-单词”矩阵进行分解,得到“文档-主题”和“主题-单词”两个概率分布。而word2vec实际上是对“上下文-单词”矩阵进行学习,其中上下文由周围几个单词组成,由此学到的词向量更多融入了上下文特征。
  主题模型和词嵌入两类方法最大的不同在于模型本身。
  主题模型是一种基于概率图模型的生成式模型。其似然函数可以写为若干条件概率连乘的形式,其中包含需要推测的隐含变量(即主题)
  词嵌入模型一般表示为神经网络的形式,似然函数定义在网络的输出之上。需要学习网络的权重来得到单词的稠密向量表示。

3.处理文本数据时,RNN比CNN有什么特点?

知识点:

  • RNN
  • CNN

  传统文本处理任务的方法一般将TF-IDF向量作为特征输入,这样实际上丢失了输入的文本系列中每个单词的顺序。
  CNN一般会接收一个定长的向量作为输入,然后通过滑动窗口加池化的方法将原来的输入转换为一个固定长度的向量表示。这样做可以捕捉到文本中的一些局部特征,但是两个单词之间的长距离依赖关系难以学习。
  RNN能够很好处理文本数据变长并且有序的输入序列。将前面阅读到的有用信息编码到状态变量中去,从而拥有了一定的记忆能力。

  一个长度为T的序列用RNN建模,展开后可看做是一个T层前馈神经网络。其中第t层的隐含状态 h t h_t ht编码了序列中前t个输入的信息。可以通过当前的输入 x t x_t xt和上一层神经网络的状态 h t − 1 h_{t-1} ht1计算得到。最后一层的状态 h T h_T hT编码了整个序列的信息,因此可以作为整篇文档的压缩表示。在 h T h_T hT后面加一个Softmax层,输出文本所属类别的预测概率y,就可以实现文本分类。 h t h_t ht和y的计算公式如下:
   n e t t = U x t + W h t − 1 net_t = Ux_t+Wh_{t-1} nett=Uxt+Wht1
   h t = f ( n e t t ) h_t = f(net_t) ht=f(nett)
   y = g ( V h T ) y=g(Vh_T) y=g(VhT)
  其中f和g为激活函数,U为输入层到隐含层的权重矩阵,W为隐含层中从上一时刻到下一时刻转移的权重矩阵。在文本分类任务中,f可以选取Tanh或ReLU函数,g可以采用Softmax函数。
  通过不断最小化损失误差(即输出的y与真实类别之间的距离),可以不断训练网络,使得得到的循环神经网络可以准确预测文本类别。相比于CNN,RNN由于具备对序列信息的刻画能力,往往能得到更加准确的结果。

4.RNN为什么会出现梯度消失或梯度爆炸?有哪些改进方案?

  RNN的求解可以采用BPTT(Back Propagation Through Time)算法实现。实际上是BP的简单变种。RNN设计的初衷在于捕捉长距离输入之间的依赖关系,然而使用BPTT的算法并不能成功捕捉远距离依赖关系,这一现象源于深度神经网络中的梯度消失问题。
  传统的RNN网络梯度可以表示为连乘的形式:
   ∂ n e t t ∂ n e t 1 = ∂ n e t t ∂ n e t t − 1 . ∂ n e t t − 1 ∂ n e t t − 2 . . . ∂ n e t 2

  • 13
    点赞
  • 130
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值