论文:A Structured Self-attentive Sentence Embedding翻译笔记(结构化的自注意力句子嵌入)


在这里插入图片描述

论文标题:结构化的自注意力句子嵌入

论文链接:https://arxiv.org/abs/1703.03130
arXiv:1703.03130v1 [cs.CL] 9 Mar 2017

摘要

本文提出了一种通过引入自注意力来提取可解释性句子嵌入的新模型。我们没有使用向量,而是使用一个2-D矩阵来表示嵌入,其中矩阵的每一行关注句子的不同部分。我们还提出了一种自注意力机制和一种特殊的模型正则化项。作为副作用,嵌入式提供了一种简单的方法来可视化句子的特定部分如何编码到嵌入式中。我们在三个不同的任务上评估我们的模型:作者画像、情感分类和文本蕴含。结果表明,与其它句子嵌入方法相比,我们的模型在所有三个任务中都取得了显著的性能提升。

1 介绍

在学习具有语义意义的单个词(也称为词嵌入)的分布式表示方面已经取得了很大进展(Bengio 等,2001;Mikolov 等,2013)。另一方面,在获得令人满意的短语和句子表示方面还有很多工作要做。这些方法通常分为两类。第一种是通用句子嵌入,通常通过无监督学习进行训练(Hill等人,2016)。这包括SkipThought向量(Kiros等人,2015)、ParagraphVector(Le & Mikolov,2014)、递归自编码器(Socher等人,2011;2013)、序列降噪自编码器(SDAE)和FastSent(Hill等人,2016)等。

另一类是专门为某项任务训练的模型。它们通常与下游应用程序结合,并通过监督学习进行训练。人们通常发现,专门训练的句子嵌入比通用的要好,尽管通用的可以在半监督环境中使用,利用大量的未标记语料库。已经提出了几种基于这种思路的模型,通过使用循环网络(Hochreiter & Schmidhuber,1997;Chung 等,2014)、递归网络(Socher 等,2013)和卷积网络(Kalchbrenner 等,2014;dos Santos & Gatti,2014;Kim,2014)作为创建句子表示的中间步骤,以解决包括分类和排名在内的各种任务(Yin & Schütze,2015;Palangi 等,2016;Tan 等,2016;Feng 等,2015)。在以前的方法中,一个常见的方法是通过使用RNN的最终隐藏状态或者从RNN的隐藏状态或卷积n-gram进行最大(或平均)池化来创建简单的向量表示。此外,还有一些工作是利用语言学结构,如解析树和依赖树来改进句子表示(马等,2015;穆等,2015b;泰等,2015)。

对于某些任务,人们建议在CNN或LSTM模型之上使用注意力机制,以引入额外的信息来源来指导提取句子嵌入(dos Santos等人,2016)。然而,对于其他一些任务,如情感分类,这并不直接适用,因为没有额外的信息可供使用:模型仅接收一个单独的句子作为输入。在这种情况下,最常见的方法是在所有时间步长上添加最大池化或平均步骤(Lee & Dernoncourt, 2016),或者只选择最后一个时间步长的隐藏表示作为编码嵌入(Margarit & Subramaniam, 2016)。

上述许多方法中的常见做法是通过使用RNN的最终隐藏状态或从RNN隐藏状态或卷积n-gram的max(或平均)池化来创建简单的向量表示。我们假设在循环模型的所有时间步骤中携带语义相对困难且不必要。我们为这些序列模型提出了一种自注意力机制,以替代最大池化或平均步骤。与以前的方法不同,所提出的自注意力机制允许将句子的不同方面提取到多个向量表示中。这在我们的句子嵌入模型中的LSTM之上执行。这使得在没有额外输入的情况下可以使用注意力。此外,由于它可以直接访问来自前一个时间步长的隐藏表示,它减轻了LSTM的一些长期记忆负担。作为我们提出的自注意力句子嵌入的一个副作用,解释提取出的嵌入变得非常容易和明确。

第2部分详细介绍了我们提出的自注意力句子嵌入模型,以及在第2.2节中描述的针对该模型的一个正则化项。在第2.3节中,我们还提供了一种用于可视化这种句子嵌入的方法。然后,在第4节中,我们对我们的模型在作者画像、情感分类和文本蕴含任务中进行了评估。

2 方法

2.1 模型

