【关于 NLP】百问百答
作者:杨夕、芙蕖、李玲、陈海顺、twilight、LeoLRH、JimmyDU、艾春辉、张永泰、金金金
面筋地址:https://github.com/km1994/NLP-Interview-Notes
个人笔记:https://github.com/km1994/nlp_paper_study
NLP && 推荐学习群【人数满了,加微信 blqkm601 】
介绍
本项目是作者们根据个人面试和经验总结出的自然语言处理(NLP)面试准备的学习笔记与资料,该资料目前包含 自然语言处理各领域的 面试题积累。
目录架构
- 【关于 NLP】百问百答
- 介绍
- 目录架构
- 内容框架
- 一、【关于 基础算法篇】那些你不知道的事
- 二、【关于 机器学习算法篇】那些你不知道的事
- 三、【关于 深度学习算法篇】那些你不知道的事
- 四、【关于 NLP 学习算法】那些你不知道的事
- 五、【关于 NLP 技巧】那些你不知道的事
- 六、【关于 Python 】那些你不知道的事
- 七、【关于 Tensorflow 】那些你不知道的事
内容框架
【关于 基础算法篇】那些你不知道的事
一、- 【关于 过拟合和欠拟合】那些你不知道的事
- 【关于 BatchNorm vs LayerNorm】那些你不知道的事
- 【关于 激活函数】那些你不知道的事
- 【关于 正则化】那些你不知道的事
- 【关于 优化算法及函数】那些你不知道的事
- 【关于 归一化】那些你不知道的事
- 【关于 判别式(discriminative)模型 vs. 生成式(generative)模型】 那些你不知道的事
【关于 机器学习算法篇】那些你不知道的事
二、- 【关于 逻辑回归】那些你不知道的事
- 【关于 支持向量机】 那些你不知道的事
- 【关于 集成学习】那些你不知道的事
【关于 深度学习算法篇】那些你不知道的事
三、- 【关于 CNN 】那些你不知道的事
- 【关于 Attention 】那些你不知道的事
- 【关于 Transformer面试题】那些你不知道的事
- 【关于 Transformer】那些你不知道的事
- 一、动机篇
- 二、整体结构篇
- 三、模块篇
- 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 时为什么要除以 $\sqrt{d}$?
- 3.1.9 self-attention 如何解决长距离依赖问题?
- 3.1.10 self-attention 如何并行化?
- 3.2 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.5 Layer normalization 模块
- 3.6 Mask 模块
- 3.1 self-attention 模块
- 【关于 Transformer 问题及改进】那些你不知道的事
- 【关于 Transformer】那些你不知道的事
- 【关于 生成对抗网络 GAN 】 那些你不知道的事
【关于 NLP 学习算法】那些你不知道的事
四、【关于 信息抽取】那些你不知道的事
4.1【关于 命名实体识别】那些你不知道的事
4.1.1- 【关于 HMM->MEMM->CRF】那些你不知道的事
- 【关于 DNN-CRF】那些你不知道的事
- 【关于 中文领域 NER】 那些你不知道的事
- 【关于 命名实体识别 trick 】那些你不知道的事
- trick 1:领域词典匹配
- trick 2:规则抽取
- trick 3:词向量选取:词向量 or 字向量?
- trick 4:特征提取器 如何选择?
- trick 5:专有名称 怎么 处理?【注:这一点来自于 命名实体识别的几点心得 】
- trick 6:标注数据 不足怎么处理?【这个问题可以说是现在很多小厂最头疼的问题】
- trick 7:嵌套命名实体识别怎么处理 【注:参考 资料3】
- trick 8:为什么说 「词汇增强」 方法对于中文 NER 任务有效?
- trick 9:NER实体span过长怎么办?
- trick 10: NER 标注数据噪声问题?
- trick 11: 给定两个命名实体识别任务,一个任务数据量足够,另外一个数据量很少,可以怎么做?
- trick 12: NER 标注数据不均衡问题?
【关于 关系抽取】那些你不知道的事
4.1.2- 【关于 关系抽取】那些你不知道的事
- 一、动机篇
- 二、经典关系抽取篇
- 2.1 模板匹配方法是指什么?有什么优缺点?
- 2.2 远监督关系抽取是指什么?它有什么优缺点?
- 2.3 什么是关系重叠?复杂关系问题?
- 2.4 联合抽取是什么?难点在哪里?
- 2.5 联合抽取总体上有哪些方法?各有哪些缺点?
- 2.6 介绍基于共享参数的联合抽取方法?
- 依存结构树:End-to-End Relation Extraction using LSTMs on Sequences and Tree Structures
- 指针网络,Going out on a limb: Joint Extraction of Entity Mentions and Relations without Dependency Trees
- Copy机制+seq2seq:Extracting Relational Facts by an End-to-End Neural Model with Copy Mechanism[19]
- 多头选择机制+sigmoid:Joint entity recognition and relation extraction as a multi-head selection problem
- SPO问题+指针网络,Joint Extraction of Entities and Relations Based on a Novel Decomposition Strategy
- 多轮对话+强化学习 :Entity-Relation Extraction as Multi-Turn Question Answering
- 输入端的片段排列: Span-Level Model for Relation Extraction
- 输出端的片段排列:SpERT:Span-based Joint Entity and Relation Extraction with Transformer Pre-training
- 2.7 介绍基于联合解码的联合抽取方法?
- 2.8 实体关系抽取的前沿技术和挑战有哪些?如何解决低资源和复杂样本下的实体关系抽取?
- 三、文档级关系抽取篇
【关于 事件抽取】那些你不知道的事
4.1.3【关于 NLP 预训练算法】那些你不知道的事
4.2- 【关于TF-idf】那些你不知道的事
- 【关于word2vec】那些你不知道的事
- 【关于FastText】那些你不知道的事
- 【关于Elmo】那些你不知道的事
- 【关于Bert】那些你不知道的事
- 【关于Bert】那些你不知道的事
- 【关于 Bert 源码解析I 之 主体篇】那些你不知道的事
- 【关于 Bert 源码解析II 之 预训练篇】那些你不知道的事
- 【关于 Bert 源码解析III 之 微调篇】那些你不知道的事
- 【关于 Bert 源码解析IV 之 句向量生成篇】那些你不知道的事
- 【关于 Bert 源码解析V 之 文本相似度篇】那些你不知道的事
- 【关于 小 Bert 模型系列算法】那些你不知道的事
- 【关于 小 Bert 模型系列算法】那些你不知道的事
- 一、Bert 模型压缩 动机篇
- 二、Bert 模型压缩对比表
- 三、 Bert 模型压缩方法介绍
- 3.1 Bert 模型压缩方法 之 低秩因式分解&跨层参数共享
- 3.2 Bert 模型压缩方法 之 蒸馏
- 3.2.1 什么是蒸馏?
- 3.2.2 使用 模型蒸馏 的论文?
- 3.2.2.1 Extreme Language Model Compression withOptimal Subwords and Shared Projections 【蒸馏】
- 3.2.2.2 DistilBERT, a distilled version of BERT: smaller, faster, cheaper and lighter 【蒸馏】
- 3.2.2.3 FastBERT: a Self-distilling BERT with Adaptive Inference Time 【蒸馏】
- 3.2.2.4 TinyBERT: Distilling BERT for Natural Language Understanding 【蒸馏】
- 3.3 Bert 模型压缩方法 之 量化
- 3.4 Bert 模型压缩方法 之 剪枝
- 四、模型压缩存在问题?
- 【关于 Distilling Task-Specific Knowledge from BERT into Simple Neural Networks】那些你不知道的事
- 【关于 小 Bert 模型系列算法】那些你不知道的事
- 【关于 大 Bert 模型系列算法】 那些你不知道的事
【关于 文本分类】那些你不知道的事
4.3- 【关于 文本分类】那些你不知道的事
- 【关于 文本分类 trick 】那些你不知道的事
【关于 文本匹配】那些你不知道的事
4.4【关于 问答系统】那些你不知道的事
4.5【关于 FAQ 检索式问答系统】 那些你不知道的事
4.5.1- 【关于 FAQ 检索式问答系统】 那些你不知道的事
【关于 问答系统工具篇】 那些你不知道的事
4.5.2【关于 对话系统】那些你不知道的事
4.6- 【关于 对话系统】那些你不知道的事
- 【关于 RASA】那些你不知道的事
【关于 知识图谱】那些你不知道的事
4.7【关于 知识图谱】 那些你不知道的事
4.7.1【关于 KBQA】那些你不知道的事
4.7.2【关于 Neo4j】那些你不知道的事
4.7.3【关于 文本摘要】 那些你不知道的事
4.8【关于 知识表示学习】那些你不知道的事
4.9【关于 数据挖掘】那些你不知道的事
4.10【关于 NLP 技巧】那些你不知道的事
五、【关于 少样本问题】那些你不知道的事
5.1【关于 脏数据】那些你不知道的事
5.2【关于 炼丹炉】那些你不知道的事
5.3【关于 早停法 EarlyStopping 】那些你不知道的事
5.4【关于 标签平滑法 LabelSmoothing 】那些你不知道的事
5.5【关于 Python 】那些你不知道的事
六、- 【关于 Python 】那些你不知道的事