diff --git a/chapter_natural-language-processing/fasttext.md b/chapter_natural-language-processing/fasttext.md index 10b703003..0673a70ec 100644 --- a/chapter_natural-language-processing/fasttext.md +++ b/chapter_natural-language-processing/fasttext.md @@ -1,4 +1,4 @@ -# 使用子词信息(fastText) +# 子词嵌入(fastText) 英语单词通常有其内部结构和形成方式。例如我们可以从“dog”、“dogs”和“dog-catcher”的字面上推测他们的关系,它们都有同一个词根dog,但使用不同的后缀来改变词的意思。而且这个关联有着一定的推广性,例如“dog”和“dogs”的关系如同“cat”和“cats”,“dog”和“dog-catcher”的关系如同“dish”和“dishwasher”。这一特点不是英语独有,法语和西班牙语中,很多动词根据场景不同有40多种不同的形态,而在芬兰语中,一个名词可能有15种以上的形态。事实上,语言学的一个重要分支,构词学(morphology),正是研究词单词的内部结构和其形成方式。 @@ -22,6 +22,13 @@ fastText其余的部分同跳字模型一致,不在此复述。可以看到, - 子词过多(例如,6字英文组合数约为$3\times 10^8$)会有什么问题?你有什么办法来解决它吗?提示:可参考fastText论文3.2节末尾 [1]。 +## 扫码直达[讨论区](https://discuss.gluon.ai/t/topic/8057) + +![](../img/qr_fasttext.svg) + + + + ## 参考文献 [1] Bojanowski, P., Grave, E., Joulin, A., & Mikolov, T. (2016). Enriching word vectors with subword information. arXiv preprint arXiv:1607.04606. diff --git a/chapter_natural-language-processing/glove.md b/chapter_natural-language-processing/glove.md index bd186c9b0..399778432 100644 --- a/chapter_natural-language-processing/glove.md +++ b/chapter_natural-language-processing/glove.md @@ -1,5 +1,4 @@ - -## 使用了词与词之间的共现信息(GloVe) +# 使用共现信息的词嵌入(GloVe) GloVe使用了词与词之间的共现(co-occurrence)信息。我们定义$\boldsymbol{X}$为共现词频矩阵,其中元素$x_{ij}$为词$j$出现在词$i$的背景的次数。这里的“背景”有多种可能的定义。举个例子,在一段文本序列中,如果词$j$出现在词$i$左边或者右边不超过10个词的距离,我们可以认为词$j$出现在词$i$的背景一次。令$x_i = \sum_k x_{ik}$为任意词出现在词$i$的背景的次数。那么, @@ -8,7 +7,7 @@ $$p_{ij} = \mathbb{P}(j \mid i) = \frac{x_{ij}}{x_i}$$ 为词$j$在词$i$的背景中出现的条件概率。这一条件概率也称词$i$和词$j$的共现概率。 -### 共现概率比值 +## 共现概率比值 GloVe论文里展示了以下词对的共现概率与比值 [1]: @@ -26,7 +25,7 @@ GloVe论文里展示了以下词对的共现概率与比值 [1]: 由此可见,共现概率比值能比较直观地表达词与词之间的关系。GloVe试图用有关词向量的函数来表达共现概率比值。 -### 用词向量表达共现概率比值 +## 用词向量表达共现概率比值 GloVe的核心思想在于使用词向量表达共现概率比值。而任意一个这样的比值需要三个词$i$、$j$和$k$的词向量。对于共现概率$p_{ij} = \mathbb{P}(j \mid i)$,我们称词$i$和词$j$分别为中心词和背景词。我们使用$\boldsymbol{v}_i$和$\tilde{\boldsymbol{v}}_i$分别表示词$i$作为中心词和背景词的词向量。 @@ -71,7 +70,7 @@ $$\boldsymbol{v}_i^\top \tilde{\boldsymbol{v}}_k = \log(x_{ik}) - b_i - \tilde{b $$\boldsymbol{v}_i^\top \tilde{\boldsymbol{v}}_j + b_i + \tilde{b}_j = \log(x_{ij}).$$ -### 损失函数 +## 损失函数 GloVe中的共现词频是直接在训练数据上统计得到的。为了学习词向量和相应的偏差项,我们希望上式中的左边与右边尽可能接近。给定词典$\mathcal{V}$和权重函数$h(x_{ij})$,GloVe的损失函数为 @@ -97,7 +96,7 @@ $$\sum_{i \in \mathcal{V}, j \in \mathcal{V}} h(x_{ij}) \left(\boldsymbol{v}_i^\ ## 扫码直达[讨论区](https://discuss.gluon.ai/t/topic/4372) -![](../img/qr_glove-fasttext.svg) +![](../img/qr_glove.svg) ## 参考文献 diff --git a/img/qr_fasttext.svg b/img/qr_fasttext.svg new file mode 100644 index 000000000..775e6fcae --- /dev/null +++ b/img/qr_fasttext.svg @@ -0,0 +1,426 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/img/qr_glove-fasttext.svg b/img/qr_glove.svg similarity index 100% rename from img/qr_glove-fasttext.svg rename to img/qr_glove.svg