所提出的句子嵌入模型由两部分组成。第一部分是一个双向长短期记忆(LSTM),第二部分是自注意力机制。自注意力机制为LSTM隐藏状态提供一组加权向量。这些加权向量与LSTM隐藏状态相乘,得到的加权LSTM隐藏状态被视为句子的嵌入。它可以与多层感知机等模型结合使用,应用于下游任务。图1展示了当提出的句子嵌入模型应用于情感分析时的一个例子,它与全连接层和软最大层相结合。除了使用全连接层外,我们还提出了一种利用二维矩阵句子嵌入结构来剪枝权重连接的方法,详细内容请参阅附录A。在本节中,我们将使用图1来描述我们的模型。
在这里插入图片描述

图1:一个示例模型结构,显示了用于情感分析的句子嵌入模型与全连接和softmax层的结合(a)。句子嵌入M是通过对双向LSTM(h1,…,hn)的隐藏状态进行加权求和来计算的,其中加权系数(Ai1,…,Ain)的计算方式如(b)所示。蓝色形状表示隐藏表示,红色形状表示权重、注释或输入/输出。

假设我们有一个由n个词组成的句子,它以词向量序列的形式表示。
在这里插入图片描述
在这里,wi是一个向量,代表句子中第i个词的d维词嵌入。因此,S是一个用2-D矩阵表示的序列,它将所有的词嵌入连接在一起。S应该具有n-by-d的形状。
现在,序列S中的每个条目都是独立的。为了在单个句子中获得相邻词语之间的依赖关系,我们使用双向LSTM来处理句子:
在这里插入图片描述
我们将每个 → ht 与 ← ht连接起来,得到一个隐藏状态 ht。设每个单向 LSTM 的隐藏单元数为 u。为了简单起见,我们把所有的 n 个 hts 记作 H,它的尺寸是 n-by-2u。

在这里插入图片描述
我们的目标是将变长句子编码为固定大小的嵌入向量。我们通过选择H中n个LSTM隐藏向量的线性组合来实现这一目标。计算线性组合需要使用自注意力机制。注意力机制以整个LSTM隐藏状态H作为输入,并输出一个权重向量a。

在这里插入图片描述
在这里,Ws1是一个具有da-by-2u形状的权重矩阵,而ws2是一个具有大小为da的参数向量,其中da是一个我们可以任意设置的超参数。由于H的尺寸为n-by-2u,因此注释向量a将具有大小n。softmax(·)确保所有计算出的权重加起来等于1。然后我们根据a提供的权重对LSTM隐藏状态H进行求和,以获得输入句子的向量表示m。

这种向量表示通常关注句子中的一个特定部分,如一组特殊的相关单词或短语。因此,它旨在反映句子语义的一个方面或组成部分。 然而,在一个句子中可以有多个组成部分共同构成整个句子的语义,特别是对于长句子。(例如,由一个“和”连接的两个子句。)因此,为了表示整个句子的语义,我们需要多个m,它们关注句子的不同部分。因此我们需要执行多次注意力跳转。假设我们想从句子中提取r个不同的部分,为此我们将ws2扩展成一个r行da列的矩阵,记为Ws2,同时结果注释向量a变为注释矩阵A。正式地,

在这里插入图片描述
在这里,softmax函数是在其输入的第二维度上执行的。我们可以将公式6视为一个没有偏置的2层MLP,其隐藏单元数量为da,参数为{Ws2, Ws1}。

嵌入向量m变成一个r-by-2u的嵌入矩阵M。我们通过将注释矩阵A和LSTM隐藏状态H相乘来计算r个加权和,得到的结果矩阵就是句子嵌入。

在这里插入图片描述

2.2 惩罚项

如果注意力机制总是为所有r跳提供相似的加权和权重,那么嵌入矩阵M可能会出现冗余问题。因此,我们需要一个惩罚项来鼓励不同注意力跳数之间的加权和向量的多样性。

评估多样性最好的方法肯定是通过求两个加权向量之间的Kullback-Leibler散度。然而,在我们的案例中,我们发现它并不是很稳定。我们猜想这是因为我们在最大化一组KL散度(而不是像通常情况那样只最小化一个),我们正在优化注释矩阵A,使其在不同的softmax输出单元中具有大量足够小甚至为零的值,而这些大量的零使得训练不稳定。KL(Kullback-Leibler)散度没有提供我们想要的另一个特性,即我们希望每行关注语义的一个单一方面,所以我们希望注释softmax输出的概率质量更加集中。但是使用KL惩罚,我们无法鼓励这一点。

