CS224n-week1-课程导学

1. 本章/本节学习内容、学习目标

1.1 2019-CS224n课程的改进

  • 本课程做了许多精简、节奏加快
  • 本课程增加了前沿领域知识;
  • 增加了作业,大课程设计;
  • 使用pytorch;

1.2 深度自然语言处理介绍

1.2.1 自然语言处理为什么这么难?

  • 一词多义;任意一个词可能在一句话里有不同的意义,并且这个意义是和上下文相关的。
  • 上下文相关;一个词在不同的语境中的含义可能是矛盾的;
  • 不守语法;平时说话的时候不按照标准语法我们也是可以理解的;
  • 随着时间变化;比如一个词在过去的意思和现在的意思可能完全不同;
  • 表达的意义信息量很大;在同样的数据量的情况下,自然语言能够表达的信息量更大;
  • 隐含常识;

1.2.2 深度自然语言处理案例

这三种任务传统方法也能实现,为什么我们用深度学习来做呢?下面这个图可以很好地进行解释。图中纵坐标为系统的性能,横坐标是用于训练的数据量的多少。当数据量越来越多的时候,传统的学习方法性能达到一定程度之后就不能增长,而基于神经网络的深度学习,随着神经网络的增加,模型的性能是随着数据量的大幅度增加而大幅度增加的。当网络非常大的时候,数据量也非常多的时候,深度学习的模型的效果会非常好。

1.3 word2vec介绍

1.3.1 wordnet

  • wordnet是一个知识结构的词库,全部由专家手工建立的,是一个词的基于逻辑的树状结构
  • 中文也有一个类似于wordnet的词库,比如知网的hownet,哈工大的大词林。
  • 单纯地用wordnet做词和词之间的相似度的任务,现在已经没有人用了。但是wordnet引申了一个比较重要的概念:知识图谱,在后面图神经网络的时候会介绍。

1.3.2 基于one-hot编码的词表示

任何一个词在计算机中如何表示呢?可以将这个词进行编码,比如一个词是字典里第1000个词,就可以把这个词的index表示为1000,假如字典里有十万个词,那就有一个零到十万减一的list,每一个list的index表示一个词的意思。比如说motel,它的index比如说在1000,hotel的index在998,如图为这两个词的one-hot表示。这样表示非常简单,但是也存在一些问题,如果想算这两个词的相似度,one-hot表示方法是没有办法进行计算的。

另外的方法是将一个词表示成distributed representation(稠密表示)。

1.3.3 word2vec

word2vec是一个无监督学习的深度学习网络,输入是从互联网或者数据库中获得的语料,不需要进行任何人工标准。只要不需要人工标注的学习就叫无监督学习。

没有标注的情况下模型是怎么学习的呢?又引出一个压缩自编码的概念,自编码就是自己学习自己,自己学习自己的过程既是无监督学习也是自编码过程。比如说输入的是文本,假如说文本里有一万个词,输出也要求和输入是保持一致的,这就是自己学习自己的过程。压缩的意思是什么呢?假如说输入的文本里是一个词库组成的文本,这个词库有 V V V个词, V V V等于十万,那么输出肯定也是这十万个词,但是隐藏层用一个向量来表示,这个向量的长度为 N N N N N N是远小于 V V V的,比如说 N N N只有300, V V V是十万,这就起到一个压缩的作用,比如把十万个词的信息压缩到三百维的向量中。

word2vec是结合上下文的,学习的不是词本身的意义,本身的意义是无从得知的,因为我们没有标注,模型学习的东西是上文和下文的词之间的关系。也就是说,学习的是词和词之间顺序的关系。

总而言之,输入的是文本,输出的是自己,然后从 V V V个词的词库压缩到 N N N个连续的词向量中。尝试自我学习,得到压缩自编码的词向量。

1.3.4 word2vec模型——CBOW

假如说一句话有5个词,表示为 ( w t − 2 , w t − 1 , w t , w t + 1 , w t + 2 ) (w_{t-2},w_{t-1},w_t,w_{t+1},w_{t+2}) (wt2,wt1,wt,wt+1,wt+2),这个模型就是已知前2个词和后两个词,目的是去学习中间词 w t w_t wt。从概率角度来说,就是 P ( x i ∣ x i − 2 , x i − 1 , x i + 1 , x i + 2 ) P(x_i|x_{i-2},x_{i-1},x_{i+1},x_{i+2}) P(xixi2,xi1,xi+1,xi+2),就是已知四个词,学习中间这个词出现的概率。怎么学习呢?其实很简单,每一个词有对应的index,通过index查表得到这个词对应的词向量,得到四个词的词向量,根据对应维度相加,得到一个平均的词向量,根据这个平均的词向量预测这个平均词向量是否等于需要预测的中间词的词向量。如果等于,就是1,不等于的话就为0。我们希望如果为1的话,概率P的值最大化,然后去优化整个过程。

