斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)

课程概要

1、单词含义
2、word2vec介绍
3、word2vec目标函数的梯度推导
4、目标函数优化:梯度下降法

一、单词含义

含义(meaning)指的是由单词表达的观点。我们一般使用单词含义的方法是,使用像WordNet那样的分类词典,给每个单词对应的上下义关系以及同义词集合(具体可见斯坦福大学-自然语言处理入门 笔记 第十九课 单词含义与相似性第二节)。
上面的这种方法会存在的问题有:会忽略一些细微差别,比如同义词之间的差别;无法即时收录一些新的单词;主观性;需要花费人工去修正和创造;很难准确去计算单词之间的相似程度。

在NLP中非常常见的一种文本的表征方法是项文本矩阵,即矩阵的行代表单词,矩阵的列代表文本,每一格则表示该列文档是否有该行单词,有为1,没有为0。这样的话,一个单词的表征向量就是对应行的向量,但是当我们去看两个单词的相似度的时候会发现两者是正交的。
在这里插入图片描述
另外一种表征的方法是,利用单词的上下文来表示单词本身。我们希望利用一个向量来表示单词,最好这个向量可以帮助我们预测它上下文的其他单词,然后再用向量来表示其他的单词。上面的观点用数学公式和统计思想抽象出来的话就是:p(context|wt) =…,对应的损失函数是如下图,通过使得该损失函数最小化,来帮助我们获得单词的表征向量。
在这里插入图片描述

相关理论的发展如下:
Old idea.Relevant for this lecture & deep learning:
• Learning representations by back-propagating errors (Rumelhartet al., 1986)
• A neural probabilistic language model (Bengioet al., 2003)
• NLP (almost) from Scratch (Collobert & Weston, 2008)
• A recent, even simpler and faster model: word2vec (Mikolovet al. 2013) àintro now

二、word2vec的主要观点介绍

word2vec主要涉及到两个算法,Skip-grams(SG)在位置独立的假设下,根据中心词预测上下文;Continuous Bag of Words (CBOW) 从词包的上下文来预测目标单词。两个比较有效的训练方法,分别是Hierarchical softmax 以及Negative sampling 。这里主要介绍一下Skip-grams算法。

Skip-grams算法的主要思想是利用每一个单词来预测半径为m的窗口内的每个单词。目标函数是在给定中心词的情况下,使得上下文单词的概率最大。用公式表示的话如下,第一行是极大似然的公式,第二行是加入负号的极大似然对数(把求极大变成了求极小),也就是我们的损失函数,其中的θ表示的是我们需要求的参数。
在这里插入图片描述损失函数之中,条件概率的表示公式如下,其中c表示中心词的索引,o表示的是外部(某一个上下文中)的单词的索引,uo表示单词o的外部向量,vc表示单词c的中心词向量,也就是说每个单词都有两个向量(外部和中心词各一个)。
在这里插入图片描述Skip-grams算法的主要流程:
在这里插入图片描述对于整个问题的求解而言,求解的参数就是每个单词对应的两个向量的值,假设有V个单词,向量是d维的话,一共要求解2dv个参数
在这里插入图片描述

三、word2vec目标函数的梯度推导

在这里插入图片描述在这里插入图片描述在这里插入图片描述在这里插入图片描述
这里知识计算了中心向量参数的导数,同时也需要外部(output)向量参数的导数,这两者是相似的。

四、目标函数优化:梯度下降法

在计算出了参数的梯度以后,我们可以利用梯度下降法帮助我们进行参数的更新
在这里插入图片描述对应的python实现:
在这里插入图片描述我们也可以使用随机梯度下降法来对参数进行优化,随机梯度法每次只选取一个样本进行梯度的计算,这样的话会引入大量的噪音(noisy),对于自然语言处理的研究而言,这样的噪音是有益的。所以,在NLP会大量得应用随机梯度下降。
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/kunpen8944/article/details/83548213