自然语言处理——词嵌入

1、为啥不采用one-hot向量

        \space \space \space \space \space \space \space        假设词典中不同词的数量(词典大小)为N,每个词可以和从0到N-1的连续整数一 一对应。这些与词对应的整数叫做词的索引。假设一个词的索引为i,为了得到该词的one-hot向量表示,我们创建一个全0的长为N的向量,并将其第i位设成1。这样一来,每个词就表示成一个长度为N的向量,可以直接被神经网络使用。
        \space \space \space \space \space \space \space        虽然one-hot词向量构造起来很容易,但通常并不是一个好选择。一个主要的原因是one-hot词向量无法准确表达不同词之间的相似度,如我们常常使用的余弦相似度。对于向量 x , y ∈ R d x,y\in R^d x,yRd,它们的余弦相似度是它们之间夹角的余弦值。余弦相似度使用向量空间中两个向量夹角的余弦值作为衡量两个个体间差异的大小。余弦值越接近,就表明夹角越接近0度,也就是两个向量越相似,这就叫余弦相似度。其计算公式为: x T y ∣ ∣ x ∣ ∣   ∣ ∣ y ∣ ∣ ∈ [ − 1 , 1 ] \frac {x^Ty}{||x||\space||y||}\in[-1,1] x yxTy[1,1]其推导过程如下: a ⃗ ⋅ b ⃗ = ∣ ∣ a ⃗ ∣ ∣   ∣ ∣ b ⃗ ∣ ∣ c o s θ \vec{a}\cdot \vec{b}=||\vec{a}||\space||\vec{b}||cos\theta a b =a  b cosθ c o s θ = a ⃗ ⋅ b ⃗ ∣ ∣ a ⃗ ∣ ∣   ∣ ∣ b ⃗ ∣ ∣ cos\theta=\frac{\vec{a}\cdot \vec{b}}{||\vec{a}||\space||\vec{b}||} cosθ=a  b a b         \space \space \space \space \space \space \space        虽然任何两个不同词的one-hot向量的余弦相似度都为0,多个不同词之间的相似度难以通过one-hot向量准确地体现出来。
        \space \space \space \space \space \space \space        Word2vec工具的提出正式为了解决上面这个问题,它将每个词表示成一个定长的向量,并使得这些向量能够较好地表达不同词之间的相似和类比关系。word2vec工具包含了两个模型,即跳字模型(skip-gram)和连续词袋模型(continues bag of words,CBOW)。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值