前辈总结 | NLP应该怎么学

2020 年 3 月 2 日 机器学习与推荐算法




       最近几个月,有很多同学都私信我,问我NLP到底应该怎么学,这两天我就根据自己的经验,做了一个简单的总结,导图在手机上看着可能比较小,大家可以在电脑上看,或者保存到手机再放大。如果第一次刷进来没有图,后退重进就好了,可能是因为图太大了。





       要想学好NLP,首先应该对自己有一个比较全面的认识,在这里,我把所有学习NLP的人按照资历做了一个简单的分类。


没有任何基础的同学

       对于没有任何基础的同学,首先要做的就是把自己的基础打牢,因为对于NLP的各个任务来讲,如果没有一个好的基础,那么在后面的学习以及工作的过程中是非常吃亏的。
       对于基础,我们又可以将其分成4大类。
      首先是数学基础,我们所讲的数学基础包括线性代数、概率论、离散数学和高等代数。线性代数和概率论对于机器学习来说是非常重要的,可以这么说,我们对于机器学习的大部分算法,都需要使用到这两部分内容。比如我们要做矩阵运算,进行矩阵分解,这些都是需要用到线性代数的知识;我们要对内容进行预测,一些常用的算法,例如朴素贝叶斯、逻辑回归等算法,都需要使用到概率论相关的知识;离散数学对于要设计一些比较复杂的算法,例如对于递归的应用等都是非常有帮助的。而对于高数来讲,主要是对于一些比较复杂的算法求解和论文复现中用的比较多,这几门课程也是大学里的必修课程。
      其次就是Python基础。因为目前大部分AI相关任务都是使用Python来开发的,因此,学好Python是入门AI的前提,也是最基本的条件。很多人在学习编程语言的时候,都希望把这门编程语言中的所有内容都学会,首先我们不去谈有没有这个必要,单单是将所有的知识点中的一半学会对于一般人来讲都是不现实的。所以说,我们在学习Python的时候,并不是学什么用什么,而是用什么学什么。
       对于机器学习和深度学习来讲也是如此,我们学习NLP的目的并不是要把机器学习和深度学习里面的所有内容都学成专家,而是根据自身的需求,先把其中的基础打牢,然后再选择其中一点继续攻破。
       因此,第二步就是选择一个领域。在NLP中,我们可以把这些领域分为广告、推荐和语言或者语文。广告领域,可以理解为一些基本都是NLP处理,例如文本分类、文本聚类、命名实体识别等;对于推荐领域,所用到的NLP一般会包含在用户画像、内容画像的建立,以及需要使用传统的机器学习算法做一些聚类的模型;对于语言领域,常见的就是做机器翻译、文本摘要、文本归纳等相关的内容。所以,在踏入NLP这个领域之前,一定要想好,从哪个口进行突破。
       当确定好一个领域之后,接下来要做的就是探索。根据自己领域的选择,利用搜索引擎去探索该领域所需要的知识库,例如,在做推荐领域时,我们需要了解文本分类、协同过滤、聚类、关键词提取等相关技术,我们需要把这些细小的技术点逐一的层层击破,如果有时间的情况下,最好是针对于每一个技术点能够写一个demo,然后再将这些小的技术点组合起来,形成一个相对比较完整的项目。
       最后,给自己定一个可以实现的大的项目任务,然后将任务逐步拆解,并完成它。


有一定Python基础,但是没有NLP基础

       针对这类同学,首先要做的就是确保自己的Python是过关的,确保的方式很简单,那就是做大量的Python任务类的练习,来检测自己的Python能力,再查缺补漏;接着就是要对前面所提到的机器学习和深度学习基础有着比较深刻的认识;
       当完成了这两步之后,我们就可以像前面一样,选择一个领域,然后去了解这个领域的技术栈,并对每一个技术栈逐一突破。另外,如果想在NLP上有更加深入的了解,和更加大的作为,那么对于看大量的论文是必不可少的,对于一个初学者而言,我们可以做的就是求看大量的paper,然后看懂网上的复现代码。

基础很扎实,也在从事NLP工作,想深入NLP

       对于这类同学来说,去看大量的paper是前提,不仅要看懂网上的复现,还要在此基础上对模型进行改进,例如修改模型,增加层数,这里需要注意的是层与层之间的出参和入参,这也是很多初学者所欠缺的。
       当我们能够看懂网上的论文复现之后,接下来就是提高自己,这里的提高一般可以找几篇论文,然后自己进行论文的代码复现。
       最后,给自己定一个大任务,然后去完成它,并不断的积累,不断的练习,如此反复。

       上面我们是从资历的角度来阐述学习NLP的方法,那么我们同时也可以从规划的角度简单来聊一聊。
       对于NLP的学习无非是2种人。一种就是以研究为主,想深入;另外一种就是以找工作为目的。


