继续 Levy 等人 2015 年的成果,我们将分离和鉴定影响神经词嵌入模型的因素并展示它们是如何通过比较以下四个模型来被转移到传统方法中的: PPMI:PMI 是衡量两个词之间相关性强度的一个常用指标。它是两个词 w 和 c 之间联合概率与边际概率乘积之间的对数比:
PMI(w,c)=logP(w,c)P(w)P(c)。由于词对(w,c)的 PMI(w,c)=log0=?∞从未出现,所以 实际上 PMI 经常被 PPMI 替代,其将负值看作是 0,即:PPMI(w,c)=max(PMI(w,c),0) 奇异值分解(SVD):SVD 是最流行的降维方法之一,最初是通过潜在语义分析(LSA)进入自然语言处理(NLP)。SVD 将词文本共现矩阵转化为三阶矩阵
的产物,其中 U 和 V 是正交矩阵(即方形矩阵的行和列是正交单位向量),Σ是特征 值在减弱过程中的对角矩阵。实际上,SVD 经常被用于因式分解由 PPMI 产生的矩 阵。一般来说,只有Σ顶端的 d 元素被保存,从而得到:
, 通常被分别用来表示词语和上下文。 基于负采样的 Skip-gram 模型也就是 word2vec:要了解更多 skip-gram 结构和负采样可以参考我之前的博客文章。 全局矢量(GloVe)已经在上一节中介绍过。 超参数 我们来看看以下这些超参数 预处理 动态上下文窗口 常用词下采样 删除罕见词语 关联度量 转移 上下文分布平滑 后期处理 添加上下文向量 特征值加权 向量规范化 预处理 Word2vec 引入了三种预处理语料库的方法,这三种方法也可以很容易地应用于 DSM。 动态上下文窗口 一般来说,在 DSM 中,上下文窗口并未加权,并且具有恒定大小。然而,SGNS 和 GloVe 使用了一种会将更多权重分配给更接近的词语的方案,因为更接近的词通常被认为对词的意义更重要。此外,在 SGNS 中,窗口大小不是固定的,但实际窗口大小是动态的,并且在训练期间在 1 和最大窗口之间均匀采样。 常用词下采样 SGNS 通过概率:
来随机去除频率 f 高于某个阈值 t 的词语,从而获得那些非常频繁出现的词语。由于这种下采样是在实际创建窗口之前完成的,因此 SGNS 在实践中所使用的上下文窗口要大于实际所指示的上下文窗口。 删除罕见词语 在 SGNS 的预处理中,罕见词语也在创建上下文窗口之前被删除,这进一步增加了上下文窗口的实际大小。虽然 Levy 等人在 2015 年发现这并不会对性能产生什么重大的影响。 关联度量 PMI 已被证明是用于测量词语之间关联程度的有效方式。Levy 和 Goldberg 在 2014 年已经表示 SGNS 对 PMI 矩阵进行隐含地因式分解,因此可以将该公式的两个变化引入到常规 PMI 中。 PMI 转移 在 SGNS 中,负样本 K 的数量越多,使用的数据就越多,参数的估计也越好。K 影响了有 word2vec 隐性因式分解的 PMI 矩阵偏移,即 k 通过 log k 来转移 PMI 值。 如果我们将其转换为常规 PMI,我们获得 Shifted PPMI(SPPMI):SPPMI(w,c)=max(PMI(w,c)?logk,0)。 上下文分布平滑 在 SGNS 中,根据平滑的一元分布,即提高到α的幂的一元分布来对负样本进行采样,直播,并根据经验将其设置为 34。这会导致频繁的词语被采样的几率要比它们频率所指示的相对较少。 我们可以通过将上下文词汇 f(c)的频率同等地提高到α的幂来将其传送到 PMI: PMI(w,c)= log p(w,c)p(w)pα(c)其中 pα(c)= f(c)αΣcf(c)α和 f(x)是字 x 的频率。 后期处理 类似于预处理,可以使用三种方法来修改由算法产生的词向量。 添加上下文向量 (责任编辑:本港台直播) |