【小白学AI系列】NLP 核心知识点(三)Word2Vec

Word2Vec

定义:

Word2Vec 是一种将单词转化为向量的技术,基于神经网络模型,它能够将单词的语义关系通过向量空间的距离和方向进行表示。通过 Word2Vec,我们可以将单词从一个离散的符号转化为一个稠密的向量(一般是高维的),并且能够捕捉到单词之间的语义关系和相似性。

历史来源:

Word2Vec 由 Tomas Mikolov 等人于 2013 年在谷歌提出,它迅速成为了词向量表示(word embedding)领域的革命性技术。在 Word2Vec 之前,词向量的表示方法如 TF-IDF 或者词袋模型虽然能够提供词频的信息,但它们并不能捕捉到词与词之间的语义关系。而 Word2Vec 通过神经网络的方式,学习到词之间在上下文中的相似性,并通过向量的形式表达出来。

工作原理:

Word2Vec 的核心思想是基于词汇在上下文中的共现关系,生成词向量。它使用了两种模型来训练词向量:

  • CBOW(Continuous Bag of Words):通过上下文中的词来预测目标词。
  • Skip-Gram:通过目标词来预测它的上下文词。
1. CBOW(连续词袋模型)

CBOW 模型的目标是通过给定上下文的单词来预测当前单词。例如,给定句子:“The cat sat on the mat”,上下文单词可能是 “The” 和 “sat” 等,CBOW 模型将用这些上下文词来预测“cat”。

2. Skip-Gram

Skip-Gram 的目标与 CBOW 恰好相反:给定一个目标词,预测它周围的上下文词。例如,给定“cat”这个目标词,模型会尝试预测它周围的单词 “The”、“sat” 和 “on” 等。

这两种模型的核心思想都是通过 上下文信息 来学习单词的向量表示,使得在相似上下文中出现的词具有相似的向量表示。

数学公式:

Word2Vec 的基本公式基于神经网络模型的训练目标。在训练时,Word2Vec 的目的是最大化目标词与其上下文词之间的共现概率:

  • CBOW模型目标是通过上下文预测目标词:
    P ( w t ∣ w t − 1 , w t − 2 , . . . , w t + k ) = e x p ( v w t T ⋅ h ) ∑ w ′ ∈ V e x p ( v w ′ T ⋅ h ) P(w_t | w_{t-1}, w_{t-2}, ..., w_{t+k}) = \frac{exp(v_{w_t}^T \cdot h)}{\sum_{w' \in V} exp(v_{w'}^T \cdot h)} P(wtwt1,wt2,...,wt+k)=wVexp(vwTh)exp(vwtTh)

    其中:

    • v w t 是目标词 w t 的向量 v_{w_t} 是目标词w_t 的向量 vwt是目标词wt的向量
    • h 是上下文词的平均向量。
    • V 是词汇表。
  • Skip-Gram模型目标是通过目标词预测上下文:
    P ( w t + k ∣ w t ) = e x p ( v w t + k T ⋅ v w t ) ∑ w ′ ∈ V e x p ( v w ′ T ⋅ v w t ) P(w_{t+k} | w_t) = \frac{exp(v_{w_{t+k}}^T \cdot v_{w_t})}{\sum_{w' \in V} exp(v_{w'}^T \cdot v_{w_t})} P(wt+kwt)=wVexp(vwTvwt)exp(vwt+kTvwt)

    其中:

    • v w t + k v_{w_{t+k}} vwt+k是上下文词 w t + k w_{t+k} wt+k的向量。
    • v w t v_{w_t} vwt是目标词 w t w_t wt的向量。

内涵:

Word2Vec 的核心内涵 是通过上下文来捕捉单词的语义关系。通过大量语料的训练,Word2Vec 能够学到单词之间的相似性。例如,训练完的模型中,“king”和“queen”的向量相似度非常高,因为它们经常出现在相似的上下文中;同时,“man”“woman” 之间也会有类似的关系,这种关系可以通过向量的算术运算来表示(例如,“king” - “man” + “woman” ≈ “queen”)。

外延:

应用:词义相似度计算

假设我们想计算“猫”和“狗”之间的相似度。通过 Word2Vec 训练好的词向量,我们可以通过计算这两个词向量的余弦相似度来度量它们的相似性。

步骤:

  1. 获取向量:从训练好的 Word2Vec 模型中提取“猫”和“狗”两个单词的向量。

  2. 计算相似度:使用余弦相似度来衡量这两个向量的相似性。公式如下:
    Cosine Similarity = A ⋅ B ∥ A ∥ ∥ B ∥ \text{Cosine Similarity} = \frac{A \cdot B}{\|A\| \|B\|} Cosine Similarity=A∥∥BAB
    其中,( A ) 和 ( B ) 是“猫”和“狗”对应的词向量, ∥ A ∥ 和 ∥ B ∥ \|A\| 和 \|B\| AB 是它们的模。

  3. 结果分析:如果这两个向量的余弦相似度很高,说明“猫”和“狗”在语义上是相似的,反之则不相似。

应用:词汇生成

Word2Vec 不仅能计算词之间的相似度,还能用来生成类似词。例如,如果你给定一个单词“足球”,模型可以生成类似的词,如“篮球”、“运动”等。

步骤:

  1. 输入单词:输入“足球”。
  2. 查询相似词:Word2Vec 模型根据其向量生成与“足球”最相似的词汇。
  3. 返回结果:模型返回一组相关词,如“篮球”、“乒乓球”等。

你可能感兴趣的:(人工智能,自然语言处理,word2vec)