今日头条李磊等最新论文:用于文本生成的核化贝叶斯Softmax
译者 | Raku
出品 | AI科技大本营(ID:rgznai100)
摘要
用于文本生成的神经模型需要在解码阶段具有适当词嵌入的softmax层,大多数现有方法采用每个单词单点嵌入的方式,但是一个单词可能具有多种意义,在不同的背景下,其中一些可能会有所不同。在本文中,研究者提出一种新颖的、学习更好的嵌入文本生成方法——KerBS。KerBS主要有两个优点:a)采用嵌入的贝叶斯组合多义词;b)它适应单词的语义变化,并且通过施加学习过的内核来捕获相似度,对少见语境嵌入空间中的单词(感官)数具有鲁棒性。实证研究表明,KerBS大大提高了一些文本生成任务的性能。
1、简介
借助[Bengio et al.,2003;Mikolov et al.,2010]的语言建模,[Sutskever et al.,2014;Bahdanau et al.,2015;Vaswani et al.;2017]的机器翻译,[Sordoni et al.;2015]的对话生成,文本生成已得到显着改善。这些模型都包括softmax最后一层以产生单词。softmax层采用上下文状态(h)来自上游网络(例如RNN单元)作为输入,并将h转换为具有线性投影(W·h)和指数激活的单词概率,W的每一行都可以视为嵌入一个词。实际上,softmax通过计算上下文向量h和词汇表中的词嵌入W之间的内积评分进行嵌入匹配。
softmax常用的设置在嵌入空间上有一个很强的假设,即每个单词对应一个单独的向量,解码网络中的上下文向量h必须在一定距离度量下不加区别地接近所需的单词嵌入向量。我们发现这样的假设与实际情况不符。
图 1 可视化包含所检查单词话语上下文向量的示例, 来自BERT模型Devlin et al. [2019]。我们观察到3个有趣的现象:a)多义性:并非每个词的上下文向量构成一个单独的簇,而是由有多个簇的单词群构成(图1b)。b)变方差:上下文向量的方差在集群中存在显著差异,有些词对应较小的方差,有些词对应较大的方差(图1c)。c)鲁棒性:上下文空间存在异常值(图1b)。
这些现象解释了传统的softmax在训练中无效的原因,传统方法将单词嵌入到同一单词的所有上下文向量中,即使它们可能属于多个不同的簇。同时,以内积作为相似度评分的扁平 softmax完全忽略了不同单词的方差,它也容易受到离群值的影响,因为一个单一的异常将导致嵌入这个词远离主集群。简而言之,softmax层没有足够的表达能力。
Yang et al.[2018]提出了混合软max (MoS)来增强softmax的表达能力,它用M个softmax层的加权平均代替了单个softmax层。然而,所有的词都有相同数量的成分M和平均重量,这严重限制了MoS的容量。此外,上下文向量的方差也没有被考虑到。
图1:根据BERT计算的上下文向量h,并使用PCA进行投影。每个点对应一个包含单词的话语。(a)“computer”只有一个集群;(b) “monitor”有两组,分别表示动词(左)和名词(右)。右下角的离群值只出现在短语《基督教科学箴言报》中;(c)“car”的方差小于“vehicle”。
本文提出了一种新的文本嵌入生成方法——KerBS。KerBS通过引入多个嵌入的Bayesian组合和一个可学习的内核来度量嵌入之间的相似性,从而避免了上述softmax问题。KerBS不是一个单独的嵌入,而是用多个嵌入的加权组合显式地表示一个单词,每个嵌入的加权组合被视为一个意义,嵌入的数量也会自动从语料库中获得。我们设计了一组核心函数来代替softmax层中的嵌入匹配(即矩阵-向量点积),通过从文本中学习参数,每个单词(或意义)可以在其嵌入空间中享受个体差异。此外,与高斯核相比,核族对异常值具有更强的鲁棒性。
我们对各种文本生成任务进行了实验,包括机器翻译、语言建模和对话生成。实证结果验证了该方法的有效性。消蚀研究(Ablation study,控制变量法)表明,KerBS的每个部分,包括贝叶斯组成和核函数,都是提高性能的必要条件。我们还发现,具有更多语义意义的词被赋予了更多的意义嵌入,这符合我们的直觉。
2、相关工作
词嵌入(Word Embeddings):Word2Vec [Mikolov et al.,2013]与GloVe [Pennington et al.,2014]以非监督的方式从语料库中学习分布式单词表示,但每个词只分配一个词的嵌入,不仅忽略了词的多义性,而且无法提供与上下文相关的词的嵌入。最近的研究[Alec Radford and Sutskever, 2018, Peters et al.,2018, Devlin et al. 2019]表明,预先训练的语境化单词表示对下游的自然语言处理任务是有益的。BERT [Devlin et al.,2019]使用深层双向转换器对掩蔽语言模型进行了预训练,并在各种NLP任务中实现了最好的性能。
多义词嵌入(Multi-Sense Word Embeddings):早期的工作通过先训练单点词嵌入,再对上下文嵌入进行聚类(例如,相邻词的平均嵌入)来获得多义词嵌入。但是这些方法是不可扩展的,并且在参数调优方面花费了大量的努力[Reisinger和Mooney, 2010, Huang et al.,2012]。Tian等[2014]提出了一种概率模型,该模型使用一个变量来控制每个单词的词义选择,Liu等[2015]为每个单词添加一个topic变量,并在topic变量上嵌入条件词,Tian等[2014]和Liu等[2015]都可以方便地集成到跳跃图模型中[Mikolov等,2013],效率很高,其他著作[Chen et al., 2014, Jauhar et al., 2015, Chen et al., 2015, Wu and Giles, 2015]利用大型语料库如WordNet Miller[1995]和Wikipedia进一步提高了多义嵌入的性能。然而,这些作品主要侧重于文本理解,而不是文本生成。
作为分布的词嵌入(Word Embedding as a Distribution):为了表示每个词的语义宽度,Vilnis和McCallum[2015]提出将每个词在嵌入空间映射成高斯分布,Vilnis和McCallum[2015]没有使用Mikolov等人[2013]的余弦相似度,而是使用嵌入分布的KL-divergence方法来衡量单词之间的相似度,为了提高高斯词嵌入的数值稳定性,特别是在比较非常近或非常远的分布时,Sun等[2018]提出用Wasserstein距离代替KL-divergence。虽然高斯词嵌入在相似度和嵌入检测等词级任务中表现良好,但不能直接应用于文本生成场景,因为高斯词嵌入与输出嵌入很难进行匹配,而输出嵌入通常是嵌入空间中的单点。
3、背景知识
大多数文本生成模型通过嵌入匹配过程生成单词。直观地说,在每个步骤中,上游网络(如RNN解码器)根据来自输入和先前生成的单词的编码信息计算上下文向量h,上下文向量h用作查询,从预先计算的词汇表嵌入W中搜索最相似的匹配,在实践中,这是通过W和h之间的内积实现的,在推理过程中,选择概率最高的单词。
具体来说,给定一个话语
在第t时刻,通过查找单词嵌入矩阵
式(3)在
4、KerBS方法
在本节中,我们首先介绍用于文本生成的KerBS,它是根据在引言中提到的三个观察结果设计的:多义性、变差性和鲁棒性。然后,针对直接学习每个单词的义数比较困难的问题,提出了一种动态分配义的训练方案。
4.1、模型架构
KerBS假设同一个单词的上下文向量空间由几个几何上独立的分量组成,每个部分都代表一种意义,有自己的差异。为了更好地模拟它们的分布,我们将式(3)代入以下方程:
在这里,
式(5)中输出感知
4.1.1、嵌入的贝叶斯组合
在这一部分中,我们将详细介绍KerBS如何对单词的多义性进行建模。直观地说,我们在文本生成中使用了嵌入的贝叶斯组合,因为同一个单词可以有完全不同的含义,对于具有多个意义的单词,通常可以将其对应的上下文向量划分为单独的集群(参见图1)。如果我们使用单一嵌入模型(如传统的softmax)来拟合这些集群,则单词嵌入将收敛于这些集群的平均值,并且可能与所有集群都很远,这可能会导致文本生成性能变差。
如式(4)所示,我们可以为每个意义分配不同的嵌入。我们首先通过上下文向量h与意义嵌入矩阵w之间的权值匹配得到意义概率,然后将每个单词的意义概率相加得到单词概率。
我们采用了权值捆绑方案[Inan et al.,2017],其中解码嵌入和输入嵌入是共享的。由于W是一个意义嵌入矩阵,因此不能像式(1)那样直接用于下一步的解码网络。相反,我们根据意义嵌入的条件概率计算其加权和得到嵌入集。假设
4.1.2、内核的嵌入匹配
为了计算每个意义的概率,在嵌入空间中引入高斯分布是非常简单的,然而,由于以下原因,在高维空间中很难学习嵌入的高斯分布。上下文向量通常分布在高维空间中嵌入的低维流形中,在低维流形中使用高斯分布来建模嵌入向量可能会导致严重的不稳定性,假设在一个采用空间,
其中X为包含离群值的数据点集,并将X中的离群值比例表示为α。由于
因此,我们设计了一个核函数来对嵌入方差进行建模,它比高斯混合模型更容易学习。具体来说,我们用一个核函数来代替可以看作是围绕整个空间的一个固定核的内积
图2:不同θ下核的形状
在这里,θ是控制每个方向的嵌入方差的参数,
因
4.2、训练方案
很难从经验上确定每个词的意义数,这是一个非常大的超参数集,同样,同一个单词的属性在不同的语料库和任务中可能有所不同,为此,我们设计了一种包含动态感分配的路沿识别训练方案,我们不需要提供每个单词的意义数,只需要输入总意义数即可,算法会自动分配意义数量。
训练方案详见算法1。具体来说,获取参数对KerBS和上游网络
在适应阶段,KerBS学习意义嵌入向量
在分配阶段,我们删除多余的意义并将它们重新分配到预测不佳的词上。为了确定需要去除的意义项和需要更多义项的单词,我们记录每个单词的log预测准确率log P与意义使用率U的变化的平均值:
其中β是更新率。对于一个单词i,如果经过几个世纪后log P始终低于阈值,我们认为目前分配给i的意义数是不够的,然后我们删除最不常用的义并重新分配给i。我们交替地执行适应和重新分配直到收敛。
4.3、理论分析
在这一部分中,我们将解释为什么KerBS能够学习上下文向量的复杂分布。我们只对下面的引理做了简单的介绍,在附录中留下了更详细的证明。
引理4.1:KerBS具有学习多义性的能力。如果上下文向量的实际分布由几个不相连的集群组成,那么KerBS将学习尽可能多地表示集群。
证明:每一组词的上下文向量都吸引着它KerBS意义的嵌入,以使这些嵌入更靠近
引理4.2:KerBS具有学习嵌入分布方差的能力,对于方差较大的分布,KerBS学习更大的θ。
证明:优化的θ是方程
5、实验
在本节中,我们通过实证验证了KerBS的有效性。我们先建立实验,然后在5.2部分给出实验结果。
我们在几个文本生成任务上测试kerb,包括:
• 机器翻译(MT)是在IWSLT 16 De En上进行的,它包含了196k对用于训练的句子。
• 语言建模(LM)用于测试无条件文本生成性能。在之前的工作之后,我们使用10亿个单词的语料库中的300k、10k和30k子集分别进行训练、验证和测试。
• 对话生成(Dialog)也包括在内。我们使用Li等[2017]的DailyDialog数据集进行实验,提前删除训练集和测试集的重叠部分。
注意,这些文本生成任务强调不同的方面。利用MT测试双语语料库中的语义转换能力,LM是用来测试路边语是否有助于生成更流畅的句子,Dialog甚至需要一些先验知识来生成良好的响应,这是最具挑战性的任务。
对于LM,我们使用Perplexity (PPL)来测试性能。对于MT和Dialog,我们使用BLEU-4和BLEU-1评分来衡量生成质量[Papineni et al.,2002]。对话中还包括人工评估。在人工评价过程中,要求3名志愿者标注包含50组句子的对话数据,每个集合包含输入语句以及由KerBS和基线模型生成的输出响应,志愿者被要求根据回答的流利程度和与相应问题的相关性对回答进行评分(具体评分见附录)。在标记完回答后,我们计算每种方法的平均分数,然后进行t检验以拒绝KerBS不优于基线方法的假设。
5.1、实现细节
对于LM,我们使用GRU语言模型[Chung et al., 2014]作为我们的测试平台。我们尝试了不同的参数集,包括RNN层,隐藏层大小和嵌入维度。传统softmax性能最好的模型被当作baseline。对于MT和Dialog,我们实现了基于注意力的序列到序列模型(Seq2Seq,[Bahdanau et al.,2015])和Transformer (Vaswani et al.,2017)作为我们的baseline。对于Seq2Seq,((hidden size, embedding dimension)分别设置为(512,256)和(1024,512)。对于Transformer的MT和Dialog,设置与Lee等[2018]相同:(hidden size, embedding dim, dropout, layer num, head num)设置为(288,507,0.1,5,2)。
所有的模型都接受了长达80个单词的句子训练,我们设置批大小为128,波束大小为5进行解码。对于德语和英语,我们首先将句子标记为摩西标记器(Moses tokenizer, Koehn et al.,2007)的标记。然后使用BPE [Sennrich et al.,2016]将每个单词分割成子单词。我们的优化算法采用Adam [Kingma and Ba, 2014]。当验证集的损失停止减少时,我们开始降低学习速率。对于LM,我们将初始学习率设置为1.0,衰减率设置为0.8。对于MT和Dialog,初始学习率为5e-4,衰减率为0.5。
5.2、文本生成结果
我们在表1和表2中列出了使用KerBS的结果,然后进行了分析。
机器翻译:对于机器翻译,KerBS在Seq2Seq(+1.37)和Transformer(+1.29)上获得了更高的BLEU-4分数。然而,MoS的性能增益并不显著,甚至不如vanilla Transformer模型,Transformer上MT的情况如表3所示。
语言建模:正如所料,与MoS(102.72)和传统的softmax(103.12)相比,KerBS在LM上的PPL(102.17)更低。虽然它引入了更多的参数,但不会导致过拟合。相反,KerBS中复杂度的增加有助于模型更好地捕获嵌入空间的信息。
对话生成:这里还包括对话生成的结果。与源句和目标句高度一致的任务不同,对话生成可能需要一些先验知识来获得良好的响应。此外,所生成句子的多情态性是会话中的一个严重问题,我们期待更多的表达结构可以帮助。由于Transformer在对话框生成方面的性能比不上Seq2Seq,所以在这一部分我们将重点讨论Seq2Seq。KerBS在测试集上获得了BLEU-1的17.85分,这与baseline相比是非常显著的,人工评估也证实了在对话生成中使用kerb的有效性。在进行单尾假设检验后,我们发现p值小于0.05,这意味着对对话系统的改进并非微不足道的,我们在表4中列出了不同模型生成的一些响应。
5.3、消蚀研究(Ablation Study)
我们在MT任务中对三种不同的路缘进行了消蚀研究。KerBS w/o内核从KerBS中删除内核函数,这样分布方差就不再被显式控制。我们发现,与原始的kerb相比,它失去了0.49的BLEU分数,这表明显式表达隐藏状态的分布方差是重要的,KerBS 在这方面做得很好(表5)。单意义下的KerBS替代了多意义模式,也导致了性能的下降,这进一步证实了我们的假设,即上下文向量的分布是多模态的。在这种情况下,输出层也应该是多模态的,在KerBS w/o动态分配中,每个词都有固定数量的义项。虽然它的性能仍然优于单一的感知模型,但略低于完整的KerBS模型,说明了动态分配的必要性。
5.4、细节分析
在本部分中,我们验证KerBS学习合理数M和方差参数θ的例子,对此我们有以下结论:
首先,KerBS可以学习多义性。从表6中我们可以发现,具有单一含义的单词,包括一些专有名词,只具有一种意义,但是对于意义更复杂的词,比如代词,需要更多的意义项来表示(在我们的实验中,为了保持训练的稳定性,我们将每个单词的义数限制在1到4之间)。此外,我们发现有四种意义的词有几种不同的含义。例如,“change”意味着转变和小额货币。
其次,在KerBS中,θ是一个单词的语义范围指标,在图3中,我们比较了3组名词的 θ 。对于它们的每一组,我们发现更大概念的词组(如汽车、动物和地球)拥有更大的 θ 。
5.5、时间复杂度
与baseline相比,将KerBS合并到文本生成中的计算成本主要取决于更大的嵌入匹配词汇量,而这只是整个文本生成计算的一部分。根据经验,当我们设置总意义数为词汇量的3倍左右时,KerBS花费的时间是vanilla softmax的两倍。
6、结论
文本生成需要适当的单词嵌入空间。在这篇论文中,我们提出了KerBS来学习更好的文本生成嵌入。与传统的Softmax不同,KerBS包含一个多义词嵌入的贝叶斯组合和一个可学习的内核来捕获词之间的相似性,将KerBS合并到文本生成中可以提高几个文本生成任务的性能,特别是对话生成任务。未来的工作包括提出更好的内核去生成和设计一个元学习机器来动态地重新分配意义数。
附录A 证明
引理A.1:KerBS具有学习多义性的能力。如果上下文向量的实际分布是由几个不相连的部分组成的,那么KerBS组件将学习表示这些部分的数量。
证明:我们只证明了传统内积核下最简单的情形。我们假设第i个单词的实际上下文向量由两个不相连的部分组成,并且它也有两个KerBS意义,我们还假设第1部分已经由第1部分中h1的意义
其中h1和h2分别是第1部分和第2部分中的上下文向量,
因此,第一部分对
引理A.2:KerBS具有学习模型方差的能力,对于方差更大的分布,KerBS学习更大的θ。
证明:我们只会给一个启发式证明θ是一个小的正数。证明也是在单意义条件下进行的,如果在其他区间θ,证明将会更加复杂,但思想是一样的。
根据
其中,
我们可以推出
当θ很小时,我们可以大致由以下方程:
大约得到:
其中
因为对于
然后有:
由于当
附录B 实验细节
人工评分标准 - 志愿者被要求根据以下标准对所有模型产生的回答进行评分:
• 0分:回答既不流畅也与输入问题不相关。
• 1分:回答流畅或与输入问题相关,但不同时满足。
• 2分:回答流畅并且与输入问题相关。
(*本文为AI科技大本营编译文章,转载请微信联系 1092722531)
◆
精彩推荐
◆
2019 中国大数据技术大会(BDTC)再度来袭!豪华主席阵容及百位技术专家齐聚,15 场精选专题技术和行业论坛,超强干货+技术剖析+行业实践立体解读,深入解析热门技术在行业中的实践落地。6.6 折票限时特惠(立减1400元),学生票仅 599 元!