Technology-机器学习-Deep NLP简介

CS224N 课程学习笔记。 NLP with DL (Natural Language Processing with Deep Learning) 简介。

NLP

定义

NLP 是一个交叉的领域,涉及计算机科学、人工智能以及语言学。

目标

NLP 目标是让计算机可以处理(“理解”)自然语言,从而执行一些有用的任务,例如预约事件、购买物品以及问答,Siri,Google Assistant,Facebook M,Cortana 等均在执行这样的任务。

然而,完全的理解以及呈现语言的含义(甚至去定义它),是一件非常难的事情。完美的语言理解是一个 “AI-complete” 问题。

层级

NLP-Levels

应用

NLP 包含了从简单到复杂的使用场景:

  • 拼写检查,关键词检索,同义词查找;
  • 从网站中检索出信息,例如产品的价格,日期,位置,人名或者公司名等;
  • 分类:学校文本阅读分级,长文本的正负情绪判断;
  • 机器翻译;
  • 口语对话系统;
  • 复杂回答系统。

NLP 在业界被用于:

  • 检索(写作和口语);
  • 在线广告匹配;
  • 自动/协作翻译;
  • 市场或者金融的情绪分析;
  • 语音识别;
  • 对话机器人:智能客服,控制设备以及预订物品。

人类语言

定义

人类语言是一门符号化的,分类的信号(signaling)系统。

人类语言是一门专门用于传达说话或者文字含义的系统,其不仅仅是环境的信号,也是一种特意的交流方式,甚至连小孩都能很快掌握。

例如:

  • 火箭 = 🚀,小提琴 = 🎻;
  • 有一些比较小的异常表达,例如 “I looooove it.” 和 “Whoomppaaa”;
  • 依赖于信号;
  • 符号(Symbols)并只是逻辑或者典型 AI 的产物。

符号

一门语言的分类符号可以被编码成不同的交互方式,例如声音,手势和图片。

切换不同的编码方式时,符号的意义是不变的。

NLP-HumanLanguage-Symbol

人类语言是一个符号化,分类的信号系统,人类的大脑一直在运转,因此,这些语言符号通过声音或者视觉的持续信号的方式被传输。

人类语言的巨大词库,对于词汇的符号编码,形成了机器学习的一个难题 - 信息的缺乏(Sparisity)

NLP-MachineLearing-Sparsity

Deep Learning

定义

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

大多数的机器学习方法之所以能效果良好,是因为已经人为定义好了呈现的方式以及输入的元素。例如,定义好了查找位置、公司名等名称实体的输入元素。

NLP-MachineLearing-InputFeatures

因此,机器学习变成了只是单纯的调优参数,来获得一个更好的预测效果。

NLP-MachineLearing-Workflow

表征学习指的是我们只需要给予计算机原始信号(视觉或者语言信号),计算机就能自动学习,创建良好的中间层表征。

深度学习是表征学习(Representation Learning)的一部分。深度学习算法尝试去学习多个层次的表征以及输出。深度学习并不等同于使用神经网络,虽然现在基本都是使用神经网络。

NLP-DL

原因

从 2010 年开始,深度学习开始比其他机器学习方法更突出的原因在于:

  • 大量的可供训练的数据;
  • 更快的机器以及多核 CPU/GPU;
  • 新的模型,算法,创意。

语音

深度学习的第一个成功的案例在于基于大数据集合的语音识别。2010年,基于上下文的预先训练的深度学习神经网络将识别的错误率降低了将近 30% 。

NLP-DL-Speed

第二个成功的案例在于2012年,ImageNet 上通过深度卷积神经网络的分类方法,将错误率降低了将近三分之一。

NLP-DL-ImageNet

Deep NLP

可视化(Visualization)

单词的含义作为一个神经向量,例如 “expect” 可以转化为:

NLP-DL-Visualization

通过向量间的聚类,可以将近义词归类到一起。

词态(Morphology)

传统方法的单词表示形式是由前缀,词干,后缀构成的,例如:

NLP-DL-Morphology-Tranditional

而 DL 的表示形式是,将每次词态表示成一个向量,并通过神经网络将其组合起来。

NLP-DL-Morphology-DL

分词(Parsing)

神经网络可以准确地判断一个句子的结构,从而进行理解。

NLP-DL-Parser

语义(Semantics)

传统的方法是 λ 演算(Lambda calculus):通过手工定义不同单词的意义的函数,通过逻辑代数函数将单词的含义组合在一起,没有相似性和语言的歧义的概念:

NLP-DL-Semantics-Traditional

而 DL 是将每个单词,词组表示成向量,并通过神经网络将其组合起来。

NLP-DL-Semantics-DL

例如,对于以下句子,传统方式是通过字典匹配的方式(忽略词序)来判断其情绪,而深度学习模型可以从全局的角度进行理解,例如递归神经网络(RecursiveNN):

NLP-DL-Semantics-SentimentAnalysis

应用

Google Inbox app 的自动回复功能是一个简单,成功的应用,其使用的是神经语言模型(Neural Language Models)的一个通用技术。

NLP-DL-Applications

机器翻译是另一个典型应用,传统的机器翻译系统及其复杂:

NLP-DL-MT-Traditional

而神经机器翻译系统将句子都映射成向量:

NLP-DL-MT-DL