0%

NLP 面试

v2-4ce31ce804e18089a463534fb58657de_r.jpg

深度学习和 NLP

过拟合欠拟合,偏差方差,正则化, 交叉验证

  1. 怎么判断过拟合, 过拟合如何处理
    定义:过拟合(overfitting)是指在模型训练中由于训练数据包含抽样误差,对抽样误差也进行了很好的拟合。
    表现:模型在训练集上效果好,在测试集上效果差(相差 20% 以上),模型泛化能力弱。
    原因:(1)观察值与真实值存在偏差。(2)训练数据不足,数据太少,导致无法描述问题的真实分布。(3)训练模型过度,导致模型非常复杂。
    处理方法:(1)数据层面上,增加数据或者数据增广 (2)模型层面,主要是降低模型的复杂度:减少数据特征,L1,L2,Droupout,BN,集成学习,早期停止策略 ,使用简单的模型

  2. 怎么判断欠拟合, 欠拟合如何处理
    定义:欠拟合(underfitting)是指模型无法得到较低的训练误差。
    表现:训练的模型在训练集上面的表现很差,在验证集上面的表现也很差。
    原因:模型发生欠拟合的最本质原因是训练的模型太简单,最通用的特征模型都没有学习到
    处理方法:(1)添加新的特征 (2)减少正则化参数 (3)使用更深或者更宽的模型 (4)使用集成方法