1.3.5 word2vec模型——skip-gram

这个结构和CBOW是反过来的,这个模型是已知中间词去预测前面两个词和后面两个词,用概率表示为 P ( x i − 1 ∣ x i ) , P ( x i − 2 ∣ x i ) , P ( x i + 1 ∣ x i ) , P ( x i + 2 ∣ x i ) P(x_{i-1}|x_i),P(x_{i-2}|x_i),P(x_{i+1}|x_i),P(x_{i+2}|x_i) P(xi1xi),P(xi2xi),P(xi+1xi),P(xi+2xi)。这四个概率要求当它们是正确的时候,概率是最大的。当错误的时候概率是最小的。

1.3.6 word2vec评价方法

如何衡量得到的词向量的好坏呢?给出两种方法,第一个方法是衡量词向量之间的相似程度的,根据两个词向量的余弦距离计算两个词之间的相似度。也就是算两个向量之间的夹角,夹角越小说明两个词向量之间的相似度越高。夹角越大说明相似度越低。

例如当输入的是frog青蛙,输出的都是青蛙的一些相似的东西。如果不是的话,相似度低,是的话相似度高。
在这里插入图片描述

另外一种比较的方法是词类比,例如woman对应man等价于aunt对应uncle,这就是一个类比过程。 c o s ( w o r d 1 − w o r d 2 + w o r d 3 , w o r d v e c 4 ) cos(word1-word2+word3,wordvec4) cos(word1word2+word3,wordvec4)
在这里插入图片描述

1.4 相关概念

  • objective function 目标函数 = loss function 损失函数
  • one-hot representation 稀疏表示
  • distributed representation 分布式表示/稠密表示
  • (word) embedding (词)嵌入
  • bag of words BOW词袋
  • word vector 词向量
  • word context 词的上下文
  • word analogy 词的类比

1.5 背景

1.5.1 梯度下降算法

梯度下降算法,对于损失函数,需要寻找到损失函数的最小值使得系统达到最优。用一种类似下山的方法,在函数中,每次沿着梯度向下走,一直到达导数等于零的点,一般是到达极小值。

1.5.2 语言模型

给定一个句子 s e n t e n c e = { x 1 , x 2 , . . . , x n } sentence = \{{x_1,x_2,...,x_n\}} sentence={x1,x2,...,xn},从概率角度来说,第 n n n
个词出现的概率应该是与 n − 1 n-1 n1个词相关的。第 n n n个word出现的概率为: P ( x n ∣ x 1 , x 2 , . . . , x n ) P(x_n|x_1,x_2,...,x_n) P(xnx1,x2,...,xn) P ( s e n s t e n c e ) = P ( x 1 , x 2 , . . . , x n ) P(senstence)=P(x_1,x_2,...,x_n) P(senstence)=P(x1,x2,...,xn) = ∏ i = 1 n P ( x i ∣ x 1 , x 2 , . . , x i − 1 ) =\prod _{i=1}^nP(x_i|x_1,x_2,..,x_i-1) =i=1nP(xix1,x2,..,xi1) = ∏ i = 1 n P ( x i ∣ x i − k , . . . , x i − 1 ) =\prod _{i=1}^nP(x_i|x_{i-k},...,x_{i-1}) =i=1nP(xixik,...,xi1) = ∏ i = 1 n P ( x i ∣ x i − k ) =\prod _{i=1}^nP(x_i|x_{i-k}) =i=1nP(xixik)

2. 知识内容数理

在这里插入图片描述

3. 补充内容

  • 复习线性代数相关知识;
  • 复习Sigmoid函数和逻辑回归,会在重难点解析部分介绍

s i g m o i d 函 数 : f ( z ) = 1 1 + e x p ( − z ) sigmoid函数:f(z)=\frac{1}{1+exp(-z)} sigmoid:f(z)=1+exp(z)1

  • 学习词向量工具gensim,作业解析部分会介绍;

3.1 词向量又什么用?

  1. 发现词与词之间的距离;
  2. 发现上下位词;
  3. 应用到其它NLP任务上,加上半监督训练;

半监督训练的具体应用如下:
在这里插入图片描述

对于左边部分,如果有label数据,训练得到的分类器是以到两者之间的间隔最大为目标的。但是如果有半监督数据,可以得到数据的大概分布趋势,这样可以得到更加精确的分类器。

3.2 词向量用于双语单词嵌入

有了词向量之后,可以把两种语言的词向量映射到一起,这样存在一些双语单词出现在相邻的位置,这样就可以简单地进行翻译工作了。

在这里插入图片描述

3.3 词向量用于图像和文字的嵌入

我们把词向量进行可视化,并且把图像映射到词向量中,图像和单词之间有一种语义关系。
在这里插入图片描述

3.4 通过词向量可以研究上下位关系

上下位关系,举个例子,就是狗-警犬关系,鸡-公鸡关系等。
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值