学习内容:
1、什么是自然语言处理
2、什么是深度学习
3、课程简介
4、为什么理解自然语言这么难
5、介绍深度学习在自然语言中的应用
一、什么是自然语言处理
1、什么是自然语言处理
1.1 这是一门计算机科学、人工智能以及语言学的交叉学科。
1.2 目的是让计算机处理并理解自然语言,以完成有意义的任务,例如:执行任务,预定,买东西,翻译,问答等
1.3 完全理解和表达语言甚至定义语言是很困难的任务,完美的语音理解等效于实现人工智能
2、自然语言处理的几个层次
这门课主要关注画圈的三个部分,其中中间的两个是重中之重,虽然深度学习在语音识别上的发力最大。
3、自然语言处理的一些应用
一个小子集,从简单到复杂:
拼写检查、关键词检索、查找同义词
从网站提取信息:产品价格、时间、低点、人名、公司名
文本分类
机器翻译
口语对话系统
复杂问答系统
工业界的应用:搜索、广告投放、自动翻译、辅助翻译、金融/交易市场舆情分析、语音识别、聊天机器人(自动客服、控制设备、订购商品)
4、人类语言的特殊之处
人类语言是一种专门用来表达说话人或作者意思的系统,不仅仅是一个环境的信号,而是一种有意义的信息交流。这种传输连小孩都能很快学会。人类语言主要是离散的、象征的、明确的符号系统。这种自由性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。
语言符号可以有多种形式(声音、手势、书写),在这些不同的形式中,其意义保持不变。
虽然人类语言是明确的符号系统,但符号传输到大脑的过程是通过连续的声学光学信号,大脑编码似乎是连续的激活值上的模式。另外巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。
二、什么是深度学习
2.1 什么是深度学习
这是机器学习的一个子集。传统机器学习中,人类需要对专业问题理解非常透彻,才能手工设计特征。然后把特征交给某个机器学习算法,比如线性分类器。机器为这些特征调整找到合适的权值,将误差优化到最小。
与标准的机器学习相比:
表示学习尝试自动学习好的特征活表示
深度学习算法是表示学习的一部分,尝试通过多层特征学习表示。
2.2 为什么需要研究深度学习
手工设计的特性通常过于指定、不完整,并且需要很长的时间来设计和验证。
学习的功能易于适应、快速学习
深度学习提供了一种非常灵活的、通用的、可学习的框架,可用来表示世界、视觉和语言学信息
深度学习可以在没有监督的情况下(从原始文本)学习,也可以监督学习(带有特定的标签,如正面/负面)
2010年,深度学习技术开始超越其他机器学习技术。为什么是这十年?
大量培训数据有利于深入学习,更快的机器和多核CPU/GPU有利于深入学习,新模型、算法、想法,更好、更灵活地学习中间表示,有效的端到端联合系统学习,有效的学习方法,用于使用上下文和在任务之间转换,更好的规范化和优化方法提高了性能(首先是语音和视觉,然后是NLP
三、课程简介
3.1 预备知识
先决条件
•精通python
•所有课堂作业都将使用python。
•Python会话
•多元微积分、线性代数(例如,数学51、CME 100)
•基本概率和统计(如CS 109或其他统计课程)
•机器学习基础(如CS229或CS221)
•损失功能
•采用简单的衍生产品
•使用梯度下降进行优化。
3.2 学习后可以掌握的内容
我们希望教什么?
1。对有效的现代深度学习方法的理解和运用能力
•首先是基础知识,然后是NLP中使用的关键方法:循环网络、注意力等。
2。人类语言的一些大局理解以及理解和产生它们的困难
3。对NLP中一些主要问题的理解和构建系统的能力(在TensorFlow中):
•单词相似性、分析、机器翻译、实体识别、问答、句子理解
四、为什么理解自然语言这么难
人类语言是充满歧义的,不像编程语言那样明确。编程语言中有各种变量名,但人类语言中只有少数几个代词可以用,你得思考到底指代的是谁……
人类语言的解读依赖于现实世界、常识以及上下文。由于说话速度书写速度阅读速度的限制,人类语言非常简练,省略了大量背景知识。
4.1 英文歧义的例子
真正的报纸头条/推特
1. The Pope’s baby steps on gays
主要歧义发生在baby上面,可以理解为“教皇的孩子踩了基佬”,也可以理解为“教皇在同性恋问题上裹足不前”。
2. Boy paralyzed after tumor fights back to gain black belt
3. Enraged cow injures farmer with axe
4. Juvenile Court to Try Shooting Defendant
4.2 Deep NLP = Deep Learning + NLP、
结合NLP的思想和目标,采用表示学习和深度学习的方法来解决这些问题。近几年NLP的几个重大改进
层次:语音、词汇、语法、语义
工具:词性标注、命名实体识别、句法\语义分析
应用:情感分析、客服系统、问答系统、机器翻译
4.3 词的相似性
4.4 NLP表示层次:形态学
传统方法在形态级别的表示是词素:
深度学习中把词素也作为向量,神经网络将两个向量组合成一个向量,多个词素向量构成相同纬度语义更丰富的词向量。
4.5 NLP工具:句法分析(分析句子结构)
神经网络能准确判断句子的语法结构,这支持解释,可能有助于消除歧义。
4.6 NLP语义层面的表示
传统方法是手写大量的规则函数,叫做Lambda calculus:
传统:lambda微积分
•精心设计的功能
•将特定的其他功能作为输入
•不存在语言相似或模糊的概念
在深度学习中,每个句子、短语和逻辑表述都是向量。神经网络负责它们的合并。
五、NLP应用
5.1 NLP情感分析
传统方法是请一两百个工人,手工搜集“情感极性词典”在词袋模型上做分类器。
深度学习复用了RNN来解决这个问题,它可以识别“反话”的情感极性:
5.2 问答系统
传统方法是手工编写大量的逻辑规则,比如正则表达式之类。
深度学习依然使用了类似的学习框架,把事实储存在向量里
5.3 客服系统
对话系统/生成系统
一个简单、成功的例子是谷歌收件箱应用程序中提供的自动回复。
神经语言模型的强大通用技术的应用,这是神经网络的一个实例。
5.4 机器翻译
传统方法在许多层级上做了尝试,词语、语法、语义之类。这类方法试图找到一种世界通用的“国际语”(Interlingua)来作为原文和译文的桥梁。
而Neural Machine Translation将原文映射为向量,由向量构建译文。也许可以说Neural Machine Translation的“国际语”是向量
我们将在下一节课中学习如何学习单词的向量表示以及它们实际表示的内容。
下周:神经网络是如何工作的,以及如何将这些向量用于所有NLP级别和许多不同的应用程序。