CS224n-01 Introduction to NLP and Deep Learning

因为兴趣学习起了自然语言处理这个领域,希望自己可以坚持下去加油!

01 Introduction to NLP and Deep Learning

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

自然语言处理是计算机科学,人工智能和语言学的交叉学科。

自然语言处理的目标是:为了完成有用的任务让计算机去执行或者去理解自然语言。比如订机票,购物,QA(Question Answering)。完整的理解和表示语言是很困难的,完美的语言理解就是一个完整的AI。

自然语言处理包括的层次:

CS224n-01 Introduction to NLP and Deep Learning

最上面输入分别是语音和文本。对语音第一步进行语音识别,文本进行OCR(命名实体识别)和分词;第二步进行形态学分析(morphological analysis);第三步进行语法分析(syntactic analysis);第四步进行语义解释(semantic interpretation);第五步进行对话处理(discourse processing)。

简单的自然语言处理应用(从简单到复杂):

1、拼写检查、关键词检索、同义词查找;

2、信息提取(文本挖掘):如商品价格,日期,地点,人或者注册名;

3、文本分类:阅读水平,情感分析;

4、机器翻译;

5、对话系统;

6、复杂QA。


自然语言工业界应用:

1、搜索(读或者写);

2、在线广告匹配;

3、自动/协助翻译;

4、市场或金融/交易的情感分析;

5、语音识别;

6、聊天机器人/对话代理。


人类语言的特殊:

人类语言是一个传达说话者或者写作者意思的特殊构造的系统。不仅仅是环境信号,而是一个深思熟虑的交流。这种编码就是小孩也能轻松学会。

人类语言是离散的,符号性的信号系统。但又允许出现各种变种,比如颜文字,随意的错误拼写“I loooove it”。这种*性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。

语言符号交流有多种形式:听,动作,图像(写),不同的编码中符号是保持不变的。

CS224n-01 Introduction to NLP and Deep Learning


自然语言是一个符号信号系统。然而一个脑的编码好像是连续的**模式,符号传输到大脑的过程是通过连续的声学光学信号。另外巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。

CS224n-01 Introduction to NLP and Deep Learning

2、什么是深度学习?

深度学习是机器学习的子领域。大部分机器学习方法运行的很好是因为人为的设计了输入特征的表示。比如:发现的命名实体特征像地点,组织名称。机器学习因为优化了权重到最好来解决问题。

CS224n-01 Introduction to NLP and Deep LearningCS224n-01 Introduction to NLP and Deep Learning

CS224n-01 Introduction to NLP and Deep Learning

表示学习:试图自动学习到好的特征和表示。深度学习试图去学习表示和输出(从声音,字符,文字中)。

CS224n-01 Introduction to NLP and Deep Learning

深度学习的历史:我们关注不同类型的神将网络和有代表性的深度学习模型。这仅仅是熟练的堆叠逻辑回归单元吗?也许是的,但是有趣的建模方法(端到端)和实际的神经系统连接是一回事。只关注目前效果好的NLP方法而不去讨论过去的方法。深度学习有很长的发展历史可以参考:Deep Learning in Neural Networks: An Overview。

深度学习研究的意义:手工设计特征耗时费力,特征学习易于改变并且学习快速。深度学习提供了一般性的学习框架去世界,视觉和语言信息。深度学习可以无监督也可以有监督学习。

为什没深度学习在2010年取得了巨大进展呢?为什么是这个时候呢?训练数据的增多,计算能力的提高和一些新模型新方法新思想。更好地灵活的中间表示学习方法;高效的端到端系统学习。

性能的提高是从语音到视觉然后到NLP的。

语音中的深度学习

第一个突破是深度学习在语音识别上发生的:Context-Dependent Pre-trained Deep Neural Networks for Large Vocabulary Speech Recognition Dahl et al. (2010)

CS224n-01 Introduction to NLP and Deep Learning

计算机视觉中的深度学习

很多深度学习组织关注计算机视觉,突破性的文章是:ImageNet Classification with Deep Convolutional Neural Networks by Krizhevsky, Sutskever, & Hinton, 2012, U. Toronto. 37% error red.

CS224n-01 Introduction to NLP and Deep LearningCS224n-01 Introduction to NLP and Deep Learning


将会学到什么知识:

CS224n-01 Introduction to NLP and Deep Learning

4、为什么NLP难?

在表示、学习和使用语言学,情景,世界,和视觉知识上是复杂的。人类语言时模糊不清的不像编程语言和其他形式的语言。人类语言的翻译依赖于真实世界,平常的感觉和上下文知识。


5、 Deep NLP = Deep Learning + NLP

将自然语言处理的思想与表示学习结合起来,用深度学习的手法解决NLP目标。这提高了许多方面的效果:

1、层次:语音、词汇、语法、语义

2、工具:词性标注、命名实体识别、句法\语义分析

3、应用:机器翻译、情感分析、客服系统、问答系统


词义就是一个神经词向量(可视化结果):

CS224n-01 Introduction to NLP and Deep Learning

词的相似之处:

CS224n-01 Introduction to NLP and Deep Learning

可以使用的工具:http://nlp.stanford.edu/projects/glove/

NLP层级表示:形态学(Morphology)

传统的:传统的次是由词素组成的。

CS224n-01 Introduction to NLP and Deep Learning

深度学习:

每一个词素是一个矢量,一个神经网络把两个矢量结合成一个矢量。

CS224n-01 Introduction to NLP and Deep Learning

NLP工具:句子结构分析。

神经网络可以准确地分析句子结构并且可以解释。

CS224n-01 Introduction to NLP and Deep Learning

NLP层级表示:语义学

传统方法:微积分
精细的工程函数;看作是特殊的输入或者是函数;没有相似的概念或者是语言很模糊。
CS224n-01 Introduction to NLP and Deep Learning

深度学习:

每个词,每个短语,每个逻辑表示都是一个矢量。一个神经网络把两个矢量结合成一个矢量。

CS224n-01 Introduction to NLP and Deep Learning

NLP应用:情感分析(Sentiment Analysis)

传统方法:情感字典由词袋表示(忽略词序)或者手工设计负词性。

深度学习:深度学习被用到形态学,语法和逻辑语义学中-(RNN)。

CS224n-01 Introduction to NLP and Deep Learning

NLP应用:问答系统(Question Answering)

传统方法:大量的特征工程用来获得词和其他知识,手工编写大量的逻辑规则,比如正则表达式之类。
CS224n-01 Introduction to NLP and Deep Learning

深度学习:深度学习依然使用了类似的学习框架,把事实储存在向量里。


CS224n-01 Introduction to NLP and Deep Learning

NLP应用:客服系统(Dialogue agents / Response Generation)

一个成功的例子就是:谷歌的自动邮件回复。

一个成功的应用神经网络模型就是循环神经网络(Recurrent Neural Networks)。

CS224n-01 Introduction to NLP and Deep Learning

NLP应用:机器翻译(Machine Translation)

传统方法:传统方法在许多层级上做了尝试,词语、语法、语义之类。这类方法试图找到一种世界通用的“国际语”(Interlingua)来作为原文和译文的桥梁。

CS224n-01 Introduction to NLP and Deep Learning


神经网络机器翻译:Neural Machine Translation将原文映射为向量,由向量构建译文

CS224n-01 Introduction to NLP and Deep Learning

结论:所有层级的表示都是向量。

CS224n-01 Introduction to NLP and Deep Learning


下一节课将学习词向量表示。


参考:

http://web.stanford.edu/class/cs224n/

http://www.hankcs.com/nlp/cs224n-introduction-to-nlp-and-deep-learning.html