cs224n 第一课:自然语言处理与深度学习

作者:deta 
时间:2018/07/23 

以下是斯坦福公开课cs224n 自然语言处理与深度学习的第一节课的笔记。主要是用作个人备忘用,能力有限,其中存在的问题欢迎大家包容和指正。学习材料可以去课程主页下载,慕课网上也有免费的中英字幕视屏,感谢为我们这种英语渣渣们提供这么好的资源。


好了,开始上车了!

1、什么是自然语言处理:

自然语言处理是一门涉及到计算机科学、人工智能和语言学的交叉学科,它的目标是处理或者理解自然语言并且能帮助我们做一些有用的事情,比如说帮你买东西(以后会不会只需要对着手机说一句需要买啥,就自动帮你挑好下单?),和你聊天、QA系统(siri,Cortana 这些之类的)。但是完全通过机器去理解人类语言的含义目前来说是一件非常困难的事情


目前在NLP上主要做的包括下面图中的几块:一般输入的来源主要是语音和文本两块,对于语音输入,开始需要做一些语音解释和音位分析。对于文本类的话比如ocr,需要做一些文字识别的操作。这门课主要关注圈住的那三个,下面的 句法分析(Syntactic analysis)和语义理解(Semantic Interpretation)是重点,上面那个语音信号分析会简单介绍一下

NLP

自然语言处理方面的一些应用
  • 拼写检查,关键词搜索,查找同义词
  • 从网页上抽取一些比如说商品价格,任务,或者公司名称的一些信息
  • 分类,机器翻译之类的
目前在工业上已经应用起来的一些东西
  • 通过读或者写进行搜索
  • 在线广告的匹配
  • 自动翻译;在金融交易中对新闻文本的情感分析;语音识别
  • 聊天机器人等
人类语言有啥特点了?

我们的语言小孩子都学习的特别快,而且表达的意思通常会结合着表情和手势。使用的语言是一种符号级的(symbolic)信号系统,但是大脑貌似是通过一种连续激活的模式进行编码的,而且这些符号是通过连续的声音或视觉型号传递的,大量的语法以及单词符号级别的编码造成了机器学习中稀疏的问题


2、什么是深度学习

深度学习是机器学习的一门子领域,大多数机器学习的问题如果想要达到一个比较好的效果,大多数需要花费比较多精力去设计一些特征,机器学习通过不断优化模型的权重来使最终的预测效果达到最好。

机器学习的一般处理方法

需要花费比较大的工作量去做特征工程的操作

机器学习处理方法

深度学习中的处理方法

深度学习会自动去学习一些好的表征形式,不需要做大量的特征工程操作,算法会学习出多级别的一些表征形式(不同网络层)和一个输出结果,输入是一些比较”生”的数据形式(声音、数据和单词)

为什么要使用深度学习?

人工设计的特征经常被过度加工(以人理解的方式),不够全面以及需要花费比较多的时间去验证。通过算法自己学习特征对模型来说适应性更强并且不需要花费太多的时间 。深度学习中有一些比较灵活的框架能用来表征词汇和语言信息,同时能学习监督学习问题和无监督学习问题。互联网时代,随着大量的数据的产生,cpu/gpu性能的快速提升,是深度学习得到了快速的发展。


深度学习真正意义上的第一个重大突破是在语音识别上,之前通过利用高斯混合模型进行声学分析,隐马尔科夫模型等都没有得到太大的提升,但是当换到深度学习模型进行语音识别时,文字识别错误率一下子大幅下降了,大约可以减少30%的字错误率


深度学习第二个比较大的突破是在计算机视觉方面,深度学习在ImageNet计算机视觉竞赛中具有出色的表现

3、学完这系列后要会些什么?

通过这次课,我们能够理解并且有能力运用有效的现代方法进行深度学习 ,包括一些基础知识,NLP中使用的主要方法:RNN 、attention等,以及目前人们理解和产生语言中所遇到的困难;具有为重要NLP问题构建系统架构的能力。学完一系列课程后,再回过头来看看下这些是不是都会了?

4、为什么NLP很难

首先自然语言不像编程语言或者其他公式化的语言一样,它通常是模凌两可的;其人类语言作为一种高效的交流方式,有时候会省略一些东西,它通常依赖与具体的场景、语气以及上下文的知识。

5、Deep NLP = Deep Learning + NLP

通过使用表征学习和深度学习的方式来达到自然语言处理的目标 ,一方面,深度学习被应用到各种不同层次的语言学上:如词汇学,句法学,语义学;应用于各种不同类型的工具和算法,例如为单词标注词性,识别人物姓名和机构名称,找出句子的语法结构。此外,它还被运用在语言应用程序上,比如机器翻译,情感分析,聊天助手,QA等

深度学习和语言都是以词义为起点,我们要一个具体的词用一个数字向量来表示,当我们有了单词的表示,我们将单词放在了高维向量空间中,这些空间就称为了非常棒的语义空间

词向量

NLP 级别的表征: 语义学
  • 传统方式: Lambda 演算,通过设计一些工程函数

lambda演算

  • DL :每一个单词、每一个语法以及每一个逻辑表达都是一个向量,将两个向量合并成一个

神经网络学习向量

NLP 方面的一些应用: 情感分析
  • 传统方式: 建立一些情感类单词字典,利用词袋模型表征或者设计一些负面情感词
  • 一些深度学习模型能在语义学中被应用起来
问答系统
  • 传统方法:需要做很多特征工程的操作来获得单词和其他的一些知识,比如利用正则的方法
  • DL: 一些深度学习模型可以被使用
聊天助手

它是循环神经网络RNN的一个应用:

这里写图片描述

机器翻译

传统的机器翻译是一个很繁杂的系统,运用RNN,句子被映射成向量,输出是句子的生成:

这里写图片描述
所有神奇的事情背后运用的都是向量,我们用这个来标识所有的语言形式,无论是声音,词的部分、单词、句子还是对话,他们都变成了含有真实值的向量,后续会具体学习如何将这些转化成向量

猜你喜欢

转载自blog.csdn.net/a096030098/article/details/81174435