NLP进阶之(六)Word2Vec+FastText+Glove

1. WordEmbedding(seq2seq)

自上世纪90年代开始,特征空间模型就应用于分布式语言理解中,在当时,许多模型用连续型表征来表示词语,包括潜在语义分析(Latent Semantic Analysis)和潜在狄拉克雷分配(Latent Dirichlet Allocation)模型,这篇文章详细介绍了词向量方法在那个时期的发展。Bengio等人在2003年首先提出了词向量的概念,当时是将其余语言模型的参数一同训练得到。Collobert和Weston则第一次正式使用预训练的词向量。
词向量意义在于将语言数学化——词向量就是一种将自然语言数学化的方法。词向量方法是无监督式学习的少数几个成功应用之一。它的优势在于不需要人工标注语料,直接使用未标注的文本训练集作为输入。输出的词向量可以用于下游的业务处理。
一般来说,神经网络将词表中的词语作为输入,输出一个低维度的向量表示这个词语,然后用反向传播的方法不断优化参数,输出的低维向量是神经网络的第一层参数,这一层通常也称为Embedding Layer
生成的词向量模型一般分为两种,一种是word2vec,这类模型的目的就是生成词向量,另一种模型是将词向量作为副产物产生,两者的区别在于计算量不同。若词表非常庞大,用深层结构模型训练词向量需要许多计算资源。这也是直到2013年词向量才开始被广泛用于NLP领域的原因。

1.1 Word2Vec

Word2Vec是词嵌入(word embedding)的一种,其中,Word2Vec提供了两套模型,第一种是Skip-gram,另一种是CBOW,其在语言数字化的过程中有以下几种变换:

  • One-hot Encoding
  • 分布式表示(Distributed Representation)
    • 潜在语义分析(Latent Semantic Analysis, LSA)
      • SVD分解
    • 隐含狄利克雷分布(Latent Dirichlet Allocation, LDA)
    • 神经网络、深度学习

1.2 Skip-gram和CBOW

  • Skip-gram 是用一个词作为输入,来预测其周围的上下文
  • CBOW是拿一个词的上下文作为输入,来预测这个词本身,是一个CBOW模型。
    目前基于迭代的方法获取词向量大多是基于语言模型训练得到的,对于一个不合理的句子,希望语言模型能够给予一个较大的概率,同理,对于一个不合理的句子,给与一个较小的概率评估,具体的形式化如下:
    P ( w ( 1 ) , w ( 2 ) , … , w ( n ) ) = ∏ i = 2 n P ( w i ) P(w^{(1)},w^{(2)},\ldots, w^{(n)}) = \prod_{i=2}^n P(w^{i}) P(w(1),w(2),,w(n))=i=2nP(wi)
    P ( w ( 1 ) , w ( 2 ) , … , w ( n ) ) = ∏ i = 2 n P ( w i ∣ w i − 1 ) P(w^{(1)},w^{(2)},\ldots, w^{(n)}) = \prod_{i=2}^n P(w^{i}|w^{i-1}) P(w(1),w(2),,w(n))=i=2nP(wiwi1)
    第一个公式,一元语言模型,假设当前词的概率只与自己有关,第二个公式:二元语言模型,假设当前词的概率和当前一个词有关。因此我们可以从训练集的构建上更好的理解和区别CBOWSkip-gram的模型。
  • 每个训练样本为一个二元组 ( x , y ) (x, y) (x,y),其中 x x x为特征, y y y为标签
  • 假设上下文窗口的大小context_window =5,即: [ w t − 2 , w t − 1 , w t , w t + 1 , w t + 2 ] {[w_{t-2},w_{t-1},w_t,w_{t+1},w_{t+2}]} [wt2,wt1,wt,wt+1,wt+2],或者说skip_window=2,有context_window = skip_window*2 + 1
  • CBOW的训练样本为: ( [ w t − 2 , w t − 1 , w t + 1 , w t + 2 ] , w t ) {([w_{t-2},w_{t-1},w_{t+1},w_{t+2}],w_t)} ([wt2,w
  • 0
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值