第四章: 大模型(LLM)
第一部分:Embedding is all you need
第三节:该如何做Embedding?Onehot to word2vec
一、为什么需要 Embedding?
机器学习算法无法直接理解文本,必须将词语转换成数值表示。最初的方式是 One-hot 编码,但其存在以下问题:
-
向量维度极高,效率低。
-
无法表达词与词之间的语义关系。
-
所有词之间“距离”相等(正交),没有任何语义可解释性。
于是,Word Embedding 概念被提出,用更紧凑、语义丰富的方式表示词语。
二、One-hot 编码
每个词被表示成一个与词表大小相同的向量,仅有一个维度为 1,其余为 0:
词语 | 向量表示 |
---|---|
king | [1, 0, 0, 0, 0] |
queen | [0, 1, 0, 0, 0] |
apple | [0, 0, 1, 0, 0] |
缺陷:
-
无法反映 king 与 queen 的相关性。
-
每个词之间距离相同。
三、Word2Vec 的原理
Word2Vec 提供了一种方式,将词语映射为一个低维的实数向量,使得向量之间的空间关系反映语义关系。
两种基本结构:
-
CBOW(Continuous Bag of Words)
-
通过上下文词预测中心词。
-
优势:快,适合小数据。
-
-
Skip-Gram
-
通过中心词预测上下文词。
-
优势:适合大数据和稀疏词。
-
网络结构简述:
-
输入层:One-hot 编码
-
隐藏层:嵌入矩阵
W
(学习的目标) -
输出层:预测词概率分布(Softmax)
训练完成后,隐藏层的 W
就是每个词的 词向量。
四、如何训练 Word2Vec
使用反向传播与优化器(如 SGD)更新嵌入矩阵。为了提高效率,通常使用以下技巧:
-
负采样(Negative Sampling):减少 Softmax 的计算成本。
-
层次 Softmax(Hierarchical Softmax):通过 Huffman 树提升效率。
五、Word2Vec 的语义特性
Word2Vec 向量具有可解释的语义结构。例如:
vec("king") - vec("man") + vec("woman") ≈ vec("queen")
这种“向量算术”体现了词向量的强大表达力。
六、可视化示意图
七、小结对比
编码方式 | 特点 | 缺点 |
---|---|---|
One-hot | 简单实现 | 稀疏、高维、无语义关系 |
Word2Vec | 稠密、低维、表达语义 | 需训练、难以处理新词 |
如需补充 GloVe、FastText、Transformer Embedding 或代码示例,也可以继续展开。需要图示、封面、流程图等可视内容也请随时告知。