在此,我们引入了一个新的惩罚项,它克服了上述缺点。与KL散度惩罚相比,这个项的计算量只有一部分。我们使用A与其转置的点积,减去一个单位矩阵,作为冗余度的衡量标准。
在这里插入图片描述

这里 ∥•∥F 代表矩阵的Frobenius范数。类似于添加L2正则化项,这个惩罚项P将乘以一个系数,并与原始损失一起最小化,这取决于下游应用。

让我们考虑A中的两个不同的求和向量ai和aj。由于softmax的作用,A中任何求和向量的所有条目都应该加起来等于1。因此,它们可以被视为离散概率分布中的概率质量。对于AAT矩阵中的任何非对角线元素aij(i≠j),它对应于两个分布的逐元素乘积的求和:

在这里插入图片描述
其中aki和akj分别是ai和aj向量中的第k个元素。在最极端的情况下,如果两个概率分布ai和aj之间没有重叠,那么对应的aij将为0。否则,它将具有一个正值。在另一个极端端,如果两个分布在单个词上完全相同且都集中在一个词上,那么它将达到最大值1。我们从AAT中减去一个单位矩阵,使得AAT的对角线元素接近于1,这鼓励每个求和向量ai尽可能关注较少的词汇,迫使每个向量专注于单一方面,并将所有其他元素强制为0,这惩罚了不同求和向量之间的冗余。

2.3 可视化

句子嵌入的解释相当直观,因为存在注释矩阵A。对于句子嵌入矩阵M中的每一行,我们有其相应的注释向量ai。这个向量中的每个元素都对应于在该位置上一个标记的LSTM隐藏状态对贡献有多大。因此,我们可以为嵌入矩阵M的每一行绘制一个热力图。这种可视化方式可以为我们提供关于嵌入的每个部分编码了什么的提示,增加了一层解释性。(参见图3a和3b)。

第二种可视化方法可以通过对所有注释向量进行求和,然后将得到的权重向量归一化为总和为1。由于它涵盖了句子的所有语义方面,因此可以得出嵌入主要关注什么的整体视图。我们可以弄清楚嵌入考虑哪些词很多,以及哪些词被嵌入忽略。请参阅图3c和3d。

3 相关工作

在第1节中提到了各种有监督和无监督的句子嵌入模型。与这些模型不同,我们提出的方法使用了一种新的自注意力机制,使其能够将句子的不同方面提取到多个向量表示中。矩阵结构以及惩罚项使我们的模型具有更大的能力从输入句子中解纠缠潜在信息。我们也没有使用语言学结构来指导我们的句子表示模型。此外,通过我们的方法,我们可以轻松创建可视化图像,以帮助解释学习到的表示形式。

一些最近的工作还提出了使用内部/自我句子注意力的监督方法。Ling等人(2015)提出了一种基于注意力的词嵌入模型,该模型在上下文窗口中的每个可能位置为每个单词计算一个注意力权重。然而,这种方法不能扩展到句子级别的嵌入,因为无法穷举所有可能的句子。刘等人(2016a)提出了一种句子级别的注意力,其动机相似但实现方式不同。他们利用LSTM状态的平均池化作为注意力源,并使用该注意力来重新加权句子的池化向量表示。

除了前面提到的两种变体外,我们想指出的是,Li等人(2016)在他们的事实型问答模型中提出了一种相同自注意力机制用于问题编码,这与我们的工作是同时进行的。不同之处在于,他们的编码仍然以向量的形式呈现,但我们的注意力产生了一个矩阵表示,具有特别设计的惩罚项。我们将该模型应用于情感分析和蕴含关系,而他们的模型用于事实型问答。

LSTMN模型(Cheng等人,2016)还提出了一种非常成功的句子内注意力机制,后来被Parikh等人(2016)采用。我们认为我们的注意力和他们的具有不同的粒度。LSTMN在递归迭代过程中为其每个隐藏状态生成一个注意力向量,这有点像“在线更新”的注意力。它更细粒度,旨在发现某个词汇与其前面词汇之间的语义相关性。相反地,我们的注意力机制只进行一次,直接关注那些有助于区分目标的语义。它不太关注词语之间的关系,而更注重每个词语对整个句子语义的贡献。在计算方面,我们的方法也更好地适应了句子长度的增长,因为不需要每次LSTMN计算下一步时,都让LSTM在所有先前的词汇上计算一个注释向量。

