词嵌入随记

样本的构造方式,用一个长度为n的滑动窗口,在语料当中去滑动,每取出来那个连在一块儿的词,用前n-1个词去预测第n个词。

在不少个这些样本上去求交叉熵损失,而后最小化这个交叉熵损失。网络

4D*1是指将各自输入计算的结果拼接在一块。 .net

CBOW是对NNLM作简化

input的权重矩阵C本质上就是把其中的对应列取出来,既然这样就直接不要矩阵C,直接先对每个word初始化一个词向量w3d

projection以前要作一个拼接的操做,这个拼接的操做实在是太麻烦了,这里就直接采用了简单的求和。cdn

NNLM是经过前n-1个词来预测第n个词,CBOW的作法是经过当前词的周边词来预测当前词,例如:我 是 中国 男 孩子,经过"中国"这个词的先后2个词来预测当前这个"中国"。blog

用求和获得的300维向量去和8w个词作一个softmax,可是若是词量不是8w而是400w,那么计算量仍是会很大,因此要对这400w作某种压缩,压缩的方式有以下2种:get

400w平铺开来会很大,因此将它层次化。

input是一个2n+1的窗口在滑动,即前面n 中间1 后面n的这么一个窗口在滑动,和句子的长度没有关系。input

非叶子节点都会有一个权重θ,即图中的黄色节点。树中的每一个节点都是二分类,二分类器的几率相乘,对其相乘取对数变成求和,让这个求和(几率)越大越好。it

树的构造大概会根据每一个word出现的频次会给一个权重,两个两个子树去作拼接,造出来这么一个Huffman Tree。 io

blog.csdn.net/rxt2012kc/a…

使用霍夫曼树来代替传统的神经网络,能够提升模型训练的效率。可是若是咱们的训练样本里的中心词w是一个很生僻的词,那么就得在霍夫曼树中辛苦的向下走好久了。能不能不用搞这么复杂的一颗霍夫曼树,将模型变的更加简单呢?电商

Negative Sampling就是这么一种求解word2vec模型的方法,它摒弃了霍夫曼树。

样本中只有是一个标准答案,400w-1个错误答案,如今大部分的计算都耗在这400w-1个错误答案上,因此如今对错误答案作采样

如今咱们来看看如何进行负采样,获得neg个负例。word2vec采样的方法并不复杂,若是词汇表的大小为V,那么咱们就将一段长度为1的线段分红V份,每份对应词汇表中的一个词。固然每一个词对应的线段长度是不同的,高频词对应的线段长,低频词对应的线段短。

在采样前,咱们将这段长度为1的线段划分红M等份,这里M>>V,这样能够保证每一个词对应的线段都会划分红对应的小块。而M份中的每一份都会落在某一个词对应的线段上。在采样的时候,咱们只须要从M个位置中采样出neg个位置就行,此时采样到的每个位置对应到的线段所属的词就是咱们的负例词。

这里若是它恰好抛到标准答案,那就跳过它。我要取V-1个负例出来,我会抛骰子V-1次。

由中间词去预测中间词的周边词(上下文)

多义词:在电商里面,若是用外面的语料和电商语料一块儿来训练Word2vec,其实还不如直接用电商的语料训练效果好。

如何在全局语料里面短裙和连衣裙它们是相近的,可是在电商里面咱们要体现出来它们的差异,短裙和连衣裙是有差别的服装。

相关文章
相关标签/搜索