分享一下我的学习路径,正常的理工科大学生大概三四个月可以入门(学过C语言、线性代数、概率论),独立解决NLP问题,搭建baseline并适当优化效果

之后的更新都会定期发文并汇总在Github上,欢迎催更:

https://github.com/leerumor/nlp_tutorial

注:想组队学习的同学可以按文末的方式加入交流群

下面开始学!习!(敲黑板)

如何系统地学习

机器学习是一门既重理论又重实践的学科,想一口吃下这个老虎是不可能的,因此学习应该是个循环且逐渐细化的过程。

首先要有个全局印象,知道minimum的情况下要学哪些知识点:

之后就可以开始逐个击破,但也不用死磕,控制好目标难度,先用三个月时间进行第一轮学习:

  1. 读懂机器学习、深度学习原理,不要求手推公式
  2. 了解经典任务的baseline,动手实践,看懂代码
  3. 深入一个应用场景,尝试自己修改模型,提升效果

迈过了上面这道坎后,就可以重新回归理论,提高对自己的要求,比如手推公式、盲写模型、拿到比赛Top等。

Step1: 基础原理

机器学习最初入门时对数学的要求不是很高,掌握基础的线性代数、概率论就可以了,正常读下来的理工科大学生以上应该都没问题,可以直接开始学,碰到不清楚的概念再去复习。

统计机器学习部分,建议初学者先看懂线性分类、SVM、树模型和图模型,这里推荐李航的「统计学习方法」,薄薄的摸起来没有很大压力,背着也方便,我那本已经翻四五遍了。喜欢视频课程的话可以看吴恩达的「CS229公开课」或者林田轩的「机器学习基石」。但不管哪个教程,都不必要求一口气看完吃透,第一轮先重点看懂以下知识点就够了:

深度学习部分,推荐吴恩达的「深度学习」网课、李宏毅的「深度学习」网课或者邱锡鹏的「神经网络与深度学习」教材。先弄懂神经网络的反向传播推导,然后去了解词向量和其他的编码器的核心思想、前向反向过程:

Step2: 经典模型与技巧

有了上述的基础后,应该就能看懂模型结构和论文里的各种名词公式了。接下来就是了解NLP各个经典任务的baseline,并看懂源码。对于TF和Pytorch的问题不用太纠结,接口都差不多,找到什么就看什么,自己写的话建议Pytorch。

快速了解经典任务脉络可以看综述,建议先了解一两个该任务的经典模型再去看,否则容易云里雾里:

2020 A Survey on Text Classification: From Shallow to Deep Learning
2020 A Survey on Recent Advances in Sequence Labeling from Deep Learning Models
2020 Evolution of Semantic Similarity - A Survey
2017 Neural text generation: A practical guide
2018 Neural Text Generation: Past, Present and Beyond
2019 The survey: Text generation models in deep learning
2020 Efficient Transformers: A Survey

文本分类

文本分类是NLP应用最多且入门必备的任务,TextCNN堪称第一baseline,往后的发展就是加RNN、加Attention、用Transformer、用GNN了。第一轮不用看得太细,每类编码器都找个代码看一下即可,顺便也为其他任务打下基础。

但如果要做具体任务的话,建议倒序去看SOTA论文,了解各种技巧,同时善用知乎,可以查到不少提分方法。

文本匹配

文本匹配会稍微复杂些,它有双塔和匹配两种任务范式。双塔模型可以先看SiamCNN,了解完结构后,再深入优化编码器的各种方法;基于匹配的方式则在于句子表示间的交互,了解BERT那种TextA+TextB拼接的做法之后,可以再看看阿里的RE2这种轻量级模型的做法:

序列标注

序列标注主要是对Embedding、编码器、结果推理三个模块进行优化,可以先读懂Bi-LSTM+CRF这种经典方案的源码,再去根据需要读论文改进。

文本生成

文本生成是最复杂的,具体的SOTA模型我还没梳理完,可以先了解Seq2Seq的经典实现,比如基于LSTM的编码解码+Attention、纯Transformer、GPT2以及T5,再根据兴趣学习VAE、GAN、RL等。

语言模型

语言模型虽然很早就有了,但18年BERT崛起之后才越来越被重视,成为NLP不可或缺的一个任务。了解BERT肯定是必须的,有时间的话再多看看后续改进,很经典的如XLNet、ALBERT、ELECTRA还是不容错过的。

Step3: 实践优化

上述任务都了解并且看了一些源码后,就该真正去当炼丹师了。千万别满足于跑通别人的github代码,最好去参加一次Kaggle、天池、Biendata等平台的比赛,享受优化模型的摧残。

Kaggle的优点是有各种kernel可以学习,国内比赛的优点是中文数据方便看case。建议把两者的优点结合,比如参加一个国内的文本匹配比赛,就去kaggle找相同任务的kernel看,学习别人的trick。同时多看些顶会论文并复现,争取做完一个任务后就把这个任务技巧摸清。

总结

其实自己刚开始学的时候只到了minimum的水平,在后续的实践、面试中才逐渐把知识点补全,并归到自己的体系里。刚入门的同学们也不要气馁,先懵懵懂懂地看一看原理,哆哆嗦嗦地跑一跑代码,时间会给你答案。怀疑自己的时候,就算算自己到底学了多久,没到一万小时之前都还来得及

