Module 02 · Natural Language Processing & Word Embeddings
Properties of Word Embeddings词嵌入的特性
到目前为止,你应该对 词向量(word embeddings) 如何帮助构建自然语言处理(NLP)应用有了一定的了解。词向量最吸引人的一个特性就是,它们可以用于 类比推理(analogy reasoning)。虽然类比推理可能不是最重要的 NLP 应用,但它有助于更好地理解词向量的作用和功能。让我来给你展示一个例子,说明词向量如何用于类比推理。
类比推理的基本概念
假设我提一个问题:
"man is to woman as king is to what?"
很多人会回答:"man is to woman as king is to queen"。那么,是否可以让算法自动解决这个问题呢?
词向量表示的类比推理
设想我们用 四维向量 来表示“man”这一词。我们可以用如下表示:
- E₅₃₉₁ 代表 "man"(男人)
- E_woman 代表 "woman"(女人)
- E_king 代表 "king"(国王)
- E_queen 代表 "queen"(王后)
在这个例子中,我们假设使用 四维向量 来表示,而实际情况中,词向量的维度通常会更高,从 50维 到 1000维 不等。
向量差异的关键
通过计算,我们发现:
- E_man - E_woman ≈ [-2, 0, 0, 0]
- E_king - E_queen ≈ [-2, 0, 0, 0]
这里面有什么特别之处呢?可以观察到,man 和 woman 之间的主要区别是性别,而 king 和 queen 之间的主要区别也是性别。因此,E_man - E_woman 和 E_king - E_queen 的向量差异是相似的。

如何实现类比推理算法
一种可能的算法实现方式是:假如算法被问到 "man is to woman as king is to what?",它可以计算 E_man - E_woman,然后寻找一个单词,使得这个差值与 E_king - E_queen 非常相似。
寻找最大相似度的词
我们可以通过以下方式来实现:
其中,E_w 表示我们要找的那个词,E_king - E_man + E_woman 代表已知的向量差。我们用 相似度函数 来衡量 E_w 和这个向量差的相似性。

类比推理的成功实现
令人惊讶的是,这种方法的确有效!通过学习词向量并计算相似度,算法能够准确地找到 "queen" 作为答案。在类比推理任务中,通常会统计算法是否正确猜出了 正确的单词,也就是 准确率(accuracy)。根据任务的不同,研究论文中通常报告 30% 到 75% 的准确率。
t-SNE 可视化与类比推理
在左图中,我们使用 t-SNE 算法将 300维的词向量 映射到二维空间。t-SNE 是一种非线性映射方法,它将高维数据转换为二维空间,以便可视化。t-SNE 的映射是复杂的、非线性的,因此,我们不能指望通过这种映射来保持类比推理中的 平行四边形关系。这种关系主要发生在 原始的 300维空间 中。
常用相似度函数:余弦相似度
在进行类比推理时,最常用的 相似度函数 是 余弦相似度(Cosine Similarity)。其公式如下:
其中,u 和 v 是两个向量,u ⋅ v 是它们的内积,|u| 和 |v| 是它们的欧几里得范数(长度)。余弦相似度的值介于 -1 和 1 之间:
- 如果两个向量的夹角为 0°,则余弦相似度为 1。
- 如果夹角为 90°,则余弦相似度为 0。
- 如果夹角为 180°,则余弦相似度为 -1。
这种相似度度量对于类比推理任务非常有效。

欧几里得距离(Euclidean Distance)
另一种度量方法是 欧几里得距离,它可以计算两个向量之间的距离。但由于它是距离度量,因此通常需要取负值才能作为相似度度量。
词向量的类比学习能力
词向量可以学习到多种 类比关系,例如:
- man 是 woman 的类比,类似于 boy 是 girl。其本质上是 性别 区别。
- Ottawa 是 Canada 的类比,类似于 Nairobi 是 Kenya。这类比的是 城市与国家的关系。
- big 是 bigger 的类比,类似于 tall 是 taller。这类比的是 形容词的比较级。
- Yen 是 Japan 的类比,类似于 Ruble 是 Russia。这类比的是 货币与国家的关系。
这些关系仅通过运行 词向量学习算法 并分析大规模文本语料库就能自动捕捉到。
总结:类比推理与词向量的应用
在这一节课中,我们探讨了 词向量如何应用于类比推理,并且展示了如何通过 余弦相似度 来度量不同词向量之间的相似性。虽然你可能不会自己构建一个类比推理系统,但这种方法为你提供了对词向量表示的直观理解。
接下来,我们将讨论如何 学习这些词向量,让我们进入下一节课吧! 🚀