探秘Word2Vec(四)-CBOW模型

之前说了那么多,现在我们正式开始接触word2vec中涉及到的两个模型,CBOW模型(Continuous Bag-Of-Words Model)和Skip-gram模型(Continuous Skip-gram Model)。CBOW是已知当前词的上下文,来预测当前词,而Skip-gram则相反,是在已知当前词的情况下,预测其上下文。二者的模型结构如下图所示:



对于上面提到的两个模型,word2vec分别给出了两套框架,分别基于Hierarchical Softmax 和 Negative Sampling来进行设计,接下来,我们会分别对这两种CBOW模型进行讲解。

1、基于Hierarchical Softmax的CBOW模型

1.1 模型说明

之前我们提到过,基于神经网络的语言模型的目标函数通常取为如下的对数似然函数:



其中的关键是条件概率p(w|Context(w))的构造。基于Hierarchical Softmax的CBOW模型优化的目标函数也形如上面的样子。
首先,我们来看一下CBOW的网络结构,它包括三层,分别为输入层,投影层和输出层,假设Context(w)是由词w的前后各c个词组成,下面的图对这三层做了相应的说明:



对比之前提到过的神经概率语言模型,CBOW主要在以下三点上与之区别:
1)从输入层到投影层的操作上,神经概率模型通过拼接的方式,而CBOW采用累加的方式

2)从有无隐藏层来看,神经概率模型有隐藏层,而CBOW没有隐藏层
3)从输出层来看,神经概率模型的输出层是线性结构,而CBOW是树形结构
所以,针对神经概率模型大规模的矩阵运算和softmax归一运算,CBOW对其作出了优化,首先去掉了隐藏层,同时输出层改用Huffman树,从而为利用Hierarchical Softmax技术奠定了基础。

1.2 梯度计算

Hierarchical Softmax技术是word2vec中用于提高性能的一项关键技术,为描述方便起见,在具体介绍这个技术之前,先引入若干相关记号,考虑Huffman树中的某个叶子结点,假设它对应词典D中的词w,记:



引入了这么多符号,我们举一个例子来说明上面这些符号,考虑我们在第一讲中提到了巴西世界杯的例子,它构造的Huffman树如下图所示:



针对足球这个词,我们可以得到如下的结果:

好了,定义了一大堆符号,我们接下来该考虑如何定义条件概率p(w|Context(w))呢?
还是考虑上面的巴西世界杯的例子,从根结点到足球这一叶子结点的过程中,我们经历了四次分支,每次分支相当于做了一次二分类。既然是从二分类的角度来考虑问题,那么对于每一个非叶子结点,就需要为其左右孩子结点指定一个类别,即哪个是正类(标签为1),哪个是负类(标签为0)。碰巧,除根结点外,树中每个结点都对应了一个取值为0或1的Huffman编码。因此在word2vec中,将编码为0的结点定义为负累,编码为0的点定义为正类,即约定:



换句话说,将一个结点进行分类时,分到左边就是负类,分到右边就是正类。根据我们前面介绍的逻辑回归的知识,一个结点被分为正类的概率是:

而分到负类的概率就是:

注意到,上式中有个叫Θ的向量,它是待定参数,显然,这里非叶子结点对应的那些向量就Θwi可以扮演Θ的角色,所以对于从根结点出发到足球这个叶子结点所经历的4次二分类,将每次分类结果的概率写出来就是(这里仍然需要提醒一下大家,分到右侧认为是正类,分到左侧被认为是负类):

所以我们要求p(足球|Context(足球)),它跟上面这四个概率的关系就是:



通过对足球这个例子的讲解,Hierarchical Softmax的基本思想就已经介绍完了,总结一下,对于词典D的任意词w,Huffman 树中必定存在一条从根结点到该词的路径,路径长度为l,则路径上存在l-1个分支,将每一个分支作为二分类,每一次分类产生一个概率,将所有的概率相乘,就得到所需的p(w|Context(w))。
条件概率p(w|Context(w))的一般公式可以写作:



其中:

写成整体表达式就是:



所以,基于Hierarchical Softmax的CBOW模型的似然函数就是:

接下来,我们就需要最大化上面的似然函数,word2vec里面采用的是随机梯度上升法(求最小值用梯度下降法,求最大值用梯度上升法)。为了简化求梯度的过程,我们将上式中双重括号里面的部分记为L(w,j):

这样做是完全可以的,因为每个j是不相关的,同时随机梯度上升法的做法是每取一个样本就对所有参数进行一次更新。该函数中包含的参数主要有:

该模型的参数更新形式为:


中间设计的推导过程如下:



可以看到,利用sigmoid函数求导的性质,很容易得到上面的结果。
至此,基于Hierarchical Softmax的CBOW模型就介绍完啦,最后给出该模型的伪代码:

2、基于Negative Sampling的CBOW模型

可以看到,基于Hierarchical Softmax的CBOW模型采用了复杂的Huffman树,为了简化这一过程,又提出了基于Negative Sampling的CBOW模型,利用随机负彩样,大幅提升了计算性能。不过,其基本的计算思想仍是一样的。
在CBOW模型中,已知词w的上下文Context(w),需要预测w,因此对于给定的Context(w)来说,词w就是一个正样本,其他词就是一个负样本了。关于负样本的选取,我们将在最后一节中进行介绍。假定现在已经选好了一个关于w的负样本字节NEG(w),且对于D中的每一个词,定义:



即正样本的标签是1,负样本的标签是0。
所以,对于一个给定的(Context(w),w),我们希望最大化:



其中:

写成整体表达式即为:

由于只有一个正样本,所以g(w)又可以写为:



下面是对上式的一个解释:

为计算方便,我们可以对G取对数,则最终的目标函数为:

大家对上面的式子是不是很熟悉,其实跟之前基于Hierarchical Softmax的CBOW模型是一样的,我们同样取两重加和中间的部分,并通过随机梯度上升的方法对参数进行更新,这里详细的推导过程就不推导了,这里直接给出参数更新的结果:



则基于Negative Sampling的CBOW模型的伪代码如下图所示:
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 162,710评论 4 376
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 68,839评论 2 308
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 112,295评论 0 255
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 44,776评论 0 223
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 53,198评论 3 297
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 41,074评论 1 226
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 32,200评论 2 322
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 30,986评论 0 214
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 34,733评论 1 250
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 30,877评论 2 254
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 32,348评论 1 265
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 28,675评论 3 265
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 33,393评论 3 246
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 26,209评论 0 9
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 26,996评论 0 201
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 36,212评论 2 287
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 36,003评论 2 280

推荐阅读更多精彩内容