提交 83954388 编写于 作者: 究其根本's avatar 究其根本 提交者: Aston Zhang

minor typos (#378)

* small typo

* small typo

* code and description is not same

* statements polishing

* statements polishing

* minor typo

* statements polishing

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo

* minor typo
上级 47fdbef8
......@@ -15,29 +15,29 @@ $$\frac{\boldsymbol{x}^\top \boldsymbol{y}}{\|\boldsymbol{x}\| \|\boldsymbol{y}\
其对应这两个向量之间夹角的余弦值。但对于任何一对词的one-hot向量,它们的余弦相似度都为0,所以我们无法从中得到有用信息。
word2vec [1, 2] 的提出是为了解决上面这个问题。它将每个词表示成一个定长的向量,并使得这些向量能较好地表达不同词之间的相似和类比关系。word2vec里包含了两个模型:跳字模型(skip-gram)[1]和连续词袋模型(continuous bag of words,简称CBOW)[2]。,接下来让我们分别这两个模型以及它们的训练方法。
word2vec [1, 2] 的提出是为了解决上面这个问题。它将每个词表示成一个定长的向量,并使得这些向量能较好地表达不同词之间的相似和类比关系。word2vec里包含了两个模型:跳字模型(skip-gram)[1]和连续词袋模型(continuous bag of words,简称CBOW)[2]。,接下来让我们分别介绍这两个模型以及它们的训练方法。
## 跳字模型
在跳字模型中,我们用一个词来预测它在文本序列周围的词。举个例子,假设文本序列是“the”、“man”、“loves”、“his”和“son”。以“loves”作为中心词,设上下文窗口大小为2。跳字模型所关心的是,给定中心词“loves”生成与它距离不超过2个词的背景词“the”、“man”、“his”和“son”的条件概率。也就是
在跳字模型中,我们用一个词来预测它在文本序列周围的词。举个例子,假设文本序列是“the”、“man”、“loves”、“his”和“son”。以“loves”作为中心词,设上下文窗口大小为2。跳字模型所关心的是,给定中心词“loves”生成与它距离不超过2个词的背景词“the”、“man”、“his”和“son”的条件概率。也就是
$$\mathbb{P}(\textrm{the},\textrm{man},\textrm{his},\textrm{son}\mid\textrm{loves}),$$
假设给定中心词下背景词是相互独立,那么上式可以改写成:
假设给定中心词的情况下背景词相互独立,那么上式可以改写成:
$$\mathbb{P}(\textrm{the}\mid\textrm{loves})\cdot\mathbb{P}(\textrm{man}\mid\textrm{loves})\cdot\mathbb{P}(\textrm{his}\mid\textrm{loves})\cdot\mathbb{P}(\textrm{son}\mid\textrm{loves}).$$
![上下文窗口大小为2的跳字模型。](../img/skip-gram.svg)
在跳字模型中,每个词被表示成两个$d$维向量用来计算条件概率。假设这个词在词典中索引为$i$,当它为中心词时表示为$\boldsymbol{v}_i\in\mathbb{R}^d$,而为背景词表示为$\boldsymbol{u}_i\in\mathbb{R}^d$。设中心词$w_c$在词典中索引为$c$,背景词$w_o$在词典中索引为$o$,给定中心词生成背景词的条件概率可以通过softmax函数定义为
在跳字模型中,每个词被表示成两个$d$维向量用来计算条件概率。假设这个词在词典中索引为$i$,当它为中心词时表示为$\boldsymbol{v}_i\in\mathbb{R}^d$,而为背景词表示为$\boldsymbol{u}_i\in\mathbb{R}^d$。设中心词$w_c$在词典中索引为$c$,背景词$w_o$在词典中索引为$o$,给定中心词生成背景词的条件概率可以通过softmax函数定义为
$$\mathbb{P}(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{v}_c)}{ \sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)},$$
这里词典索引集$\mathcal{V}$的定义是$\mathcal{V} = \{0, 1, \ldots, |\mathcal{V}|-1\}$。
一般来说,假设给定一个长度为$T$的文本序列,时间步$t$的词为$w^{(t)}$。当上下文窗口大小为$m$时,且假设给定中心词下背景词是相互独立,跳字模型的似然估计是给定任一中心词生成所有背景词的概率:
一般来说,假设给定一个长度为$T$的文本序列,时间步$t$的词为$w^{(t)}$。当上下文窗口大小为$m$时,且假设给定中心词的情况下背景词相互独立,跳字模型的似然估计是给定任一中心词生成所有背景词的概率:
$$ \prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} \mathbb{P}(w^{(t+j)} \mid w^{(t)}),$$
......@@ -45,7 +45,7 @@ $$ \prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} \mathbb{P}(w^{(t+j)} \mid
### 跳字模型训练
跳字模型的模型参数是每个词对应的中心词向量和背景词向量。训练中我们通过最大化似然估计来学习模型参数。我们知道最大似然估计与最小化它的负对数函数等价,也就是最化以下损失函数:
跳字模型的模型参数是每个词对应的中心词向量和背景词向量。训练中我们通过最大化似然估计来学习模型参数。我们知道最大似然估计与最小化它的负对数函数等价,也就是最化以下损失函数:
$$ - \sum_{t=1}^{T} \sum_{-m \leq j \leq m,\ j \neq 0} \text{log}\, \mathbb{P}(w^{(t+j)} \mid w^{(t)}).$$
......@@ -78,7 +78,7 @@ $$\mathbb{P}(\textrm{loves}\mid\textrm{the},\textrm{man},\textrm{his},\textrm{so
![上下文窗口大小为2的连续词袋模型。](../img/cbow.svg)
因为连续词袋模型的背景词有多个,我们将这些背景词向量取平均,然后使用和跳字模型一样的方法来计算计算条件概率。设$\boldsymbol{v_i}\in\mathbb{R}^d$和$\boldsymbol{u_i}\in\mathbb{R}^d$分别表示词典中索引为$i$的词的作为背景词和中心词的向量(注意符号和跳字模型中是相反)。设中心词$w_c$在词典中索引为$c$,背景词$w_{o_1}, \ldots, w_{o_{2m}}$在词典中索引为$o_1, \ldots, o_{2m}$,那么条件概率通过如下计算:
因为连续词袋模型的背景词有多个,我们将这些背景词向量取平均,然后使用和跳字模型一样的方法来计算条件概率。设$\boldsymbol{v_i}\in\mathbb{R}^d$和$\boldsymbol{u_i}\in\mathbb{R}^d$分别表示词典中索引为$i$的词的作为背景词和中心词的向量(注意符号和跳字模型中是相反的)。设中心词$w_c$在词典中索引为$c$,背景词$w_{o_1}, \ldots, w_{o_{2m}}$在词典中索引为$o_1, \ldots, o_{2m}$,那么条件概率通过如下计算:
$$\mathbb{P}(w_c \mid w_{o_1}, \ldots, w_{o_{2m}}) = \frac{\text{exp}\left(\frac{1}{2m}\boldsymbol{u}_c^\top (\boldsymbol{v}_{o_1} + \ldots + \boldsymbol{v}_{o_{2m}}) \right)}{ \sum_{i \in \mathcal{V}} \text{exp}\left(\frac{1}{2m}\boldsymbol{u}_i^\top (\boldsymbol{v}_{o_1} + \ldots + \boldsymbol{v}_{o_{2m}}) \right)}.$$
......@@ -86,7 +86,7 @@ $$\mathbb{P}(w_c \mid w_{o_1}, \ldots, w_{o_{2m}}) = \frac{\text{exp}\left(\frac
$$\mathbb{P}(w_c \mid \boldsymbol{w}_o) = \frac{\exp\left(\boldsymbol{u}_c^\top \bar{\boldsymbol{v}}_o\right)}{\sum_{i \in \mathcal{V}} \exp\left(\boldsymbol{u}_i^\top \bar{\boldsymbol{v}}_o\right)}.$$
这样条件概率的计算形式同跳字模型一致。最后,给定一个长度为$T$的文本序列,设时间步$t$的词为$w^{(t)}$,上下文窗口大小为$m$,连续词袋模型目标是最大化由背景词生成任一中心词的概率
这样条件概率的计算形式同跳字模型一致。最后,给定一个长度为$T$的文本序列,设时间步$t$的词为$w^{(t)}$,上下文窗口大小为$m$,连续词袋模型目标是最大化由背景词生成任一中心词的概率
$$ \prod_{t=1}^{T} \mathbb{P}(w^{(t)} \mid w^{(t-m)}, \ldots, w^{(t-1)}, w^{(t+1)}, \ldots, w^{(t+m)}).$$
......
# word2vec的近似训练
在上一节中我们看到,不论是跳字模型还是连续词袋模型,每一步梯度计算都需要遍历词典中任意一个词来计算条件概率。对于较大的词典,每步梯度计算开销会过大。这一节我们介绍两个技术来降低梯度计算的复杂度。因为跳字模型和连续词袋模型非常类似(互换了中心词和背景词顺序),本节仅以跳字模型为例介绍这两个技术。
在上一节中我们看到,不论是跳字模型还是连续词袋模型,每一步的梯度计算都需要遍历词典中所有的词来计算条件概率。对于较大的词典,每步梯度计算开销会过大。这一节我们介绍两个技术来降低梯度计算的复杂度。因为跳字模型和连续词袋模型非常类似(互换了中心词和背景词顺序),本节仅以跳字模型为例介绍这两个技术。
回忆跳字模型的核心是如何计算给定中心词$w_c$来生成背景词$w_o$的条件概率:
$$\mathbb{P}(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{v}_c)}{ \sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)},$$
由于分母中有字典大小个项,所以导致计算困难。本节要介绍的两个技术均是简化这个分母项。
由于分母中有字典大小个项,所以导致计算困难。本节要介绍的两个技术均是简化这个分母项。
## 负采样
......@@ -14,11 +14,11 @@ $$\mathbb{P}(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{
$$\mathbb{P}(D=1\mid w_c, w_o) = \sigma(\boldsymbol{u_o}^\top \boldsymbol{v_c}), \quad \sigma(x) = \frac{1}{1+\exp(-x)}.$$
那么我们可以考虑最大化所有中心词和背景词出现的概率来训练词向量。具体来说,给定一个长度为$T$的文本序列,当上下文窗口大小为$m$时,我们最大化下面联合概率:
那么我们可以考虑最大化所有中心词和背景词出现的概率来训练词向量。具体来说,给定一个长度为$T$的文本序列,当上下文窗口大小为$m$时,我们最大化下面联合概率:
$$ \prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} \mathbb{P}(D=1\mid w^{(t)}, w^{(t+j)}).$$
但这个模型里只有正例样本,我们可以让所有词向量相等且值为无穷大,这样上面概率等于最大值1。我们可以加入负例样本来使得目标函数更有意义。在负采样中,我们为每个中心词和背景词对根据分布$\mathbb{P}(w)$采样$K$个没有出现在上下文窗口中词,它们被称为噪音词,并最大化它们不出现的概率。这样,我们得到下面目标函数:
但这个模型里只有正例样本,我们可以让所有词向量相等且值为无穷大,这样上面概率等于最大值1。我们可以加入负例样本来使得目标函数更有意义。在负采样中,我们为每个中心词和背景词对根据分布$\mathbb{P}(w)$采样$K$个没有出现在上下文窗口中词,它们被称为噪音词,并最大化它们不出现的概率。这样,我们得到下面目标函数:
$$ \prod_{t=1}^{T} \prod_{-m \leq j \leq m,\ j \neq 0} \left(\mathbb{P}(D=1\mid w^{(t)}, w^{(t+j)})\prod_{k=1,\ w_k \sim \mathbb{P}(w)}^K \mathbb{P}(D=0\mid w^{(t)}, w_k)\right).$$
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册