分层softmax_漫谈词向量之基于Softmax与Sampling的方法

原文: On word embeddings

作者: Sebastian Ruder

译者: KK4SBB 审校:王艺

责编:王艺 若您有想要分享的行业案例、技术笔记、请联系 wangyi@csdn.net

本文经作者授权CSDN翻译发布,未经允许不得转载。

目录:

基于softmax的方法

Hierarchical Softmax

Differentiated Softmax

CNN softmax

基于sampling的方法

Importance Sampling

Adaptive Importance Sampling

Target Sampling

Noise Contrastive Estimation

Negative Sampling

Self-Normalisation

Infrequent Normalisation

Other Approaches

各种方法对比

小结

Bengio等人2003年提出的神经语言模型,Collobert和Weston在2008年提出的C&W模型,以及Mikolov等人在2013年提出的word2vec模型。作者认为,降低最后的softmax层的计算复杂度是设计更好词向量模型所面临的主要挑战,同时也是机器翻译(Jean等[10])和语言建模(Jozefowicz等[6])的共性挑战。

本篇文章列举了近几年内新提出的几种替代softmax层的方法。其中一些方法目前还只在语言建模和机器学习中尝试过。关于超参数的讨论将安排在后续的系列文章中介绍。

先来说明一下文章里用到的符号:假设有一份训练文档集,它包括了T个训练词语w1,w2,w3,⋯,wT,它们构成大小为|V|的词语集合V。语言模型通常只考虑由当前词语wi的左右n个词语组成的上下文ci。每个词语有一个d维的输入词向量vW(即embedding层的词向量)和输出词向量v’W(即softmax层的权重矩阵所表示的词语)。最后,针对模型参数θ来优化目标函数Jθ。

若指定上下文c,用softmax方法计算词语w出现的概率可以用公式表示为:

h是网络倒数第二层的输出向量。为了简化表示,上式中用c表示上下文内容,并且省略了目标词语wt的下标t。为了得到上式的分母部分,需要计算向量h与词典V中每个词语向量之间的内积。因此,计算softmax的代价非常昂贵。

接下来,我们将讨论几种能够近似替代softmax的策略。这些方法可以归纳为基于softmax的和基于sampling的两大类。基于softmax的方法仍旧保留了模型的softmax层,但是通过调整其结构来提高效率。基于sampling的方法则完全抛弃了softmax层,而是优化其它形式的损失函数来代替softmax。

基于softmax的方法

分层Softmax

Hierarchical softmax (H-Softmax)是由Morin和Bengio[3]受到二叉树的启发而提出。H-Softmax本质上是用层级关系替代了扁平化的softmax层,如图1所示,每个叶子节点表示一个词语。于是,计算单个词语概率值的计算过程被拆解为一系列的概率计算,这样可以避免对所有词语进行标准化计算。用H-Softmax替换softmax层之后,词语的预测速度可以提升至少50倍,速度的提升对于低延时要求的实时系统至关重要,比如谷歌新推出的消息应用Allo。

图1:Hierarchical softmax

我们可以把原来的softmax看做深度为1的树,词表V中的每一个词语表示一个叶子节点。计算一个词语的softmax概率需要对|V|个节点的概率值做标准化。如果把softmax改为二叉树结构,每个word表示叶子节点,那么只需要沿着通向该词语的叶子节点的路径搜索,而不需要考虑其它的节点。

平衡二叉树的深度是log2(|V|),因此,最多只需要计算log2(|V|)个节点就能得到目标词语的概率值。注意,得到的概率值已经经过了标准化,因为二叉树所有叶子节点组成一个概率分布,所有叶子节点的概率值总和等于1。我们可以简单地验证一下,在图1的根节点(Node o)处,两个分枝的概率和必须为1。之后的每个节点,它的两个子节点的概率值之和等于节点本身的概率值。因为整条搜索路径没有概率值的损失,所以最底层所有叶子节点的概率值之和必定等于1,hierarchical softmax定义了词表V中所有词语的标准化概率分布。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值