斯坦福大学-自然语言处理与深度学习(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的窗口内的每个单词。目标函数是在给定中心词的情况下,使得上下文单词的概率最大。用公式表示的话如下,第一行是极大似然的公式,第二行是加入负号的极大似然对数(把求极大变成了求极小),也就是我们的损失函数,其中的θ表示的是我们需要求的参数。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第1张图片损失函数之中,条件概率的表示公式如下,其中c表示中心词的索引,o表示的是外部(某一个上下文中)的单词的索引,uo表示单词o的外部向量,vc表示单词c的中心词向量,也就是说每个单词都有两个向量(外部和中心词各一个)。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第2张图片Skip-grams算法的主要流程:
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第3张图片对于整个问题的求解而言,求解的参数就是每个单词对应的两个向量的值,假设有V个单词,向量是d维的话,一共要求解2dv个参数
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第4张图片

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

斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第5张图片斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第6张图片斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第7张图片斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第8张图片
这里知识计算了中心向量参数的导数,同时也需要外部(output)向量参数的导数,这两者是相似的。

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

在计算出了参数的梯度以后,我们可以利用梯度下降法帮助我们进行参数的更新
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第9张图片对应的python实现:
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第10张图片我们也可以使用随机梯度下降法来对参数进行优化,随机梯度法每次只选取一个样本进行梯度的计算,这样的话会引入大量的噪音(noisy),对于自然语言处理的研究而言,这样的噪音是有益的。所以,在NLP会大量得应用随机梯度下降。
斯坦福大学-自然语言处理与深度学习(CS224n) 笔记 第二课 词向量(word vector)_第11张图片

你可能感兴趣的:(CS224,Natural,Language,Processing,w)