SkipGram中上下文词的表示矩阵是什么意思?

What does representation matrix of context word mean in SkipGram?

我正在学习斯坦福 NLP 课程,但我无法理解下图中 Skipgram 中的一个概念。

从左到右,第一列向量是单热编码器,第二列是来自一层神经网络的词嵌入矩阵,第三列是词表示向量。但是,当涉及到第四个时,它是一个 'v by d' 维度的矩阵。不确定我是否听错了,但是说话者说这是上下文词的表示,这三个矩阵是相同的吗?

我的问题是: 1、为什么这三个矩阵相同,但三个相乘结果不同? 2.我们如何得到这个矩阵(v x d维)?

讲座的 link 是:

https://www.youtube.com/watch?v=ERibwqs9p38&t=1481s

你不会用同一个矩阵乘以三次。你只乘一次。你会得到一个与 Vocabulary 大小相同的输出向量。我会试着用一个例子来解释。
假设您的模型有 V(vocab_size) = 6d = 4C(number of context words) = 2Wi(word_embedding matrix) size= 6 X 4Wo(output word representation) size = 4 X 6.

训练示例x = [0,1,0,0,0,0]y = y = [[0,0,0,1,0,0], [1,0,0,0,0,0]] (two one-hot encoded vectors) one for each context word

现在,假设在输入和处理输入(h = x*Wi; z = h*Wo)之后,您得到的输出(z)是

z = [0.01520237, 0.84253418, 0.4773877 , 0.96858308, 0.09331018,0.54090063]
# take softmax, you will get
sft_max_z = [0.0976363 , 0.22331452, 0.15500148, 0.25331406, 0.1055682,0.16516544]
# sft_max_z represent the probability of each word occuring as input's context words.
#Now, subtract sft_max_z with each one-hot encoded vector in y to get the errors.
# errors = [[-0.0976363 , -0.22331452, -0.15500148,  0.74668594, -0.1055682 ,
    -0.16516544],
   [ 0.9023637 , -0.22331452, -0.15500148, -0.25331406, -0.1055682 ,
    -0.16516544]]

现在,您可以减少误差并进行反向传播进行训练。如果您要预测 select 概率最高的两个上下文词(在本例中为 1、3)。
将其视为具有超过 1 class(多项式 class化)的 class化问题,并且同一对象可以同时属于多个 class(多标签 class化.)

在回答您的问题之前,为了论证之前的幻灯片,我必须添加一些背景知识。首先,优化是关于一个词 co-occurring 与另一个词的概率:中心词和上下文词。向量表示可以在这两者之间共享,但实际上我们有两个矩阵集合(词向量列表)1. 中心词向量(左边第一个红色矩阵)2. 上下文词向量(中间的三个红色矩阵)。

这道题的图片展示了我们如何通过两种向量相乘和softmax归一化来估计概率。现在问题:

  1. How do we get this matrix (v by d dimension)?

如前所述,这可以是与词向量相同的矩阵,但进行了转置。或者,你可以想象我们为每个单词学习两个向量:1. center 2. context

计算中的上下文word-vectors以其转置形式使用:

(center words-vectors, v)  W : (d,V)
(outside words-vectors, uT) W': (V,d)

V 是词汇表的大小,d 是向量的维度大小。 (这些是我们要从数据中学习的参数)

注意每个矩阵乘法中维度的变化:

      W: (d,V)
      x: (V,1)
v = W.x: (d,1) 
     W': (V,d)
   W'.v: (V,1)

x是中心词的one-hot编码,W是所有词向量的列表。 W.x 乘法基本上是 select 这个列表中的正确词向量。最后的结果是所有可能dot-product的上下文词向量和中心词向量的列表。真实观察到的上下文词的 one-hot 向量 select 是预期的结果。然后,基于损失,更新将通过更新WW'.

的计算流反向传播。
  1. Why these three matrix are identical but the three multiplication results are different?

正方形和中间的两个菱形代表一个矩阵。这三个乘法发生在三个不同的观察中。尽管它们表示相同的矩阵,但在每个观察参数(WW')上使用反向传播进行更改。这就是为什么三个乘法的结果不同。

聊天更新 但是,您的期望是正确的,演示文稿可以在这些乘法中显示完全相同的结果。因为objective函数是一个window中所有co-occurrence概率的总和。