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

Machine learning 在SkipGram中上下文词的表示矩阵是什么意思?,machine-learning,nlp,deep-learning,stanford-nlp,word2vec,Machine Learning,Nlp,Deep Learning,Stanford Nlp,Word2vec,我正在学习斯坦福NLP课程,从下图中我无法理解Skipgram中的一个概念 从左到右,第一列向量是一个热编码器,第二列向量是一层神经网络的单词嵌入矩阵,第三列向量是单词表示向量。然而,当涉及到第四个矩阵时,它是一个具有“v×d”维数的矩阵。我不确定我是否听错了,但演讲者说这是上下文词的表示,这三个矩阵是相同的吗 我的问题是: 1.为什么这三个矩阵相同,但三个乘法结果不同? 2.我们如何得到这个矩阵(v×d维) 演讲的链接是: 同一个矩阵不能相乘三次。你只乘一次。得到的输出向量与词汇表的大小相同

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

从左到右,第一列向量是一个热编码器,第二列向量是一层神经网络的单词嵌入矩阵,第三列向量是单词表示向量。然而,当涉及到第四个矩阵时,它是一个具有“v×d”维数的矩阵。我不确定我是否听错了,但演讲者说这是上下文词的表示,这三个矩阵是相同的吗

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

演讲的链接是:


同一个矩阵不能相乘三次。你只乘一次。得到的输出向量与词汇表的大小相同。我将试着用一个例子来解释。
假设您的模型具有
V(单词大小)=6
d=4
C(上下文单词数)=2
Wi(单词嵌入矩阵)大小=6 X 4
Wo(输出单词表示)大小=4 X 6

训练示例
x=[0,1,0,0,0,0]
y=y=[0,0,0,1,0,0],[1,0,0,0,0]](两个一个热编码向量),每个上下文单词一个

现在,假设在输入和处理输入(
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]]
现在,您可以减少错误并为训练执行反向传播。如果要预测,请选择概率最高的两个上下文单词(本例中为1,3)。

将其视为一个具有多个类别(多项式分类)且同一对象可以同时属于多个类别(多标签分类)的分类问题。

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

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

  • 我们如何得到这个矩阵(v×d维)
  • 如前所述,这可以是与字向量相同的矩阵,但可以进行转置。或者,你可以想象我们为每个单词学习两个向量:1。中心2。上下文

    计算中的上下文词向量以其转置形式使用:

    (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
    是中心词的一种热编码,
    W
    是所有词向量的列表
    W.x
    multiply基本上就是从这个列表中选择正确的单词向量。最后的结果是上下文词向量和中心词向量的所有可能点积的列表。真实观察到的上下文词的一个热向量选择预期结果。然后,基于丢失,更新将通过计算流更新
    W
    W'
    进行反向传播

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

    从聊天室更新
    但是,您的期望是正确的,演示文稿可能会在这些乘法中显示完全相同的结果。因为目标函数是一个窗口中所有共现概率的总和