词嵌入是一种将文本中的词(或短语)转换为计算机可以处理的稠密、低维数值向量的技术,这个向量能够捕捉词的语义和语法信息。

为什么要词嵌入?—— 从问题出发
在计算机看来,文字只是一串符号,为了让计算机“理解”语言,我们需要将文字数字化,传统方法有严重缺陷:
-
基于词频的表示
词嵌入就是为了解决这些问题而生的。
词嵌入的核心思想与特点
-
稠密低维向量:
-
语义蕴含在向量空间中:
- 语义相似的词,它们的向量在空间中的距离很近(余弦相似度高)。
- 例子:
vec(“猫”)和vec(“狗”)的距离,会比vec(“猫”)和vec(“汽车”)的距离近得多。
-
可捕捉复杂的语义关系:
词嵌入是如何获得的?(训练方式)
词嵌入不是人工设计的,而是通过让模型在大量文本数据上学习得到的,核心原则是:上下文相似的词,其语义也相似。
两种经典的学习范式:
-
基于计数的方法:
-
基于预测的方法:
- 训练一个神经网络,通过一个词的上下文来预测这个词(Skip-gram),或者通过一个词来预测其上下文(CBOW)。
- 代表:Word2Vec模型(由Google在2013年提出,极大推动了词嵌入的普及)。
现代发展:后来的模型(如ELMo, BERT, GPT)生成的是上下文相关的词嵌入,即同一个词在不同句子中会有不同的向量表示。“苹果”在“吃苹果”和“苹果手机”中的向量是不同的,这比传统的静态词嵌入(一个词只有一个固定向量)更加强大。
词嵌入有什么用?(应用场景)
词嵌入是现代NLP任务的基石,几乎无处不在:
- 文本相似度计算:搜索引擎、推荐系统(相似文章/商品)。
- 作为下游模型的输入:情感分析、文本分类、机器翻译等任务的第一步就是将文本通过词嵌入转换为向量序列。
- 词语义搜索与智能问答:理解查询的真实意图,而非简单关键词匹配。
- 消除歧义:结合上下文模型,区分多义词。
你可以把词嵌入理解为给每个词分配的 “数字身份证”,但这个身份证的号码(向量)不是随机的,而是根据它在语言海洋中的“社交关系”(上下文)学习得来的。语义相近、用法相似的词,它们的“身份证”也会很接近。
这种表示方法成功地将人类的语言符号映射到了一个有意义的数学空间,为所有后续的深度语言智能提供了坚实的基础。