word2vec 相关总结与问题

1. word2vec 中的数学原理详解(四)基于 Hierarchical Softmax 的模型 - peghoty - CSDN博客 https://blog.csdn.net/itplus/article/details/37969979

2. word2vec原理(三) 基于Negative Sampling的模型 - 刘建平Pinard - 博客园 https://www.cnblogs.com/pinard/p/7249903.html

3. 不懂word2vec,还敢说自己是做NLP? - 自然语言处理-炼数成金-Dataguru专业数据分析社区 http://www.dataguru.cn/article-13488-1.html

4. word2vec、glove和 fasttext 的比较 - sun_brother的博客 - CSDN博客 https://blog.csdn.net/sun_brother/article/details/80327070

 

注意点:Hierarchical Softmax:把 N 分类问题变成 log(N)次二分类

为什么用Huffman tree

减少模型计算开销,softmax的分母需要词典规模的计算量。实际运用中基本不可能实现

CBOW模型是否包含词序信息?

包含:1.源文:Bag of words is invariant to word order but taking
explicitly this order into account is often computationally very expensive. Instead, we use a bag of
n-grams as additional features to capture some partial information about the local word order. This
is very efficient in practice while achieving comparable results to methods that explicitly use the order
2.参考4: 显然,词袋模型没有上下文,没有词序,每个词不用词向量表示,只用一个表示索引的数字表示,除了词频信息外没有其他信息。
CBOW之所以叫连续词袋模型,是因为在每个窗口内它也不考虑词序信息,因为它是直接把上下文的词向量相加了,自然就损失了词序信息。很多博客中都说CBOW抛弃了词序信息,指的就是在每个窗口内部上下文直接相加而没有考虑词序,但是要说用CBOW模型训练出来的词向量完全不包含词序信息(或者说语序信息)我觉得太绝对了,我认为虽然在CBOW的窗口内部丢掉了词序信息,但是在窗口滑动过程中是按照通顺的自然语言顺序滑动的,或者样本就是按照一定的语序取出来的,所以最终得出的词向量中会包含一定的语序信息,只不过通过取样得到的语序信息对词向量的约束很小,不如在CBOW窗口内部加入ngram这种强约束得到的词序信息明确且强烈。但是对一个训练词向量的浅层模型来说,有没有引入词序信息也不是太重要,因为在做具体任务时,只是将词向量作为初始化表征,词序什么的还会有更复杂的模型来捕获他们,一个词向量包含的信息毕竟是有限的。
好,这个问题明确了,CBOW模型窗口内部抛弃了词序信息,对语言来说语序是很重要的,‘我爱你’的词袋特征是‘我’ ‘爱’ ‘你’ ,‘你爱我’的词袋特征是‘你’ ‘爱’ ‘我’,这两个句子的特征是完全相同的,但是这两个句子的语义是不一样的,如果在CBOW窗口内加入ngram特征(比如2gram)就会得到额外的信息,第一个句子的2gram特征是‘我爱’和‘爱你’,第二个句子的特征是‘你爱’ 和‘爱我’,这样就把上下文完全相同的两个句子区分开了,这种做法就是fastText的做法
 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值