word2vec总结

前几天实验室师姐问我之前有没有看过word2vec,这才想到去年暑假看过的word2vec,进来学习努力程度不是很够,虽然戒了游戏,但是显然有一个不愿学习的舍友对没有自控力的自己影响有多大,废话不多说了,抓紧总结word2vec


首先什么是word2vec?

word2vec 是 Google 在 2013 年中开源的一款将词表征为实数值向量高效工具

word2vec 通过训练,可以把对文本内容的处理简化为K维向量 空间中的运算,而向量空间上的相似度可以用来表示文本语义。

word2vec本质上来说就是一个矩阵分解的模型,简单地说,矩阵刻画了每个词和其上下文的词的集合的相关情况。对这个矩阵进行分解,只取每个词对应在隐含空间的向量。


概述

  NNLM是最早提出的前馈神经网络模型,模型由输入层(input)、映射层(projection)、隐藏层(hidden)和输出层(output)构成,其中主要的计算瓶颈是映射曾到隐藏层的转换;RNNLM克服了NNLM的部分局限性,比如无需指定语境的长度。RNN没有映射层,只有输入、隐藏、输出三层。至此,神经网络语言模型的性能瓶颈集中在了非线性的隐藏层中。
   为了提升计算效率,作者提出了CBOW和Skip-gram。其中CBWM去除了隐藏层,并让输入层的所有单词共享映射层。从图一左可以看到,CBOW使用围绕目标单词的其他单词(语境)作为输入,在映射层做加权处理后输出目标单词。

word2vec原理概述
区别于CBOW根据语境预测目标单词,Skip-gram根据当前单词预测语境,


算法分析

Word2vec总共有两种类型,每种类型有两个策略,总

CBOW加层次的网络结构
共4种。这里先说最常用的一种。这种的网络结构如下图。




其中第一层,也就是最上面的那一层可以称为输入层。输入的是若干个词的词向量(词向量的意思就是把一个词表示成一个向量的形式表达,后面会介绍)。

中间那个层可以成为隐层,是输入的若干个词向量的累加和,注意是向量的累加和,结果是一个向量。

第三层是方框里面的那个二叉树,可以称之为输出层,隐层的那个节点要跟输出层的那个二叉树的所有非叶节点链接的,线太多画不过来了。第三层的这个二叉树是一个霍夫曼树,每个非叶节点也是一个向量,但是这个向量不代表某个词,代表某一类别的词;每个叶子节点代表一个词向量,为了简单只用一个w表示,没有下标。


另外要注意的是,输入的几个词向量其实跟这个霍夫曼树中的某几个叶子节点是一样的,当然输入的那几个词跟它们最终输出的到的那个词未必是同一个词,而且基本不会是同一个词,只是这几个词跟输出的那个词往往有语义上的关系。


还有要注意的是,这个霍夫曼树的所有叶子节点就代表了语料库里面的所有词,而且是每个叶子节点对应一个词,不重复。 


作用

这个网络结构的功能是为了完成一个的事情——判断一句话是否是自然语言。怎么判断呢?使用的是概率,就是计算一下这句话的“一列词的组合”的概率的连乘(联合概率)是多少,如果比较低,那么就可以认为不是一句自然语言,如果概率高,就是一句正常的话。这个其实也是语言模型的目标。前面说的“一列词的组合”其实包括了一个词跟它的上下文的联合起来的概率,一种普通的情况就是每一个词跟它前面所有的词的组合的概率的连乘

假如给定一句话s,这句话由词w1,w2,w3,…,wT组成,就可以利用计算这句话是自然语言的概率了,计算的公式是下面的公式 

{\rm{p}}\left( {\rm{s}} \right) = {\rm{p}}\left( {​{w_1},{w_2}, \cdots {w_T}} \right) =  \prod \limits_{i = 1}^T p({w_i}|Contex{t_i})

未完待续。。






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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值