美文网首页
CS224N学习笔记(一)

CS224N学习笔记(一)

作者: DataArk | 来源:发表于2018-10-07 23:32 被阅读86次

    一、什么是自然语言处理

    • 自然语言处理是一门交叉学科,包括计算机科学,人工智能和语言学
    • 目标:让计算机去处理或“理解”自然语言, 完成一些有用的任务例如问答系统、机器翻译
    • 完全理解或者表示语言的意义(甚至去定义它)都是一个虚幻的目标
    • 完美的理解语言是一个“AI-complete”的问题
    对NLP的研究通常在5个Level上进行:
    • 语音/文本分析:包括语言识别技术、OCR技术、分词技术等
    • 词形分析:例如分析一个word的前后缀、词根等
    • 语法分析:从语法结构上分析一个句子的构成
    • 语义分析:理解一个句子或单词的语义
    • 篇章分析:理解一段篇章的含义
    自然语言处理的层次
    自然语言处理的应用:
    • 应用范围从简单到复杂
    • 拼写检查, 关键词提取&搜索,同义词查找&替换
    • 从网页中提取有用的信息例如产品价格,日期,地址,人名或公司名等
    • 分类,例如对教科书的文本进行分级,对长文本进行正负情绪判断
    • 机器翻译
    • 口语对话系统
    • 复杂的问答系统
    工业届里的NLP应用:
    • 搜索引擎
    • 在线广告
    • 自动的或辅助的翻译技术
    • 市场营销或者金融交易领域的情感分析
    • 语音识别

    二、什么是深度学习

    深度学习是机器学习的一个研究子领域。传统机器学习算法面临的一个问题是,模型的优劣往往很大程度上依赖于特征的选取。例如如下图所示,对于一个NER问题(Named Entity Recognition,命名实体识别),传统的机器学习算法(如CRF)通常需要输入目标词的大小写特征,词性特征,以及其上下文环境里的词性分布等特征。

    最终这些机器学习问题会变成优化问题:优化这些特征权重以达到最好的预测效果

    而深度学习的魅力在于,其将特征的提取变成了一个自动化的学习过程。

    深度学习是一类特征学习(Representation Learning)。它可以从原始数据(比如原始的像素点,原始的单词甚至是字符)中自动学习到多个层次上的特征表达,并完成最终的分类或翻译的任务。(这里的“深度”一词可能会带来歧义:例如对于下一节课将要学习到的word2vec模型。它其实是一个非常浅层的网络模型。)

    深度学习
    探索深度学习的原因:
    • 人工设计的特征常常定义过多,不完整并且需要花费大量的时间去设计和验证
    • 自动学习的特征容易自适应,并且可以很快的学习
    • 深度学习提供了一个弹性的,通用的学习框架用来表征自然的,视觉的和语言的信息。
    • 深度学习可以用来学习非监督的(来自于生文本)和有监督的(带有特别标记的文本,例如正向和负向标记)
    • 在2006年深度学习技术开始在一些任务中表现出众,为什么现在才热起来?
    • 深度学习技术受益于越来越多的数据
    • 更快的机器与更多核CPU/GPU对深度学习的普及起了很大的促进作用
    • 新的模型,算法和idea层出不穷
    • 通过深度学习技术提升效果首先发生在语音识别和机器视觉领域,然后开始过渡到NLP领域

    三、Deep Learning + NLP = Deep NLP

    Deep Learning的技术首先是在语音识别和计算机视觉的领域里取得了重大突破,直到近些年才被广泛地应用于NLP领域中。接下来,简单看下深度学习模型是如何帮助解决NLP难题的:

    • 语音Phonology:
      传统的语音识别模型是通过人工建立一张语音词表,将相似发音的字母划分为一类;并借助一个分类模型实现语音到字母的转译。而深度学习模型将语音表达为一个embedding向量,可以直接从语音的向量特征中预测相应的单词。
    语音词表
    • 词形Morphology:
      传统的词形学将一个单词拆分为前缀、词干、后缀的表达,这些前后缀和词干统称为Morpheme。而深度学习将每一个Morpheme都处理成一个向量的表达,并借助于一个Recursive Neural Network将不同的Morpheme向量拼接成一个向量——这个向量代表了相应的Morpheme拼接后得到的单词。这种将word表达成向量的思想在Deep NLP中十分基础。如果我们将这些词向量投影到一个二维平面上,会发现一些有趣的pattern。例如,相似的动词集中出现在平面的同一片区域内。

    • 句法分析Syntax
      在得到了词的表达后,接下来我们讨论句子的结构。传统的句法分析将一个完整的句子解析成一棵语法树——每一个节点对应着一个特定的语法单元(例如,NP或VP)。而在深度学习中,我们可以对词向量进行计算,得到短语乃至整个句子的向量表达。并基于这些向量完成后续的分类预测等任务。

    传统方法 深度学习
    • 语义分析Semantics
      传统的语义分析借助于一种叫做Lambda Calculus的技术。基本思想是在一棵句法树上递归地调用人工事先设定的Lambda函数进行语义的计算。而在深度学习中,同样地,我们对每一个单词,每一个短语,乃至每一个逻辑关系(比如A∈B)都用一个向量去表达。借助于神经网络的计算,我们可以准确地预测两个句子之间的逻辑关系(例如,if "all reptiles walk" then "some turtles move")。有趣的是,在深度学习中,我们并不需要事先定"reptiles"和"turtles","walk"和"move"之间的逻辑关系。
    传统方法 深度学习

    与传统的NLP技术相比,Deep NLP核心思想在于 :everything can be a vector。无论是low level的音频,还是high level的短语。深度神经网络模型将低level的vector组装成更高level的vector,进一步完成分类、翻译等高级任务。

    NLP应用:

    • 情感分析
      传统的方法:精选的情感词典+词袋模型(忽略词序)+人工设计的特征(很难覆盖所有的信息)
      深度学习:和上述词素,句法和语义相似的深度学习模型 --> RNN

    • 问答系统
      传统的方法:用了非常多的特征工程去获取相关的知识,例如正则表达式,Berant et al. (2014)
      深度学习:和上述词素,句法,语义,情感分析相似的深度学习模型

    • 机器翻译
      传统的机器翻译系统是一个非常大的复杂系统
      深度学习:源句子首先映射为向量,然后在输出的时候进行句子生成

    可以发现所有NLP层次的表示都涉及到向量(Vectors), 下一讲如何来学习词向量以及这些向量表示了什么?

    参考:

    1. 斯坦福大学深度学习与自然语言处理第一讲:引言
    2. 公子天的技术博客
    3. cs224d

    相关文章

      网友评论

          本文标题:CS224N学习笔记(一)

          本文链接:https://www.haomeiwen.com/subject/dmwraftx.html