4 实验结果部分

我们首先通过将其应用于3个不同的数据集来评估我们的句子嵌入模型:年龄数据集、Yelp数据集和斯坦福自然语言推断(SNLI)语料库。这3个数据集分别对应于作者画像、情感分析和文本蕴含等3个任务。然后,我们还进行了一系列探索性实验,以验证我们句子嵌入模型在各个方面所具有的属性。

4.1 作者画像

作者画像数据集包括英语、西班牙语和荷兰语的Twitter推文。对于其中一些推文,它还提供了用户发布推文时的年龄和性别。年龄范围分为5个类别:18-24岁,25-34岁,35-49岁,50-64岁,65岁以上。我们使用英文推文作为输入,并利用这些推文来预测用户年龄范围。由于我们正在预测用户年龄,所以在我们的论文中将其称为年龄数据集。我们随机选取了68485条推文作为训练集,4000条用于开发集,以及4000条用于测试集。性能选择为分类准确度。

我们比较了我们的模型与两个基线模型:双向LSTM和CNN。对于这两个基线模型。 双向LSTM模型使用了一个双向LSTM,每个方向上有300个维度,然后在所有LSTM隐藏状态上使用最大池化来获得句子嵌入向量。接下来,使用一个带有3000个隐藏状态的2层ReLU输出MLP来输出分类结果。CNN模型使用相同的方案,但将biLSTM替换为1层1维卷积网络。在训练过程中,我们在MLP上使用0.5的dropout,在L2正则化上使用0.0001。我们使用随机梯度下降作为优化器,学习率为0.06,批量大小为16。对于biLSTM,我们还将梯度范数限制在-0.5和0.5之间。我们在广泛范围内搜索了超参数,并发现上述超参数集可以实现最高的准确率。

对于我们的模型,我们使用与在双向长短期记忆网络(biLSTM)中相同的设置。我们还使用了一个具有2000个隐藏单元的2层ReLU输出多层感知器(MLP)。此外,我们的自注意力MLP有一个带有350个单元的隐藏层(如第2节所述),我们选择矩阵嵌入有30行(即r),并且惩罚项的系数为1。

我们训练所有三个模型直到收敛,并根据最佳开发集性能选择相应的测试集性能。我们的结果显示,该模型在情感分析中显著优于biLSTM和CNN基线。

4.2 情感分析

我们选择Yelp数据集2进行情感分析任务。它包含270万条Yelp评论,我们将评论作为输入,并预测撰写该评论的用户为相应商业店铺分配的星级。我们随机选取50万个评论-星级对作为训练集,以及2000个用于开发集,2000个用于测试集。我们使用Stanford分词器对评论文本进行分词。我们使用100维的word2vec作为单词嵌入的初始化,并在所有实验中调整嵌入过程。目标星级是范围在[1, 5]内的整数,包括两端。我们将此任务视为分类任务,即将评论文本分类为五个类别之一。我们使用分类准确度作为衡量标准。

对于两个基线模型,我们使用与作者概况数据集相同的设置,只是我们将批量大小改为32。对于我们的模型,我们也使用相同的设置,但是我们将输出MLP中的隐藏单元数改为3000。我们还发现与两个基线相比,性能有显著提高。(表1)
在这里插入图片描述

表1:在Yelp和年龄数据集上不同模型的性能比较。

作为对学习到的句子嵌入的解释,我们使用第2.3节中描述的第二种可视化方法,为数据集中的部分评论绘制热力图。当我们模型对预测标签有高置信度(>0.8)时,我们从测试集中随机选择5个负面(1星)和正面(5星)评价的例子。如图2所示,我们发现模型主要学会了捕捉评论中的一些关键因素,这些因素强烈地表明了句子背后的情感。对于大多数简短的评论,该模型能够捕获所有导致极端评分的关键因素,但是对于较长的评论,模型仍然无法捕获所有相关因素。例如,在图2b中的第3个评论中,似乎很多关注点都放在了一个单一因素上,即“非常有趣”,而模型对其他关键点如“强烈推荐”、“美味的食物”等的关注度较低。
在这里插入图片描述

