NLP 面无不过 更新版
共 15639字,需浏览 32分钟
·
2024-05-12 13:28
介绍:本项目是作者们根据个人面试和经验总结出的自然语言处理(NLP)面试准备的学习笔记与资料,该资料目前包含 自然语言处理各领域的 面试题积累。
Github 地址:https://github.com/km1994/NLP-Interview-Notes
NLP 面无不过 面试交流群 (注:人满 可 添加 小编wx:yzyykm666 加群!)
四、NLP 学习算法 常见面试篇
4.1 信息抽取 常见面试篇
4.1.1 命名实体识别 常见面试篇
隐马尔科夫算法 HMM 常见面试篇
一、基础信息 介绍篇
1.1 什么是概率图模型?
1.2 什么是 随机场?
二、马尔可夫过程 介绍篇
2.1 什么是 马尔可夫过程?
2.2 马尔可夫过程 的核心思想 是什么?
三、隐马尔科夫算法 篇
...
点击查看答案
最大熵马尔科夫模型 MEMM 常见面试篇
四、最大熵马尔科夫模型(MEMM)篇
4.1 最大熵马尔科夫模型(MEMM)动机篇
4.1.1 HMM 存在 什么问题?
4.2 最大熵马尔科夫模型(MEMM)介绍篇
4.2.1 最大熵马尔科夫模型(MEMM) 是什么样?
4.2.2 最大熵马尔科夫模型(MEMM) 如何解决 HMM 问题?
4.3 最大熵马尔科夫模型(MEMM)问题篇
点击查看答案
条件随机场(CRF) 常见面试篇
五、条件随机场(CRF)篇
5.1 CRF 动机篇
5.1.1 HMM 和 MEMM 存在什么问题?
5.2 CRF 介绍篇
5.2.1 什么是 CRF?
5.2.2 CRF 的 主要思想是什么?
点击查看答案
DNN-CRF 常见面试篇
一、基本信息
1.1 命名实体识别 评价指标 是什么?
二、传统的命名实体识别方法
2.1 基于规则的命名实体识别方法是什么?
2.2 基于无监督学习的命名实体识别方法是什么?
2.3 基于特征的监督学习的命名实体识别方法是什么?
三、基于深度学习的命名实体识别方法
...
点击查看答案
中文领域 NER 常见面试篇
一、动机篇
1.1 中文命名实体识别 与 英文命名实体识别的区别?
二、词汇增强篇
2.1 什么是 词汇增强?
2.2 为什么说 「词汇增强」 方法对于中文 NER 任务有效呢?
2.3 词汇增强 方法有哪些?
2.4 Dynamic Architecture
点击查看答案
命名实体识别 trick 常见面试篇
trick 1:领域词典匹配
trick 2:规则抽取
trick 3:词向量选取:词向量 or 字向量?
trick 4:特征提取器 如何选择?
trick 5:专有名称 怎么 处理?
trick 6:标注数据 不足怎么处理?
trick 7:嵌套命名实体识别怎么处理
点击查看答案
4.1.2 关系抽取 常见面试篇
关系抽取 常见面试篇
一、动机篇
1.1 什么是关系抽取?
1.2 关系抽取技术有哪些类型?
1.3 常见的关系抽取流程是怎么做的?
二、经典关系抽取篇
2.1 模板匹配方法是指什么?有什么优缺点?
2.2 远监督关系抽取是指什么?它有什么优缺点?
2.3 什么是关系重叠?复杂关系问题?
2.4 联合抽取是什么?难点在哪里?
2.5 联合抽取总体上有哪些方法?各有哪些缺点?
点击查看答案
4.1.3 事件抽取 常见面试篇
事件抽取 常见面试篇
一、原理篇
1.1 什么是事件?
1.2 什么是事件抽取?
1.3 ACE测评中事件抽取涉及的几个基本术语及任务是什么?
1.4 事件抽取怎么发展的?
1.5 事件抽取存在什么问题?
二、基本任务篇
...
4.2 NLP 预训练算法 常见面试篇
【关于TF-idf】那些你不知道的事
一、one-hot 篇
1.1 为什么有 one-hot ?
1.2 one-hot 是什么?
1.3 one-hot 有什么特点?
1.4 one-hot 存在哪些问题?
二、TF-IDF 篇
...
点击查看答案
【关于word2vec】那些你不知道的事
一、Wordvec 介绍篇
1.1 Wordvec 指什么?
1.2 Wordvec 中 CBOW 指什么?
1.3 Wordvec 中 Skip-gram 指什么?
1.4 CBOW vs Skip-gram 哪一个好?
二、Wordvec 优化篇
2.1 Word2vec 中 霍夫曼树 是什么?
2.2 Word2vec 中 为什么要使用 霍夫曼树?
点击查看答案
【关于FastText】那些你不知道的事
一、fastText 动机篇
1.1 word-level Model 是什么?
1.2 word-level Model 存在什么问题?
1.3 Character-Level Model 是什么?
1.4 Character-Level Model 优点?
1.5 Character-Level Model 存在问题?
1.6 Character-Level Model 问题的解决方法?
二、 词内的n-gram信息(subword n-gram information) 介绍篇
2.1 引言
2.2 fastText 是什么?
点击查看答案
【关于Elmo】那些你不知道的事
一、Elmo 动机篇
1.1 为什么会有 Elmo?
二、Elmo 介绍篇
2.1 Elmo 的 特点?
点击查看答案
4.3 Bert 常见面试篇
Bert 常见面试篇
一、动机篇
1.1 【演变史】one-hot 存在问题?
1.2【演变史】wordvec 存在问题?
1.3【演变史】fastText 存在问题?
1.4【演变史】elmo 存在问题?
二、Bert 篇
2.1 Bert 介绍篇
2.1.1【BERT】Bert 是什么?
2.1.2【BERT】Bert 三个关键点?
2.2 Bert 输入输出表征篇
2.2.1 【BERT】Bert 输入输出表征长啥样?
2.3 【BERT】Bert 预训练篇
2.3.1 【BERT】Bert 预训练任务介绍
2.3.2 【BERT】Bert 预训练任务 之 Masked LM 篇
2.3.2.1 【BERT】 Bert 为什么需要预训练任务 Masked LM ?
2.3.2.2 【BERT】 Bert 预训练任务 Masked LM 怎么做?
点击查看答案
【关于 Bert 源码解析I 之 主体篇】那些你不知道的事
【关于 Bert 源码解析II 之 预训练篇】那些你不知道的事
【关于 Bert 源码解析III 之 微调篇】那些你不知道的事
【关于 Bert 源码解析IV 之 句向量生成篇】那些你不知道的事
【关于 Bert 源码解析V 之 文本相似度篇】那些你不知道的事
4.3.1 Bert 模型压缩 常见面试篇
Bert 模型压缩 常见面试篇
一、Bert 模型压缩 动机篇
二、Bert 模型压缩对比表
三、 Bert 模型压缩方法介绍
3.1 Bert 模型压缩方法 之 低秩因式分解&跨层参数共享
3.1.1 什么是低秩因式分解?
3.1.2 什么是跨层参数共享?
3.1.3 ALBERT 所所用的方法?
点击查看答案
4.3.2 Bert 模型系列 常见面试篇
认识 XLNet 么?能不能讲一下?和 Bert 的 区别在哪里?
认识 RoBERTa 么?能不能讲一下?和 Bert 的 区别在哪里?
认识 SpanBERT 么?能不能讲一下?和 Bert 的 区别在哪里?
认识 MASS 么?能不能讲一下?和 Bert 的 区别在哪里?
点击查看答案
4.4 文本分类 常见面试篇
文本分类 常见面试篇
一、 抽象命题
1.1 分类任务有哪些类别?它们都有什么特征?
1.2 文本分类任务相较于其他领域的分类任务有何不同之处?
1.3 文本分类任务和文本领域的其他任务相比有何不同之处?
1.4 文本分类的过程?
二、数据预处理
2.1 文本分类任务的数据预处理方法有哪些?
2.2 你使用过哪些分词方法和工具?
2.3 中文文本分词的方法?
2.4 基于字符串匹配的分词方法的原理 是什么?
2.5 统计语言模型如何应用于分词?N-gram最大概率分词?
2.6 基于序列标注的分词方法 是什么?
2.7 基于(Bi-)LSTM的词性标注 是什么?
2.8 词干提取和词形还原有什么区别?
三、特征提取
3.1 (一个具体的)文本分类任务可以使用哪些特征?
3.2 (对于西文文本)使用单词和使用字母作为特征相比,差异如何?
3.3 能不能简单介绍下词袋模型?
3.4 n-gram 篇
3.4.1 什么是n元语法?为什么要用n-gram?
3.4.2 n-gram算法的局限性是什么?
3.5 主题建模篇
3.5.1 介绍一下主题建模任务?
3.5.2 主题建模的常用方法
3.5.3 TF-IDF算法是做什么的?简单介绍下TF-IDF算法
3.5.4 tf-idf高意味着什么?
3.5.5 tf-idf的不足之处
3.6 文本相似度篇
3.6.1 如何计算两段文本之间的距离?
3.6.2 什么是jaccard距离?
3.6.3 Dice系数和Jaccard系数的区别?
3.6.4 同样是编辑距离,莱文斯坦距离和汉明距离的区别在哪里?
3.6.5 写一下计算编辑距离(莱温斯坦距离)的编程题吧?
四、模型篇
4.1 fastText 篇
4.1.1 fastText的分类过程?
4.1.2 fastText的优点?
4.2 TextCNN 篇
4.2.1 TextCNN进行文本分类的过程?
4.2.2 TextCNN可以调整哪些参数?
4.2.3 使用CNN作为文本分类器时,不同通道channels对应着文本的什么信息?
4.2.4 TextCNN中卷积核的长与宽代表了什么?
4.2.5 在TextCNN中的pooling操作与一般CNN的pooling操作有何不同?
4.2.6 TextCNN的局限性?
4.3 DPCNN 篇
4.3.1 如何解决长文本分类任务?
4.3.2 简单介绍DPCNN模型相较于TextCNN的改进?
点击查看答案
文本分类 trick 常见面试篇
一、文本分类数据预处理 如何做?
二、文本分类 预训练模型 如何选择?
三、文本分类 参数 如何优化?
四、文本分类 有哪些棘手任务?
五、文本分类 标签体系构建?
六、文本分类 策略构建?
点击查看答案
用检索的方式做文本分类 常见面试篇
为什么需要用检索的方式做文本分类?
基于检索的方法做文本分类思路?
检索的方法的召回库如何构建?
检索的方法 的 训练阶段 如何做?
检索的方法 的 预测阶段 如何做?
用检索的方式做文本分类 方法 适用场景有哪些?
点击查看答案
4.5 文本匹配 常见面试篇
文本匹配模型 ESIM 常见面试篇
为什么需要 ESIM?
介绍一下 ESIM 模型?
点击查看答案
语义相似度匹配任务中的 BERT 常见面试篇
一、Sentence Pair Classification Task:使用 CLS
二、cosine similairity
三、长短文本的区别
四、sentence/word embedding
五、siamese network 方式
点击查看答案
4.6 问答系统 常见面试篇
4.6.1 FAQ 检索式问答系统 常见面试篇
一、动机
1.1 问答系统的动机?
1.2 问答系统 是什么?
二、FAQ 检索式问答系统介绍篇
2.1 FAQ 检索式问答系统 是 什么?
2.2 query 匹配标准 QA 的核心是什么?
三、FAQ 检索式问答系统 方案篇
3.1 常用 方案有哪些?
3.2 为什么 QQ 匹配比较常用?
3.2.1 QQ 匹配的优点有哪些?
3.2.2 QQ 匹配的语义空间是什么?
3.2.3 QQ 匹配的语料的稳定性是什么?
4.6.2 问答系统工具篇 常见面试篇
Faiss 常见面试篇
一、动机篇
1.1 传统的相似度算法所存在的问题?
二、介绍篇
2.1 什么是 Faiss ?
2.2 Faiss 如何使用?
2.3 Faiss原理与核心算法
三、Faiss 实战篇
3.1 Faiss 如何安装?
4.7 对话系统 常见面试篇
对话系统 常见面试篇
一、对话系统 介绍篇
1.1 对话系统有哪几种?
1.2 这几种对话系统的区别?
二、多轮对话系统 介绍篇
2.1 为什么要用 多轮对话系统?
2.2 常见的多轮对话系统解决方案是什么?
三、任务型对话系统 介绍篇
3.1 什么是任务型对话系统?
3.2 任务型对话系统的流程是怎么样?
3.3 任务型对话系统 语言理解(SLU)篇
3.3.1 什么是 语言理解(SLU)?
3.3.2 语言理解(SLU)的输入输出是什么?
3.3.3 语言理解(SLU)所使用的技术是什么?
...
点击查看答案
RASA 常见面试篇
4.8 知识图谱 常见面试篇
4.8.1 知识图谱 常见面试篇
一、知识图谱简介
1.1 引言
1.2 什么是知识图谱呢?
1.2.1 什么是图(Graph)呢?
1.2.2 什么是 Schema 呢?
1.3 知识图谱的类别有哪些?
1.4 知识图谱的价值在哪呢?
二、怎么构建知识图谱呢?
2.1 知识图谱的数据来源于哪里?
2.2 信息抽取的难点在哪里?
2.3 构建知识图谱所涉及的技术?
2.4、知识图谱的具体构建技术是什么?
...
三、知识图谱怎么存储?
四、知识图谱可以做什么?
点击查看答案
4.8.2 KBQA 常见面试篇
一、基于词典和规则的方法
基于词典和规则的方法 实现 KBQA?
基于词典和规则的方法 实现 KBQA 流程?
...
点击查看答案
4.8.3 Neo4j 常见面试篇
一、Neo4J 介绍与安装
1.1 引言
1.2 Neo4J 怎么下载?
1.3 Neo4J 怎么安装?
1.4 Neo4J Web 界面 介绍
1.5 Cypher查询语言是什么?
二、Neo4J 增删查改篇
点击查看答案
4.9 文本摘要 常见面试篇
一、动机篇
1.1 什么是文本摘要?
1.2 文本摘要技术有哪些类型?
二、抽取式摘要篇
...
4.10 文本纠错篇 常见面试篇
一、介绍篇
1.1 什么是文本纠错?
1.2 常见的文本错误类型?
1.3 文本纠错 常用方法?
二、pipeline 方法 介绍篇
...
点击查看答案
4.11 文本摘要 常见面试篇
一、动机篇
1.1 什么是文本摘要?
1.2 文本摘要技术有哪些类型?
二、抽取式摘要篇
2.1 抽取式摘要是怎么做的?
2.1.1 句子重要性评估算法有哪些?
2.1.2 基于约束的摘要生成方法有哪些?
2.1.3 TextTeaser算法是怎么抽取摘要的?
2.1.4 TextRank算法是怎么抽取摘要的?
2.2 抽取式摘要的可读性问题是什么?
三、压缩式摘要篇
3.1 压缩式摘要是怎么做的?
...
点击查看答案
4.12 文本生成 常见面试篇
生成模型的解码方法 常见面试篇
什么是生成模型?
介绍一下 基于搜索的解码方法?
介绍一下 基于采样的解码方法?
点击查看答案
三、深度学习算法篇 常见面试篇
CNN 常见面试篇
一、动机篇
二、CNN 卷积层篇
2.1 卷积层的本质是什么?
2.2 CNN 卷积层与全连接层的联系?
2.3 channel的含义是什么?
三、CNN 池化层篇
3.1 池化层针对区域是什么?
3.2 池化层的种类有哪些?
3.3 池化层的作用是什么?
3.4 池化层 反向传播 是什么样的?
3.5 mean pooling 池化层 反向传播 是什么样的?
3.6 max pooling 池化层 反向传播 是什么样的?
四、CNN 整体篇
4.1 CNN 的流程是什么?
4.2 CNN 的特点是什么?
4.3 卷积神经网络为什么会具有平移不变性?
4.4 卷积神经网络中im2col是如何实现的?
4.5 CNN 的局限性是什么?
五、Iterated Dilated CNN 篇
5.1 什么是 Dilated CNN 空洞卷积?
5.2 什么是 Iterated Dilated CNN?
六、反卷积 篇
6.1 解释反卷积的原理和用途?
点击查看答案
RNN 常见面试篇
一、RNN 篇
1.2 为什么需要 RNN?
1.2 RNN 结构是怎么样的?
1.3 RNN 前向计算公式?
1.4 RNN 存在什么问题?
二、长短时记忆网络(Long Short Term Memory Network, LSTM) 篇
2.1 为什么 需要 LSTM?
2.2 LSTM 的结构是怎么样的?
2.3 LSTM 如何缓解 RNN 梯度消失和梯度爆炸问题?
2.3 LSTM 的流程是怎么样的?
2.4 LSTM 中激活函数区别?
2.5 LSTM的复杂度?
2.6 LSTM 存在什么问题?
三、GRU (Gated Recurrent Unit)
3.1 为什么 需要 GRU?
3.2 GRU 的结构是怎么样的?
3.3 GRU 的前向计算?
3.4 GRU 与其他 RNN系列模型的区别?
四、RNN系列模型篇
4.1 RNN系列模型 有什么特点?
点击查看答案
Attention 常见面试篇
一、seq2seq 篇
1.1 seq2seq (Encoder-Decoder)是什么?
1.2 seq2seq 中 的 Encoder 怎么样?
1.3 seq2seq 中 的 Decoder 怎么样?
1.4 在 数学角度上 的 seq2seq ,你知道么?
1.5 seq2seq 存在 什么 问题?
二、Attention 篇
2.1 什么是 Attention?
2.2 为什么引入 Attention机制?
2.3 Attention 有什么作用?
2.4 Attention 流程是怎么样?
步骤一 执行encoder (与 seq2seq 一致)
步骤二 计算对齐系数 a
步骤三 计算上下文语义向量 C
步骤四 更新decoder状态
步骤五 计算输出预测词
2.5 Attention 的应用领域有哪些?
三、Attention 变体篇
3.1 Soft Attention 是什么?
3.2 Hard Attention 是什么?
3.3 Global Attention 是什么?
3.4 Local Attention 是什么?
3.5 self-attention 是什么?
点击查看答案
生成对抗网络 GAN 常见面试篇
一、动机
二、介绍篇
2.1 GAN 的基本思想
2.2 GAN 基本介绍
2.2.1 GAN 的基本结构
2.2.2 GAN 的基本思想
三、训练篇
3.1 生成器介绍
3.2 判别器介绍
3.3 训练过程
3.4 训练所涉及相关理论基础
四、总结
点击查看答案
3.1 Transformer 常见面试篇
Transformer 常见面试篇
一、动机篇
1.1 为什么要有 Transformer?
1.2 Transformer 作用是什么?
二、整体结构篇
2.1 Transformer 整体结构是怎么样?
2.2 Transformer-encoder 结构怎么样?
2.3 Transformer-decoder 结构怎么样?
三、模块篇
3.1 self-attention 模块
3.1.1 传统 attention 是什么?
3.1.2 为什么 会有self-attention?
3.1.3 self-attention 的核心思想是什么?
3.1.4 self-attention 的目的是什么?
3.1.5 self-attention 的怎么计算的?
3.1.6 self-attention 为什么Q和K使用不同的权重矩阵生成,为何不能使用同一个值进行自身的点乘?
3.1.7 为什么采用点积模型的 self-attention 而不采用加性模型?
3.1.8 Transformer 中在计算 self-attention 时为什么要除以 �d?
3.1.9 self-attention 如何解决长距离依赖问题?
3.1.10 self-attention 如何并行化?
3.2 multi-head attention 模块
3.2.1 multi-head attention 的思路是什么样?
3.2.2 multi-head attention 的步骤是什么样?
3.2.3 Transformer为何使用多头注意力机制?(为什么不使用一个头)
3.2.4 为什么在进行多头注意力的时候需要对每个head进行降维?
3.2.5 multi-head attention 代码介绍
3.3 位置编码(Position encoding)模块
3.3.1 为什么要 加入 位置编码(Position encoding) ?
3.3.2 位置编码(Position encoding)的思路是什么 ?
3.3.3 位置编码(Position encoding)的作用是什么 ?
3.3.4 位置编码(Position encoding)的步骤是什么 ?
3.3.5 Position encoding为什么选择相加而不是拼接呢?
3.3.6 Position encoding和 Position embedding的区别?
3.3.7 为何17年提出Transformer时采用的是 Position Encoder 而不是Position Embedding?而Bert却采用的是 Position Embedding ?
3.3.8 位置编码(Position encoding)的代码介绍
3.4 残差模块模块
3.4.1 为什么要 加入 残差模块?
3.5 Layer normalization 模块
3.5.1 为什么要 加入 Layer normalization 模块?
3.5.2 Layer normalization 模块的是什么?
3.5.3 Batch normalization 和 Layer normalization 的区别?
3.5.4 Transformer 中为什么要舍弃 Batch normalization 改用 Layer normalization 呢?
3.5.5 Layer normalization 模块代码介绍
3.6 Mask 模块
3.6.1 什么是 Mask?
3.6.2 Transformer 中用到 几种 Mask?
3.6.3 能不能介绍一下 Transformer 中用到几种 Mask?
点击查看答案
【关于 Transformer 问题及改进】那些你不知道的事
一、Transformer 问题篇
1.1 既然 Transformer 怎么牛逼,是否还存在一些问题?
二、每个问题的解决方法是什么?
2.1 问题一:Transformer 不能很好的处理超长输入问题
2.1.1 Transformer 固定了句子长度?
2.1.2 Transformer 固定了句子长度 的目的是什么?
2.1.3 Transformer 针对该问题的处理方法?
2.2 问题二:Transformer 方向信息以及相对位置 的 缺失 问题
2.3 问题三:缺少Recurrent Inductive Bias
问题四:问题四:Transformer是非图灵完备的:非图灵完备通俗的理解,就是无法解决所有的问题
问题五:transformer缺少conditional computation;
问题六:transformer 时间复杂度 和 空间复杂度 过大问题;
五、NLP 技巧面
5.1 少样本问题面
5.1.1 数据增强(EDA) 面试篇
一、动机篇
1.1 什么是 数据增强?
1.2 为什么需要 数据增强?
二、常见的数据增强方法篇
2.1 词汇替换篇
2.1.1 什么是基于词典的替换方法?
2.1.2 什么是基于词向量的替换方法?
2.1.3 什么是基于 MLM 的替换方法?
2.1.4 什么是基于 TF-IDF 的词替换?
2.2 词汇插入篇
2.2.1 什么是随机插入法?
2.3 词汇交换篇
2.3.1 什么是随机交换法?
2.4 词汇删除篇
2.4.1 什么是随机删除法?
2.5 回译篇
2.5.1 什么是回译法?
2.6 交叉增强篇
2.6.1 什么是 交叉增强篇
2.7 语法树篇
2.7.1 什么是语法树操作?
2.8 对抗增强篇
2.8.1 什么是对抗增强?
点击查看答案
5.1.2 主动学习 面试篇
一、动机篇
1.1 主动学习是什么?
1.2 为什么需要主动学习?
二、主动学习篇
2.1 主动学习的思路是什么?
2.2 主动学习方法 的价值点在哪里?
三、样本选取策略篇
3.1 以未标记样本的获取方式的差别进行划分
3.2 测试集内选取“信息”量最大的数据标记
3.2.1 测试集内选取“信息”量最大的数据标记
3.2.2 依赖不确定度的样本选取策略(Uncertainty Sampling, US)
3.2.3 基于委员会查询的方法(Query-By-Committee,QBC)
点击查看答案
5.1.3 数据增强 之 对抗训练 面试篇
一、介绍篇
1.1 什么是 对抗训练 ?
1.2 为什么 对抗训练 能够 提高模型效果?
1.3 对抗训练 有什么特点?
1.4 对抗训练 的作用?
二、概念篇
2.1 对抗训练的基本概念?
2.2 如何计算扰动?
2.3 如何优化?
三、实战篇
3.1 NLP 中经典对抗训练 之 Fast Gradient Method(FGM)
3.2 NLP 中经典对抗训练 之 Projected Gradient Descent(PGD)
点击查看答案
5.2 “脏数据”处理 面试篇
一、动机
1.1 何为“脏数据”?
1.2 “脏数据” 会带来什么后果?
二、“脏数据” 处理篇
2.1 “脏数据” 怎么处理呢?
2.2 置信学习方法篇
2.2.1 什么是 置信学习方法?
2.2.2 置信学习方法 优点?
2.2.3 置信学习方法 怎么做?
2.2.4 置信学习方法 怎么用?有什么开源框架?
2.2.5 置信学习方法 的工作原理?
点击查看答案
点击原文查看【所有内容】