构筑 AI 理论体系:深度学习 100 篇论文解读
第二十篇:赋予单词语义空间——Word2Vec (2013)
I. 论文背景、核心命题与作者介绍 💡
在2013 年之前,机器对单词的理解是孤立的。比如“猫”被表示为[0, 0, 1, 0],“狗”是[0, 1, 0, 0]。这种One-hot(独热编码)无法表达词与词之间的关系。
Tomas Mikolov及其团队提出的Word2Vec,通过“看一个词的邻居”来学习词的含义,将单词转化为稠密的低维向量。
核心作者介绍(表格还原)
| 作者 | 国籍 | 机构(2013 年时) | 核心贡献 |
|---|---|---|---|
| Tomas Mikolov | 捷克 | 提出了高效训练词嵌入的方法 CBOW 和 Skip-gram。 | |
| Kai Chen | 中国 | 核心架构开发者。 | |
| Jeffrey Dean | 美国 | Google 大神,支持模型的大规模并行实现。 |
| 信息项 | 详情 |
|---|---|
| 论文题目 | Efficient Estimation of Word Representations in Vector Space |
| 发表年份 | 2013 年 |
| 出版刊物 | ICLR Workshop |
| 核心命题 | 如何高效地将海量单词映射到低维、稠密的向量空间中,使向量的几何关系能代表语义关系? |
II. 核心机制:词向量与“维度”的奥秘 ⚙️
1. 什么是词向量(Word Embedding)?
词向量本质上是一串固定长度的数字。
- 旧方法 (One-hot):向量长度等于字典大小(通常是几万到几十万)。
- Word2Vec:向量长度被极大地压缩(通常是 100 到 1000 之间)。
2. “维度”到底是多少?由谁决定?
这是一个最常被误解的点。
- 是多少:常见的设置是300 维。这意味着每个单词都被表示为由 300 个实数组成的列表,例如:
猫 = [0.12, -0.5, 0.88, ... 共300个]。 - 谁决定:它是人工设置的超参数。在训练模型前,研究员根据语料规模和任务复杂度来指定。
- 层数关系:Word2Vec 只有一个隐藏层。这层神经元的个数,就等于词向量的维度。
3. 这 300 个维度代表了什么?(通俗解释)
虽然机器不会给每个维度取名,但你可以想象这 300 个数字代表了 300 个**“属性”**:
- 第 1 维可能代表:是否是动物(数字大表示像动物,数字小表示像无机物)。
- 第 2 维可能代表:是否具有高贵感(国王和女王在这里数值都很高)。
- 第 3 维可能代表:尺寸大小。
- 结果:“猫”和“狗”虽然在尺寸、动物属性上相似,但在“叫声”属性上不同。通过这 300 个维度的综合评分,机器就能在空间里精准定位每个词。
4. 训练架构:CBOW 与 Skip-gram
- CBOW:“完形填空”。用上下文词(周围的词)预测中心词。适合小型数据集,速度快。
- Skip-gram:“举一反三”。用中心词预测周围可能出现的词。对低频词(不常用的词)理解更深刻。
III. 历史意义:神奇的向量运算 👑
1. 语义平移
Word2Vec 第一次证明了语义可以进行代数运算:
这说明模型在 300 维的空间里,成功提取出了**“性别”**这个方向。
2. 相似度计算
通过计算两个向量之间的余弦夹角,机器可以瞬间找出“电脑”的最相近词是“计算机”还是“西瓜”。
IV. 零基础理解:Word2Vec 到底干了啥? 👶
他们做了什么:以前电脑认字就像看门牌号,1 号房和 2 号房没啥关系。现在科学家给每个字发了一张“多维度体检表”。
怎么做的:
- 体检项目(维度):科学家设定了 300 个体检项目(维度)。
- 疯狂面试:让电脑读几亿句话。如果“猫”和“鱼”经常在一起,电脑就在“爱吃鱼”这个体检项上给它们打高分。
- 生成坐标:最终,每个单词都有了 300 个分数。这些分数就是它的坐标。
- 发现规律:电脑惊讶地发现,所有“水果”的坐标都聚在一起,所有“动词”的坐标也聚在一起。
结果:机器终于不用死记硬背单词,而是通过空间距离理解了人类语言的深层含义。
下一篇预告:Word2Vec 虽然厉害,但它有个硬伤:在它眼里,“苹果”永远只有一个坐标。但“苹果”既是水果也是手机。下一篇(第二十一篇)我们将解读ELMo (2018),看它如何根据语境给单词生成“动态”的坐标。