简介:词嵌入是自然语言处理(NLP)的核心技术之一,它通过将离散的文本符号转化为连续的向量空间,使机器能够捕捉词语的语义关联。本文将深入解析词嵌入的定义、技术原理、核心能力及其在LLM与Agent系统中的应用场景,帮助开发者理解这一技术如何支撑AI从“符号处理”到“语义理解”的跨越。
词嵌入(Word Embedding)是一种将离散的文本符号(如单词、子词或字符)映射到连续低维向量空间的技术。其本质是通过数学建模将词语的语义、语法甚至情感信息编码为数值向量,使语义相似的词语在向量空间中距离更近。例如,”猫”和”狗”的向量可能比”猫”和”汽车”更接近,而”快乐”与”悲伤”则可能分布在相反方向。
早期NLP系统依赖”独热编码”(One-Hot Encoding),将每个词表示为高维稀疏向量(如10,000维),但存在两大缺陷:
词嵌入通过引入分布式假设(Distributional Hypothesis)——“上下文相似的词语义相似”,将词向量压缩至低维(如300维),同时保留语义关联。这一突破为深度学习在NLP中的应用奠定了基础。
人类语言具有歧义性(如”苹果”可指水果或公司)和上下文依赖性(如”银行”在金融与地理场景含义不同)。词嵌入通过以下能力破解难题:
v(国王)-v(男人)+v(女人)≈v(王后)); 在大语言模型(LLM)中,词嵌入是第一层语义编码器:
在Agent系统中,词嵌入进一步支持:
Word2Vec(2013):
通过滑动窗口捕获上下文,提出CBOW(用周围词预测中心词)和Skip-Gram(用中心词预测周围词)两种架构。例如,训练句子”The cat sat on the mat”时,Skip-Gram会最大化P(cat|sat)、P(on|sat)等概率。
# 伪代码:Skip-Gram训练过程for word in sentence:for context_word in get_context(word, window_size=2):update_weights(word_embedding, context_embedding)
GloVe(2014):
结合全局词共现统计与局部窗口训练,通过矩阵分解优化词向量,擅长捕捉全局语义模式(如词语的统计共现频率)。
BERT(2018):
引入动态词嵌入,通过Transformer的自注意力机制,根据上下文动态调整词向量。例如,”bank”在”river bank”和”bank loan”中会有不同表示。
词嵌入的训练通常基于以下目标函数:
from gensim.models import Word2Vecsentences = [["The", "cat", "sat"], ["On", "the", "mat"]]model = Word2Vec(sentences, vector_size=100, window=5, min_count=1)
词嵌入通过数学建模将离散文本转化为连续语义空间,解决了机器理解语言的核心难题。从Word2Vec到BERT,其技术演进不断突破语义表达的边界,成为LLM与Agent系统的基石。开发者在选型时需权衡通用性与领域适应性,同时关注伦理风险,方能充分发挥这一技术的价值。未来,随着多模态大模型的发展,词嵌入将进一步融合视觉、听觉信号,推动AI向更通用的理解能力迈进。