推荐阅读

  • NLP学习指南及论文汇总
  • 人工智能学习资料整理

欢迎初入NLP领域的小伙伴们加入rumor建立的「NLP卷王养成群」一起学习,添加微信leerumorrr备注知乎+NLP即可,群里的讨论氛围非常好~


入门路线脑图下载

保姆级NLP入门路线学习资料相关推荐

  1. 零基础新手自学Python编程教程入门精通学习资料网站大全

    零基础新手自学Python编程教程入门精通学习资料网站大全 今天说下关于Python的一些普及知识,以及学习资料,这一节我来跟大家分享下. 1 为什么要学习Python? 1 Python是一个脚本语 ...

  2. TensorFlow保姆级别教入门,不会就把我头打爆

    TensorFlow保姆级别教入门,不会就把我头打爆. 前言: 仓库地址:https://github.com/linxinloningg/tf_project 数据集地址:https://aistu ...

  3. 保姆级NLP学习路线来啦!

    这个保姆级不是形容这份指南有多详细,而是形容这个指南会伴随你们一起成长哟(其实就是太多了写不完).之后的更新都会定期发文并汇总在Github上,欢迎催更: https://github.com/lee ...

  4. 每天2小时,吃透 985博士总结的这份保姆级人工智能入门学习笔记(20G高清/PPT/代码)

    AI 显然是最近几年非常火的一个新技术方向,从几年前大家认识到 AI 的能力,到现在产业里已经 在普遍的探讨 AI 如何落地了. 我们可以预言未来在很多的领域,很多的行业,AI 都会在里边起到重要的作 ...

  5. NLP中文面试学习资料:面向算法面试,理论代码俱全,登上GitHub趋势榜

    鱼羊 发自 凹非寺  量子位 报道 | 公众号 QbitAI 一年一度的秋招已经悄悄来临,征战在求职路上的你,准备好了吗? 工欲善其事,必先利其器. 这里有一份NLP面试大全,全中文教学,囊括机器学习 ...

  6. 独家 | 一文读懂自然语言处理NLP(附学习资料)

    前言 自然语言处理是文本挖掘的研究领域之一,是人工智能和语言学领域的分支学科.在此领域中探讨如何处理及运用自然语言. 对于自然语言处理的发展历程,可以从哲学中的经验主义和理性主义说起.基于统计的自然语 ...

  7. 保姆级教程:深度学习环境配置指南!(Windows、Mac、Ubuntu全讲解)

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 入门深度学习,很多人经历了从入门到放弃的心酸历程,且千军万马倒在了 ...

  8. 30万字,“保姆级”可视化视觉设计优质学习攻略推荐

    今天给大家推荐一个优质公众号「DataCharm」,作者:宁海涛, ????点击关注微信公众号 首先,简单介绍一下作者,宁海涛是211硕士毕业,先后学习Python进行深度学习模型构建以及可视化展示, ...

  9. 基础篇——ROS入门:学习资料、基本介绍、安装配置、文件系统、包创建

    简介 本篇文章主要介绍ROS入门基础,通过此篇文章,可以学习到安装配置.文件系统使用.ROS包创建和构建相关内容. ROS资源网站 ROS官网:http://wiki.ros.org/,可以这么说,市 ...

最新文章

  1. 原创 人物志|山东省临沭县 - 一位身残志坚的奋斗青年 - 吴忠军
  2. python画层次结构图_Maptree-层级结构数据展示的绝佳尝试
  3. 训练三层BP神经网络实现异或运算 Python 代码实现
  4. JAVA框架Struts2
  5. 寒假每日一题(入门组)【week6 完结】
  6. java 性能 排序_Java常用排序算法及性能测试集合
  7. node --- [node接口阅读]cluster的使用
  8. 蓝桥杯JAVA省赛2013-----B------5(有理数类)
  9. 人之间的尊重是相互的_人与人之间的感情,最基本的是相互尊重
  10. NYOJ水题--最短街区问题
  11. 基于VS快速排序的单元测试
  12. 微信小程序MQTT客户端的坑
  13. python继承list_python中 class和l
  14. 项目管理:精益管理法
  15. 我的世界服务器自定义翅膀,我的世界翅膀自定义皮肤period; | 手游网游页游攻略大全...
  16. Java学习笔记22:并发(2)
  17. NGUI动态字体教程
  18. 网络营销中的动态定价策略
  19. 【面试高频】Java设计原则总结
  20. 天天学JAVA-JAVA基础(3)

热门文章

  1. 自动驾驶攀登顶峰,Waymo、小马智行们难言轻松
  2. 未来计算机的应用包括,在下列计算机应用项目中,属于科学计算应用领域的是:...
  3. 深度学习常用数据集下载链接
  4. Spring bean无法注入的问题
  5. Turtle系列:暖男“(●—●)”表白说,太赞了,满满的都是爱~
  6. MySQL官网下载方法
  7. STM32标准外设库更新(F0,F1,F3,F4,L1)
  8. 深入tornado中的ioLoop
  9. 【硬件】关于显示器自动弹出显示菜单的解决方案
  10. [FROM WOJ]#4764 子矩阵