CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

词向量:引言、 SVDWord2Vec

关键词:NLP(自然语言处理)、词向量、SVD(奇异值分解)、Skip-gram、CBOW(连续词袋)、负采样、层级Softmax、Word2Vec

本文上一部分请见:CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (二)词向量(二)_放肆荒原的博客-CSDN博客

4. 基于迭代的方法 Word2vec ( Iteration Based Methods – Word2vec

4.3 Skip-Gram 模型

另一种方法是创建一个模型,在给定中心词”jumped”的情况下,该模型能够预测或生成周围的词”The”、”cat”、”over”、”the”、”puddle”,这里我们称”jumped”这个词为上下文。 这种类型的模型就是 Skip-Gram 模型。

【注:】 Skip-Gram 模型: 给定中心词预测周围的上下文词

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

【注:】 Skip-Gram 模型的符号:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三):来自词汇表 CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三) 的单词 i
CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三):输入词矩阵
CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)
CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三):输出词矩阵
CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

图 2: Skip-Gram 工作原理,及如何学习转换矩阵

我们把模型的工作方式分解为以下 6 个步骤:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

与 CBOW 一样,我们需要生成一个目标函数来评估模型。 这里的一个关键区别是我们调用朴素贝叶斯假设来分解概率。 简单地说,这是一个强(朴素)的条件独立假设。 换句话说,给定中心词,所有输出词都是完全独立的。

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

有了这个目标函数,我们可以计算关于未知参数的梯度,并在每次迭代时通过随机梯度下降更新它们。

注意下面的公式:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

【注:】

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

4.4 负采样 Negative Sampling

让我们花点时间看看目标函数。 请注意,对 |V| 的求和计算量很大! 我们所做的任何更新或对目标函数的评估都需要 O(|V|) 时间,达到了数百万。 简单的做法是我们可以近似地实现它。

【注:】

由于 softmax 归一化,因为要对所有 |V| 分数求和,CBOW 和 Skip-Gram 的损失函数 J 计算成本很高!

对于每个训练步骤,我们可以只采样几个反例,而不是遍历整个词汇表! 我们从噪声分布 (Pn(w)) 中”采样”,其概率与词汇频率的排序相匹配。 为了增加我们对问题的表述以包含负采样,我们需要做的就是更新:

• 目标函数

• 梯度

• 更新规则

Mikolov等人提出了单词和短语的分布式表示及其组合中的 负采样。 虽然负采样基于 Skip-Gram 模型,但它实际上优化了不同的目标。 考虑一对单词和上下文 (w, c)。 我们用 P(D = 1|w, c) 表示 (w, c) 来自语料库数据的概率。用P(D = 0|w, c) 表示 (w, c)不是来自语料库数据的概率。 然后用 sigmoid 函数对 P(D = 1|w, c) 建模:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

图 3:Sigmoid 函数

现在,我们构建了一个新的目标函数,试图最大化一个词和上下文在语料库数据中的概率,如果确实存在的话。如果确实不在语料库数据中,则最大化单词和上下文不在语料库数据中的概率。我们对这两个概率采用简单的最大似然方法。 (这里我们取 θ 作为模型的参数,在我们的例子中是

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)。)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

请注意,最大化似然与最小化负对数似然相同:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

请注意,D̃是”假”或”负”语料库。 我们会有像”stock boil fish is toy”这样的出现概率很低的不自然句子。 可以通过从词库中随机采样这个负样本来动态生成 D̃。

对于skip-gram,给定中心单词c,我们观察上下文单词 c − m + j 的新目标函数为:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

【注:】 比较skip-gram的常规softmax损失:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

【注:】 比较 CBOW 的常规 softmax 损失:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)
CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

“Bombastic”被采样的可能性增加了 3 倍,而”is”仅略微上升。

4.5 层级Softmax (Hierarchical Softmax)

Mikolov 等人还提出了层级 softmax 作为普通 softmax 的更有效替代方案。 在实践中,分层 softmax 往往对不常用的词更好,而负采样对常用词和低维向量效果更好。

【注:】

层级 Softmax 使用二叉树,其中叶子是单词。 一个词作为输出词的概率被定义为从词根随机游走到该词叶的概率。 计算成本变为 O(log(|V|)) 而不是 O(|V|)。

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

图 4:层级 softmax 二叉树

层级 softmax 从根到叶子都有一条独特的路径。 在这个模型中,没有词的输出表示。 相反,图中的每个节点(根和叶除外)都与模型将要学习的向量相关联。

在这个模型中,给定向量

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三) 的单词 w 的概率 CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)等于从根开始到 w 对应的叶节点结束的随机游走的概率。 以这种方式计算概率的主要优点是成本仅为 O(log(|V|)),对应于路径的长度。

先给出一些符号,令 L(w) 为从根节点到叶节点 w 的路径的节点数。 例如,图 4 中的 L(w2) 为 3。 n(w, i) 为这条路径上的第 i 个节点,并带有关联向量

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)。 所以 n(w, 1) 是根,而 n(w, L(w)) 是 w 的父节点。 对于每个内部节点 n,我们任意选择它的一个子节点并将其称为 ch(n)(例如,始终是左节点)。 然后,我们可以计算概率为:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

σ(·)是sigmoid函数。

公式有点儿复杂,我们仔细地检查一下。

首先,我们根据从根 (n(w, 1)) 到叶子 (w) 的路径形状计算各项的乘积。 如果我们假设 ch(n) 总是 n 的左节点,那么当路径向左时,[n(w, j + 1) = ch(n(w, j))] 返回 1,如果向右则返回 -1 。

用[n(w, j + 1) = ch(n(w, j))] 归一化。 在节点 n 处,如果我们将前往左节点和右节点的概率相加,您可以查

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)的任何值:

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

这种方法的速度取决于二叉树的构造方式和词分配给叶节点的方式。 Mikolov等人使用二叉 Huffman 树,它的特点是为频繁词在树中分配更短的路径。

Original: https://blog.csdn.net/weixin_53111034/article/details/121631422
Author: 放肆荒原
Title: CS224n: Natural Language Processing with Deep Learning 笔记、文献及知识点整理 (三)词向量(三)

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531608/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球