词嵌入随记

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

在很多个这些样本上去求交叉熵损失,然后最小化这个交叉熵损失。

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

CBOW是对NNLM做简化

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

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

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

用求和得到的300维向量去和8w个词做一个softmax,但是如果词量不是8w而是400w,那么计算量还是会很大,所以要对这400w做某种压缩,压缩的方式有如下2种:

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

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

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

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

blog.youkuaiyun.com/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,其实还不如直接用电商的语料训练效果好。

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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值