| 第1行: |
第1行: |
| − | '''Word2Vec''' 是一种将词语(Word)映射为连续向量(Vector)的高效建模技术,由 Google 的 Tomas Mikolov 团队于 2013 年提出<ref>Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013.</ref><ref>Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[J]. Advances in neural information processing systems, 2013, 26.</ref>。通过在大规模文本语料中自动学习,Word2Vec 将每个词表示为一个低维、稠密、连续的向量(即词嵌入Word Embedding),这种向量能够捕捉词语之间的语义和句法关系。与传统将词视为离散 ID 的方法(如 N-gram)不同,Word2Vec 将词嵌入到连续空间中,相似意义的词在向量空间中距离更近,为后续复杂模型(如 Transformer)奠定了基础。 | + | '''Word2Vec''' 是一种将词语(Word)映射为连续向量(Vector)的高效建模技术,由 Google 的 Tomas Mikolov 团队于 2013 年提出<ref>Mikolov T, Chen K, Corrado G, et al. Efficient estimation of word representations in vector space[J]. arXiv preprint arXiv:1301.3781, 2013.</ref><ref>Mikolov T, Sutskever I, Chen K, et al. Distributed representations of words and phrases and their compositionality[J]. Advances in neural information processing systems, 2013, 26.</ref>。通过在大规模文本语料中自动学习,Word2Vec 将每个词表示为一个低维、稠密、连续的向量(即词嵌入Word Embedding),这种向量能够捕捉词语之间的语义和句法关系。与传统将词视为离散 ID 的方法(如 N-gram)不同,Word2Vec 将词嵌入到连续空间中,相似意义的词在向量空间中距离更近,为后续复杂模型(如 [[Transformer]])奠定了基础。 |
| | | | |
| − | Word2Vec 的底层是一个浅层神经网络,采用 Skip-gram 或 CBOW(Continuous Bag of Words 连续词袋模型)两种架构进行训练。训练后得到的词向量被广泛应用于NLP(Natural Language Processing 自然语言处理)任务中,包括机器翻译(Machine Translation)、信息检索(Information Retrieval)、文本分类(Text Classification)和情感分析(Sentiment Analysis)等,成为当前 NLP 领域的重要基础方法之一。 | + | Word2Vec 的底层是一个浅层[[神经网络]],采用 [[Skip-gram]] 或 [[CBOW]](Continuous Bag of Words 连续词袋模型)两种架构进行训练。训练后得到的词向量被广泛应用于[[NLP]](Natural Language Processing 自然语言处理)任务中,包括机器翻译(Machine Translation)、信息检索(Information Retrieval)、文本分类(Text Classification)和[[情感分析]](Sentiment Analysis)等,成为当前 NLP 领域的重要基础方法之一。 |
| | =='''历史背景'''== | | =='''历史背景'''== |
| − | 20 世纪 80 年代,人们开始尝试使用神经网络将单词和概念表示为向量<ref>Hinton G E. Learning distributed representations of concepts[C]//Proceedings of the Annual Meeting of the Cognitive Science Society. 1986, 8.</ref><ref>Elman J L. Finding structure in time[J]. Cognitive science, 1990, 14(2): 179-211.</ref>。2010 年,Tomáš Mikolov(当时就读于布尔诺理工大学)与合著者一起将单隐层的简单递归神经网络应用于语言建模<ref>Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Interspeech. 2010, 2(3): 1045-1048.</ref>。Word2vec 由 Tomas Mikolov 及其团队于 2013 年在 Google Research 提出。Tomas Mikolov 在布尔诺理工大学(Brno University of Technology)完成了神经网络语言建模的博士研究后,加入 Google后,与 Kai Chen、Greg Corrado 和 Jeffrey Dean 等人合作,致力于大规模数据下的词表示学习问题。面对传统方法在大规模语料处理上的局限,Mikolov 团队提出了两种简洁高效的浅层神经网络架构,即CBOW和 Skip-gram,统称为 Word2Vec。Word2Vec 实现了在数十亿词级别的数据上快速训练高质量词向量的目标,一经发布便在NLP领域引起了广泛关注和应用。 | + | 20 世纪 80 年代,人们开始尝试使用神经网络将单词和概念表示为向量<ref>Hinton G E. Learning distributed representations of concepts[C]//Proceedings of the Annual Meeting of the Cognitive Science Society. 1986, 8.</ref><ref>Elman J L. Finding structure in time[J]. Cognitive science, 1990, 14(2): 179-211.</ref>。2010 年,Tomáš Mikolov(当时就读于布尔诺理工大学)与合著者一起将单隐层的简单[[递归]]神经网络应用于语言建模<ref>Mikolov T, Karafiát M, Burget L, et al. Recurrent neural network based language model[C]//Interspeech. 2010, 2(3): 1045-1048.</ref>。Word2vec 由 Tomas Mikolov 及其团队于 2013 年在 Google Research 提出。Tomas Mikolov 在布尔诺理工大学(Brno University of Technology)完成了神经网络语言建模的博士研究后,加入 Google后,与 Kai Chen、Greg Corrado 和 Jeffrey Dean 等人合作,致力于大规模数据下的词表示学习问题。面对传统方法在大规模语料处理上的局限,Mikolov 团队提出了两种简洁高效的浅层神经网络架构,即CBOW和 Skip-gram,统称为 Word2Vec。Word2Vec 实现了在数十亿词级别的数据上快速训练高质量词向量的目标,一经发布便在NLP领域引起了广泛关注和应用。 |
| | | | |
| − | 使用 Word2vec 算法创建的嵌入向量与早期的算法(如使用 n-grams 和潜在语义分析的算法)相比具有一些优势。GloVe 是斯坦福大学的一个团队专门作为竞争对手开发的,原始论文指出 GloVe 比 Word2vec 有多处改进。Mikolov 认为,这种比较是不公平的,因为 GloVe 是在更多数据上训练出来的,而 fastText 项目表明,在相同数据上训练出来的 word2vec 更胜一筹。不过截至到现在,'''直接的 Word2vec 方法被认为是 "过时的"'''。基于transformer的模型,如 ELMo 和 BERT,在类似 Word2vec 的词嵌入模型之上添加了多个神经网络关注层,已被视为 NLP 领域的最新技术。 | + | 使用 Word2vec 算法创建的嵌入向量与早期的算法(如使用 n-grams 和潜在语义分析的算法)相比具有一些优势。[[GloVe]] 是斯坦福大学的一个团队专门作为竞争对手开发的,原始论文指出 GloVe 比 Word2vec 有多处改进。Mikolov 认为,这种比较是不公平的,因为 GloVe 是在更多数据上训练出来的,而 [[FastText]] 项目表明,在相同数据上训练出来的 word2vec 更胜一筹。不过截至到现在,'''直接的 Word2vec 方法被认为是 "过时的"'''。基于transformer的模型,如 [[ELMo]] 和 [[BERT]],在类似 Word2vec 的词嵌入模型之上添加了多个神经网络关注层,已被视为 NLP 领域的最新技术。 |
| | | | |
| | == '''技术原理''' == | | == '''技术原理''' == |
| − | Word2vec 的目的在于为每个词汇都分配一个稠密的向量,能够做到相比传统的稀疏向量(如 one-hot 编码),更具表达能力和计算效率。形式上也就是,如果词汇表为 <math>V</math>,每个词 <math>w \in V</math> 被映射为向量 <math>\mathbf{v}_w \in \mathbb{R}^d</math>,其中 <math>d \ll |V|</math>。 | + | Word2vec 的目的在于为每个词汇都分配一个稠密的向量,能够做到相比传统的稀疏向量(如 [[one-hot 编码]]),更具表达能力和计算效率。形式上也就是,如果词汇表为 <math>V</math>,每个词 <math>w \in V</math> 被映射为向量 <math>\mathbf{v}_w \in \mathbb{R}^d</math>,其中 <math>d \ll |V|</math>。 |
| | | | |
| | Word2vec使用两种模型架构中的任何一种来生成词汇的分布式表示:CBOW或Skip-gram。在这两种架构中,Word2vec 在遍历语料库时都会考虑单个词和滑动上下文窗口,这种设计来源于分布式假设,由语言学家 Zellig Harris 在1954年提出。它的核心思想是:“上下文相似的词具有相似的意义”(You shall know a word by the company it keeps)。即如果两个词在相似的上下文中出现,那么它们的意义可能也相似。 | | Word2vec使用两种模型架构中的任何一种来生成词汇的分布式表示:CBOW或Skip-gram。在这两种架构中,Word2vec 在遍历语料库时都会考虑单个词和滑动上下文窗口,这种设计来源于分布式假设,由语言学家 Zellig Harris 在1954年提出。它的核心思想是:“上下文相似的词具有相似的意义”(You shall know a word by the company it keeps)。即如果两个词在相似的上下文中出现,那么它们的意义可能也相似。 |