这是NLP的第1篇笔记
[课程链接](第一讲 - NLP和深度学习入门【中英字幕】CS224n)
[参考笔记1](stanfordnlp/cs224n-winter17-notes: Course notes for CS224N Winter17 (github.com))
[课件](2019 最新斯坦福 CS224nNLP 课件-资源-AI研习社 (yanxishe.com))
CS224n课程内容
前置课程:线性代数、离散、概率论、Python,网上也可以找到相应的课程
考试和大作业
4个大作业(感觉不是很难,做过2个类似的 项目)
- 只使用numpy搭建网络(deep learning from scratch)
- 使用TensorFlow的项目
- 使用TensorFlow的项目
- 选做项目
什么是NLP
自然语言处理的目标是让计算机处理或说“理解”自然语言,以完成有意义的任务
NLP应用
- 搜索
- 语音对话机器人
- 内容生成
- 市场化营销
- 情绪分析
- 语音识别
- 推荐系统
人类语言的特别之处
与信号处理、数据挖掘不同,自然语言的随机性小而目的性强;语言是用来传输有意义的信息的,这种传输连小孩子都能很快学会。
人类语言是离散的、明确的符号系统。但又允许出现各种变种,比如颜文字,随意的错误拼写“I loooove it”。这种自由性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。
可以用几种方式进行编码:声音、手势、书写等。
虽然人类语言是明确的符号系统,但符号传输到大脑的过程是通过连续的声学光学信号,大脑编码似乎是连续的激活值上的模式。另外巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。
深度学习是什么
传统的机器学习
- 工程师筛选出一些特征
- 把特征交给ML算法
- 这个过程中,人一直在学习,而不是机器,机器只是做了优化
深度学习过程
- 深度学习是表征学习的一个分支
- 表征学习:给电脑一些原始信号(原始图像、语言等)
- 电脑自动筛选出好的特征来完成任务
- 所以从某种意义上说,它是在自己定义特征
- 真实含义
- 通过算法得到多层的习得表征(特征)
- 通过这些提取出来的特征,结合神经网络算法完成任务
深度学习的历史(比较枯燥)
Deep Learning in Neural Networks: An Overview arxiv.org/pdf/1404.78…)
为什么要用深度学习
- 手工特征耗时耗力,不完整,需要很长时间验证
- 自动特征适应性强,学习速度快
- 深度学习提供了一种通用的学习框架,可用来表示世界、视觉和语言学信息
- 深度学习既可以无监督学习,也可以监督学习
深度学习为什么近年来崛起
- 数据:海量的数据
- 硬件:GPU、TPU的诞生
- 算法:新的算法的诞生,比如Transformer
为什么NLP很难
- 表达、学习、语言、情景的复杂性
- 人类的语言是模糊不清的
- 人类的语言依赖于现实世界、常识和语境
近年来NLP的进展
- 层次:语音,单词,语法,语义
- 工具:词性,实体,解析
- 应用:机器翻译,情感分析,对话助手,问题回答
词向量:将单词放在高维向量空间当中 (具体见下一节)
从下边的图可以看到; think、say、except 的距离比较近,说明他们代表的意义差不多。
向量空间中的坐标轴有什么意义
没有什么实际的意义,没有证据说明元素可以与向量的这些维度对应