Word2vec 面试常见问题

Q1、Word2vec 有哪两种模型,各自的优势?
CBOW and Skip_gram 具体解析可以参考深入浅出Word2vec解析
优势:skip_gram 在处理少量数据集的时候效果很好,能很好的表示低频词,而CBOW地学习速度更快,能够很好地表示高频词。

Q2、Word2vec 的两种加速方法?
Word2vec 有两种加速方法,第一种是采用分层softmax ,第二种采用负采样形式。
1)层次softmax
流程:
a、构造一棵哈夫曼树
b、求最大化对数似然函数

  • 输入层:上下文词的词向量
  • 投影层:对输入向量求和或者求平均
  • 输出层:输出最有可能的词
    沿着哈夫曼树找到对应地词,每一次选择就是一个二分类的 过程,连乘就是似然函数
    c、对似然函数求偏导(梯度下降法)

原理:假设一个词表中共有V个词,那么最终的输出为V个类别,而这个V通常情况下会非常的大,导致softmax 层需要非常大的算力,因此,采用了softmax 的特殊形式,sigmoid 函数作为输出,则只需要log(v)次。(原因是分层softmax 的输出变为了一棵哈夫曼树,和树的深度有关)

负采样的流程(以skip_gram为例):
a.统计每个词出现的概率
b. 构造正负样本
正样本:中心词+周围词
负样本:中心词+词表中随机选取的词(一般情况下选择5个随机词,不能只选择一个。因为负样本是随机选择的,只选择一个负样本有一定的偏差)
负采样的核心思想:将多分类转化成一个二分类,利用负采样后的输出分布来模拟真实的输出分布层次。
两种加速方法的区别:
层次softmax 需要输出logV 个概率,而负采样需要输出k+1个概率,k表示负样本的数量。
3. 重采样
由于一般情况下,出现频率较高的词含有较低的语义信息,而出现频率较低的词含有较高的语义信息。因此需要删除一些出现频率较高的词,尽量保留出现频率较低的词。

Q4、Word2vec 和Glove 的区别
Word2vec 是基于邻近词共现,而Glove 是基于全文共现
Word2vec是基于层次softmax 或者负采样,而Glove 用了全局共现矩阵,更消耗内存。

Q5、 Word2vec 的缺点

  • 未考虑词序
  • 对于中文依赖分词结果
  • 对新出现的词效果不好
  • 无正则化处理

Original: https://blog.csdn.net/qq_38477468/article/details/121448813
Author: qq_38477468
Title: Word2vec 面试常见问题

原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/531113/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球