AI 术语通俗词典:词向量

张开发
2026/4/21 4:58:46 15 分钟阅读

分享文章

AI 术语通俗词典:词向量
词向量是自然语言处理、机器学习和人工智能中非常常见的一个术语。它用来描述一种把词语转换为数值向量的表示方式。换句话说词向量就是把原本无法直接进行数学计算的文字转换为模型可以处理的一组数字。如果说一个词语回答的是“它在语言中是什么”那么词向量回答的就是“这个词在数值空间中如何被表示”。因此词向量常用于文本分类、机器翻译、问答系统、搜索推荐和大语言模型等任务在现代人工智能中具有重要地位。一、基本概念什么是词向量词向量Word Embedding是指用一个向量来表示一个词语。这个向量通常由多个数值组成每个数值可以看作该词在某个抽象维度上的表示。例如一个词“苹果”可以被表示为(0.12, -0.45, 0.83, ..., 0.27)这里的每个数字本身通常并不直接对应某个容易命名的语义属性但整组数字合在一起就构成了这个词的数值表示。一般来说一个词的词向量可写为其中• w₁ 表示第 1 个维度上的数值• w₂ 表示第 2 个维度上的数值• wₙ 表示第 n 个维度上的数值• n 表示词向量的维度个数从形式上看词向量只是一个向量但它与普通向量的区别在于它的每个向量都对应一个词语并且这种表示是通过语料学习得到的。从通俗角度看词向量可以理解为给每个词制作一张“数字身份证”或“数字画像”。这张画像不是人工一项一项写出来的而是通过大量文本数据自动学习出来的。例如在传统计算机处理中词语本身只是符号“猫”“狗”“汽车”对计算机来说这些只是不同的字符串彼此之间看不出“猫”和“狗更接近”“猫”和“汽车更远”这样的关系。而有了词向量之后模型就可以通过向量之间的距离、方向和相似性感知词与词之间的关系。例如“猫”和“狗”的词向量可能比较接近“北京”和“上海”的词向量可能也比较接近“猫”和“汽车”的词向量通常会相对更远。这说明词向量不仅是“把词变成数字”更重要的是把词与词之间的语义关系也尽量编码进这些数字中。词向量之所以能做到这一点是因为它通常建立在一个重要思想上上下文相似的词往往具有相近的含义。例如在大量文本中“猫”常出现在“宠物、喂养、可爱、毛、动物”等上下文中“狗”也常出现在类似上下文中于是模型就可能学到这两个词在数值空间中应当较接近。二、词向量的重要性与常见应用场景1、词向量的重要性词向量之所以重要是因为自然语言本身不能直接进行高效的数学运算。若模型只看到词语字符串而没有数值表示就很难进一步计算相似度、做分类或输入神经网络。首先词向量为文本提供了可计算的表示方式。有了词向量词语就不再只是离散符号而是可以进入向量空间进行运算的对象。其次词向量可以在一定程度上保留语义关系。它不是随便给每个词分配一串数字而是尽量让语义接近的词在向量空间中更接近。这使模型不只是在“识别词”而是在一定程度上“理解词之间的关系”。再次词向量是许多自然语言处理模型的重要基础。无论是早期的词语相似度分析还是后来的神经网络模型、机器翻译系统、预训练语言模型词向量都是重要的输入表示方式之一。可以概括地说原始词语说明“语言符号是什么”词向量说明“这些符号如何转化为可计算的数值表示”。2、常见应用场景1在文本分类中词向量常用于表示输入文本在情感分析、新闻分类、垃圾邮件识别等任务中模型首先要把词语转换为向量然后再进一步处理句子和整段文本。2在词语相似度分析中词向量常用于比较词义接近程度若两个词的词向量比较接近通常说明它们在语义上也较相近。例如“老师”和“教师”往往比“老师”和“汽车”更接近。3在机器翻译和问答系统中词向量是基础表示之一机器翻译、问答系统、对话系统等都需要把输入文字转成数值形式。词向量正是最基础的表示方法之一。4在搜索和推荐中词向量可用于语义匹配若用户搜索“手机壳”系统不仅可以匹配字面完全一致的词还可以通过向量表示去寻找语义接近的表达。这类思想也被广泛用于搜索与推荐系统中。5在深度学习和大语言模型中词向量是重要入口现代神经网络通常不能直接处理文本字符串而是先把词或子词转换为向量再输入模型。因此词向量可以看作语言进入神经网络之前的重要桥梁。三、词向量与传统词表示的区别词向量的重要性也可以通过它与传统表示方法的对比来理解。1、传统独热编码不能表达语义接近关系在早期文本处理中常用独热编码One-Hot Encoding表示词语。例如一个词表有 10000 个词那么每个词会被表示成一个长度为 10000 的向量其中只有一个位置是 1其余位置都是 0。这种方法有两个明显问题维度很高且非常稀疏不同词之间几乎看不出语义关系。例如“猫”和“狗”的独热编码与“猫”和“汽车”的独热编码在形式上差别并没有“远近”之分。2、词向量通常是低维、稠密的表示与独热编码不同词向量通常维度较低且大多数位置都不是 0因此它是一种稠密表示Dense Representation。例如一个词可能被表示为一个 100 维、200 维或 300 维的向量。虽然维度远小于词表大小但它往往能更有效地表达词义关系。3、词向量更适合进行相似度与向量运算因为词向量本身就是向量所以可以进一步计算• 点积Dot Product• 余弦相似度Cosine Similarity• 欧氏距离Euclidean Distance这使得“词语之间是否相近”成为可以计算的问题。四、使用词向量时需要注意的问题词向量虽然非常重要但在理解和使用时也要注意几个问题。1、词向量不是人工定义的“固定语义表”词向量中的每个维度通常并没有直接、清晰的人工解释。也就是说我们通常知道整个向量有语义作用但不一定能说出“第 37 维具体表示什么”。2、词向量学到的是统计关系不等于真正理解词向量能够表示词与词之间的分布关系和语义相近性但这并不等于模型真正像人一样理解词义。它更多是通过上下文统计规律来建立数值关联。3、同一个词在不同语境中可能有不同含义传统词向量常常给“一个词”分配“一个固定向量”。但自然语言中一词多义现象非常常见。例如“苹果”可以指水果“苹果”也可以指公司品牌。若只有一个固定词向量就难以同时准确表示这两种含义。这也是后来上下文相关表示contextual embeddings逐渐重要的原因。4、词向量质量依赖训练语料词向量不是凭空产生的而是从大量文本中学习得到的。如果训练语料太少、质量太差或存在明显偏见那么学到的词向量质量也会受到影响。5、现代模型中“词向量”有时已扩展为“子词向量”或“上下文表示”在现代自然语言处理中严格来说很多模型并不只使用“词级别”的固定向量而是使用子词subword表示、上下文相关表示等更复杂形式。但从入门角度看理解词向量仍然是理解现代语言表示方法的重要基础。五、Python 示例下面给出两个简单示例用来说明词向量的基本表示方式以及如何比较两个词向量之间的接近程度。示例 1用字典模拟简单的词向量表示# 用字典模拟几个词的词向量word_vectors { 猫: [0.2, 0.8, 0.5], 狗: [0.3, 0.7, 0.4], 汽车: [0.9, 0.1, 0.2]} print(猫 的词向量, word_vectors[猫])print(狗 的词向量, word_vectors[狗])print(汽车 的词向量, word_vectors[汽车])这个例子展示了词向量最基本的形式每个词都对应一个向量。虽然这里的数字只是人为举例但它体现了“词 → 向量”的基本思想。示例 2比较两个词向量的欧氏距离import math # 定义几个词的词向量word_vectors { 猫: [0.2, 0.8, 0.5], 狗: [0.3, 0.7, 0.4], 汽车: [0.9, 0.1, 0.2]} # 计算欧氏距离def euclidean_distance(a, b): total 0 for i in range(len(a)): total (a[i] - b[i]) ** 2 return math.sqrt(total) dist_cat_dog euclidean_distance(word_vectors[猫], word_vectors[狗])dist_cat_car euclidean_distance(word_vectors[猫], word_vectors[汽车]) print(猫 和 狗 的距离, dist_cat_dog)print(猫 和 汽车 的距离, dist_cat_car)这个例子展示了词向量的重要用途比较词与词之间的接近程度。如果“猫”和“狗”的距离小于“猫”和“汽车”的距离就说明在这个向量空间中“猫”和“狗”被认为更接近。 小结词向量是一种把词语转换为数值向量的表示方式。它不仅让文本能够进入计算模型还尽量把词与词之间的语义关系编码进向量空间中。在自然语言处理、搜索推荐、机器翻译和大语言模型中词向量都具有重要基础作用。对初学者而言可以把它理解为词语本身是语言符号而词向量则是这些符号在数值空间中的“数字画像”。“点赞有美意赞赏是鼓励”

更多文章