2018-11-06 | Paper Notes | UNLOCK

论文笔记 - A STRUCTURED SELF-ATTENTIVE SENTENCE EMBEDDING

论文中模型框图

系统架构图如下所示:
image.png

论文模型过程介绍

该部分详细介绍论文中模型具体过程。(先说明一下输入数据,每个sample,是有个sentence, token id 序列,是经过padding后到一个固定的sequence length
Bidirectional LSTM encoding —> Attention Mechanism —> Sentence Embedding —> Add Penalization Term to Loss
1 . LSTM Encoding
设输入序列如下:

其中,$n$表示句子长度,$w_i$表示句子中第$i$个词的embedding vector, 维度为$d$,那么$S=[W]_{n\times d}$,将sentence输入到双向LSTM中得到隐藏层输出,

其中,$\vec{h_t}$ 和$\overleftarrow{h_t}$表示双向LSTM的隐藏层输出,设单向隐藏层单元数为$u$即每个LSTM隐藏层输出维度为$u$,把双向LSTM的输出进行拼接,得到sentence的隐藏层输出

2 . Attention
为了将变长的sentence编码为一个固定长度的编码,因此加入$attention$机制。

其中,$w_{s2}$是一个维度为$d_a$的向量,$d_a$为超参数,为参数矩阵,那么权重向量维度, ,其中中的每个元素$a_i$表示sentence中每个词$w_i$的权重。经过注意力之后新的表示计算公式为

维度为,
m是经过注意力机制之后新的sentence embedding,这是通常的做法,但是作者认为,这种注意力向量生成的表示向量,往往只关注句子中某个特定语义的短语或词,作者认为表示向量中应该包含多个层面语义,尤其是对于一个长句子更应该会有多个语义部分构成,因此作者对上述注意力机制进行改进,使得注意力权重有$r$部分构成,则新的注意力权重公式如下,

其中,都是参数矩阵,$d_a$依然是超参数,则计算出的注意力矩阵维度为
从计算结果可以看到,注意力权重矩阵有$r$部分构成,则经过注意力计算后,新的sentence embedding为:

维度为,
3 . Penalization Term
对sentence embedding 分析,作者认为如果注意力权重总是提供相似的个权重的话,编码表示会存在冗余的情况,因此作者设计了一种惩罚机制,以使的句子表示具有多样性。
对于任意两个权重向量,计算他们间的多样性的最好方式是采用Kullback Leibler divergence,但作者发现LK散度在他们的情况下并不稳定,猜测原因是他们采用的是最大化一组KL divergence,而通常做法是最小化一个KL 散度;同时他们也发现,权重矩阵$A$在不同的softmax 输出单元上很小有的甚至为0,这么多的0也导致了训练不稳定。
由于KL存在这些不足,作者又采用了另外一种方式, Frobenius norm of a matrix,计算公式如下,

其中$\parallel \bullet \parallel_F$ 表示的是矩阵的Frobenius norm,它在加入到模型loss时会有个权重系数。
因为注意力权重向量是经过softmax运算得到,所以矩阵$A$中两个向量元素$a_i$和$a_j$可以看做是两个概率分布,则对于时,如下,

其中,$a_i$和$a_j$ 是向量$\text{a_i}$和$\text{a_j}$中的元素,如果两个分布间没有重叠部分,则,反之,该值为一个大于0的值,极端情况下,如果两个分布是相同的,都集中在一个词上,则该值为1,从而使得向量尽量只关注与一小部分词,以减少表示的冗余性。

个人点评

对于NLP中的任务来说,目前主要还是集中在寻找一个更加贴切、能够包含丰富语义的表示方法,该论文认为每个句子的文本表示不能仅仅用一个向量表示,向量表示只关注了句子中部分词或短语,句子的语义表示更应该是多个层面、多个部分的,从实际的角度来看此方法存在一定合理性,能够对于NLP任务如情感分类、文本分类带来一定提升。

评论加载中