CBOW

作者: 酥脆海苔饼干 | 来源:发表于2019-09-26 22:06 被阅读0次

    今天终于将CMOW看明白了
    参考链接:
    https://blog.csdn.net/weixin_40240670/article/details/81203428
    https://zhuanlan.zhihu.com/p/55983009
    https://blog.csdn.net/u012762419/article/details/79366052

    Word2Vec

    Word2vec使用单个隐藏层,完全连接的神经网络如下所示。隐藏层中的神经元都是线性神经元。输入层设置为具有与用于训练的词汇中的单词一样多的神经元。隐藏图层大小设置为生成的单词向量的维度。输出图层的大小与输入图层相同。
    因此,假设用于学习单词向量的词汇表由V个单词组成并且N为单词向量的维度(每个单词拥有N个特征),则对隐藏层连接的矩阵大小为VxN的矩阵WI表示,其中每行表示词汇单词。以相同的方式,可以通过矩阵WO来描述从隐藏层到输出层的连接大小为NxV。


    image.png

    例子:
    具有以下句子的训练语料库:
    “The dog saw a cat”,“Dog chasing cat”,“Cat climbed a tree”
    语料库词汇有八个单词['a','cat','chasing','climbed','dog','saw','the','tree']。按字母顺序排序后,每个单词都可以通过其索引引用。对于这个例子,我们的神经网络将有八个输入神经元和八个输出神经元。让我们假设我们决定在隐藏层中使用三个神经元。这意味着WI和WO将分别是8×3和3×8矩阵。在训练开始之前,这些矩阵被初始化为随机值,假设WI和WO初始化为以下值:

    WI =


    image

    WO=


    image

    假设我们希望网络学习单词“cat”和“climbed”之间的关系。也就是说,当“cat”输入到网络时,网络应该显示“climbed”的高概率。在单词嵌入术语中,单词“cat”被称为context word,单词“climbed”被称为target word。在这种情况下,输入矢量X将是[0 1 0 0 0 0 0 0]t,目标矢量是[0 0 0 1 0 0 0 0]t。
    利用表示“cat”的输入向量,可以将隐藏层神经元的输出计算为:

    H = X*WI = [-0.490796 -0.229903 0.065460]

    实际上隐藏神经元输出的向量H复制了WI矩阵的第二行的权重,因为输入层是One-hot编码,cat又是第二个word,所以会复制第二行的数值。对隐藏到输出层执行类似的操作,输出层神经元的激活矢量可以写成:

    H_ = H*WO = [0.100934 -0.309331 -0.122361 -0.151399 0.143463 -0.051262 -0.079686 0.112928]

    由于目标是为输出层中的单词生成概率,因此在输出层后面,我们会采用前文所述的Softmax作为激活函数,将输出向量中的数值转换为概率:

    [0.143073 0.094925 0.114441 0.111166 0.149289 0.122874 0.119431 0.144800]

    粗体的概率是针对所选择的目标词“climbed”,很显然它不是最大的,所以我们需要改进他,同样是采用我前文所述的交叉熵和BP算法反向改进权重。
    从本质上讲,这就是Word2Vec如何学习单词之间的关系,并在此过程中开发语料库中单词的向量表示。

    CBOW(continues bag of words)

    CBOW的全称是continuous bag of words(连续词袋模型)。其本质也是通过context word(背景词)来预测target word(目标词)。如上述不同的时候,上述target word“climbed”的context word只有一个“cat”作为训练样本,而在CBOW中,可由多个context word表示。

    例如,我们可以使用“cat”和“tree”作为“climbed”的context word。这需要修改神经网络架构。如下所示,修改包括将输入层复制C(C的大小就是window的大小)次,以及在隐藏层神经元中添加除以C的操作。相当于一个target word要训练C次神经网络。

    image.png

    自注:

    (1) 该词嵌套的求解采用的是一个隐藏层的神经网络,多个词输入(上下文输入)和一个输出(target word),其实很好理解。输入向量大小维度等于最终输出向量的大小维度。

    (2) image.png

    相关文章

      网友评论

          本文标题:CBOW

          本文链接:https://www.haomeiwen.com/subject/xsduuctx.html