CBOW获取词向量具体公式
时间: 2023-03-23 21:00:22 浏览: 99
CBOW(Continuous Bag of Words)是一种基于神经网络的词向量训练算法,它的具体公式如下:
假设我们要训练一个大小为 V 的词汇表的词向量,词向量维度为 N,对于一个长度为 T 的文本序列,第 t 个词汇的one-hot编码为 $x_t \in \mathbb{R}^V$,对应的词向量为 $v_t \in \mathbb{R}^N$。CBOW模型的目标是,根据当前词汇的上下文预测当前词汇本身,假设我们使用一个大小为 M 的窗口来考虑当前词汇的上下文,即对于当前词汇,我们考虑它前面 M 个词汇和后面 M 个词汇的one-hot编码表示,记作$x_{t-M},\cdots,x_{t-1},x_{t+1},\cdots,x_{t+M}$,则模型的输出为当前词汇的词向量的加权平均值:
$$\hat{v}_t = \frac{1}{2M}\sum_{-M \leq j \leq M,j \neq 0} v_{t+j}$$
其中 $\hat{v}_t$ 表示对当前词汇预测得到的词向量。
模型的损失函数为交叉熵损失函数,即对于一个长度为 T 的文本序列,模型的损失函数为:
$$L(\theta) = -\frac{1}{T} \sum_{t=1}^{T} \sum_{i=1}^{V} y_{t,i} \log \hat{y}_{t,i}$$
其中 $\theta$ 表示模型的参数,$y_{t,i}$ 表示当前词汇的one-hot编码的第 i 个元素,如果当前词汇是第 i 个词汇,则 $y_{t,i}=1$,否则 $y_{t,i}=0$,$\hat{y}_{t,i}$ 表示模型对当前词汇预测得到的one-hot编码的第 i 个元素。