【中英字幕】CS224n 斯坦福深度自然语言处理课 Christopher Manning/ Richard Socher 领衔主讲

开课时间:5月16日开始正式更新,每周更新1个Lecture
开课时长:18讲视频 +3次课间作业+ 终极课程项目

skip-gram:从中心词预测上下文

CBOW:从上下文预测中心词

SGD 随机梯度下降

[展开全文]

1、word2vec针对的是一整个语料库,对每个窗口移动去算的每一个lost func 

2、共现矩阵对于count 出x的计算方法

1)一些停用词,设置一个最大值,比如 the 最大为100

2)举例中心词越远,给个衰减,比如m=5之后的词,出现一次,加0.5

3、用svd分解,去给词向量(共现计数)降维度,然后去降维后的前两个值,作图

4、svd分解虽然简单,优化上--> glove

5、skip-gram 不用统计信息

6、woman - man + king 后,与他最大的余弦相似性的词是queue

Paper 一词多义

1、一次多义可认为是多个语义向量线性叠加,可以通过稀疏编码,

对比Skip-gram(一次一个窗口,更新的是窗口中涉及到的词的概率) & Glove(先计算所有计数,然后处理计数

Skip-gram & Glove

 

 

[展开全文]

1、wordnet 上位词、同义词,做语义检索的时候很有用,无法区分同义词之间的区别

2、one hot 缺失词之间的联系,词联系nlp中很重要

3、more than one thing we can do about it

4、分布相似性,观察每个出现banking的单词的句子,并通过某种上下文表示统计

5、每一个单词用一个向量表示

6、注意分布式表示和onehot表示是两种词向量的 表示方法,分布式学习,指的是用中心词预测上下文的词的一种理论

7、句向量:1) 计算加权平均的句向量,2)计算向量的第一主成分,然后减去第一主成分的投影

word2vec

1、skip-grams(SG)

选定一个中心词,有且只有一个概率,这个概率就是用来输出上下文单词。

做法:给定一个半径m,行文中的每个词,循环计算它前后各m个词的出现分布。损失函数为

theta就会词向量表示,转化为对数概

sgd方法训练。

2、CBOW

 

 

 

[展开全文]

distributed: 词义分布在向量中,维度低,紧凑。与之对应的是local,局部向量表示词义,如one hot,维度高,稀疏。

distributional:符合分布的词义表示,词义相近,分布距离也近。

skip gram: 每个词有2个向量, 作为上下文的u,和作为中心词的v。

 

[展开全文]

交叉熵其实只有一项,就是真实label对应的对数概率。

交叉熵可以理解为KL散度。

[展开全文]

词高维向量没有意义。SVD的坐标没有现实意义。

DL is representation learn. 只需要把数据输入,DL会寻找生成特征

NLP的应用:

1.近义词 similarity

2.词的不同时态Morphology

3.找出句子结构,语法分析

4.句子含义semantics

5.情感分析

6.聊天机器人

7.机器翻译

RNN recurtent neural network

[展开全文]

矩阵很稀疏。

目标函数非凸,初始化很重要。

可以走若干窗口之后,做一次更新。

 

syntactic:句法

semantic:语义

 

Glove中使用两组向量同样是出于优化的考虑。

U和V是可以互换的。

[展开全文]

这节课视频推导里有一个小细节要注意,防止被坑。讲到skip-gram算法的过程图里,中心词与三个不同上下文词做点积运算结果不一样,但实际上应该全部是一样的,因为与中心词做运算的权重举证w'是同一个。他视频讲的也是。最新的课件也更正了这个错误。

http://vedio.leiphone.com/5b03c6334f058.pdf

[展开全文]

Max-margin Objective Funtion是一个powerful的损失函数 

[展开全文]

KL distribution

Regularization for minimizing test error & overfitting

 

[展开全文]

skip-gram:给定中心词,去预测周围的词

损失函数都是非凸的

 

 

 

[展开全文]

1. baby math

2. one_hot coding

3. 几个概念

  • Distributional similarity:分布式相似度,指的是单词在不同的句子中的分布的相似度,

"You shall know a word by the company it keeps" ---J.R.Firth

就是指我们可以通过和该单词搭配的单词来认识这个单词。

 

  • Distributed representation指的是和one-hot编码不同的方式表示一个词汇的含义,即在一个大的向量空间中模糊化词汇的含义。

4.  Basic idea of neural network word embeddings:

p(context|w_t) = ...

loss function: J = 1 - p(w_-t | w_t)

即预测出Word t (中心词汇)周围的词。

这样可以用来预测上下文。 

Directly learning low-dimensional word vectors

5. word2vec:

是一个软件

  • 2个生成Word vectors的算法
  • 2个训练效率中等的训练方法
公式:

Skip-grams(SG)算法:

 

 

[展开全文]

作业1是大量的编程 

skip-gram:中心词预测附近词语

听不懂:negative-sampling

 

[展开全文]

ditributinal 

distrubuted representation

[展开全文]

分布式相似

学习:中心词 预测 其他词。

[展开全文]

K-L散度能帮助我们度量使用一个分布来近似另一个分布时所损失的信息。

如果我们使用以2为底的对数计算H值的话,可以把这个值看作是编码信息所需要的最少二进制位个数bits。

如果继续用2为底的对数计算,则K-L散度值表示信息损失的二进制位数

熵定义为:信息的数学期望

对于小的训练数据集,我们最好不要训练词向量,以免发生过拟合。当训练集非常大时,我们可以随机初始化词向量,然后直接进行训练。

H(p,q) 将会随着p与q的差异而增加。但是如果p没有固定, 这是很难将H(p.q)解释为差异的绝对度量。因为他会随着H(p)的增加而增加。

The empirical distribution for each data point simply assigns probability 1 to the class of that data point, and 0 to all other classes. 

当真实分布p确定时,交叉熵和KL散度是等价的。

回归的本质就是我们的预测结果尽量贴近实际观测的结果,或者说我们的求得一些参数,经过计算之后的预测结果尽可能接近真实值。

诚然,数据线性可分可以使用线性分类器,如果数据线性不可分,可以使用非线性分类器,这里似乎没有逻辑回归什么事情。但是如果我们想知道对于一个二类分类问题,对于具体的一个样例,我们不仅想知道该类属于某一类,而且还想知道该类属于某一类的概率多大,有什么办法呢?-逻辑回归(sigmoid函数)

When it comes to classification problem in machine learning, the cross entropy and KL divergence are equal. As already stated in the question, the general formula is this:

cross-entropy formula

Where p a “true” distribution and q is an estimated distribution, H(p, q) is the cross-entropy, H(p) is the entropy and D is the Kullback-Leibler divergence.

Note that in machine learning, p is a one-hot representation of the ground-truth class, i.e.,

p = [0,..., 1, ..., 0]

which is basically a delta-function distribution. But the entropy of the delta function is zero, hence KL divergence simply equals the cross-entropy.

In fact, even if H(p) wasn't 0 (e.g., soft labels), it is fixed and has no contribution to the gradient. In terms of optimization, it's safe to simply remove it and optimize the Kullback-Leibler divergence.

The max-margin loss:                        J=max(0,1-s+s_c)    .s是正确窗口的分数, s_c是错误窗口的分数。                     这个目标函数是不可微的,但是它是连续的,因此我们可以使用SGD。

[展开全文]

第三讲

glove模型重点统计词频

skip_gram是前后词的关联,一个窗口

 

[展开全文]

进入小组观看课程

以下为该课程相关学习小组,您可以选择任意小组加入学习课程并交流

CS224n 斯坦福深度自然语言处理

成员:1465动态:566

点击观看