非语言模型之SkipGram与CBOW

1、条件概率:

P(A|B) = P(AB)/P(B);
P(A|B)——在 B 条件下 A 的概率。即事件A 在另外一个事件 B 已经发生条件下的发生概率;
P(AB)——事件A、 B同时发生的概率,即联合概率.联合概率表示两个事件共同发生的概率.A 与 B 的联合概率表示为 P(AB) 或者 P(A,B);
P(B)——事件B发生的概率;

2、用一张图开说明两者之间的区别:

3、skip-gram:

Skip-gram用于预测与给定中心词相对应的上下文词。它和连续词袋模型(CBOW)算法相反。在Skip-gram中,中心词是输入词(input word),上下文词是输出词(output word)。因为要预测多个上下文词,所以这一过程比较困难。

上图中,w(t)就是中心词,也叫给定输入词。其中有一个隐藏层,它执行权重矩阵和输入向量w(t)之间的点积运算。隐藏层中不使用激活函数。现在,隐藏层中的点积运算结果被传递到输出层。输出层计算隐藏层输出向量和输出层权重矩阵之间的点积。然后用softmax激活函数来计算在给定上下文位置中,单词出现在w(t)上下文中的概率。

使用到的变量

  1. 在数据库或文本中出现的特殊单词的汇总词典。这个词典就叫做词汇量,是系统的已知词。词汇量用字母“v”来表示。
  2. “N”代表隐藏层中神经元的数量。
  3. 窗口大小就是预测单词的最大的上下文位置。“c” 代表窗口大小。比如,在给定的架构图中窗口大小为2,因此,我们会在 (t-2), (t-1), (t+1) 和 (t+2) 的上下文位置中预测单词。
  4. 上下文窗口是指会在给定词的范围内出现的、要预测的单词数量。对于2*c的并且由K表示的窗口大小来说,上下文窗口值是该窗口大小的两倍。给定图像的上下文窗口值是4。
  5. 输入向量的维度等于|V|。每个单词都要进行one-hot编码。
  6. 隐藏层的权重矩阵(W)的维度是[|V|, N]。“||” 是把数组值还原的模函数。
  7. 隐藏层的输出向量是H[N]。
  8. 隐藏层和输出层之间的权重矩阵 (W’) 维度是[N,|V|]。
  9. W’和H之间的点积生成输出向量U[|v|]。

N = 上下文窗口

 

工作步骤

1. 利用one-hot编码将单词转换为向量,这些向量的维度是 [1,|v|]。

one-hot编码

2. 单词w(t)从|V|神经元被传递到隐藏层。

3. 隐藏层执行权重向量W[|v|, N] 和输入向量w(t)之间的点积运算。这里,我们可以总结出:第(t)行的W[|v|, N] 会输出(H[1, N])。

4. 谨记:隐藏层不使用激活函数,所以H[1,k] 会直接传递到输出层。

5. 输出层会执行H[1, N]和W’[N, |v|]之间的点积运算,并给出向量U。

6. 现在,要得出每个向量的概率,我们要使用softmax函数,因为每次迭代都得出输出向量U,这是一种one-hot编码模式。

7. 概率最大的那个单词就是最终结果。如果在指定上下文位置中预测的单词是错误的,我们会使用反向传播算法来修正权重向量W和W’。

以上步骤对字典中的每个单词w(t) 都要执行。而且,每个单词w(t) 会被传递K次。所以我们可以得知,正向传播算法在每段时间内会执行 |v|*k次。

 

概率函数

Softmax概率

w(c, j) 是在第c个上下文位置上预测的第j个单词;w(O, c)是在第c个上下文位置上出现的实际单词;w(I)是唯一的输入词;u(c, j)是在第c个上下文位置上预测单词时,U向量的第j个值。

 

损失函数

损失函数

由于我们想在第c个上下文位置预测w(c, j) 时实现概率最大化,可以使用损失函数L。

优势

  1. Skip-gram是一种无监督学习技术,因此它可以用于任何原始文本。
  2. 相比于其他单词转向量表达法,Skip-gram需要的记忆更少。
  3. 它只需要两个维度为[N, |v|]而不是[|v|, |v|]的权重矩阵。而且通常情况下,N约为300,|v| 则约为数百万。

劣势

  1. 找到N和c的最佳值很困难。
  2. Softmax函数计算耗费的时间很长。
  3. 训练这个算法耗时较长。

通过设置windows窗口的大小,通过中心词来预测周边的窗口大小的单词(上下文词);

例子: 我  正在  学习  skipgram

            w1    w2    w3   w4

即通过我(w1)确定的情况下,预测正在(w2)出现的概率; 正在(w2)确定的情况下,预测我(w1)出现的概率,预测学习(w3)出现的概率......

根据上面4个词组成的一句话, 那么这句话的概率根据skipgram, windows=1的情况下来计算的

p(w2| w1)p(w1| w2)p(w3| w2)p(w2| w3)p(w4| w3)p(w3| w4)

 

可参考:https://www.sohu.com/a/309649581_100118081

 

4、CBOW

通过设置windows窗口的大小,通过周边的窗口大小的单词来预测中心词;

例子: 我  正在  学习  CBOW

            w1    w2    w3   w4

 

参考:https://blog.csdn.net/weixin_41843918/article/details/90312339  

留作总结

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值