3jc2VJ.png

  1. 偏差和方差的定义,为什么要在两者之间进行权衡
    偏差(Bias)表示模型输出与真实值之间的误差,刻画模型的准确度,方差(Variance)表示模型在训练集和验证集之间的误差,刻画模型的稳定性。
    在一个实际系统中,Bias 与 Variance 往往是不能兼得的。如果要降低模型的 Bias,就一定程度上会提高模型的 Variance,反之亦然。造成这种现象的根本原因是,我们总是希望试图用有限训练样本去估计无限的真实数据。当我们更加相信这些数据的真实性,而忽视对模型的先验知识,就会尽量保证模型在训练样本上的准确度,这样可以减少模型的 Bias。但是,这样学习到的模型,很可能会失去一定的泛化能力,从而造成过拟合,降低模型在真实数据上的表现,增加模型的不确定性。相反,如果更加相信我们对于模型的先验知识,在学习模型的过程中对模型增加更多的限制,就可以降低模型的 variance,提高模型的稳定性,但也会使模型的 Bias 增大。因此通常需要在两者之间权衡。

  2. L1 和 L2 正则化的区别,为什么 L1 可以获得稀疏解,L2 解接近于 0?
    L1 正则化就是在 loss function 后边所加正则项为 L1 范数,加上 L1 范数容易得到稀疏解(0 比较多)。L2 正则化就是 loss function 后边所加正则项为 L2 范数的平方,加上 L2 正则相比于 L1 正则来说,得到的解比较平滑(不是稀疏),但是同样能够保证解中接近于 0(但不是等于 0,所以相对平滑)的维度比较多,降低模型的复杂度。

  3. word2vec 如何实现,实现方法有什么区别

  4. 基于业务的问答系统如何设计
  5. 如何训练基于知识图谱的问答系统
  6. 在训练 KBQA 时会用到例如 freebase 这样的开源知识图谱,他们过大的体积在训练中要如何进行优化
  7. 基于匹配的问答系统的关键技术是什么(文本相似度匹配)
  8. 文本相似度匹配有哪些实现方法(转特征求距离,或者使用自然语言推理的模型)
  9. 开放式的对话系统如何训练
  10. transformer 和 RNN 的区别
  11. 推荐系统了解吗,有那两部分(召回和排序)
  12. 怎么抓取热门
  13. 召回有哪些(微博召回怎么做),排序算法了解吗
  14. 小样本数据集怎么做
  15. 样本不均衡怎么搞(重点考核损失函数优化)
  16. AUC 的具体含义
  17. 介绍推荐系统的召回和排序系统,召回系统的输出是什么
  18. RF 和 GBDT 介绍、RF 的属性采样时有放回还是不放回
  19. 手写 LSTM 的公式(手画 LSTM 图)
  20. lightgbm 对缺失值的处理方法
  21. kmeans 的 K 值确定方法
  22. FM(factorization machine)模型的公式写一下,模型解决了什么问题
  23. DIN(deep interest network)主要使用了什么机制,解释一下,画一下 DIN 的框图
  24. DIN 的 activation unit 的作用
  25. 一个模型的 bais 和 variance 的具体定义是什么,bais 和 variance 哪个比较重要,为什么是 trade-off
    任何机器学习算法的预测误差可以分解为三部分,即:偏差 + 方差 + 不可约的误差(对于给定的模型,我们不能进一步减少的误差)。
  26. 泛化误差解释(bais^2+variance+noise)
  27. dropout 的工作机制,dropout 在训练过程如何使用
  28. 聚类算法了解程度、kmeans 介绍、K 值选择、kmeans++ 算法)
  29. 推荐系统还有融合框架,假如通过两种不同的召回和 ranking 系统得到结果,如何在两种备选结果中最终给用户推荐出最适合的十个广告
  30. XGBOOST ,LGB,GBDT 的区别
  31. 一阶优化器,二阶优化器
  32. Attention 怎么做,self-attention 怎么做
  33. Transformer 细节,Bert 细节(多头和缩放)
  34. 标签平滑怎么做的
  35. 交叉熵,相对熵
  36. Bagging, boosting , 偏差,方差关系
    二者都是集成学习算法,都是将多个弱学习器组合成强学习器的方法。
    Bagging:从原始数据集中每一轮有放回地抽取训练集,训练得到 k 个弱学习器,将这 k 个弱学习器以投票的方式得到最终的分类结果。
    Boosting:每一轮根据上一轮的分类结果动态调整每个样本在分类器中的权重,训练得到 k 个弱分类器,他们都有各自的权重,通过加权组合的方式得到最终的分类结果。
  37. CRF 理论与代码实现细节,CRF 与 HMM 关系,区别
  38. 维特比,beam-search 时间复杂度,区别
  39. XGBOOST ,LGB 生长策略,分类策略
  40. 少样本情况怎么缓解
  41. 实际场景做 softmax 很容易出现下溢问题,怎么解决
    可以用每个维度减去一个固定值

  42. 正则项为什么能减缓过拟合

  43. 过拟合解决方法,正则项为什么能减缓过拟合,权重衰减等价于哪个正则项
  44. 随机森林的随机体现在哪里
  45. tm 和 rnn 的区别
  46. LR 和 svm 的区别是什么
  47. lstm 的优点,记忆单元是怎么工作的,他为什么可以克服梯度消失
  48. bp 的原理
  49. bn 的原理
  50. 解释一下 AUC 的计算方法和它代表的意义。问了一个相关的问题,当时没有答的很好,就是一个数据如果分成两份,分别在两份数据上计算出 AUC 为 AUC_1 和 AUC_2,问整体数据的 AUC 是多少?面试的时候一直以为这个是能算出来的,所以一直在推导公式。最后的答案其实是无法得到,因为从局部的有序无法直接退出全局的有序,这个题目其实还是考查对于 AUC 这个指标的理解深度。
  51. word2vec 的两种优化方法,说下分层 softmax 是怎么做的。word2vec 的优点和缺点,是如何解决 oov 的问题的,实际上 word2vec 如何使用
  52. lucene 搜索
  53. 关键字搜索如何实现
  54. 单元测试。
  55. 深度优先和广度优先的本质区别。
  56. 从搜谷歌到返回页面,发生了什么。
  57. batchsize 大或小有什么问题,LR 怎么设置

