CS224n 斯坦福NLP 01

263 阅读3分钟

这是NLP的第1篇笔记

[课程链接](第一讲 - NLP和深度学习入门【中英字幕】CS224n)
[参考笔记1](stanfordnlp/cs224n-winter17-notes: Course notes for CS224N Winter17 (github.com))
[课件](2019 最新斯坦福 CS224nNLP 课件-资源-AI研习社 (yanxishe.com))

CS224n课程内容

前置课程:线性代数、离散、概率论、Python,网上也可以找到相应的课程

image.png

image.png

考试和大作业 image.png 4个大作业(感觉不是很难,做过2个类似的 项目)

  1. 只使用numpy搭建网络(deep learning from scratch)
  2. 使用TensorFlow的项目
  3. 使用TensorFlow的项目
  4. 选做项目

image.png

什么是NLP

自然语言处理的目标是让计算机处理或说“理解”自然语言,以完成有意义的任务

NLP应用

  • 搜索
  • 语音对话机器人
  • 内容生成
  • 市场化营销
  • 情绪分析
  • 语音识别
  • 推荐系统

人类语言的特别之处

与信号处理、数据挖掘不同,自然语言的随机性小而目的性强;语言是用来传输有意义的信息的,这种传输连小孩子都能很快学会。

人类语言是离散的、明确的符号系统。但又允许出现各种变种,比如颜文字,随意的错误拼写“I loooove it”。这种自由性可能是因为语言的可靠性(赘余性)。所以说语言文字绝对不是形式逻辑或传统AI的产物。

可以用几种方式进行编码:声音、手势、书写等。

虽然人类语言是明确的符号系统,但符号传输到大脑的过程是通过连续的声学光学信号,大脑编码似乎是连续的激活值上的模式。另外巨大的词表也导致数据稀疏,不利于机器学习。这构成一种动机,是不是应该用连续的信号而不是离散的符号去处理语言。

深度学习是什么

传统的机器学习

  • 工程师筛选出一些特征
  • 把特征交给ML算法
  • 这个过程中,人一直在学习,而不是机器,机器只是做了优化

深度学习过程

  • 深度学习是表征学习的一个分支
    • 表征学习:给电脑一些原始信号(原始图像、语言等)
    • 电脑自动筛选出好的特征来完成任务
    • 所以从某种意义上说,它是在自己定义特征
  • 真实含义
    • 通过算法得到多层的习得表征(特征)
    • 通过这些提取出来的特征,结合神经网络算法完成任务

深度学习的历史(比较枯燥)

Deep Learning in Neural Networks: An Overview arxiv.org/pdf/1404.78…)

为什么要用深度学习

  • 手工特征耗时耗力,不完整,需要很长时间验证
  • 自动特征适应性强,学习速度快
  • 深度学习提供了一种通用的学习框架,可用来表示世界、视觉和语言学信息
  • 深度学习既可以无监督学习,也可以监督学习

深度学习为什么近年来崛起

  • 数据:海量的数据
  • 硬件:GPU、TPU的诞生
  • 算法:新的算法的诞生,比如Transformer

为什么NLP很难

  • 表达、学习、语言、情景的复杂性
  • 人类的语言是模糊不清的
  • 人类的语言依赖于现实世界、常识和语境

近年来NLP的进展

  • 层次:语音,单词,语法,语义
  • 工具:词性,实体,解析
  • 应用:机器翻译,情感分析,对话助手,问题回答

image.png

词向量:将单词放在高维向量空间当中 (具体见下一节)

从下边的图可以看到; think、say、except 的距离比较近,说明他们代表的意义差不多。 image.png

向量空间中的坐标轴有什么意义

没有什么实际的意义,没有证据说明元素可以与向量的这些维度对应