让我们先看看一些常见自然语言处理面试题:
之前有些朋友会向我咨询为什么自学了名校的专栏认真做了笔记,却还是会在面试时回答不出来问题,因为其实很多优秀的专栏和书籍侧重点会不同,理论上可能只是讲个思想,来龙去脉并不会讲的很深。
实战中可能只是给出基础的代码,为什么要进行哪一步也没有讲的很细,关于面试的书也只是给出答案,到底为什么要这么回答也没有给出详细的解释,而在面试时面试官们通常会把最基础的东西问得很透彻,比如手推反向传播,手推 LSTM,改进 SkipGram 模型等等,所以单单学完一门专栏看完一本书可能并不会真正地掌握知识。
让我们来想象这样一个画面:
当清晨被闹钟叫醒,睁开朦胧的双眼,摸起手机说“siri,帮我设一个五分钟的闹钟”,随之又进入了梦乡。 五分钟后很快就到了,总算精神了一些,看看今天每小时的天气预报如何,起床准备开始一天的工作。 早餐时间,一边吃着美味的早餐一边打开了邮箱,看到又多了几封垃圾邮件。 一切准备就绪,出发去上班,在路上,兴致勃勃地看一篇今天特别感兴趣的外语文章,发现有个单词不认识,于是打开了翻译软件。 忽然想到有个包裹怎么还没到,打开购物软件,和他们的聊天机器人客服聊了起来。
上面这些事情可能就发生在每日日常的一个小时内,但却用到了语音识别,时间序列预测,垃圾邮件识别,机器翻译,聊天机器人等技术。
你是否好奇是什么技术实现了这些便利的功能?是否也想自己也可以 DIY 一些人工智能应用来解决自己平日遇到的问题呢?
那么这门专栏就可以为你的奇思妙想奠定基础,这门专栏不仅仅是实战,还有深入的模型理论讲解,尤其是面试中常遇问题的详细解答。
放眼宏观环境,人工智能已经被列入国家战略目标,2020要让人工智能和应用达到世界先进水平,2025年使其成为引导经济转型的主要动力,而自然语言处理是人工智能入口之争的主要技术之一,它将会是未来人机交互的主要方式,很多大公司或者新创公司都下大力度进行这方面的研究,无论是出于兴趣,还是早在职业规划目标之内,学习一下自然语言处理的经典模型原理和实践,未来可以找到更多机会参与到人工智能创新的浪潮中来。
同样在本门专栏中会帮助大家解决这样的问题,我们会以能够回答出面试题为基准,并且是建立在透彻理解模型原理的基础上,而不是死记硬背答案,还会有数学公式推导作为理论支撑,做到真的理解模型,这样当面试官们变换问题时,或者要求提出改进方案或者拓展时,都能够根据自己的理解给出解答。
除了理论还有实战,本专栏设计的实战项目有热门应用,如情感分析,聊天机器人等都是现在很多公司所需要的;也有 NER,POS 等基础应用,是自然语言处理项目中必备的。面试官们会对项目的每个环节都问的比较细,数据清洗,预处理,特征,建模,模型评估等等,所以我们的项目解释也很全,包括数据在模型里是如何变化的,每一步代码干了什么发生了什么都会心里有数。
当然在这一门专栏中肯定无法涵盖自然语言处理的各个角落,我们会先主要覆盖 NLP 工程师面试所需的深度学习基础部分,将基础的经典的模型理论牢牢掌握,会针对真实的面试题给出详细的讲解。
每个模型的公式是什么,怎么训练模型,怎么优化模型都会提到,在实战中遇到的特别技术概念也会给出详细的讲解。
内容新: 本专栏涵盖 RNN,LSTM,GRU,word2vec,CNN 这些基础,还包括多层,双向等拓展,有 Seq2seq 和 Attention,再到最近流行的 Transformer,ELMo,BERT,层层递进掌握经典模型。
实战多: 包括 14 个项目的代码及详细的讲解,从命名实体识别,词性标注,到情感分析,聊天机器人,机器翻译,再到图片文字摘要,动手实现有趣的智能应用。
讲的细: 每篇文章用黄金圈 why,how,what 的结构详细讲解模型原理,对面试中常考问题给出解答和理论依据,深刻理解经典模型解决问题的思想。
第 1 部分:深度学习基础知识
因为本专栏是关于深度学习在自然语言处理中的应用,所以专栏开始部分我们会概括性地介绍什么是深度学习项目的一般流程和所需基本概念,深度学习在自然语言处理领域主要有哪些热门应用,还会介绍本专栏项目所需的 Keras 和 TensorFlow 2.0 基础,有了这样一个全局观,在后面学习具体模型和项目的时候会更有掌控性。
第 2 部分:循环神经网络基础
这一部分会非常详细地介绍 RNN 和 LSTM 的原理,它们是深度自然语言处理的基础模型,掌握它们对学习并理解后面更复杂的模型结构有很好的帮助,而且专栏中会有面试常考问题的详细解答和公式推导,从数学的层次做到真正理解经典模型的特性。
第 3 部分:词嵌入
在这里我们会介绍 Word2vec 的方法,包括 CBOW,Skip-gram,GloVe 的理论和应用。词嵌入是自然语言处理任务中很重要的一步,它可以让模型更好地学习到单词之间的关系和单词地含义,使模型表现地更好。
第 4 部分:循环神经网络的改进
这一部分我们将学习如何改进基础的 RNN 和 LSTM,通过前面对基础理论的深入了解,我们可以知道它们具有哪些不足,于是通过改善门控单元,搜索结果,增加方向等方法来使模型进一步得到改善。
第 5 部分:Seq2seq 和 Attention
这一部分模型的结构进一步升级,Seq2seq 是一个 Encoder–Decoder 结构的网络,它最重要的地方在于输入序列和输出序列的长度是可变的,不过因为不管输入的长度多长都会被它压缩成一个几百维的中间向量,就会造成任务质量的下降,而 Attention 又进一步解决了 Seq2seq 存在的问题,有了这些改进使得模型在情感分析,聊天机器人,机器翻译等任务中的性能提升。
第 6 部分:卷积神经网络的应用
卷积神经网络被大家熟知的是在图像领域的重要模型,这一部分就会介绍它其实也可以用于自然语言处理的任务中,通过学习这种“跨界”的模型,不仅可以更了解到任务和模型的本质,还有助于开拓解决问题的思路。
第 7 部分:Transformer,ELMo,BERT
BERT 是2018年10月11日由 Google AI Language 发布的模型,当时在问答,推理等 11 个 自然语言处理任务上的表现都刷新了记录,目前为止有很多优秀的模型都是在其基础上进行改进,所以这部分将介绍 Transformer,ELMo,BERT 这一系列的原理和应用。
面试必备知识点
在自然语言处理相关职位的面试中,面试官会对模型的结构,原理,数学推导,优缺点,改进方法等进行细致地提问,很多外文原版书籍或者名校专栏中都不会做特别详细地解答,最后看了很多书学了很多专栏,可能到面试的时候还是答不出来问题,在本专栏中就会对这些知识点进行深入地讲解,让大家能够真正理解每个模型,知其然知其所以然。
本专栏将用通俗易懂的方式讲解模型的原理,用图解的方式画出模型中数据的走向,对关键步骤的计算,例如前向计算,反向传播,会有详细的手写推导。以及一些核心问题的探究,例如为什么循环神经网络具有记忆功能,LSTM 为什么可以缓解梯度消失,为什么用双向 LSTM,Encoder–Decoder 的结构是什么样的,为什么需要 Attention 机制等。
动手实践,编写有趣的项目
无论是出于兴趣还是想要找到高薪的工作,最后都要落实到有能力解决问题。所以本专栏在每个模型的原理之后,都有相应的项目代码,而且有非常详细的代码讲解,理论与实践结合,真正把模型用起来,除了用序列模型处理其他模型能做到的分类和预测的任务,还可以构建一些好玩的,例如自动生成某个大师风格的文章,根据电影评论分析一下观众对它的评价,做个简易的聊天机器人,再或者平时经常用的翻译软件,自己也可以学习到机器翻译模型的构建方法。
熟练地使用 TensorFlow/Keras
本专栏在每个模型后都配有应用代码,都是用 TensorFlow 或 Keras 来实现,这两个框架也是很多公司在招聘时优先考虑的技术,通过专栏中一些小项目的练习,可以进行强化训练,并且由于都是序列模型,还可以进行横向比较,了解实现不同项目的共同点和区别,这样在以后应用这些深度学习框架来处理新的任务时可以得心应手。
杨熹,数学系硕士,目前从事数据科学方面的工作。曾任 Intel 成本分析师,日本 TRIAL 数据分析师,美国 Trilogy 数据科学培训师,参与销量预测,成本分析,推荐系统等多个项目,擅长机器学习,深度学习,自然语言处理。