word2vec学习笔记

http://www.hankcs.com/nlp/word-vector-representations-word2vec.html

https://zh.gluon.ai/chapter_natural-language-processing/word2vec.html

https://www.cnblogs.com/pinard/p/7243513.html

常见面试问题

问题 1,介绍一下 word2vec

word2vec 的两个模型分别是 CBOW 和 Skip-gram,两个加快训练的 Loss 是 HS(Hierarchical Softmax )和负采样。
假设一个训练样本是又核心词 w和其上下文 context(w) 组成,那么 CBOW 就是用 context(w)去预测 w;而 Skip-gram 则反过来,是用 w去预测 context(w) 里的所有词。
HS 是试图用词频建立一棵哈夫曼树,那么经常出现的词路径会比较短。树的叶子节点表示词,共词典大小多个,而非叶子结点是模型的参数,比词典个数少一个。要预测的词,转化成预测从根节点到该词所在叶子节点的路径,是多个二分类问题。
对于负采样,则是把原来的 Softmax 多分类问题,直接转化成一个正例和多个负例的二分类问题。让正例预测 1,负例预测 0,这样子更新局部的参数。

问题 2,对比 Skip-gram 和 CBOW

训练速度上 CBOW 应该会更快一点,因为每次会更新 context(w) 的词向量,而 Skip-gram 只更新核心词的词向量。
Skip-gram 对低频词效果比 CBOW,因为是尝试用当前词去预测上下文,当前词是低频词还是高频词没有区别。但是 CBOW 相当于是完形填空,会选择最常见或者说概率最大的词来补全,因此不太会选择低频词。
Skip-gram 在大一点的数据集可以提取更多的信息。总体比 CBOW 要好一些。

问题 3,对比 HS 和 负采样

负采样更快一些,特别是词表很大的时候。

问题 4,负采样为什么要用词频来做采样概率?

因为这样可以让频率高的词先学习,然后带动其他词的学习。

问题 5,为什么训练完有两套词向量,为什么一般只用前一套?

对于 Hierarchical Softmax 来说,哈夫曼树中的参数是不能拿来做词向量的,因为没办法和词典里的词对应。负采样中的参数其实可以考虑做词向量,因为中间是和前一套词向量做内积,应该也是有意义的。但是考虑负样本采样是根据词频来的,可能有些词会采不到,也就学的不好。

问题 6,对比字向量和词向量

字向量其实可以解决一些问题,比如未登陆词,还有做一些任务的时候还可以避免分词带来的误差。
而词向量它的语义空间更大,更加丰富,语料足够的情况下,词向量是能够学到更多的语义的。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值