| 第10行: |
第10行: |
| | 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)。即如果两个词在相似的上下文中出现,那么它们的意义可能也相似。 |
| | | | |
| | CBOW 可被视为一项 "填空 "任务,其中词汇嵌入代表了词汇影响上下文窗口中其他词汇相对概率的方式。语义相似的词应该以相似的方式影响这些概率,因为语义相似的词应该在相似的语境中使用。上下文词语的顺序不会影响预测(词袋假设)。 | | CBOW 可被视为一项 "填空 "任务,其中词汇嵌入代表了词汇影响上下文窗口中其他词汇相对概率的方式。语义相似的词应该以相似的方式影响这些概率,因为语义相似的词应该在相似的语境中使用。上下文词语的顺序不会影响预测(词袋假设)。 |
| 第19行: |
第19行: |
| | | | |
| | ===模型架构=== | | ===模型架构=== |
| − | [[文件:Word2v-CBOW.png|缩略图|展示了 CBOW 模型的三层结构:输入层、嵌入层和输出层。模型以上下文词为输入,通过嵌入矩阵将其转换为词向量,并对这些向量求平均得到上下文表示,该表示输入到输出层,用于预测中心词。]] | + | ==== CBOW ==== |
| | + | [[文件:Word2v-CBOW.png|缩略图|CBOW 模型的三层结构:输入层、嵌入层和输出层。模型以上下文词为输入,通过嵌入矩阵将其转换为词向量,并对这些向量求平均得到上下文表示,该表示输入到输出层,用于预测中心词。]] |
| | | | |
| − | ==== CBOW ====
| + | CBOW是一种经典的'''词嵌入(Word Embedding)'''模型,由 Mikolov 等人在 2013 年提出,是 Word2Vec 的两种核心架构之一。CBOW 通过上下文词汇预测当前词,从而学习词向量。CBOW 的输入是目标词周围的上下文词汇(窗口内的相邻词),输出是对目标词 <math>V_t</math> 的预测。模型的目标是:'''根据上下文词汇预测中心词'''。设定窗口大小为 <math>2c</math>,即在目标词左右各取 <math>c</math> 个词作为上下文,那么对于中心词 <math>w_t</math>,其上下文为:<math>C_t = \{w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c} \}</math>。模型的结构分为三层,分别是输入层、嵌入层(Embedding)、输出层。 |
| − | CBOW(Continuous Bag of Words)模型是一种经典的'''词嵌入(Word Embedding)'''模型,由 Mikolov 等人在 2013 年提出,是 Word2Vec 的两种核心架构之一。CBOW 通过上下文词汇预测当前词,从而学习词向量。CBOW 的输入是目标词周围的上下文词汇(窗口内的相邻词),输出是对目标词 <math>V_t</math> 的预测。模型的目标是:'''根据上下文词汇预测中心词'''。设定窗口大小为 <math>2c</math>,即在目标词左右各取 <math>c</math> 个词作为上下文,那么对于中心词 <math>w_t</math>,其上下文为:<math>C_t = \{w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c} \}</math>。模型的结构分为三层,分别是输入层、嵌入层(Embedding)、输出层。
| |
| | | | |
| | '''输入层:''' | | '''输入层:''' |
| 第63行: |
第63行: |
| | | | |
| | ====Skip-gram 模型==== | | ====Skip-gram 模型==== |
| − | Skip-gram 是 Word2Vec 的另一种核心模型,由 Mikolov 等人于 2013 年提出。与 CBOW(通过上下文预测中心词)不同,Skip-gram 是通过中心词预测上下文词,适合捕捉罕见词的语义,尤其在大规模语料上表现优异。Skip-gram的模型结构也分为三层:输入层、投影层、输出层。同样假设窗口大小为 <math>2c</math>,对于中心词 <math>w_t</math>,其上下文为:<math>C_t = \{w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c} \}</math>。 | + | Skip-gram 是 Word2Vec 的另一种核心模型,由 Mikolov 等人于 2013 年提出。与 CBOW通过上下文预测中心词不同,Skip-gram 通过中心词预测上下文词,适合捕捉罕见词的语义,尤其在大规模语料上表现优异。Skip-gram的模型结构也分为三层:输入层、投影层、输出层。同样假设窗口大小为 <math>2c</math>,对于中心词 <math>w_t</math>,其上下文为:<math>C_t = \{w_{t-c}, \ldots, w_{t-1}, w_{t+1}, \ldots, w_{t+c} \}</math>。 |
| | | | |
| | '''输入层:'''一段文本中心词汇<math>w_t</math>的one-hot编码作为输入向量 <math>\mathbf{x}_t \in \mathbb{R}^{|V|}</math>。 | | '''输入层:'''一段文本中心词汇<math>w_t</math>的one-hot编码作为输入向量 <math>\mathbf{x}_t \in \mathbb{R}^{|V|}</math>。 |
| 第104行: |
第104行: |
| | | | |
| | <math> | | <math> |
| − | P(w'_{o_i}) \propto U(w'_{o_i})^0.75 | + | P(w'_{o_i}) \propto U(w'_{o_i})^{0.75} |
| | </math> | | </math> |
| | | | |