CS224n NLP with Deep Learning(1):Introduction NLP与深度学习入门

引言

课程笔记:笔记pdf

youtube观看链接:youtube列表

bilibili观看链接:斯坦福CS224n

本讲主要包括四个方面:

  • 什么是自然语言处理?
  • 什么是深度学习?
  • 为什么language理解起来困难?
  • 关于NLP的深度学习

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

自然语言处理(Natural Language Processing)是计算机科学(Computer Science)、人工智能(Artificial Intelligence)和语言学(Linguistics)的交叉学科。它的目标是让计算机能够处理(或者说“理解”)自然语言,从而完成一些有意义的工作。

2. NLP任务的层次

让计算机理解自然语言是很困难的,因此一个NLP任务通常也会有很多步骤。大体上NLP任务可分为如下几个层次,从上到下具体是:

  • 输入部分:自然语言的输入可以是语音也可以是文本,通常语音输入先要转换为文本,再进行其他处理。对于文本,如果是图片中的文字则先要通过光学字符识别(Optical Character Recognition, OCR)转换为普通的文本。NLP中,通常单词是处理的基本单位,所以最后要对普通的文本进行分词(Tokenization)操作。
  • 单词结构分析(Morphological Analysis):一些复杂的单词可以通过分析单词的结构来理解其含义,例如单词“incomprehensible”,有前缀“-in”和后缀“-ible”,我们可以根据这些来理解单词的意思。
  • 句法分析(Syntactic Analysis):句法分析用于理解句子的结构,例如“我爱学习”中,“我”是主语,“爱”是谓语,“学习”是宾语。
  • 语义理解(Semantic Interpretation):得出整个句子的意思。
  • 语篇处理(Discourse Processing):在文章中,句子不是独立的,还需要通过上下文得出整个文章的意思。

在这门课程中,我们主要关注句法分析语义理解这两部分,同时也会涉及一些语音识别的知识。同时因为这门课的名字是Natural Language Processing with Deep Learning,所以在这门课中所使用的方法也大多是深度学习的方法。

3. 自然语言处理的应用

从简单到复杂有:

  • 拼写检查、文字的自动填写功能……
  • 文本挖掘(产品价格、日期、时间、地点、人名、公司名)
  • 文本分类
  • 机器翻译
  • 问答系统、聊天机器人、智能语音助手
  • ……

4. 人类语言的特殊之处

语言与信号处理、数据挖掘时所思考的是不同的,在信号处理、数据挖掘过程中大多数情况下只是处理数据。

人类语言是离散的、明确的符号系统。

语言符号有多种形式(声音、手势、书写),在这些不同的形式中,其意义保持不变:

5. 什么是深度学习?

深度学习(Deep Learning)是机器学习的一个子集。

传统机器学习(主要是决策树、SVM、朴素贝叶斯、LR)中,人类需要对专业问题理解非常透彻,才能手工设计特征。然后把特征交给某个机器学习算法,比如线性分类器。机器为这些特征调整找到合适的权值,将误差优化到最小。

如上图所示,传统的机器学习算法在应用的过程中,大部分的工作是人们研究如何描述特征,同时总结出重要特征。小部分的工作是计算机进行优化。

在深度学习中,我们只需向计算机提供来自世界的原始信号(视觉信号或语音信号),计算机可以得出好的中介表征,来完成任务。

6. 为什么要研究深度学习?

  • 手工特征耗时耗力,且不易拓展

  • 自动特征学习快,方便拓展

  • 深度学习提供了一种通用的学习框架,可用来表示世界、视觉和语言学信息

  • 深度学习既可以无监督学习,也可以监督学习

深度学习可追溯到八九十年代,但在2010年左右才崛起(最先是语音与图像,后来才是NLP),那之前为什么没有呢?

  • 以前数据量不够,如今有海量数据可以用于深度学习。
  • 计算力太弱。
  • 当然,最近也的确有许多新模型,新算法。

7. NLP困难在哪?

人类语言是充满歧义的,不像编程语言那样明确。

人类语言的解读依赖于现实世界、常识以及上下文。由于说话速度书写速度阅读速度的限制,人类语言非常简练,省略了大量背景知识。

8. deep nlp

deep nlp = deep learning + nlp

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

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

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

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

9. 词的表示

我们将把某个词的含义,用一个向量来表达。

例如“except”一词,可以使用如下向量表示:

这就意味着,我们将单词放在高维向量空间中,构成了语义空间。具有相似含义的词汇将在矢量空间中形成聚集块。如下图所示,'come' 与 ‘go’ 很相似。 

不止如此,我们会发现,向量空间中存在方向,它们会透露关于成分和意义的信息。

10. NLP 表示层次 

传统情况下如果我们看到复杂的词,例如uninterested,会认为它是由更小单元的词素(词素是构成词的要素。是语言中最小单位的音义结合体)组成的。

我们可以把词语的组成部分看做,代表单词部分含义的多个向量。我们要做的,就是建立一个神经网络,用小块单元构成更大的单元。多个词素向量构成语义更丰富的词向量。

NLP工具:句法分析

再进一步,词语之上,我们想了解句子的结构。找出句子的结构,发现句法停顿处。

找到句子的结构后,我们想要了解句子的含义。我们以向量表示词语含义,继而用向量表示短语的含义,甚至句子的含义。

问答系统:

人类可以与移动设备进行交互。

客服系统:

最著名的例子得数GMail的自动回复:

可以生成谷歌收件箱的建议回复,即运用循环神经网络(RNN) 阅读消息,然后对信息给出三条建议回复。

机器翻译

下图所示的机器翻译不同于传统的机器翻译,运用了一个大型的,深层的循环神经网络。通过原文生成向量,由向量构建译文。

所有层级的表示都是向量,我们用来表示所有的语言形式(包括:声音、词的部分、单词、句子,对话),它们都变成了含有真实值的向量。

这可能是因为向量是最灵活的形式,它的维度是自由的,它可以组合成矩阵,或者更高阶的Tensor。它的不同部分,或者不同的方向,代表不同的信息。这实际上是非常灵活的数据结构,拥有强大的表达能力。

11. 参考链接

CS224N NLP with Deep Learning(一):Introduction

CS224n笔记1 自然语言处理与深度学习简介

猜你喜欢

转载自blog.csdn.net/u014128608/article/details/103191084