图2:Yelp评论的热力图,显示两个极端评分。

4.3 文本蕴含

我们使用最大的文本蕴含数据集——SNLI语料库(Bowman等,2015)来进行这个任务的评估。SNLI是一个包含570,000个人类编写的英语句子对的手动标注平衡分类数据集,标签包括蕴含、矛盾和中性。该模型将被给予一对句子,分别称为假设和前提,然后要求判断这两个句子的语义是否相互矛盾。这也是一个分类任务,因此我们通过准确度来衡量其性能。

我们独立处理假设和前提,然后通过使用Memisevic(2013)提出的产品交互(详细信息见附录B),提取两个句子嵌入之间的关系,并使用具有4000个隐藏单元的2层ReLU输出MLP将隐藏表示映射到分类结果。biLSTM和注意力MLP的参数在假设和前提之间共享。 双向LSTM在每个方向上具有300个维度,注意力MLP具有150个隐藏单元,假设和前提的句子嵌入都具有30行(r)。惩罚项系数设置为0.3。我们使用300维的GloVe(Pennington等人,2014)词嵌入来初始化词嵌入。我们使用AdaGrad作为优化器,学习率为0.01。我们没有使用任何额外的正则化方法,如dropout或L2归一化。训练在4个周期后收敛,这是相对快速的。

此任务与前两个任务有所不同,因为它输入的是两个句子。在句子间添加注意力的方法有很多,这些注意力带来了很多好处。为了使比较集中和公平,我们只比较那些基于句子编码的模型。也就是说,在将假设和前提编码为分布式编码之前,它们之间没有信息交流。
在这里插入图片描述

表2:在SNLI数据集中的测试集性能与其他基于句子编码方法的比较

我们发现,与已发表的其他方法相比,我们的方法在它们中表现出显著的优势(≥1%),除了300D NSE编码器,它是这一领域的最新技术。然而,与其他方法之间的差异相比,0.2%的差距相对较小。

4.4 探索性实验

在本小节中,我们将进行一系列探索性实验,以研究我们模型中每个组件的相对影响。

4.4.1 惩罚项的影响

由于引入惩罚项P的主要目的是阻止嵌入中的冗余,我们首先直观地展示模型在给出句子时每行的热力图。我们在第4.1节中详细介绍了两个尺寸相同的相同模型,分别在Age数据集上进行训练,其中一个使用了这个惩罚项(其中惩罚系数设置为1.0),另一个没有使用惩罚。我们从测试集中随机选择一条推文,并通过绘制每个关注点的热力图来比较两个模型。由于每个模型有30个关注点,这使得绘制所有关注点的热力图相当冗余,所以我们只绘制其中的6个。这6个关注点已经反映了所有30个关注点的情况。

从图中我们可以看出,没有使用惩罚项训练的模型在不同注意力跳转之间存在很多冗余(图3a),导致大量关注在“it”这个词上(图3c),而这与作者的年龄不太相关。然而,在右侧列中,模型在不同跳转间显示更多变化,并且整体嵌入重点转向“邮件回复垃圾邮件”(图3d)。
在这里插入图片描述

图3:在年龄数据集上训练的两个模型的热力图。左列是在没有惩罚项的情况下训练的,右列是在1.0惩罚下训练的。(a)和(b)显示了由30行矩阵嵌入中的6行所采用的详细注意力,而(c)和(d)显示了通过将所有30个注意力权重向量相加得到的整体注意力。

对于Yelp数据集,我们也观察到了类似的现象。为了让实验更具探索性,我们选择为更多样本绘制总体注意力热力图,而不是再次为单个样本绘制详细的热力图。图4显示了三个不同评论的句子嵌入的整体关注点。我们观察到,随着惩罚项的加入,模型更倾向于关注评论的重要部分。我们认为这是因为我们在鼓励它关注矩阵AAT的对角线(方程8)中的重要性。
在这里插入图片描述

图4:在3个不同的Yelp评论上,句子嵌入的注意力。左边是没有惩罚训练的,右边是使用1.0惩罚训练的。

为了验证这些差异是否会导致性能差异,我们在Yelp和Age数据集上评估了四个模型,包括有和没有惩罚项的版本。结果如表3所示。与预期一致的是,使用惩罚项训练的模型在性能上超过了没有使用惩罚项的模型。
在这里插入图片描述

