复习DAY-2-word2vec

1.前言

参考了:
1、https://zhuanlan.zhihu.com/p/26306795
2、https://zhuanlan.zhihu.com/p/33799633
3、https://blog.csdn.net/kingzone_2008/article/details/80513145
4、https://zhuanlan.zhihu.com/p/27234078
5、https://blog.csdn.net/sinat_32404247/article/details/79975901
6、https://zhuanlan.zhihu.com/p/64430221
7、https://zhuanlan.zhihu.com/p/357859112

NLP中最细的粒度是 词语,把词语嵌入到一个数学空间里,就叫词嵌入(word embedding)。而 word2vec,就是词嵌入( word embedding) 的一种。word2vec有两种情况:Skip-gram 和 CBOW。

2.Skip-gram 和 CBOW 模型

Skip-gram就是输入中间的词预测上下文。
CBOW就是输入上下文预测中间的词。

2.1Skip-gram 和 CBOW 模型的简单形式

最简单的形式就是用一个词x来预测一个词y,这两个词互为上下文,所以这时候Skip-gram 和 CBOW 就一样了。

图1.png

1、输入x是维度为V的向量(王越说这里是列向量还是行向量都随意取决于你后面的权重矩阵怎么构造了,都可以,就是W * x和x * W的区别),V是假设我们的世界上有存在V个词,所以这个数字非常的大,这个向量用one-hot的形式表示,这V维的列向量只有x这个词语所在的位置上是1,其他位置都是0。
2、同样的,y也是在它的出现的位置上是1,其他位置上都是0。
3、我们的目标是希望x经过一系列的变换最大程度上的接近y(最好一样)。
4、上图中的权重矩阵W{V * N},在初始化的时候是随机初始化的,V是所有的词的个数,那么N是怎么来的?王越说N是可以自己随便设定的,一般都是300-500维
5、在隐藏层输入的是一个W * x+b,W是随机初始化的矩阵,x是输入的向量,b是参数。做一个线性模型,注意已这里只是简单的映射,并没有非线性激活函数,一个神经元可以是线性的,这时就相当于一个线性回归函数。因为是one-hot,所以W * x+b得到的是一个N维的向量。
6、第三层可以简单看成一个分类器,用的是Softmax逻辑回归。从上面得到的是一个N维向量,通过激活函数(softmax)处理后得到一个V维的概率分布,其中概率最大的index指向的单词就是预测出的单词。
7、如果输入x是V维列向量,那么权重矩阵就是W{N * V},他们的矩阵相乘是:W * x。如果x是行向量就是x * W
一个例子

2.2CBOW 模型

图2.png

1、CBOW(Continuous Bag-of-Words),连续的词袋模型
2、上图里的C是上下文的单词的个数,比如window=2,就是在目标单词前取两个单词,目标单词后取两个单词,共4个单词,C=4
3、输入层是C个单词的one-hot编码,这C个词分别通过共享的权重矩阵W{V*N},最开始是随机初始化的。这C个单词的one-hot编码的词向量,如图1中所示,分别通过共享的权重矩阵,然后就会得到C个如图1中所示的词向量,再将得到的C个词向量(上面的第5部分解释),最后得到的N维向量是所有N维向量的相加求平均。
4、而因为这些单词都是one-hot编码的,所以他们对应的权重向量,每次只会取一行有值,将这些权重矩阵在相加求平均也就得到了新的权重矩阵。然后在神经网络的训练中不断的更新这个矩阵。
5、输出层仍旧是softmax。
6、最开始的W'和W没啥关系,也是随机初始化的。经过不断的更新最终他们(矩阵中的某一行或某一列)都是都是词向量,是同一单词的不同表示,W是输入层到隐藏层的权重矩阵(我们只会用这个),W'是隐藏层到输出层的权重矩阵(而这个会被弃用)。假设v是来自W的某一行,v叫做输入向量,v'是来自W'的某一列,v'叫做输出向量。

2.3Skip-Gram模型

图3.png

图3-1.png

在上图中第一个公式就是目标函数。log中间的部分就是公式二,也就是softmax。(log里面的部分表示的是条件概率,即在单词t已知的情况下,他的上下文单词的概率,求log是因为概率是用softmax计算的,在计算过程中计算了e的x次方,这样的话cbow和skip-gram的目标函数就是一样的了)
Skip-Gram 的损失函数是通过将目标词汇的正例(是输入单词的上下文)和负例(不是输入单词的上下文)使用二元对数回归(Binary Logistic Regeression)计算概率并相加得到的。损失函数公式


损失函数公式.png

他俩的不同在于:skip-gram的预测次数比cbow多,因为每个词都会用作中心词在去预测上下文的词。因为在一个window中,无法体现词的顺序,所以比如我们用一个词来预测他的上下文的8个单词,那么就取概率最大的top8就行了。

3.具体的计算

3.1一个简单的例子

上面大致上理解了两种模型的原理。那个他们是如何被计算出来的呢?我们下面以CBOW模型为例具体来手推计算一下。

图4.png

如上图4所示,假设语料为{I drink coffee everyday},他们的词向量如图所示,想预测的目标词是coffee。令window=2;目标词是coffee;上下文是I,drink,coffee
图5.png

权重矩阵是随机初始化的。
以drink这个单词的向量举例,计算W * x2 = v2。
因为是one-hot的,所以v2“刚好”就等于权重矩阵W中的一列。
图6.png

由此可以得到,他们这些单词的v向量都等于权重矩阵的相对应的列。
令θ = (v1 + v2 + v4) / 3 = [1 1.67 0.33] T
图7.png

再初始化一个矩阵W'。
计算W' * θ = U0。
图8.png

输出:概率分布。
y = softmax(U0)。
图8-1.png

如上图得到的y = [0.23 0.03 0.62 0.12] T。
选择其中概率最大的,就是0.62,就是目标词coffee出现的位置。
我们希望生成的概率与真实的概率(label)x3 [0,0,1,0]相匹配。
我们使用梯度下降来更新W和W'。
如果我们的训练数据足够大,那么我们想到得到某个单词的word embedding就像查表一样就可以得到。

3.2如何从输入得到输出呢?

从输入到输出

3.3如何更新权重矩阵呢?

定义损失函数

更新W'

更新W

4.改进

从上面的表述可以看出来,word2vec的权重矩阵非常巨大,那么他的计算就会变得非常困难,那么有什么方法可以对他进行高效的计算呢?
1、单词组合的合并,例如“New York”,“United Stated”等,拆分前后意义完全不同了。
2、对高频词抽样,比如在英文中the,a, is, are等单词出现的频率较高,但其实我们并不需要这么多。抽样的基本思想是:对于训练原始文本中遇到的每个单词,它们都有一定概率被我们从文本中删掉,而这个被删除的概率与单词的频率有关。

图9.png

出现的次数越多,被保留的概率越小。
3、分层softmax;负采样;更新权重矩阵的公式推导;skip-gram如何在输入一个单词的情况下输出可以分成若干个向量,可以看下面的论文翻译。
https://zhuanlan.zhihu.com/p/357859112

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

推荐阅读更多精彩内容