cs224n 2019 Lecture 1: Introduction and Word Vectors课程笔记

本节课主要是课程介绍和word vectors的介绍。

课程目标

  1. 课程介绍
  2. 人类语言和单词含义
  3. word2vec介绍
  4. word2vec求梯度
  5. 优化
  6. 再看word2vec

一、课程介绍

有5个作业

作业一使用IPython Notebook做的,简单的词向量的调用

作业二使用python实现公式,主要是微积分的使用

作业三介绍pytorch

作业四和作业五在GPU上使用pytorch

最后有个大作业,在SQuAD数据集上实现一个qa系统,也可以自己选题

二、人类语言的单词含义

电脑上怎么表达单词的含义?

普遍的做法是使用WordNet这个词典。

WordNet是一个由普林斯顿大学认识科学实验室在心理学教授乔治·A·米勒的指导下建立和维护的英语字典。由于它包含了语义信息,所以有别于通常意义上的字典。WordNet根据词条的意义将它们分组,每一个具有相同意义的字条组称为一个synset(同义词集合)。WordNet为每一个synset提供了简短,概要的定义,并记录不同synset之间的语义关系。在WordNet中,名词动词形容词副词各自被组织成一个同义词的网络,每个同义词集合都代表一个基本的语义概念,并且这些集合之间也由各种关系连接。

缺点:

更新比较慢

不能准确的表达单词之间的相似性。

 

传统的NLP中,采用ont-hot向量来表达单词。

向量中只有一个位置是1,其他是0,维度=语料库中的单词数量。

由于语料库比较大,导致向量过于庞大,而且不能表达单词之间的相似性。

解决方案:

思想:一个单词的含义可以通过上下文单词的含义决定。

因此可以基于建立一个比较密集的向量来代表一个单词。当上下文相似时,单词的词向量也相似。

三、word2vec

思想:

  1. 我们有个很大的语料库
  2. 语料库中的词都可以用一个向量表示
  3. 遍历一个文本,对于文本中的每个位置t,遍历到的位置t对应的词称为中心词c,中心词的上下文单词成为词o
  4. 使用词向量c和词向量o的相似性来计算,当给定词c时词o出现的概率,即p(o|c)

word2vec目标函数

对于每个位置t=1...T,计算概率p(o|c).以下Wt+j就是上下文单词c,Wt是中心词.

J是损失函数,我们的目标是最大化L,换个思想就是最小化J。最小化往往比最大化简单。

 

 

我们如何计算概率P呢?

使用两个向量。

对于每个单词,既可能是中心词,也可能是外围词。所有有两个向量。

Vw:当w是中心词时。

Uw:当w是外围词时。

采用softmax函数实现P。Uo*Vc求上下文单词和中心词的相似度,相似度越大越好。分母是为了均衡。

为什么使用softmax函数?

指数e让所有的数都变成正数。点乘计算相似度。分母是对整个词汇表进行标准化,以给出概率分布。分子是计算外围词和中心词的相似度。

模型的训练

调整参数来最小化损失函数J。

参数:

对于每个单词的两个向量u和v

为了训练模型,需要计算出所有向量的梯度。注意每个单词有两个词向量。

通过链式法则和求导计算梯度,并采用梯度下降的方法进行训练。梯度下降本质上就是求导的方法。

梯度更新的方法:

目标函数的形状:

 

为什么采用两个词向量呢?

因为更好优化

word2vec有两个具体实现的模型:

skip-gram:通过中心词预测上下文单词

CBOW:通过上下文单词预测中心词

但是整个语料库非常庞大,如果计算所有向量的梯度那种工作量很大。

可以采用随机梯度下降的方法。

也就是随机抽取其中一些样本进行训练,而不必训练这个预料库。

这里我没有很理解。万一抽取出的样本里没有包含预料库中所有单词,那这些单词岂不是训练不到吗?课程也没详细介绍这一点。

 

 

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值