表格3:关于惩罚项的性能比较

在SNLI数据集中,尽管我们观察到引入惩罚项仍然有助于鼓励矩阵句子嵌入中不同行的多样性,并迫使网络更加关注句子,但这个惩罚项在SNLI数据集上的定量效果并不明显。两种模型在测试集上的准确度相似。

4.4.2 多个向量的影响

在句子嵌入中拥有多行预计可以提供更丰富的关于编码内容的信息。评估r可以带来的显著改进是有意义的。以我们用于Age和SNLI数据集的模型为例,我们将r从1变化到30,对每个任务训练得到的10个模型独立地进行(图5)。请注意,当r=1时,句子嵌入减少为一个普通的向量形式。
在这里插入图片描述

图5:矩阵句子嵌入中行数(r)的影响。纵轴表示测试集准确率,横轴表示训练周期。图例中的数字代表r的相应值。(a)是在Age数据集上进行的,(b)是在SNLI数据集上进行的。

从这个图表中我们可以发现,在没有多行的情况下,该模型的表现与其竞争对手使用其他形式的向量句子嵌入不相上下。但是只使用一个向量进行句子嵌入和使用多个向量之间存在显著差异。此外,这些模型对于r的值也相当不变,因为在两个图中,10到30之间的广泛值都生成了可比的曲线。

5 结论与讨论

在这篇论文中,我们介绍了一种固定大小的矩阵句子嵌入,并带有自注意力机制。由于这种注意力机制,我们的模型可以对句子嵌入进行深入解释。在3个不同的任务上的实验结果表明,该模型显著优于其他句子嵌入模型。

引入注意力机制后,最终的句子嵌入可以直接访问先前的LSTM隐藏状态,通过注意力求和。因此,LSTM不需要将每一条信息都传递到最后一个隐藏状态。相反,每个LSTM隐藏状态只被期望提供围绕每个词的短期上下文信息,而更高层次的语义(需要更长的依赖关系)可以直接由注意力机制获取。此设置减轻了LSTM承担长期依赖性的负担。我们的实验也支持这一点,因为我们观察到当内容更长时,我们的模型具有更大的优势。此外,注意机制中元素求和的概念非常原始,它可以是比这更复杂的东西,这将允许对LSTM的隐藏状态进行更多操作。

该模型能够将长度可变的序列编码为固定大小的表示形式,而不会受到长期依赖问题的影响。这为模型带来了很大的可扩展性:无需任何修改,即可直接应用于更长的内容,如段落、文章等。尽管这超出了本文的重点,但仍作为一个有趣的未来研究方向。

作为我们提出的模型的缺点,目前的训练方法在很大程度上依赖于下游应用,因此我们无法以无监督的方式对其进行训练。在这个模型中实现无监督学习的主要障碍是,在解码过程中,我们事先不知道如何划分和重新组织嵌入式矩阵的不同行。通过使用神经网络探索所有可能的划分,很容易导致过拟合。尽管我们仍然可以通过在句子嵌入上使用顺序解码器来进行提出的模型的无监督学习,但更值得寻找其他一些结构作为解码器。

附录

A:用于结构化矩阵句子嵌入的修剪MLP(多层感知器)

作为使用多个向量表示句子的副作用,矩阵句子嵌入通常比向量句子嵌入大几倍。这导致在连接每个隐藏单元和矩阵句子嵌入中的每个单元的后续全连接层中需要更多参数。实际上,在图1所示的例子中,这个全连接层占据了大约90%的参数。见表4。在本附录中,我们将介绍一种权重剪枝方法,它通过利用矩阵嵌入的二维结构,能够极大地减少全连接隐藏层中的参数数量。
在这里插入图片描述

表格4:剪枝前后模型大小比较

在主论文中继承使用的符号表示法,令矩阵嵌入M的形状为r乘以u,令全连接隐藏层有b个单元。普通的全连接隐藏层要求每个隐藏单元与矩阵嵌入中的每个单元相连,如图1所示。这总共需要r×u×b个参数。

然而,在矩阵嵌入中存在二维结构,我们应该利用这一点。矩阵中的每一行(如图1中的mi)是通过加权求和LSTM隐藏状态计算得出的,这意味着它们之间存在一些相似性。

