1 基本概念
1.1 定义与作用
词向量是一类将词语映射为连续数值向量的表示方法。与离散符号不同,词向量把词语编码到一个可计算的空间中,使模型能够通过向量之间的距离、方向和组合关系来处理语言信息。
它的主要作用在于压缩和组织词语的语义信息。相近含义的词通常会在向量空间中彼此接近,从而便于完成相似度计算、分类、检索、翻译等任务。相比人工设计特征,词向量更适合大规模语料环境下的自动学习。
1.2 发展背景
词向量的发展与自然语言处理从规则系统走向统计学习、再走向表示学习的过程密切相关。早期语言处理常依赖人工构造词典、语法规则和稀疏特征,但这类方法难以充分覆盖语言的变化和隐含关系。
随着语料规模扩大和机器学习方法成熟,研究者开始尝试用分布式表示来描述词语。词向量由此成为一种重要基础工具,并逐步从简单的词频统计发展到更复杂的神经网络表示。
1.3 离散表示与分布式表示
离散表示将每个词视为独立符号,彼此之间没有天然的数值联系。例如同义词在这种表示下也只是两个互不相关的编号,难以直接体现语义接近性。
分布式表示则假设词语的意义可以通过其使用环境来刻画。词向量正是这种思想的典型实现:词的含义不再由单一标识决定,而由在语料中出现的上下文共同塑造,因此更利于表达语言中的相似与关联。
1.4 词向量的核心假设
词向量的基础假设通常被概括为“分布式假设”,即语义相近的词往往出现在相似的上下文中。换言之,如果两个词经常与相近的词共同出现,它们在表示空间中也应保持接近。
这一假设使模型能够从共现关系中抽取语义结构。它并不要求模型理解词义的完整逻辑,而是通过统计模式学习语言中的规律性关系。
2 表示形式
2.1 静态词向量
静态词向量是指同一个词在任何上下文中都对应同一个向量表示。这类方法结构简单,计算成本较低,长期以来在许多任务中都具有较强实用性。
它的特点是稳定、统一,适合处理词义较为固定或语境变化不大的场景。但对于一词多义现象,静态表示往往难以区分不同语境中的细微差别。
2.1.1 One-hot 表示
One-hot 表示使用一个维度极高的稀疏向量来对应词表中的每个词。某个词在向量中对应位置为 1,其余位置为 0。
这种方法实现简单,但词与词之间没有距离信息,因此无法反映语义相似性。它更多是一种基础编码方式,常作为其他方法的起点。
2.1.2 词袋表示
词袋表示关注文本中词语是否出现及其频次,而不强调词序。它可将词语汇总为一组统计特征,在文档级分析中较为常见。
虽然词袋模型便于处理,但其表示较为粗糙,难以保留上下文关系。对于需要理解词义关联的任务,它的表达能力通常有限。
2.1.3 低维稠密向量
低维稠密向量是现代词向量的核心形式之一。它将词从高维稀疏空间映射到较低维度的连续空间,使每个维度都能承载一定的语义信息。
这类表示的优势在于紧凑、可泛化,并且更适合后续模型直接使用。许多经典词向量方法最终都会产生这种形式。
2.2 上下文相关词向量
上下文相关词向量会根据词语所处语境动态生成表示,因此同一个词在不同句子中可能对应不同向量。它能够更灵活地处理一词多义、指代变化以及语境依赖等问题。
这类表示通常依赖上下文编码模型,能够在句子或篇章层面捕捉更丰富的信息。与静态词向量相比,它对语言细节的适应性更强。
2.2.1 同词异义的建模
同词异义是上下文表示的重要应用场景。例如一个词在不同语境中可能分别表示实体、动作或抽象概念。上下文相关向量可以根据邻近词的差异生成不同表示,从而减少歧义。
这种建模方式有助于提升语义理解的准确性,尤其在检索、问答和阅读理解中表现明显。
2.2.2 动态语义表示
动态语义表示强调词义并非固定不变,而是随语境变化而调整。模型通过上下文窗口、注意力机制或序列编码来生成当前环境下的词表示。
这类方法使词向量从“词典式存储”转向“情境式生成”,成为现代语言模型的重要组成部分。
2.3 子词与字符级表示
子词与字符级表示不再把词语视为不可分割单元,而是进一步拆解为更细粒度的结构。这样做有助于处理新词、复合词和形态变化丰富的语言。
这类表示在低频词、未登录词和跨语言任务中尤其有价值,因为它能利用内部构词信息补足词级表示的不足。
2.3.1 子词切分
子词切分将词分解为更小的片段,如词根、词缀或常见字节片段。模型在这些片段上学习表示,再组合成词向量。
这种方式兼顾了灵活性与可扩展性,能够减少词表规模,并提高对新词的覆盖能力。
2.3.2 字符组合表示
字符组合表示直接从字符序列中构造词语表示。它可以捕捉拼写规律、词形变化和构词特征。
对于拼写相近或形态相关的词,这种方法通常比纯词级表示更敏感,也更适合处理未登录词。
3 经典生成方法
3.1 基于计数的方法
基于计数的方法通过统计词语在语料中的共现情况来生成表示。它们通常以词频、上下文频次或共现矩阵为基础,再通过降维手段得到稠密向量。
这类方法思路直观,具有良好的可解释性,是词向量研究早期的重要方向。
3.1.1 共现矩阵
共现矩阵记录目标词与上下文词在固定窗口内共同出现的次数。矩阵中的数值越大,往往表示两者关联越强。
这种表示便于直接分析词语关系,但矩阵规模会随着词表扩大迅速增长,因此通常需要进一步压缩。
3.1.2 降维与矩阵分解
降维与矩阵分解通过提取共现矩阵中的主要结构,得到更紧凑的表示。常见思路包括奇异值分解等方法。
这类技术能够去除部分噪声,保留更重要的统计模式,从而形成较具语义信息的低维向量。
3.2 基于预测的方法
基于预测的方法不再直接统计全部共现关系,而是通过训练任务学习词向量,使模型能够根据上下文预测目标词,或反过来由目标词预测上下文。
这类方法通常具有更好的泛化能力,并且在大规模语料上表现突出。
3.2.1 CBOW
CBOW 通过上下文词预测中心词。模型会将窗口内的上下文表示聚合,再推断中间的目标词。
它训练效率较高,适合处理大语料,且对高频词的学习通常较稳定。
3.2.2 Skip-gram
Skip-gram 则以中心词预测其周围上下文词。它更强调从一个词出发学习周边环境的分布特征。
该方法在低频词学习方面常较有优势,因为它会为一个词生成多个训练样本,扩大其学习机会。
3.2.3 负采样
负采样通过只选择少量负样本来近似原本复杂的分类目标,从而显著降低训练开销。模型在区分真实共现词与随机采样词的过程中学习向量。
这种技巧使得词向量训练更适合大规模数据,也成为许多预测式模型的常用优化手段。
3.2.4 层次 Softmax
层次 Softmax 使用树状结构替代直接在整个词表上计算归一化概率。通过将多分类问题分解为多步二分类,可提高训练效率。
它常用于词表较大时的模型加速,尤其适合需要完整概率分布的场景。
3.3 基于全局语料的方法
基于全局语料的方法综合考虑词语在整体语料中的共现统计,而不仅仅依赖局部窗口。它们试图让词向量同时反映局部邻近关系和全局分布特征。
这类方法往往在稳定性和语义结构方面具有较好表现。
3.3.1 GloVe
GloVe 通过构建全局共现统计,并让词向量拟合词与上下文之间的关系。其核心思想是利用共现比率蕴含语义信息。
它兼顾计数方法和预测方法的特点,因此在很多基准任务中表现均衡。
3.3.2 语义共现建模
语义共现建模关注词在整体语料中的关联模式,例如某些词总是与特定主题、对象或动作同时出现。通过对这些模式进行学习,可以得到更贴近语义结构的表示。
这种方法通常有助于增强词向量对主题差异和语义邻近关系的表达能力。
4 向量性质与分析
4.1 语义相似度
语义相似度通常通过向量间的余弦相似度、欧氏距离等指标衡量。若两个词的向量方向接近,往往意味着它们在语义上也较相近。
这一性质使词向量可直接用于词语检索、同义词发现以及相关词推荐等任务。
4.2 词间关系与类比
词向量不仅能表示相似性,还可能反映词与词之间的关系。例如某些关系在向量空间中表现为近似的方向偏移,这使得类比推理成为可能。
这类现象常被视为词向量捕捉语言规律的重要证据。
4.2.1 线性关系
线性关系指若干词之间的语义联系能够通过向量差值近似表达。典型情形包括国家与首都、单数与复数等。
这种规律并非对所有词都严格成立,但在一定范围内具有较强的启发意义。
4.2.2 向量运算示例
常见示例是通过向量加减寻找语义对应词。比如“a - b + c”可用于推测与某种关系相匹配的目标词。
这类运算展示了词向量的代数性质,也说明其内部空间并非完全随机。
4.3 聚类与空间分布
在词向量空间中,语义相近的词往往聚集在一起,形成若干局部簇。名词、动词、情感词或主题相关词都可能表现出一定分布规律。
通过观察聚类结果,可以辅助分析模型是否学习到了合理的语义结构。
4.4 维度含义与可解释性
词向量的单个维度通常不对应明确的人类可读概念,因而整体解释性较弱。模型更多依赖分布式模式,而非显式标签。
不过,某些维度组合仍可能与主题、语体或语义属性相关。研究者常通过可视化和探针任务来间接分析这些信息。
5 训练与优化
5.1 语料预处理
词向量训练通常依赖较为规范的语料预处理。文本在进入模型前,需要经历分词、归一化、词表筛选等步骤。
预处理质量会直接影响最终表示的稳定性和覆盖范围。
5.1.1 分词
分词是将连续文本切分为词或子词单位的过程。不同语言的分词方法差异较大,处理得当有助于减少噪声并提高学习效率。
对于词边界不明显的语言,分词尤其关键。
5.1.2 词表构建
词表构建决定了模型能够识别哪些词项。通常会统计词频,保留高频词并为每个词分配索引。
合理的词表大小需要在覆盖率与计算成本之间取得平衡。
5.1.3 低频词处理
低频词常因样本不足而难以学到稳定表示。常见处理方式包括合并为未知词、采用子词表示或设定频次阈值。
这些方法能够减少噪声,并缓解稀疏数据带来的问题。
5.2 参数设置
词向量训练对若干超参数较为敏感,包括维度、窗口和学习率等。不同设置会影响表示容量、上下文范围与收敛速度。
参数选择往往需要结合语料规模和任务目标进行调整。
5.2.1 向量维度
向量维度决定了表示空间的容量。维度过低可能导致信息不足,过高则可能带来冗余和过拟合风险。
实际使用中,维度通常需要在表达能力与效率之间权衡。
5.2.2 窗口大小
窗口大小决定了模型关注多远范围内的上下文。较小窗口更偏向局部句法关系,较大窗口则更容易捕捉主题性语义。
不同任务对窗口的偏好并不相同。
5.2.3 学习率
学习率控制参数更新幅度。过大会造成训练不稳定,过小则可能收敛缓慢。
在大规模训练中,学习率调度常与其他优化策略配合使用。
5.3 计算效率优化
随着词表和语料规模扩大,词向量训练的计算成本会显著上升。因此,效率优化是实际系统中的重要环节。
常见做法包括采样近似、并行计算和分布式训练等。
5.3.1 负采样策略
负采样策略通过减少每一步需要处理的类别数量来提升速度。合理设计负样本分布有助于兼顾效率与训练质量。
它是许多大规模词向量模型的重要组成部分。
5.3.2 稀疏与稠密计算
早期特征多依赖稀疏表示,而现代词向量训练则更多使用稠密计算。两者在内存占用、运算方式和硬件适配方面存在明显差异。
实际系统中,常通过优化数据结构和批处理方式提升稠密计算效率。
5.3.3 大规模语料训练
大规模语料训练能够让词向量学习更稳定的统计规律,但对存储、速度和并行能力要求较高。通常需要结合多线程、分布式框架或近似算法。
语料规模越大,模型越有机会捕捉丰富语义,但也更依赖工程实现。
6 评估方法
6.1 内在评估
内在评估关注词向量本身的性质,而不直接考察其在下游任务中的最终效果。它能帮助研究者快速判断表示质量。
常见手段包括相似度、类比和人工标注对照。
6.1.1 相似度测试
相似度测试通常检验词向量对同义、近义或相关词的排序能力。若模型能把语义接近的词排在前列,说明其表示较为合理。
这类测试直观,但也容易受词表覆盖和标注标准影响。
6.1.2 类比测试
类比测试用于检查词向量是否能反映词间关系,例如某种对应、转换或属性变化。它常用于验证向量空间中的线性规律。
不过,类比结果并不总能完全代表实际应用中的有效性。
6.1.3 人工标注对照
人工标注对照通过让人工判断词语关系,再与模型输出比较,以评估词向量的语义一致性。
这种方式更贴近真实语言理解,但成本较高,且主观性较强。
6.2 外在评估
外在评估关注词向量在具体任务中的表现,通常更能反映其实用价值。模型若能帮助下游系统提升性能,说明其表示具有较强可用性。
这类评估往往涉及分类、识别、翻译和检索等任务。
6.2.1 文本分类
在文本分类中,词向量可作为特征输入,帮助模型识别主题、情感或意图。更好的词表示通常能提升分类准确率。
6.2.2 命名实体识别
命名实体识别需要模型识别文本中的人名、地名、机构名等实体。词向量能为上下文提供语义线索,辅助边界和类别判断。
6.2.3 机器翻译
在机器翻译中,词向量有助于建立源语言与目标语言之间的语义对应。表示质量较高时,翻译系统通常更容易学习稳定映射。
6.2.4 信息检索
信息检索场景中,词向量可用于扩展查询、计算相关性或改进排序。它能弥补简单词匹配难以覆盖同义表达的问题。
6.3 可视化分析
可视化分析通过将高维词向量投影到二维或三维空间,帮助观察其整体结构。这是理解表示学习结果的重要辅助方法。
它常用于发现聚类、异常点和语义过渡区域。
6.3.1 降维展示
降维展示会使用 PCA、t-SNE、UMAP 等方法,将高维向量压缩到可视化平面中。不同方法对局部结构和全局结构的保留程度各不相同。
6.3.2 聚类图示
聚类图示可以直观呈现词语在向量空间中的分组情况。通过观察类别边界和簇内密度,能够辅助分析模型学习到的语义组织方式。
7 典型应用
7.1 自然语言处理
词向量几乎贯穿许多自然语言处理任务,是文本建模的重要基础组件。它既可单独使用,也可嵌入更复杂的神经网络结构中。
7.1.1 文本分类
词向量可将文本中的词汇信息转化为数值特征,帮助分类器识别文本主题。它在新闻分类、评论分类和意图识别中应用广泛。
7.1.2 情感分析
情感分析需要识别文本中的褒贬倾向。词向量能够将情绪相近的表达聚集在一起,有助于系统理解正向、负向及中性语义。
7.1.3 语义检索
语义检索强调根据意义而非字面匹配寻找结果。词向量能缓解同义表达、近义替换带来的检索遗漏问题。
7.2 推荐与搜索
在推荐和搜索场景中,词向量可用于理解用户输入、内容描述以及词语之间的近似关系,从而提升匹配质量。
7.2.1 词义匹配
词义匹配通过比较向量距离判断两个词在语义上的接近程度。它可用于同义归并、候选词筛选和关联词发现。
7.2.2 查询扩展
查询扩展会利用与原查询相关的词语补充检索条件。词向量能够为扩展词选择提供语义依据,提高召回率。
7.3 知识表示
词向量也可用于知识相关任务,帮助系统将实体、属性和关系映射到连续空间中。这样可以增强结构化知识与文本表示之间的连接。
7.3.1 实体关联
实体关联关注不同表述是否指向同一对象。词向量可辅助比较名称相似性与上下文一致性,提高匹配效果。
7.3.2 关系抽取
关系抽取旨在从文本中识别实体间语义关系。词向量能为句子提供局部语义表示,辅助模式识别与关系判断。
8 常见问题与局限
8.1 词义歧义
词向量常面临词义歧义问题。同一个词在不同语境下可能具有完全不同的含义,而静态表示往往只能给出单一向量,难以兼顾所有用法。
8.2 低频词与未登录词
低频词由于样本较少,表示往往不够稳定。未登录词则可能完全不在词表中,导致模型无法直接处理。
8.3 语料偏差
词向量会继承训练语料中的统计偏差。如果语料来源单一,模型学到的表示也可能偏向某一类写法、领域或表达习惯。
8.4 词序信息缺失
不少传统词向量方法主要关注词的共现,而对词序不敏感。这使它们在处理语法结构、否定关系或长距离依赖时受到限制。
8.5 维度解释困难
词向量每个维度通常缺少直接语义标签,因而难以逐一解释。虽然整体空间结构可分析,但单维度含义往往不明确。
9 相关模型与扩展
9.1 词嵌入与句向量
词嵌入是词级表示,而句向量则将更长的文本单元映射到连续空间。两者在思想上相近,但后者更强调整体语义组合。
句向量常建立在词向量基础之上,也可通过独立模型直接训练得到。
9.2 预训练语言模型中的表示
预训练语言模型内部会生成多层上下文表示,其中部分层级可视为更强的动态词表示。与传统词向量相比,这类表示通常更依赖上下文建模。
它们已经成为现代文本理解系统的重要基础。
9.3 多语言词向量
多语言词向量尝试将不同语言中的词映射到共享空间,便于跨语言比较与迁移。这样可以支持词典对齐、跨语种检索和多语言理解。
这类方法通常依赖平行语料、共享子词或对齐学习。
9.4 跨领域迁移
跨领域迁移关注将某一领域训练得到的词向量应用到其他领域。若不同领域之间存在足够共性,表示可以复用并减少新任务训练成本。
但在专业术语和领域习惯差异较大时,迁移效果可能受到影响。
10 发展趋势
10.1 从静态表示到上下文表示
词向量的发展方向之一,是从固定不变的静态表示逐步走向上下文相关表示。前者便于部署,后者则更适合复杂语境理解。
当前研究与应用中,上下文表示已成为主流。
10.2 从词级到更细粒度表示
随着子词、字符和字节级方法的发展,表示单元正在进一步细化。这有助于提升对新词、低频词和复杂构词现象的处理能力。
更细粒度的表示也使模型更具适应性。
10.3 与大模型表示融合
词向量正与更大规模的语言模型表示逐步融合。传统词级表示在效率、存储和检索方面仍有优势,而大模型表示在语境理解方面更强。
未来的系统往往会在两者之间寻求互补,以兼顾性能与成本。