以研究为主,想深入

       对于以研究为主想深入的同学,一般都是研究生在读或在实验室工作为主。对于这类同学,一个核心词就是“paper”。多看论文、多看论文复现,并对每一个算法的底层原理吃透,如果有时间,最好把底层的代码熟悉一遍,其目的在于当需要对整体算法进行优化的时候,能够有清晰的思路。


以工作为主

       对于以工作为主的同学,就需要以解决实际问题出发。首先了解自身的需求,然后找到需要的模型,并去找这个模型所对应的论文以及GitHub上的复现代码。
       看懂这些代码,然后使用其他框架来实现它,比如网上是pytorch的,我们就可以使用TensorFlow来实现一遍。
       通过这样反复的练习,慢慢积累,就可以使自己的NLP工作得心应手,不断提高。

       以上是我个人对于学习NLP的总结,不同的人有不同的学习方法,谨以此献给刚入行NLP却不知从哪里下手的同学。



END





登录查看更多
0

相关内容

NLP:自然语言处理
【斯坦福】凸优化圣经- Convex Optimization (附730pdf下载)
专知会员服务
212+阅读 · 2020年6月5日
【复旦大学-SP2020】NLP语言模型隐私泄漏风险
专知会员服务
24+阅读 · 2020年4月20日
《深度学习》圣经花书的数学推导、原理与Python代码实现
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
【机器学习课程】机器学习中的常识性问题
专知会员服务
72+阅读 · 2019年12月2日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
73+阅读 · 2019年10月19日
知乎火爆问题:CV和NLP哪个前景更好?
PaperWeekly
14+阅读 · 2019年7月16日
成为大厂AI算法工程师,“NLP/CV”都是你必须过的坎!
计算机视觉战队
3+阅读 · 2019年6月25日
为什么所有人都报了这个虐人到哭的训练营?!
人工智能头条
5+阅读 · 2019年5月15日
初入NLP领域的一些小建议
人工智能前沿讲习班
6+阅读 · 2019年3月16日
学术派整理,一份从基础到实战的 NLP 学习清单
人工智能头条
7+阅读 · 2019年2月13日
10个项目给你答案,19年NLP为什么这么骚
PaperWeekly
34+阅读 · 2018年12月29日
自然语言处理(NLP)知识结构总结
AI100
51+阅读 · 2018年8月17日
你们是不是都感觉自己少了个推荐系统?
互联网er的早读课
3+阅读 · 2017年12月15日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
深度学习知识总结(一)
深度学习探索
8+阅读 · 2017年7月18日
Arxiv
21+阅读 · 2019年8月21日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
3+阅读 · 2018年12月19日
Arxiv
5+阅读 · 2018年10月23日
Arxiv
22+阅读 · 2018年8月30日
VIP会员
相关VIP内容
【斯坦福】凸优化圣经- Convex Optimization (附730pdf下载)
专知会员服务
212+阅读 · 2020年6月5日
【复旦大学-SP2020】NLP语言模型隐私泄漏风险
专知会员服务
24+阅读 · 2020年4月20日
《深度学习》圣经花书的数学推导、原理与Python代码实现
模型压缩究竟在做什么?我们真的需要模型压缩么?
专知会员服务
27+阅读 · 2020年1月16日
【机器学习课程】机器学习中的常识性问题
专知会员服务
72+阅读 · 2019年12月2日
NLP基础任务:文本分类近年发展汇总,68页超详细解析
专知会员服务
73+阅读 · 2019年10月19日
相关资讯
知乎火爆问题:CV和NLP哪个前景更好?
PaperWeekly
14+阅读 · 2019年7月16日
成为大厂AI算法工程师,“NLP/CV”都是你必须过的坎!
计算机视觉战队
3+阅读 · 2019年6月25日
为什么所有人都报了这个虐人到哭的训练营?!
人工智能头条
5+阅读 · 2019年5月15日
初入NLP领域的一些小建议
人工智能前沿讲习班
6+阅读 · 2019年3月16日
学术派整理,一份从基础到实战的 NLP 学习清单
人工智能头条
7+阅读 · 2019年2月13日
10个项目给你答案,19年NLP为什么这么骚
PaperWeekly
34+阅读 · 2018年12月29日
自然语言处理(NLP)知识结构总结
AI100
51+阅读 · 2018年8月17日
你们是不是都感觉自己少了个推荐系统?
互联网er的早读课
3+阅读 · 2017年12月15日
【NLP】十分钟快览自然语言处理学习总结
专知
17+阅读 · 2017年11月21日
深度学习知识总结(一)
深度学习探索
8+阅读 · 2017年7月18日
相关论文
Arxiv
21+阅读 · 2019年8月21日
How to Fine-Tune BERT for Text Classification?
Arxiv
13+阅读 · 2019年5月14日
Arxiv
3+阅读 · 2018年12月19日
Arxiv
5+阅读 · 2018年10月23日
Arxiv
22+阅读 · 2018年8月30日
Top
微信扫码咨询专知VIP会员