Word2Vec两篇经典论文笔记

  1. Efficient Estimation of Word Representations in Vector Space
  2. Distributed Representations of Words and Phrases and their Compositionality

首先第一篇文章Efficient Estimation of Word Representations in Vector Space

针对之前提出的NNLM和RNNLM计算复杂的问题,在此基础上减少了隐藏层(将语言模型的建立看成一个多分类问题,相当于线性分类器加上softmax,剪去了中间非线性变换的部分),设计了两个简单的模型(skip-gram 和 cbow 模型)。
由于语言模型的思想就是一个词的出现受该词前面词的影响,所以word2vec的基本思想也是用词来预测词(附近的词),skip-gram使用中心词预测周围词,cbow使用周围词预测中心词。

这里词的预测与语言的表现形式是无关的,也就是说词向量的表示核心是利用上下文信息进行词的表示,即使使用的是两种不同的语言,相同含义的单词在两个向量空间总的相对位置都是差不多的。

Word2Vec两篇经典论文笔记_第1张图片

在上图中,CBOW将一个词周围的词向量通过求和/平均的方式生成一个最终词向量,然后将词表中所有词语这个最终词向量做内积,作为每个词可能成诶中心词的概率。计算复杂度为:
在这里插入图片描述

skip-gram和CBOW的本质思想差不多,但是需要用中间词预测周围的每一个词,以中心词预测周围一个词为例,需要计算中心词和词表中所有词作为周围词的概率。计算复杂度为:Word2Vec两篇经典论文笔记_第2张图片通常C=5

第二篇文章 Distributed Representations of Words and Phrases and their Compositionality

则是对上述skip-gram提出了一系列的改进点:

    1. Hierarchical Softmax: 使用二叉树来记录词表中所有的词,避免softmax时需要遍历词表中所有的词,时间复杂度由O(V)变为O(log2(V))。
      具体做法是将所有词放在树的叶子节点上,每个非叶子结点节点也有自己的词向量表示不同层上的类别,每个叶子节点的概率是从根节点到该叶子节点的路径上记录的概率之积。
      这样softmax变成了二分类问题,假设用用平衡二叉树来进行分类,则条件概率估计可以转换为log2∣V∣个二分类问题。
      由于词的出现频率不同,使出现频率高的离根节点更近,出现频率低的离根节点越远,能有效的降低计算开销,这样便形成了哈夫曼树。
    1. Negative Sampling:负采样也是为了降低softmax计算的复杂度,和原来通过所有单词计算softmax不同,现在只计算窗口内单词(正例)和随机抽的k个窗口外单词(负例)。
      本质上也是把softmax变成了sigmoid分类问题,将多分类转化为二分类问题。
    1. Subsampling of frequent words:对于有些频繁出现的单词比如the等实际对前后词的影响非常小,对训练帮助也非常小,所以在训练中随机抛弃一些高频词,不仅能增加训练的速度,还能提升模型的效果。随机丢弃的概率为:
      Word2Vec两篇经典论文笔记_第3张图片
      其中f(wi)为单词i出现的概率,t为人工参数,值越小抛弃概率越大。
    1. Learning Phrases:将单词组合成的phrase当成一个token(一个word)来看。这里基于共现统计发现phrase:
      Word2Vec两篇经典论文笔记_第4张图片

你可能感兴趣的:(机器学习,1024程序员节)