Word2Vec 问题思考

本文详细介绍了Word2Vec模型中如何使用神经网络训练条件概率,特别是CBOW模型与Hierarchical Softmax的关系。同时,讨论了word2vec中输入和输出的表示,以及CBOW和Skip-gram模型的结构。此外,文章还对比了Huffman树与Softmax的区别,并解释了Negative Sampling的作用和需要它的原因,展示了在CBOW模型中应用Negative Sampling的流程。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1、如何使用神经网络训练条件概率?

在word2vec的四种网络结构中,它们的关键就是对条件概率函数p(w|Context(w))或者p(Context(w)|w)的构造。

对于word2vec中基于Hierarchical Softmax的CBOW模型,优化的目标函数形如:

L=wClogp(w|Context(w))

而基于 Hierarchical Softmax的Skip-gram模型,优化目标函数形如:
L=wClogp(Context(w)|w)

以下就以基于Hierarchical Softmax的CBOW模型来介绍word2vec是如何训练条件概率的。(其他的模型都大同小异)

以参考文献的例子为例:假设有一句话”大家喜欢吃好吃的苹果”,这里进行分词后得到”大家”、”喜欢”、”吃”、”好吃”、”的”、”苹果”六个词。假设求”吃”这个词在”大家”、”喜欢”、”好吃”、”的”为上下文的条件概率,假设”吃”这个词是在下图huffman树中的节点R,根节点对应的词向量名为A,根节点右边子节点对应的词向量为B,假设”大家”、”喜欢”、”好吃”、”的”这四个词的词向量之和为C,则:

p(|Context)=(1σ(AC))(1σ(BC))

其中 σ 是指Sigmoid函数。

如果”吃”代表的是S那个节点,则有:

p(|Context)=(1σ(AC))σ(BC)(1σ(EC))

此处输入图片的描述

在word2vec中计算条件概率p(wi|Contexti)的方法是利用神经网络的能量函数,它定义了一个简单的能量函数:

E(A,C)=(AC)

A可以认为是某个单词的词向量,C是这个单词上下文词向量之和,可以认为C就是上下文,(AC)代表两个向量的内积。

则词A在上下文词向量C下的概率为:

p(A|C)=eE(A,C)Vv=1eE(Wv,C)

如上式所示,其中V表示语料库中的总词数,则要求A这个词在上下文C中出现的概率,就必须把语料库中的所有的词都遍历一边,这是非常耗时的。所有就把语料库分为两类,分别称为G类和H类,则有:

p(A|C)=p(A|G,C)p(G|C)

即A在上下文C中出现的概率是等于A在上下文C,并且为G类条件下的出现的概率乘以C条件下G类词的概率。其中:
p(G|C)=eE(G,C)eE(G,C)+eE(H,C)=11+eE(HG,C)

即不用关心这两类用什么表示,只要用一个F=H-G的类词向量就可以计算 P(G|C) 了,所以很节省时间。又有:
p(A|G,C)=eE(A,C)WGeE(W,C)

因此可以将上式继续二分,知道最后只有一个单词为止。

总的来说,p(wi|Contexi)可以用以下的公式计算:

p(w|Context)=k=1Kp(dk|qk,C)=k=1K((σ(qkC))1dk(1σ(qkC)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值