word2vec之一发入魂(1):CBOW, Skip-gram原理详解

本文介绍了word2vec中的CBOW和Skip-gram模型,阐述了one-hot编码的局限性,详细讲解了Skip-gram的条件概率建模和训练过程,以及CBOW模型的原理与训练方法,对比分析了两者的复杂度和准确性差异。
摘要由CSDN通过智能技术生成

1 摘要

在自然语言处理中,计算机往往难以处理复杂的文字系统。因此,如何把“文字”转换成计算机易处理的形式成为了一个亟需解决的问题。为解决这一问题,word2vec提出了一种把“词”映射到实数域向量的思路。其中这个转换过程被称为word embedding,转换出来的向量也叫词向量。本文将从原理上简要介绍word2vec模型中包含的两个经典算法:CBOWSkip-gram模型,并对两者的相同点,不同点作分析。

2 word2vec 简介

word2vec的目的是根据具体任务,把 “词”转换成合适的向量(也就是说同一个词,在新闻类任务和在散文类任务中的向量表示可能是不一样)。通常的做法是,把每一个词对应的词向量 v i v_i vi作为模型的训练参数,然后通过一定的规则对模型进行训练,最终得到的参数矩阵就是词向量
在这里插入图片描述

注:这个地方与分类任务有点不一样,分类任务是希望通过模型来预测分类,目的获取模型的输出结果,而word2vec目的是获取模型的训练参数。

3 one-hot编码

在介绍CBOWSkip-gram模型之前有必要介绍一下one-hot编码。one-hot编码的原理很简单,它让每一个词占一个维度,如果该词出现了,则该维度的值为1,其余维度的值为0。举个例子,假设我们的语言中只有三个词,分别是“who”,“are”,“you”,那么根据编码规则会有以下编码:

向量
who [1,0,0]
are [0,1,0]
you [0,0,1]

虽然one-hot编码的原理简单,却在实践中很少被运用,原因有二:

  1. 维度爆炸:从上面的例子来看,每个词被编码成3维的向量,可见编码的维度取决于词库中词的数目。在实际应用中,大规模的词库往往会导致维度爆炸的问题。
  2. 完全割裂了词与词之间的联系:one-hot编码的编码方式使得两词之间相互正交(词向量内积永远为0),因此无法保留两词之间的相关性,这说明这编码方式的表达能力并不强。如 nice和good在语义上是应该有较高的相关,而nice和bike之间应该具有较低的相关性。

为了改善上述两个缺点,word2vec提出了CBOWSkip-gram模型。

4 Skip-gram模型

4.1 原理推导

Skip-gram模型利用中心词来生成周边的词。假设有一句子:·在这里插入图片描述
为了用 w c w_c wc预测词窗中的背景词 w o w_o wo,Skip-gram首先利用条件概率对 w c w_c wc w o w_o wo进行建模,即 P ( “you" , “are" , “good" , “friend" ∣ “my" ) . P(\textrm{``you"},\textrm{``are"},\textrm{``good"},\textrm{``friend"}\mid\textrm{``my"}). P(“you",“are",“good",“friend"“my").
假设背景词之间相互独立(类似于朴素贝叶斯模型中的假设条件),可以把上述概率写成:

P ( “You" ∣ “my" ) ⋅ P ( “are" ∣ “my" ) ⋅ P ( “good" ∣ “my" ) ⋅ P ( “friend" ∣ “my" ) . P(\textrm{``You"}\mid\textrm{``my"})\cdot P(\textrm{``are"}\mid\textrm{``my"})\cdot P(\textrm{``good"}\mid\textrm{``my"})\cdot P(\textrm{``friend"}\mid\textrm{``my"}). P(“You"“my")P(“are"“my")P(“good"“my")P(“friend"“my").
其中, w c w_c wc w o w_o wo的表达式为:
P ( w o ∣ w c ) = exp ( u o ⊤ v c ) ∑ i ∈ V exp ( u i ⊤ v c ) , P(w_o \mid w_c) = \frac{\text{exp}(\boldsymbol{u}_o^\top \boldsymbol{v}_c)}{ \sum_{i \in \mathcal{V}} \text{exp}(\boldsymbol{u}_i^\top \boldsymbol{v}_c)}, P(wowc)=iVexp(uivc)exp(uovc),

在skip-gram模型中,一个词往往会保存两种形式的向量,一个是作为中心词的向量(用 v v v表示),一个是作为背景的向量(用 u u u来表示)。上式本质上是一个softmax的表达式,其中

  • 1
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值