Advertisement

[NLP论文阅读] A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING

阅读量:

A STRUCTURED SELF-ATTENTION SENTENCE EMBEDDING

引言

该研究采用自注意力机制生成可解释性句向量模型。
通常我们用vector表示单词、短语或句向量,在本文中
作者提出可用二维矩阵表征句,
其各行代表句的不同组成部分。
在三个不同数据集上分别进行了三种任务训练:
分别是作者识别、情感分类以及文本推演,
均取得了良好效果

模型

作者提出的模型主要包含两个组成部分。第一部分由一个双向LSTM构成;第二部分为self-attention机制,则负责调整各隐藏层状态之间的关联程度

模型结构图如下a:

论文模型图

模型的输入为一个由n个tokens组成的序列S=\{w_1, w_2, ..., w_n\} \in R^{n*d};其中每个w_i表示该序列中第i个token所对应的词向量

其中的序列S经过双向LSTM模型处理,在每个时间步t上都会同时生成两个方向上的隐藏状态信息。

双向LSTM

接着将前向与后向的所有隐藏状态合并以生成用于后续计算的关键信息h_t;当LSTM模型具有u个隐藏单元时,则有h_t \in \mathbb{R}^{2u}。文中采用符号H \in \mathbb{R}^{n \times 2u}来表示所有单个时间步t处的状态h组成的集合:

隐藏状态集合

至此,BiLSTM的使命结束了。

上图中b部分就是用于生成self-attention的简单前馈神经网络:

其中,在W_{s1}\in R^{d_a*2u}的基础上,H^T\in R^{2un}提供了特定的空间映射关系,同时W_{s2}\in R{1*d_a}$则负责捕获特定方向的信息整合.基于此,计算所得$a$矩阵的空间维度为$R{1n}$,这一结果表明各子空间间的相互作用程度.值得注意的是,由于采用了softmax函数进行归一化处理,a矩阵中的每一维数值均反映了对应位置单词所具有的注意力权重

通过这种方式可以得到句子表示m=a·H\in R^{1*2u}。但与引言中所提到的基于二维矩阵的句子表示不同。

作者指出传统的向量表示仅能反映句子中某些特定成分,在这种情况下我们往往难以全面捕捉到所有重要的信息点为此我们希望找到一种能够更加细致地表征这些信息的方法于是乎一个很自然的想法就是将单个向量扩展为矩阵形式这样就能为每一个成分提供独立的关注机制进而实现更加精细的信息提取过程因此我们需要将单一注意力机制升级为多维度的关注机制进而实现从简单的线性映射到复杂的矩阵运算这一转变从而能够更好地捕捉到句子中的深层语义信息

在对句子的r个成分进行建模时(注:此处可进一步细化表述),仅需提供ra值(注:此处可具体化为a_1, a_2, ..., a_r),即构建一个r \times 2u的矩阵。(注:可详细说明该矩阵构建过程)为了构建这个矩阵(注:此处可强化动作描述),作者将参数\mathbf{W}_{s2}的设计空间从最初的\mathbb{R}^{1 \times 2u}扩展为现在的\mathbb{R}^{r \times 2u}. 进而使得a \in \mathbb{R}^{1 \times n}转化为矩阵形式表示为\mathbf{A} \in \mathbb{R}^{r \times n}.

最终句子表示也被转换为了向量M=A·H\in R^{r*2u} 此时我们获得了矩阵级别的句子表示

PENALIZATION TERM

作者在实验中观察到:当计算得到的注意力机制中的句子A存在某些行数值相近的情况时,最终的结果矩阵也会出现这些行数值相近的情况。这会导致矩阵M变得冗余。因此,在构建网络损失函数时,请考虑引入惩罚项以确保注意力机制中的每一行都能体现出明显的差异性

作者的设计是在loss加入这么一项:

其中, ||·||_F表示的矩阵的Frobenius范数,I是单位矩阵。

设A是mxn的矩阵,其F范数定义为:

在模型设计中, 损失函数的形式为cost等于交叉熵加上α乘以P, 其中α是调节P重要性程度的一个系数

实验结果

作者采用了三个不同来源的数据集进行研究:
Age dataset方面,
Age dataset是一个基于推文的内容,
Age dataset包含推文中关于用户的年龄信息,
该数据被划分为五个年龄段区间,
研究目标是基于推文内容判断用户的年龄段情况。
在情感分析领域,
Yelp dataset是一个重要的数据资源,
Yelp dataset包含了约270万个真实评论样本,
研究目标是针对输入评论进行情感分类,
即从1星到5星的情感强度进行评分预测。
此外,
Stanford Natural Language Inference语料库(SNLI Corpus)也是一个关键的数据资源,
SNLI语料库主要应用于逻辑推理任务,
研究目标是分析输入的两个句子之间的逻辑关系,
并推测其对应的关系类型。

实验结果如下:

Models Yelp Age
BiLSTM+Max Pooling+MLP 61.99% 77.40%
CNN+Max Pooling+MLP 62.05% 78.15%
Our Model 64.21% 80.45%

推理任务的实验结果:

Model Test Accuracy(%)
300D LSTM encoders (Bowman et al., 2016) 80.6
600D (300+300) BiLSTM encoders (Liu et al., 2016b) 83.3
300D Tree-based CNN encoders (Mou et al., 2015a) 82.1
300D SPINN-PI encoders (Bowman et al., 2016) 83.2
300D NTI-SLSTM-LSTM encoders (Munkhdalai & Yu, 2016a) 83.4
1024D GRU encoders with SkipThoughts pre-training (Vendrov et al., 2015) 81.4
300D NSE encoders (Munkhdalai & Yu, 2016b) 84.6
Our Method 84.4

探索型的实验

在这个模块重点探索了惩罚项系数和r值的设置影响,并不做过多解释直接展示结果

Penalization coefficient Yelp Age
1.0 64.21% 80.45%
0.0 61.74% 79.27%

2. r的大小(1-30)选择

这里写图片描述

除此之外

2017.10.25 上海。

全部评论 (0)

还没有任何评论哟~