(四)NLP学习路径
1. 初阶
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
0 | 学Python | 【先修】 | 莫烦python: https://mofanpy.com/tutorials/machine-learning/nlp/interview 廖雪峰-Python3教程: |
0 | 学经典Machine Learning | 【先修】 了解Machine Learning的基本流程(preprocessing/feature enginerring, modeling, evaluation metrics)和基本操作(supervised learning,unsupervised learning,cross validation等) | Coursera 机器学习入门课程 by Andrew Ng https://www.coursera.org/specializations/machine-learning-introduction 林田轩的《机器学习基石》 https://www.coursera.org/learn/ntumlone-algorithmicfoundations 李航的《统计学习方法》 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAglLeCuwYolN2L9Qc.pdf |
1 | 斯坦福CS224n | 【大局观】 | https://www.bilibili.com/video/BV18Y411p79k/ 笔记: https://www.showmeai.tech/tutorials/36 课程主页: https://web.stanford.edu/class/cs224n/index.html Stanford 的 NLP 入门课程,由自然语言处理领域的巨佬 Chris Manning 领衔教授(word2vec 算法的开创者)。内容覆盖了词向量、RNN、LSTM、Seq2Seq 模型、机器翻译、注意力机制、Transformer 等等 NLP 领域的核心知识点。 5 个编程作业难度循序渐进,分别是词向量、word2vec 算法、Dependency parsing、机器翻译以及 Transformer 的 fine-tune。 最终的大作业是在 Stanford 著名的 SQuAD 数据集上训练 QA 模型,有学生的大作业甚至直接发表了顶会论文。 == 这门课程录制于深度学习爆发前夕,授课是斯坦福教授 Dan Jurafsky 和 Christopher Manning 教授,两位都是自然语言处理领域的神牛:前者写了《Speech and Language Processing》(中文译名:自然语言处理综论),目前第三版SLP3还在更新中;后者写了《Foundations of Statistical Natural Language Processing》(中文译名:统计自然语言处理)和《Introduction to Information Retrieval》(中文译名:信息检索导论),这几本书几乎是NLPer的必读书。这门课程适合NLP入门学习,可以了解基本的自然语言处理任务和早期经典的处理方法,以及和信息检索相关的一些方法。我把这门课程整理了一下按章节放在了B站,感兴趣的同学可以关注。 == 强烈推荐,主讲人是绝对的大牛 Christopher Manning,此课程从深度学习的角度出发对 NLP 进行全面的介绍,而其中的 talk 又涉及学术最前沿的进展,可谓广度与深度俱全 == 如果你最近刚开始接触NLP,你可能已经接触过这门流行的NLP课程。所有的讲座和幻灯片都是公开的,你可以在课程网站上找到它。这门课程非常注重NLP的深度学习方法,所以你会看到第一讲直接从词向量开始,然后过渡到卷积网络和transfomer等更高级的主题。如果你对经典的NLP方法感兴趣,你可能要看看开头提到的一本书。事实上,我强烈建议你这样做,因为它是对构建实际NLP系统在实践中有用的宝贵知识。 == 这是面向项目的最新课程,包括这个领域的最新进展。要上这门课,你需要有数学和编程的基础(Python或强大的C++能力)。我只会推荐有一定经验的人去上这门课,你会从中学到更深入的知识。 |
2 | Jurafsky和Martin的《Speech and Language Processing》/《自然语言处理综论》 | 【大局观】 推荐的人最多的一本书,一定要看 | 中文版: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAglbeCuwYooIOKeA.pdf英文版: https://web.stanford.edu/~jurafsky/slp3/ Jurafsky和Martin的Speech and Language Processing是领域内的经典教材,里面包含了NLP的基础知识、语言学扫盲知识、基本任务以及解决思路。阅读此书会接触到很多NLP的最基本任务和知识,比如tagging, 各种parsing,coreference, semantic role labeling等等等等。这对于全局地了解NLP领域有着极其重要的意义。书里面的知识并不需要烂熟于心,但是刷上一两遍,起码对于NLP任务有基本认识,下次遇到了知道去哪里找还是非常有意义的。 == 学习基础知识对于学习任何一门学科都是至关重要的。我是非常推崇这一点的,因为这对我来说很有效。我关注这本书已经有一段时间了,现在已经是第三版了。这本书所涉及的材料写得特别好,为NLP提供了一个很好的理论基础。对于任何想要开始学习NLP的人来说,这有可能是一个很好的起点。即使我已经读过这本书,我也会定期回顾它,因为它定期更新该领域的最新发展。如果你真的很喜欢这本书,你也会发现这些讲座很有用,因为它们确实涵盖了书中所涉及的很多基本主题。 == 本书是一本全面系统地讲述计算机自然语言处理的优秀教材。本书英文版出版之后好评如潮,国外许多著名大学纷纷把本书选为自然语言处理和计算语言学课程的主要教材,该书被誉为该领域教材的“黄金标准”。 作者:Daniel Jurafsky美国加利福尼亚大学获计算机科学博士学位, 现于美国科罗拉多大学语言学系和计算机科学系任教, 并在认知科学研究所工作, 主要研究方向为语言的概率模型和语音信息处理。 James H.Martin,美国加利福尼亚大学获计算机科学博士学位, 现任职于美国科罗拉多大学计算机科学系和认知科学研究所, 主要研究方向为计算语义学. 机器学习和信息检索。 == 如果是新手入门,只精选少量书的话 那就推荐 Speech and Language Processing, 2nd Edition。这本书非常适合新手入门,而且也是众多高校的重复度很高的课程推荐读物。但是这本Speech and Language Processing, 2nd Edition 由于出版时间很长没有包括deep learning 的有关内容,所以也建议配合 Deep Learning 来看。 |
3 | 《自然语言处理入门》 HanLP作者何晗新书 | 【实战】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAglbeCuwYohI_SGg.pdf 码农场博主,HanLP作者何晗新书《自然语言处理入门》,跟着这本书,实现NLP的基础模块,这大概是最好的入门方式之一,具体可参考:https://mp.weixin.qq.com/s/88FVh48A5nMk1Ap9BfnSmw == 这本是HanLP的作者何晗出品的,HanLP是Github上一个21k的项目,基于Java高效地实现了分词、词性标注等通用句法、语义任务,虽然不是研究层面的,但在工业界应用十分广泛,很多公司的分词基础组件都是基于HanLP改的。当年我优化分词模块的时候也拜读了源码,十分佩服作者的功底和学习能力。何晗大佬的这本书主要从统计算法角度讲解,侧重于句法分析任务的理论和实践。 |
3‘ | NLP-Beginner:自然语言处理入门练习(复旦实验室) | 【实战】 | |
4 | 《统计自然语言处理》 by 宗成庆 | 【理论】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAglLeCuwYo6JnU0gU.pdf 也是很经典的一本,但出版时间是2013年,很多方法都过时了。不太适合初学者用来入门现在的NLP,但用来了解统计方法是很好的。 == 前言令人印象非常深刻 == 主要内容:本书介绍了统计自然语言处理的基本概念、理论方法和最新研究进展,内容包括形式语言与自动机及其在自然语言处理中的应用、语言模型、隐马尔可夫模型、语料库技术、汉语自动分词与词性标注、句法分析、词义消歧、篇章分析、统计机器翻译、语音翻译、文本分类、信息检索与问答系统、自动文摘和信息抽取、口语信息处理与人机对话系统等。 推荐理由:本书既有对基础知识和理论模型的介绍,也有对相关问题的研究背景、实现方法和技术现状的详细阐述。可作为高等院校计算机、信息技术等相关专业的高年级本科生或研究生的教材或参考书,也可供从事自然语言处理、数据挖掘和人工智能等研究的相关人员参考。 == 我认为这本书很经典,但是不适合入门,适合入门后进阶使用" |
5 | (optional)数学之美 | 【科普】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgk7eCuwYot8nWWw.pdf |
6 | 工具汇总 | 【工具】 | Stanford CoreNLP 网址:https://stanfordnlp.github.io/CoreNLP/ 主要支持语言:Arabic, Chinese, English, French, German, Spanish 计算机语言:Java, Python == NLTK 主要支持语言:English 计算机语言:Python == Gensim 网址:https://radimrehurek.com/gensim/index.html 支持语言:根据语料语言而定 计算机语言:Python == AllenNLP 主要支持语言:English 计算机语言:Python, 需要PyTorch框架 == LTP 主要支持语言:Chinese 计算机语言:C++, Java, Python == HanLP 主要支持语言:Chinese 计算机语言:Java,有Python接口 == PaddleNLP 网址:https://github.com/paddlepaddle/models#PaddleNLP 主要支持语言:Chinese 计算机语言:Python接口 == NLPIR-ICTCLAS 主要支持语言:Chinese 计算机语言:C#, C++, Java == THULAC 网址:https://github.com/thunlp/THULAC 主要支持语言:Chinese 计算机语言:C++, Java, Python == pkuseg 网址:https://github.com/lancopku/pkuseg-python 主要支持语言:Chinese 计算机语言:Python3 == jieba 网址:https://github.com/fxsjy/jieba 主要支持语言:Chinese 计算机语言:Python, Java, C++等 |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | 旧金山大学&fast.ai 代码优先的自然语言处理公开课-A Code-First Intro to NLP | 【NLP】 | B站: Youtube: https://www.youtube.com/watch?v=cce8ntxP_XI&list=PLtmWHNX-gukKocXQOkQjuVxglSDYWsSh9&index=1 课程主页: https://github.com/fastai/course-nlp == 我的建议: 我个人很享受这种由上而下的学习方式。这门课内容非常扎实(毫无疑问,这是Jeremy Howard本人创建的课程),它很实用且内容在新算法的更新上很及时(最近更新到2019年夏天)。 缺点: 它缺少一些业界的实操案例,只关心算法的实际用法。 强推这门课! == 旧金山大学的两位著名教员,他们开发了一种自上而下的人工智能学习方法。这里的想法是通过首先共享实用代码,然后共享NLP的低级细节,向学生展示全局。 课程需要你有关于自然语言处理和编码的技术知识,否则你很可能会发现自己迷失在课程中。在开始这门坚实的课程之前,我们建议您先上一两节NLP入门课。那些有更多经验的人可能也想参加Fastai的入门课程,即面向程序员的实用深度学习。" |
1‘ | YSDA course in Natural Language Processing | 【NLP】 1的平替,没有1推荐的人多 | https://github.com/yandexdataschool/nlp_course/tree/master 这是一门很新的实战课程,它涉及到了最重要的一些领域。但同样地,它也没有涉及到现实任务的实战,只是专注于算法原理和它们直接的应用 == Elena(Lena)Voita是Yandex的前研究科学家,现在在Yandex数据分析学院任教。她将本课程作为另一个中级到高级课程,让学生免费深入学习自然语言处理。与Fastai一样,它更适合拥有大量先前技术知识的学生,但如果你想要更全面的学习体验,它绝对值得一看。 免费的在线自然语言处理课程涵盖单词嵌入、文本分类、语言建模以及Seq2seq和注意力,设计在四周内完成。然而,学生可以从他们喜欢的任何地方开始,完成时间是灵活的。Voita还在页面上提供其他资源,如NLP游戏、相关研究论文和活动,帮助您学会像研究科学家一样思考。 |
2 | 《统计自然语言处理基础》/《Foundations of Statistical Natural Language Processing》 | 【理论】 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxbqCuwYo0PGahQc.pdf 主要内容:本书涵盖的内容十分广泛,分为四个部分,共16章,包括了构建自然语言处理软件工具将用到的几乎所有理论和算法。全书的论述过程由浅入深,从数学基础到精确的理论算法,从简单的词法分析到复杂的语法分析,适合不同水平的读者群的需求。同时,《统计自然语言处理基础:国外计算机科学教材系列》将理论与实践紧密联系在一起,在介绍理论知识的基础上给出了自然语言处理技术的高层应用(如信息检索等)。 推荐理由:经典的统计自然语言处理的入门教材。内容涉及统计自然语言处理用到的数学基础,词法到语法分析,以及自然语言处理的基本任务(比如文本分类、聚类,统计机器翻译,以及信息检索)。本教材成书较早(1999年),但是自然语言处理领域的基本概念和任务没有太大的变化,仍然适用于初学者快速了解自然语言处理相关的概念和任务。 == 这本书旨在介绍NLP处理中的一些统计学方法 == 用统计方法处理自然语言文本,在近年来已经占据了主导地位。《Foundations of Statistical Natural Language Processing》涵盖了搭配发现、词义消歧、概率解析、信息检索和其他应用等内容。同时,它也对统计自然语言处理(NLP)进行了全面的介绍,并且包含了所有开发NLP工具所需的理论和算法。此书不但提供了广泛且严格的数学和语言基础的内容,还包括详细的统计方法讨论,让学生和研究人员可以根据其实现自己的想法。 |
3 | SpaCy | 【工具】 | SpaCy Tutorial https://github.com/yuibi/spacy_tutorial Advanced NLP with spaCy |
4 | Huggingface NLP Course | 【工具】 学会使用Hugging Face Transformers库 | https://huggingface.co/learn/nlp-course/chapter1/1 |
5 | 学习深度学习 | 【深度学习】 | 《Deep Learning》by Ian Goodfellow https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYom7f1swM.pdf《神经网络与深度学习》 by 邱锡鹏 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYooPT_igc.pdf https://www.bilibili.com/video/BV13b4y1177W?spm_id_from=333.337.search-card.all.click 《动手学深度学习》by 李沐 https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYoqNe78wI.pdf https://github.com/ShusenTang/Dive-into-DL-PyTorch DeepLearning.ai 目标是熟悉下面的知识点: 神经网路(词向量(Word2Vec;GloVe;Fasttext);CNN;RNN/LSTM/GRU/Bidirectional;ELMo;BERT) |
6 | CMU CS 11-747 自然语言处理中的神经网络深度学习 by Graham Neubig | 【深度学习】【NLP】 推荐的人很多 | 细节较多且需要一定基础,推荐给学有余力的同学 |
6‘ | stanford CS224d: Deep Learning for Natural Language Processing 课程导师:Richard Socher | 【深度学习】【NLP】 5的平替 | http://cs224d.stanford.edu/syllabus.html 主要内容:斯坦福大学自然语言小组的基于深度学习的自然语言处理的课程。介绍了自然语言处理领域广泛应用的网络结构(例如循环神经网络、卷积神经网络以及递归神经网络等)及其在自然语言处理的经典任务,例如分类任务(情感分类),序列标注任务(实体识别),序列到序列的生成任务(机器翻译)的实际应用。 推荐理由:自然语言处理是信息时代最重要的技术之一。理解复杂的语言也是人工智能的重要组成部分。自然语言处理的应用无处不在,因为人们用语言沟通了大部分内容:网络搜索、广告、电子邮件、客户服务、语言翻译、放射学报告等等。本课程比较适合对这个领域感兴趣的初学者。 |
6‘ | 李宏毅 Deep Learning for Human Language Processing | 【深度学习】【NLP】 5的平替,推荐的人不是很多,但是优点是中文,B站有20多万的播放 | |
7 | 《基于深度学习的自然语言处理》/《Neural Network Methods for Natural Language Processing》 | 【深度学习】 两本里选一本读 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYo_p_BwgE.pdf 一本新书《基于深度学习的自然语言处理》,英文版名《Neural Network Methods for Natural Language Processing》,哈工大车万翔老师带队翻译,我已收获译者签名版,阅读后感觉很不错。 == 本书重点介绍了神经网络模型在自然语言处理中的应用。 作者: Yoav Goldberg,现就职于以色列巴伊兰大学,自然语言处理领域一位非常活跃的青年学者。博士期间的主要研究方向为依存句法分析,在理论上对词嵌入和传统矩阵分解方法的对比分析也具有广泛的影响力。DyNet深度学习库的主要开发者之一。 == 简介:本书系统阐述将深度学习技术应用于自然语言处理的方法和技术,深入浅出地介绍了深度学习的基本知识及各种常用的网络结构,并重点介绍了如何使用这些技术处理自然语言。本书主要面向高等院校自然语言处理和机器学习方向的研究生,也适合自然语言处理或机器学习领域的研究人员以及工业界从事智能相关领域呀发的专业人员阅读参考。 |
7 | 《Neural Network Methods in Natural Language Processing (Synthesis Lectures on Human Language Technologies)》 by Yoav Goldberg | 【深度学习】 两本里选一本读 | https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYojOPTXQ.pdf 如果你刚刚开始学习NLP的旅程,你可能已经接触到NLP中更现代的方法,比如RNN和其他基于深度学习的模型。如果您正在寻找关于神经网络理论上的全面综述以及它们如何在NLP中使用,这本书就是为你准备的。在本书中找到的参考文献对我自己的研究起到了重要作用。 == 主要内容:本书着重介绍神经网络模型在自然语言数据中的应用。本书的前半部分介绍了有监督的机器学习和前馈神经网络的基础知识,基于语言数据的机器学习的基础知识。它还涵盖了可以定义和训练任意神经网络的计算图形抽象方面的知识,是当代神经网络软件库设计的基础。本书的第二部分介绍了更多专门的神经网络体系结构,包括一维卷积神经网络、递归神经网络、条件生成模型和基于注意力的模型。这些体系结构和技术是机器翻译、句法分析和许多其他应用程序的最先进算法的推动力量。最后,本书还讨论了树形网络,结构化预测和多任务学习的前景。 推荐理由:大家都知道最近几年由于深度学习的兴起,使得图像识别、语音识别等多个方面都发生了很大的变革。深度学习在自然语言处理方面也是非常普遍了,一些经典的自然语言模式也都是基于神经网络的,这本书是目前市面上唯一一本介绍神经网络在自然语言处理的应用,是最新、最前沿的东西,而且书中的大量参考文献非常有价值。本书的作者在这个领域非常知名,并且对待学术态度极其严谨。深入浅出,值得对深度学习在自然语言处理中应用感兴趣的同学系统地读一读。 |
8 | 《Natural Language Processing with Python》/《Python 自然语言处理》 | 【NLTK】【实战】 | 官方文档: zYx.Tom 同学的NLP读书笔记和NLTK中文注释代码: https://github.com/panyang/AINLP-Resource/tree/master/zYx.Tom 《Python 自然语言处理》学习笔记: https://github.com/zhuyuanxiang/NLTK-Python-CN Python 3 Text Processing with NLTK 3 Cookbook: https://32931414.s21i.faiusr.com/61/ABUIABA9GAAgxLqCuwYousmlqwI.pdf |
9 | NLP常用数据集 | 【实战】 | https://zhuanlan.zhihu.com/p/35423943 https://github.com/PaddlePaddle/EasyData/blob/develop/docs/zh_CN/datasets/datasets/NLP.md |
顺序 | 资源 | 知识分类/使用方法 | 链接和介绍 |
1 | 预训练模型 | 【预训练】 | https://www.youtube.com/@arp_ai/videos https://zhuanlan.zhihu.com/p/115014536 https://arxiv.org/abs/2003.08271 https://space.bilibili.com/181990557/channel/seriesdetail?sid=216163 Demo: https://notebooks.quantumstat.com/ 论文: https://github.com/thunlp/PLMpapers |
2 | 了解经典的NLP模型以及论文 | 【学术】 | 相比简单粗暴的神经网络模型,早年的NLP算法确实比较繁琐复杂,但里面确实有很多早年学者在硬件条件艰苦情况下的智慧结晶。熟悉了这些模型,可以在现在神经网络里面融会贯通。去年在人民大学做seminar。Seminar有大概30-40位同学参加。Seminar中,我问了一个问题,有谁知道机器翻译中的IBM模型大概是干嘛的,举手的同学大概有五分之一。我再问,谁能来手写(或者大概手写)一下IBM model1,一个人都没有。仅仅从基于IBM模型的Hierarchical Phrase-based MT, 近几年就有很多篇引用量很高的文章是基于里面的思想的。 Papers with Code:https://paperswithcode.com/methods/area/natural-language-processing arXiv (cs.CL):https://arxiv.org/list/cs.CL/recent NLP-progress:https://nlpprogress.com/ Attention Is All You Need 论文解析:https://nlp.seas.harvard.edu/2018/04/03/attention.html 2020 A Survey on Text Classification: From Shallow to Deep Learning:https://arxiv.org/pdf/2008.00364v2.pdf 2020 A Survey on Recent Advances in Sequence Labeling from Deep Learning Models:https://arxiv.org/pdf/2011.06727 2020 Evolution of Semantic Similarity - A Survey:https://arxiv.org/pdf/2004.13820 2017 Neural text generation: A practical guide:https://arxiv.org/abs/1711.09534 2018 Neural Text Generation: Past, Present and Beyond:https://arxiv.org/pdf/1803.07133.pdf 2019 The survey: Text generation models in deep learning:https://www.sciencedirect.com/science/article/pii/S1319157820303360 2020 Efficient Transformers: A Survey:https://arxiv.org/abs/2009.06732 |
3 | 多看NLP其他子领域的论文 | 【学术】 | NLP有很多子领域,MT,信息抽取,parsing,tagging,情感分析,MRC等等。多多熟悉其他子领域的进展是必要的。其实不同子领域所运用的模型不会相差太大。但是最开始看不熟悉领域的问题可能会有一点难,原因是对问题的formalization不是很了解。这可能就需要多花一些时间,多找懂的同学去问。其实了解不同问题的formalization也是对领域知识最好的扩充。 |
4 | NLP研究入门之道 | 【学术】 | |
5 | (optional)LLM时代NLP研究何去何从?一个博士生的角度出发 | 【学术】 | |
6 | 了解机器学习的基本模型 | 【ML】 | 神经网络的简单暴力并且有效。但是从科研的角度讲,熟悉基本的机器学习算法是必修课。比如吴恩达的 machine learning就是必要之选。记得前段时间我面试一个小伙子,一看就是很聪明的同学,而且很短的时间就有一篇NAACL在投。我就问小伙子,EM算法是什么,小伙子说没有听说过EM,而且自己的科研也用不到EM。我认为这其实是一个挺大的误区。当我想起我自己,曾经就吃过很多类似的亏。因为早期数学基础偏弱,也没有决心恶补一下数学,所以早年每次看到跟variational inference相关的算法就头大,这种偏科持续了很久,限制了科研的广度。相比粗暴的神经网络,CRF等模型的inference确实相对复杂(当年我自己也看了很多次才彻底搞明白)。但搞懂这些,是一个NLP researcher的基本素养。Pattern Recognition and Machine Learning那本书,尤其是某些小节确实比较难(又暴露了数学基础差的事实),即便是只是为了过一遍,也需要很强的耐力才能看完,更不用说完全看懂了。我自己也曾经半途而废很多次,如今依然有很多章节是不太懂的。但是其中的很多基础chapter,我认为还是很值得一读的。其实可以组成那种两三个人的学习小组,不需要有太雄伟的目标,用个一年哪怕两年的时间,把几个重要的chapter 过一遍。NLP相对是应用科学,并不是特别的数学。但是我们天天用的算法的基本数学逻辑我认为还是需要搞懂,比如dropout, 比如天天用到的优化(SGD, momentum, adaboost, adagrad),比如各种 batch, layer normalization。这样其实可以省去很多浪费的时间,磨刀不误砍柴工。这些年来,在帮同学调bug的过程中,我至少遇见过3-5个同学 training 的时候开dropout, test 的时候没有对每个cell用 (1-dropout)去 scale (大家不要笑,这是真的)。然后画出dropout曲线就是 dropout 值越大,结果越差。在讨论的时候,同学一脸茫然并且不清楚test时候需要scale。其实本质就是并不了解dropout背后的数学原理。 |
7 | 了解 CV和data mining领域的基本重大进展 | 【CV】【Data mining】 | 熟悉CV领域的基本任务、基本算法我认为对于打开科研视野很重要。但是不可否认,因为领域不用,写作风格、术语表达相差很大,又因为缺乏背景知识(文章中会省略一些基础知识,默认大家都懂。但是跨领域的人可能不懂),第一次想读懂跨领域的文章其实并不容易。我就出现过竟然在讨论班上直接把faster-RCNN讲错了的情况,以为自己看懂了,然后就讲错了(至今昱先天天还在因为这个事情调侃我)。不过重要的是,NLP领域里面一些重要的文章其实或多或少借鉴了CV里面的思想,当然也同样出现CV借鉴NLP的情况。NLP神经网络可视化、可解释性的研究,时间上还是落后于CV里面对CNN的可视化。所以很多工作大量借鉴了CV里面的类似工作。NLP运用GAN其实也是借鉴CV的。其实两个领域很多是很相通的。比如,如果不考虑question query, vision里面detection中的 region proposal(在一个大的图片背景下找一个特定区域), 大家想是不是跟MRC里面的 span extraction (在一大堆文字里面找一个span)有异曲同工之妙。更不用说image caption generation与sequence-to-sequence模型了,本质上几乎没什么太大的区别。强化学习在生成领域generation,发完了MT(Ranzato et al., ICLR2016)再发 image caption generation, 再回到summarization. Actor-critic 模型也是类似的,还是很多做generation diversity的文章。因为跨领域不好懂,所以第一次推荐看tutorial, 如果有 sudo code 的tutorial那就更好了。另外看看扫盲课的视频,比如Stanford CS231n也是个好办法。另外,一个NLP组里面有一个很懂CV的人也很重要(拜谢昱先), and vise versa。 graph embedding近两年崛起于data mining领域。目测会在(或者已经在)NLP的不少任务得到广泛应用。想到几年前,deep walk借鉴了word2vec, 开始在data mining领域发迹,然后似乎又要轮转回NLP了。 |
8 | 深入了解深度学习 | Paperswithcode: | |
9 | 博客 | 【博客】 | Google AI Blog: Sebastian Ruder: 内容简介:NLP学者Sebastian Ruder的个人博客,经常会撰写一些技术博客和参加顶会的感想总结,十分值得学习。包括他整理的NLP-progress项目,可以了解NLP各个任务的SOTA。 colah‘s blog: 内容简介:虽然现在不怎么更新了,但是之前的一些blog很经典,适合初学者对神经网络的学习理解,当时火热的“Understanding LSTM Networks”就是出自于此。 我爱自然语言处理: 飞浆: |
10 | 参加Kaggle等比赛 | 【比赛】 | 比赛技巧: https://zhuanlan.zhihu.com/p/71609765 https://zhuanlan.zhihu.com/p/106766826 https://zhuanlan.zhihu.com/p/433185700 https://www.cvmart.net/community/detail/1499 参加一次Kaggle、天池、Biendata等平台的比赛,享受优化模型的摧残。 Kaggle的优点是有各种kernel可以学习,国内比赛的优点是中文数据方便看case。建议把两者的优点结合,比如参加一个国内的文本匹配比赛,就去kaggle找相同任务的kernel看,学习别人的trick。同时多看些顶会论文并复现,争取做完一个任务后就把这个任务技巧摸清。 |
10 | NLP-Interview-NotesNLP 面无不过 | 【面试】 | https://github.com/km1994/NLP-Interview-Notes 貌似需要付费(299),但是整理的很全面。不确定答案的质量。 |