计算机网络

  1. TCP 和 UDP 的区别
    1、TCP 面向连接(如打电话要先拨号建立连接);UDP 是无连接的,即发送数据之前不需要建立连接
    2、TCP 提供可靠的服务。也就是说,通过 TCP 连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP 尽最大努力交付,即不保证可靠交付
    3、TCP 面向字节流,实际上是 TCP 把数据看成一连串无结构的字节流;UDP 是面向报文的 UDP 没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如 IP 电话,实时视频会议等
    4、每一条 TCP 连接只能是点到点的;UDP 支持一对一,一对多,多对一和多对多的交互通信
    5、TCP 首部开销 20 字节;UDP 的首部开销小,只有 8 个字节
    6、TCP 的逻辑通信信道是全双工的可靠信道,UDP 则是不可靠信道
  2. 线程和进程的区别,如何实现多线程;
  3. L1 范数能否去除冗余特征
  4. 没坐标怎么做 kmeans
  5. 决策树的特征和神经网络特征有什么差异
  6. 句子向量有哪些生成方式
  7. 词袋模型有哪些不足的地方
    稀疏,无序,纬度爆炸,每个词都是正交的,相当于每个词都没有关系。
  8. albert 相对于 bert 的改进
  9. 稀疏词向量 用 skip-gram 还是 cbow 训练好
  10. word2vec 两种训练方式哪种更好?对生僻词谁更好?
  11. 在工程中什么样的结果会表明是 over fitting/under fitting
  12. 对于 CNN 卷积层、和池化层的物理意义是什么,对于池化的 max 方法和 mean 方法 分别适合针对什么情况下应用?
    当 feature map 中的信息都具有一定贡献的时候使用 AvgPooling,比如网络走到比较深的地方,这个时候特征图的 H W 都比较小,包含的语义信息较多,这个时候再使用 MaxPooling 就不太合适了。反之为了减少无用信息的影响时用 maxpool,比如网络浅层常常见到 maxpool,因为开始几层对图像而言包含较多的无关信息。二者的具体使用场景只有在具体任务上观察,实际效果炼丹后才知道。
  13. L2 正则化的 penalize term 和先验有关系嘛?如有是什么样的关系
  14. 树模型怎么剪枝?如何处理缺失值?
  15. 讲讲 Glove 的原理,它和 Word2vec 有什么区别?Fasttext 说一下
  16. 画一下 ELMo 的模型图,讲一下 ELMo 的原理,为什么它能解决词歧义的问题?
  17. 画 Bert 的模型图,讲原理,预训练的过程。Bert 输入是由哪些组成的?Bert 相比于 ELMo 有什么优点?它是怎么用作下游任务的?
  18. Attention 机制的原理,常用的 Attention 计算相似度方式有哪些,写一下公式。
  19. 有分布式训练神经网络的经验吗?多卡跑模型的命令是什么
  20. 简述一种中文分词算法。
  21. 讲一下 Hessian 矩阵? Hessian 矩阵是对称矩阵吗?
  22. SVM 的优化函数讲一下?
  23. 聚类算法了解吗?DBSCAN 讲一下

机器学习

  1. Xgboost 的原理介绍以及如何并行化实现
  2. 生成模型和判别模型(SVM、LR 属于哪种)

