Nlp面试题-互联网

微信,头条,快手, 阿里 的nlp面的问题

1.面试必读:

模型问的比较细,问你的模型基本都是从你的简历中出现的,这也就以为这你平时工作中需要注意一下几点:多读 多记 多重构

  • 1.1多关注一下深度学习相关的公众号,多读,多记
  • 1.2某一具体方向点的知识,最好直接看英文文献,中文翻译的时候,看的似懂非懂,譬如可以看一下 bert的论文,attention is all you need 等,这样理解更深刻。
  • 1.3 多重构多实践,譬如可以自己手动写一下bert方便理解。
  • 1.4 每周工作的时候,需要有业务产出的压力,很多同学都忽略了自己成长的部分。最好是业务成长和个人成长结合起来。譬如有的 需求可能需要规则产出效果,但是也要给自己留出学习的时间。
  • 1.5 工作中 多思考:譬如增加这个模型的意义是什么?是来解决什么问题的?不加会怎么样? 而不是项目完成就完成了。譬如在序列标注中,为什么最后一步要增加CRF,这个的意义是什么? 其实可以在项目过程中,自己多思考,然后做实验看效果,就搞清楚了。
  • 1.6 看面经之后,一定要记录下来自己的理解,形成自己的话,而不是死记 别人的答案。这样 不容易收敛。

2. 具体面试题

  • 2.0 模型= 数据(如何找到训练数据) + 网络结构(用的是cnn还是lstm 等) + loss选取(交叉熵?) + 优化器选取(adam?) + 超参(如何调试)

  • 2.1 lstm 是为了解决rnn的什么问题而提出的,他是如何解决的?如果只是为了解决梯度消失,那直接配一个 skip connection 残差网络是否可以?为什么? (快手+ 头条)
    https://blog.csdn.net/laolu1573/article/details/77470889
    https://zhuanlan.zhihu.com/p/28749444
    答:rnn可以解决 很多序列问题,什么时候用到lstm,视情况而定。 当处理的文本较短的时候,rnn就可以处理的很好,不需要lstm,当处理的文本长的时候,就需要lstm了。因为rnn 解决不了长依赖的问题。考虑一个语言模型,它试图根据前面的单词预测下一个单词。譬如:云彩在天空中。天空这个词 可以通过rnn 预测,不需要lstm也可以。 但在某些情况下,我们需要更多的上下文,再譬如:我在法国出生。。。。我可以说一口流利的法语。
    不幸的是,随着这种差距的扩大,RNNs无法学会连接信息。法语的预测rnn 就搞不定了,需要lstm

  • 2.2 模型优化器 都有哪些?最好的是哪个?它好在哪里? Adam 动态调节学习率 (微信和头条)
    答:批量梯度下降,随机梯度下降,mini-batch 梯度下降…adam
    a. 批量梯度下降BGD:
    优点:对凸函数可以收敛到全局最小值;对非凸函数可以收敛到局部最小值。
    缺点:全部数据都需要参与每一次的参数优化;速度慢;新数据不然容易加入到 训练过程中;消耗大量内存
    b.随机梯度下降 SGD:
    优点:速度快,比较快,并且可以新增样本
    缺点:每一条数据就更新一次参数;loss function 有严重的震荡
    如果learning rate 设置的小一点,SGD和 BGD会有一样的收敛性
    c. MBGD:
    优点:
    缺点1: 不能保证可以很好的收敛。rate 太小 收敛速度会很慢;rate 太大 会错过收敛点。
    缺点2:对于非凸函数,还要避免陷于局部极小值处,或者鞍点处,因为鞍点周围的error是一样的,所有维度的梯度都接近于0,SGD 很容易被困在这里。
    d.Momentum
    就是改变了 参数更新的 公式,在惯性方向收敛的更快了。
    e .Nesterov Momentum , 对 Momentum 做一次优化
    fgh:adagrad,RMSprop,adadelt(adad)

https://blog.csdn.net/SHAOYEZUIZUISHAUI/article/details/81705001

  • 2.3 序列标注里面的 crf是用来干嘛的?它的作用是什么?它是为了解决哪一类case 而出现的?(头条)
    答:序列标注模板用的是BIOE的形式
    B:begin
    I:中间位置
    E: end
    O:other
    假设数据集有两种实体类型:人物(Person)和机构(Organization)。同时假设采用BIO标注体系。因此会有五种实体标签:

    B-Person
    I-Person
    B-Organization
    I-Organization
    O
    如果不用 crf 可能会出现 不是 B开头的标注
    也可以会出现 标注动词开始,标注动词结尾,但是中间有标注名词。
    所以crf的作用是:
    a.句子的开始单词的标签类型应该是B或O,而不是I
    b.限制一些格式。如B-Person I-Person是合理的,B-Person I-Organization是不合理的
    crf如果继续往下问:会设计到 转移矩阵,转移概率,马尔科夫等,可以再看看。

  • 2.4 loss ,尝试过修改loss 吗?(阿里)

  • 2.5 attention的原理是什么?它学的是什么?(微信)

  • 2.6 你知道的loss 都有哪些?(滴滴)

  • 2.7 归一化你都了解哪些? 知道BN么? 它的实现原理是什么?

  • 2.8 你遇到过 梯度消失的问题么? 训练的时候,你是怎么解决的
    答:梯度消失的解决方法有很多 (1)激活函数换成 relu 和 leakrelu;(2) 用lstm 取代 rnn,lstm用很多加法代替乘法。http://keep.01ue.com/?pi=371459&_a=app&_c=index&_m=p

  • 2.9 BN 来解决什么问题?原理是什么?如何使用
    答:可以解决梯度消失;正则化;
    原理 1 每个batch内的某一个维度做 归一化; 2 做完之后做一次线性变换
    使用的的时候,是在 每一层做非线性变换之前加入

  • 2.10 bert的结构,以及 和transformer的关系
    这个一定会问,一定要搞清楚
    transformer 主要包括几部分
    bert的结构是什么

  • 2.11 lstm 和 gru的区别

  • 2.12 gbdt是否需要 归一化?为什么

  • 2.13 如何解决过拟合的问题?

  • 2.14 过拟合的表现是什么

  • 2.15 深度学习 loss不下降的解决方法:
    https://blog.csdn.net/zongza/article/details/89185852

3.算法题

3.1 二叉树,从左边看,输出从左边看到的节点。二叉树的左视图

https://blog.csdn.net/cyong888/article/details/104041939
https://blog.csdn.net/cyong888/article/details/104043634

3.2 一串数字,没有括号,请输入数字之间的 运算符,+ 和 * ,使得 值最大

3.3 二叉树,输出每个叶子节点 从根节点到叶子节点的遍历。

3.4 给定一组单词,编写一个程序,找出其中最长单词,要求这个单词是由这组单词中的其他单词组合而成。

  • 示例输入:cat, banana, dog, nana, walk, walker, dogwalker
  • 示例输出:dogwalker

4. 同学们如果有更好的面试题

可以在评论里面写一下,我会编辑到这个帖子里

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值