每周论文6

1️⃣[A STRUCTURED SELF ATTENTIVE SENTENCE EMBEDDING]

介绍了一种生成sentence embedding的方法。与其他sentence embedding不同的地方在于,生成的是一个矩阵而不是一个向量。通过矩阵的形式,能够关注不同部分的语义表示,类似于Transformer的multi-head。

Contribution:

  • 将sentence embedding扩展为矩阵形式,能够获得更多的信息。
  • 引入正则化,使得sentence matrix具有更丰富的多样性。

方法

双向LSTM+self-attention。

双向的LSTM获得上下文的表示:

因此可以获得attention权重向量:

其中$H:n\times2u,W_{s1}:d_a\times2u ,w_{s2}:d_a$ ,$d_a$是超参。

现将向量$w_{s2}$扩展为矩阵,亦即有Multi-hop attention:

$W_{s2}$维度为$r\times d_a$,$r$代表了head的个数。

因此最终的sentence embedding矩阵为:

正则化

为了让A尽可能有多样性(因为如果都是相似的,那么则会有冗余性),引入如下的正则化:

原因:
对于不同的head $a^i$与$a^j$,$A A^T$有:

如果$a^i$与$a^j$很相似那么就会接近于1,如果非常不相似(no overlay)则会接近于0。
因此整个式子就是:希望对角线部分接近于0(因为减了单位阵),这就相当于尽可能focus小部分的词;同时其他部分尽可能接近于0,也即不同的head之间没有overlap。

如何使用

文章提到,在做分类的时候可以直接将矩阵M展开,过全连接层即可。


2️⃣[Attention-over-Attention Neural Networks for Reading Comprehension]

在完形填空任务(Cloze-style Reading Comprehension)上提出一种新的attention,即nested-attention。

任务描述

三元组 $ D,Q,A $,document,question,answer。其中answer一般是document的一个词。

方法

本文提出的attention机制,是通过一个新的attention去指示另一个attention的重要程度。

首先通过一层共享的embedding层,将document和query都encode成word embedding,然后通过双向的GRU,将隐层拼接起来成为新的表示。

接着获得pair-wise matching matrix:

其中$h$代表上述提到的拼接起来的表示,$M(i,j)$代表了document的词$i$和question的词$j$之间的匹配程度。

接着对column做softmax:

其代表的意义即query-to-document attention,亦即对于一个query内的词,document的每个词与其匹配的权重

接下来,对row进行softmax操作:

代表的是给定一个document的词,query的哪个词更为重要

接下来我们将β平均起来,获得一个向量:

这个向量仍有attention的性质,即所有元素加和为1。代表的是从平均来看,query词的重要性

最后,我们对α和β做点积以获得attended document-level attention:

其中$s$的维度是$D\times 1$。s代表的意义即“a weighted sum of each individual document-level attention α(t) when looking at query word at time t”,也就是说,对α进行加权,代表query word的平均重要程度。

最终在做完型填空的预测时:

个人觉得这种attention-over-attention的想法还是挺有创新的。