Word2Vec 和 GloVe 等词嵌入是用于将词转换为数值向量的技术,使机器能够处理和分析语言。这些向量捕获词之间的语义和句法关系,使算法能够识别“国王”和“女王”是相关的,或者“跑步”和“跳跃”描述相似的动作。与独热编码等将词视为孤立符号的简单方法不同,词嵌入将词置于连续向量空间中,其中距离反映意义。
Word2Vec 于 2013 年推出,它使用神经网络通过分析局部词语上下文来创建词嵌入。它提供两种训练方法:连续词袋模型 (CBOW) 和 Skip-Gram 模型。CBOW 从其周围的上下文词预测目标词,而 Skip-Gram 则反其道而行之,从目标词预测上下文词。例如,在句子“The cat sits on the mat”中,Skip-Gram 可能会学习到在固定窗口大小内,“sits”与“cat”、“on”和“mat”相关联。Word2Vec 擅长捕捉类比(例如,“国王 - 男人 + 女人 ≈ 女王”)并能高效地扩展到大型数据集。然而,它独立处理每个上下文窗口,可能会忽略全局统计模式。
GloVe(全局向量)于 2014 年开发,通过纳入全局共现统计量来解决这一限制。它构建一个矩阵,统计词在语料库中一起出现的频率(例如,“ice”与“cold”经常共现),然后对该矩阵进行分解以生成词嵌入。这种混合方法结合了 Word2Vec 的局部上下文敏感性以及整体词频的洞察力。例如,GloVe 可能会为“dog”和“puppy”分配相似的向量,因为它们与“bark”或“pet”等词共同出现,即使它们很少出现在同一个句子中。GloVe 在需要更广泛语义理解的任务上通常表现更好,但它需要更多内存来存储共现数据。
这两种方法都生成稠密的低维向量(通常为 100-300 维),并且是文本分类、机器翻译和推荐系统等任务的基础。开发者可以使用 Gensim(用于 Word2Vec)或 GloVe 的官方工具等库来实现它们,通常可以从常用语言的预训练词嵌入开始。选择哪种方法取决于具体问题:Word2Vec 轻量且适用于局部模式,而 GloVe 则利用全局数据来捕捉更丰富的语义关系。