自然语言处理算法工程师历史最全资料汇总-基础知识点、面试经验
2019年秋招已过,零星的招聘任然在继续。本资源适用于NLP算法工程师面试,也适用于算法相关的其他岗位。整理了算法面试需要数学基础知识、编程语言、深度学习、机器学习、计算机理论、统计学习、自然语言处理相关基础知识点;以及一些大长的实战面试经验,非常具有参考、学习价值,分享给大家。
本资源整理自网络,源地址:https://github.com/songyingxin/NLPer-Interview
资料具体下载地址:
链接: https://pan.baidu.com/s/1PweOUwqlCvA6uiGW4jcXkg
提取码: 54vt
内容
1. 编程语言基础
该文件夹下主要记录 python 和 c++ 的一些语言细节, 毕竟这两大语言是主流,基本是都要会的,目前还在查缺补漏中。
•C++面试题
•Python 面试题
2. 数学基础
该文件夹下主要记录一些数学相关的知识,包括高数,线性代数,概率论与信息论, 老宋亲身经历,会问到, 目前尚在查缺补漏中。
•概率论
•高等数学
•线性代数
•信息论
3. 计算机基础理论知识
这部分内容一般不怎么考,因此,没有把重心放在上面,至少现在几乎没有遇到问这方面的, 有意思的是,投了阿里某部的NLP算法,居然来了个不懂NLP的来面,全程真的瞎聊,全是开发。
4. 机器学习基础
这部分已经开始进入正题了,事实证明,部分大厂会提及一些基础的机器学习算法知识,因此,这部分我觉得几个核心的模型是要会的。
•机器学习项目流程
•判别模型 vs 生成模型
•频率派 vs 贝叶斯派
•数据预处理
•特征工程
•特征工程-关联规
•模型 - SVM
•模型 - 聚类算法
•模型 - 决策树
•模型 - 逻辑回归
•模型 - 朴素贝叶斯
•模型 - 随机森林
•模型 - 线性回归
5. 深度学习基础
这部分主要讲述深度学习方面的基础知识,是核心点,但很多情况下,很多面试官的题基本差不多,不过我个人觉得,有这种全局的,全面的知识框架是有益的。
•深度学习项目流程
5.1 基础理论部分
•基础理论 - 多任务学习
•基础理论 - 集成学习
•基础理论 - 分类问题评估指标
•基础理论 - 距离度量方法
•基础理论 - 目标函数,损失函数,代价函数
•基础理论 - 偏差 vs 方差,欠拟合 vs 过拟合
•基础理论 - 数据角度看深度学习
•基础理论 - 梯度消失,梯度爆炸问题
•基础理论 - 维数灾难问题
•基础理论 - 指数加权平均
•基础理论- 局部最小值,鞍点
•基础理论 - 集成学习
•基础理论 - 集成学习
5.2 基本单元
•基本单元 - CNN
•基本单元 - MLP
•基本单元 - RNN
5.3 调参相关
•调参 - 超参数调优
•调参 - **函数
•调参 - 权重初始化方案
•调参 - 优化算法
5.4 Tricks
•Trick - Dropout
•Trick - Normalization
•Trick - 融合训练集,验证集,测试集
•Trick - 提前终止
•Trick - 学习率衰减
•Trick - 正则化
6. 统计自然语言处理
这部分前期的笔记做的不多,因此还没怎么开始。
7. 深度学习自然语言处理
这部分算是核心的知识了,这部分还需要逐渐完善,时间有点紧啊。
•文本数据预处理
•各大任务的评价指标
•改进 NLP 模型的一些思路
7.1 词向量三部曲
•词向量 - Word2Vec
•词向量 - Glove
•词向量 - FastText
7.2 预训练语言模型
•预训练语言模型 - BERT改进研究
•预训练语言模型 - 融入知识图谱
•预训练语言模型 - 自然语言生成
7.3 Attention 机制
7.4 文本分类
7.5 语义匹配
7.6 阅读理解
8. 源码阅读
这部分主要推荐一些自己阅读过的一些源码,有些源码是 NLP 相关, 有些是深度学习相关的,部分源码我个人有做注释,会相应的列出来。
9 . 老宋渣渣算法面经
这部分主要是自己面试过程中的一些感悟, 哎, 快面到自闭了。
Reference
[1] DeepLearning-500-questions -- 一个很好的资源
[2] Algorithm_Interview_Notes-Chinese -- 知识比较旧了,但也很好
其他主要是自己的日常积累和看的论文。
往期精品内容推荐
2019年新书-Marc Peter Deisenroth《机器学习基础》-免费分享
自动化机器学习(AutoML)文献/工具/项目资源大列表分享