为了在全连接层反映这些相似性,我们将隐藏状态分为r个等大小的组,每组有p个单元。第i组只与矩阵表示中的第i行完全相连。所有连接第i组隐藏单元到其他行的矩阵的连接都被剪枝掉。这样,矩阵嵌入不同行之间的相似性就反映为隐藏层中连接类型的对称性。因此,隐藏层也可以被解释为具有一个二维结构,其中组的数量(r)和大小(p)是它的两个维度(图6中的M v)。当隐藏单元的总数量相同时(即r × p = b),该过程会剪枝掉(r - 1) / r的权重值,当r较大时,这是一个相当大的部分。

在这里插入图片描述

图6:隐藏层与修剪后的权重连接。M是矩阵句子嵌入,Mv和Mh是由修剪后的权重计算的结构化隐藏表示。

在另一个维度上,还存在另一种相似性形式。对于M中的每个向量表示mij位置的元素mij是LSTM隐藏单元在不同时间步长的加权和。而对于所有向量表示中的某个j位置元素,它们来自同一个LSTM隐藏单元的累加。我们还可以通过使用上述相同的修剪方法,将这种相似性反映到权重连接的对称性中。因此,我们将得到另一个大小为u-by-q的2-D结构化隐藏状态,如图6中的Mh所示。

表格4以我们用于yelp数据集的模型为例,并比较了模型各部分在剪枝前后的参数数量。我们可以看到上述剪枝方法极大地减少了模型大小。请注意,此结构中的p和q可以作为超参数自由调整。此外,我们可以在Mv和Mh的基础上反复进行相应的剪枝过程,并最终获得一个结构化隐藏层的堆栈,就像堆积全连接层一样。

接下来的softmax层将完全连接到Mv和Mh,即softmax层中的每个单元都与Mv和Mh中的所有单元相连。这并不是问题,因为softmax的速度主要取决于softmax单元的数量,而这个数量并没有改变。此外,对于情感分析和语义蕴含等应用,softmax层非常小,只包含几个单元。

实验结果在三个数据集上表明,这种剪枝机制稍微降低了性能,但仍使所有三个模型的性能与论文中比较的其他模型相当或更好。

B SNLI数据集的模型详细结构

在第4.3节中,我们在SNLI数据集上测试了我们的矩阵句子嵌入模型在文本蕴含任务中的表现。与前两个任务不同,文本蕴含任务的输入是一对句子。我们提出使用一组乘法交互来结合为每个句子提取的两个矩阵嵌入。乘法交互的形式受到了Factored Gated Autoencoder(Memisevic,2013)的启发。

我们的SNLI模型的整体结构如图7所示。对于假设和前提,我们分别使用相同的LSTM和注意力机制提取它们的嵌入向量(图中的Mh和Mp)。这部分模型的参数是共享的(图中用虚线橙色矩形表示)。

在这里插入图片描述

图7:用于文本蕴含任务的模型结构。

比较这两个矩阵嵌入对应于图中的绿色虚线矩形部分,该部分计算一个单个矩阵嵌入(Fr)作为两个句子之间语义关系的因子。为了表示Mh和Mp之间的关系,可以通过三向乘法交互将Fr连接到Mh和Mp。在三向乘性交互中,Fr、Mh和Mp中的任何一个值都是其他两个的乘积的函数。这种连接方式最初是为了提取图像之间的关系(Memisevic,2013)。由于这里我们只是从Mh和Mp计算关系因子(Fr),它对应于Memisevic(2013)中Factored Gated Autoencoder的编码器部分。我们在图7中称其为门控编码器。

首先,我们把矩阵嵌入的每一行乘以一个不同的权重矩阵。重复这个过程,对应于一个2D矩阵和一个3D权重张量之间的批量点积。
继承自(Memisevic, 2013)中的名字,我们将得到的矩阵称为因子。对假设嵌入和前提嵌入进行批量点积后,分别得到Fh和Fp
在这里插入图片描述
在这里,Wfh和Wfp是假设嵌入和前提嵌入的两个权重张量。关系因子(Fr)只是Fh和Fp(图7中间的三角形)的逐元素乘积:

在这里插入图片描述
在这段文字中,⊙表示元素-wise(逐元素)乘积。经过Fr层后,我们使用一个带有softmax输出的多层感知机(MLP)来将关系分类到不同的类别中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值