趋近智
Word2Vec是一种用于学习词嵌入 (embedding)的根本方法。这种方法解决了TF-IDF等基于频率方法的局限性,并建立在分布式语义的直观理解之上。Word2Vec由Tomas Mikolov及其谷歌同事于2013年开发,它并非单一算法,而是一系列模型结构和优化方法的集合,用于从大规模文本语料库中学习词的向量 (vector)表示。
其核心思想简明而优雅:Word2Vec不是简单地统计词频,而是通过一个涉及词及其上下文 (context)的代理预测任务来训练一个浅层神经网络 (neural network)。显著成果在于,该网络隐藏层学到的权重 (weight)本身就充当了词嵌入。这些学到的向量能捕捉到令人惊叹的丰富语义关联 (semantic relationship)。
Word2Vec主要有两种模型结构形式:即连续词袋模型(CBOW)和Skip-gram模型。我们分别介绍。
CBOW模型结构旨在根据周围的上下文 (context)词来预测当前的中心词。假设你有一个句子:“the quick brown fox jumps over”。如果你的中心词是“fox”,并且你定义了一个大小为2的上下文窗口(即中心词前2个词和后2个词),那么上下文词将是“quick”、“brown”、“jumps”和“over”。CBOW使用这些上下文词作为输入来预测中心词“fox”。
工作原理:
CBOW模型结构流程图。上下文词向量被聚合以预测中心词。
CBOW在计算上通常比Skip-gram更快,并且对高频词提供略好的表示。它主要对来自上下文的分布信息进行平滑处理。
Skip-gram模型结构颠倒了预测任务:它不是从上下文 (context)预测中心词,而是尝试在给定中心词的情况下预测周围的上下文词。沿用之前的例子,如果输入中心词是“fox”,模型的目标是预测“quick”、“brown”、“jumps”和“over”等词。
工作原理:
Skip-gram模型结构流程图。中心词向量用于预测周围的上下文词。
Skip-gram的训练时间通常比CBOW长,因为从单一中心词预测多个上下文词是一项更复杂的任务,需要更多的更新。然而,在训练数据量较少时,它通常表现更好,并且在学习稀有词或短语的良好表示方面被认为特别有效。每个(中心词,上下文)对都提供一个学习信号,而CBOW则首先对上下文进行平均。
在大规模语料库上高效训练这些模型需要优化技巧。为每次预测计算整个词汇表 (vocabulary)(可能包含数百万词)上的softmax在计算上是不可行的。解决这个问题有两种常见方法:
虽然了解这些优化方法的细节很有帮助,但像Python中的gensim这样的库会处理它们的实现,让你能够专注于Word2Vec的应用。
归根结底,CBOW和Skip-gram都采用了简单神经网络 (neural network)结构,并针对巧妙设计的预测任务进行训练。真正的产出并非网络本身的预测能力,而是在此过程中学到的内部表示——即词嵌入 (embedding)。这些嵌入将词映射到一个向量 (vector)空间中,其中距离和方向与语义和句法关系相对应。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•