Python

  1. Python 的装饰器,迭代器和生成器
    装饰器的功能:在不修改原函数及其调用方式的情况下对原函数功能进行扩展
    装饰器的本质:就是一个闭包函数
    迭代器就是用于迭代操作的的对象,遵从迭代协议(内部实现了 iter() 和 next() 方法,可以像列表(可迭代对象,只有 iter() 方法)一样迭代获取其中的值,与列表不同的是,构建迭代器的时候,不像列表一样一次性把数据加到内存,而是以一种延迟计算的方式返回元素,即调用 next 方法时候返回此值。
    生成器本质上也是一个迭代器,自己实现了可迭代协议,与迭代器器不同的是生成器的实现方式不同,可以通过生成器表达式和生成器函数两种方式实现,代码更简洁。生成器和迭代器都是惰性可迭代对象,只能遍历一次,数据取完抛出 Stopiteration 异常
    1
    2
    3
    4
    5
    #生成器函数(带yield语句)
    def gen():
    yield 3
    #生成器表达式(类似列表推导式)
    gen=(x for x in range(1,5))
  2. Python 中的 Lambda 函数
  3. Python 回调
  4. python 中函数 self 的区别,读取一个 txt 文件中 2.5 是什么数据类型,2.5+2.5 等于多少
  5. 深拷贝和浅拷贝的区别
  6. 线程进程的区别,python 内部实现的多线程有什么问题
  7. Python2 和 Python3 map 的差别
    Python3 map 函数返回一个迭代器,Python2 中返回一个列表。
  8. Python 可变数据类型和不可变数据类型分别有哪些?
    可变数据类型:列表 list 和字典 dict。
    不可变数据类型:整型 int、浮点型 float、字符串型 string 和元组 tuple。
  9. Python 是如何进行内存管理的
    Python 采用的是基于值的内存管理方式,如果为不同变量赋值相同值,则在内存中只有一份该值,多个变量指向同一块内存地址

Linux 基础

  1. AWK
  2. nohup

代码

  1. 最长回文子串
  2. 给你 10 亿数据,不重复,求前 k 大。(n 为 10 亿,k 为 2 亿)
  3. 给你 1000 个数组,求最长的等差数列
  4. TopK(快排和小顶堆分别实现,分析时间和空间复杂度)
  5. 分析插入和快排的时间和空间复杂度,稳定,不稳定?稳定排序和不稳定排序算法的定义?手写快排
  6. LR 的随机梯度实现
  7. 数组的最大和,数组的最大乘积
  8. 数组排成最大的数字
  9. 数据中出现空值处理的方法
  10. 给定一个矩阵,在矩阵中选取一行,求取某一行某个数附近的 5 个数的值,需要用哪种数据结构(KD 树)
  11. 二叉树的最短路径
  12. 给定 10G 的文件,只有 2G 的内存,如何将文件放到内存中
  13. 编辑距离
  14. 完全二叉树的节点个数
  15. 二叉树的前序遍历的递归和非递归、时间复杂度
  16. 15 分钟 写一个 k-means,没写完时间不够
  17. 打家劫舍 II
  18. 反转链表
  19. 用神经网络搭建一个 LR
  20. 如果有很大的文件,怎么统计文件里面出现的各个单词的数量
  21. 用两个栈实现一个队列
  22. o (n) 实现三色排序
  23. 有一个城市名称列表,如何判断语句中是否出现了列表中的城市 (KMP)
  24. 手写 tfidf
  25. 二叉树层次遍历
  26. 大数加法 大数相乘
  27. 二叉树之子型遍历,每行打印
  28. 数组,可以分别从最左边最右边取个数字,求取得 k 个数的最大值,O(1)空间呢,k 的取值范围的条件
  29. k 个的列表反转
  30. 对称二叉树
  31. 连续数组,给定 k,求连续数组最小区间。动态规划要优化时间,贪心法需要证明。
  32. 圆上三点组成锐角三角形概率
  33. cnn 的卷积计算,参数计算。
  34. 倒水问题
  35. 最长公共子序列
  36. 最大上升子序列
  37. 旋转数组找 K 值
  38. 蓄水池抽样算法(Reservoir Sampling)
  39. 跳台阶 + 有一次后退机会
  40. 排序二叉树 插入新数字
  41. 归并排序中的归并
  42. 给定一个 int 数组,求数组中能组成三角形的个数。
  43. 数组中索引 K 前面是有序的,K 之后也是有序的,调整使得整个数组有序,要求空间复杂度 O (1)
  44. 有 1,2,5,10,20,50 的纸币,求凑到 100 元一共有多少种方法
  45. 合并两个有序链表,合并 K 个有序链表
  46. 顺时针打印矩阵

智力题

  1. 2 个蜡烛 1 个小时,如何记录 15 分钟
  2. 只有 01 生成器,如何生成 0-3 等概率,如何生成 0-k 等概率(模拟二进制)
  3. ABCD 乘以 9 等于 DCBA,那么 ABCD 各等于几?

反转链表

支持一根棒棒糖!