刁宇峰 神经网络中的 Attention 机制
新闻来源:IR实验室       发布时间:2017/10/31 22:07:19

Attention机制

  Attention机制提出于2014[1],主要用来解决机器翻译问题。Attention机制在2017年的顶会论文广泛出现,目前已被引用2000余次,经典公式和模型如下所示。

                 

  这里,将Attention模型按照结构分为单层Attention、多层Attention和基于知识库的Attention三种,下面分别各自介绍一篇相关的论文。

一、单层Attention模型(Single Layer Attention

  Enhancing Recurrent Neural Networks with Positional Attention for Question Answering[2]这篇论文发表于SIGIR2017,主要解决问答系统这个领域。这篇论文有一个假设:问题中的一个词如果出现在回答句子中,则在回答句子中该单词周围的词语影响度更大,且该影响度随距离变化呈现高斯分布。具体框图如下:

  左边的图(a)是传统方法,对问题中的词进行词嵌入建模,然后经过LSTM神经网络得到的隐层单元,经过注意力机制得到不同的权重,最终得到问题的表示向量。本文的改进:认为问题中的词出现在答案中,则影响度大。这里则考虑了位置信息的影响。如右图所示。

1Gaussian kernel

 

  这里,使用高斯分布对位置影响传播进行模拟,其中u表示问题词与当前词之间的距离,σ表示用来限制传播范围的参数。

2、Position-aware influence

  这里,通过高斯分布拟合所有词向量输入词的影响概率。

定义K为影响矩阵,K中的每一个元素符合正态分布,如下图所示,u表示问题词与当前词之间的距离,i表示维度,N为正态分布,σ’表示标准偏差。

cj表示距离计算向量,具体公式如下,其中Q表示包含多个词的问题,q表示Q中的一个词,Pos(q):词q在答案句中出现的位置集合,j-u属于集合pos则为1,反之为0j+u属于集合pos则为1,反之为0

则影响向量为pj,用以计算在位置j的词的影响向量。

3、Positional Attention

  基于位置的attention机制主要关注问题在答案中的位置,具体公式如下:

  

Wh, Wp是矩阵的参数,v是全局向量,b是偏置量,都是超参数。最后的答案表示为ra

4、数据集与实验结果

  本实验室采用两个数据集:TREC-QAWIKI-QA,评价指标使用MAPmean average precision)和MRRmean reciprocal rank),词向量采用Glove100维词向量。数据分布和实验结果如下所示:

 

5、举例分析

  这里举了个例子进行分析,谁是美国铁路总局的总裁或者首席执行官?深红色的是attention模型找到的权重更大的关键词,传统的RNN-ATT模型找的的答案中没有人名,而用本文提出的RNN-POA更能关注到正确的回答。

二、多层Attention模型(Multilayer Attention

  Leveraging Contextual Sentence Relations for Extractive Summarization Using a Neural Attention Model[3]这篇论文发表于SIGIR2017,主要解决抽取摘要的问题。

摘要抽取中采用的输入是文档的所有句子,输出是0/1,用来指定句子t是否作为摘要。传统的摘要抽取方法:对句子t,计算[1:t-1]以及[t+1:]t的相似度,判断t是否为摘要的依据。

摘要提取主要有2个主要的步骤:句子打分和句子选取,本文主要采用深度学习方法来优化句子打分这个步骤。这里,可以用的表面特征有:句子长度,句子位置,TF特征和IDF特征。

句子打分:传统采用ROUGE自动摘要评价函数,

这里,本文采用双层的attention机制(word-levelsentence-level)来获取句子的打分函数。我们把句子t的向量表示为St

估计St之前的前文的能力:,这里主要衡量St的向量和前文向量的cosine相似度。

估计St之后的后文的能力:这里主要衡量St的向量和后文向量的cosine相似度。

具体框架图如下所示。

打分函数:f(St|θ)表示为一个多层神经网络,由前文能力、后文能力、本句向量和表面特征构成。

L是损失函数,这里采用标准均方差。其中C是文档集合,D是文档集合中的某一篇文档,具体公式如下:

这个模型中,主要分为句子级建模(sentence modeling)和上下文建模(context modeling)两部分。

1、Sentence modeling

  该模型主要采用CNN模型。框图如下:

  输入采用Bi-grams,思想出自ACL 2015learning summary prior representation for extractive summarization[4]

  卷积核基于bi-gramsW是过滤矩阵,b是偏置量,f是激活函数tanh

  Bi-CNN:当前St的表示为V(St)

  AP-Bi-CNNAttentive Pooling Convolutional Neural Network):这里采用attentive pooling,与max pooling不同的是多了需要训练的权重参数Wbi(i,i+1)。而attention权重没有采用传统的方法训练,而是采用cosine相似度。

2、Context modeling

  这里主要采用lstm模型对上下文进行建模,能够学习到上下文的信息。具体公式如下:

  这里,使用lstm分别对前文、本句和后文进行上下文建模,得到对应的隐层单元。然后,分别对前文和后文做attentive pooling,其中attention的权重仍在采用cosine相似度的方法得到。

  

  对于句子选取:传统的方式有Integer Linear ProgrammingILP)和Greedy方法,这里采用Greedy方法。

  数据集采用Document Understanding ConferenceDUC200120022004200520062007。评价方法采用ROUGE方法,链接如下:http://duc.nist.gov/

三、基于知识的Attention模型(Knowledge-based Attention

  Leveraging Knowledge Bases in LSTMs for Improving Machine Reading[5]发表于ACL 2017,主要采用外部的knowledge basesKBs)来抽取实体和事件。

  目前引用外部资源存在一些问题。第一,外部资源利用不够充分:直接拼接随机初始化实数向量。第二,引入知识库产生歧义:不考虑上下文信息,引入知识库信息容易产生歧义。

   本文需要采用WordNetNELL两种常用的知识库。WordNet主要采用Synset的方式,存储如(location,hypernym of,city)(door,has part,lock)这样的知识单元。而NELL主要采用concept category(概念种类)的方式,存储如(New York,located in,United States)(New York,is a,city)这样的知识单元。这里,选取WordNetSynsetsNELLconcept category共同作为KB的概念。

   同时选取TransE模型来构建知识库的三元组。传统的三元组主要有头实体、尾实体和关系组成,即triple=(head,relation,tail)。主要计算h+rr之间的相似度。如图所示:

   损失函数: 这里主要有正三元组和负三元组来构成,负三元组是替换头实体或者尾实体中的一个。

   那么,知识库的分布式表示为:

三元组triple=(e1, r, e2)

映射到相应的空间

损失函数为

这里引入知识单元和哨兵机制,整体框图如下所示:

  V(Xt):预训练好的知识词向量。

  LSTM的上下文隐层单元。

 用此参数来表示知识概念向量和上下文之间的注意力权重。

然后,使用Attention机制和哨兵同时控制对知识单元的选取量。St: 哨兵的机制,衡量knowledge basecontext对模型的影响程度。

 

WbUb都是需要学习的权重参数。对当前上下文的权重:

那么会得到一个混合的模型mt

表示对最终结果的一个预测:

数据集:数据集有两个,分别是事件抽取(ACE2005)和实体抽取(OntoNotes5.0)。

举例分析:

例一:He killing of his wife in clinton...

例二:Clinton suffered greatly over the...

这两个例子中都有同一个词clinton,第一个是地点,第二个是人名。在attention权重可视化时,可以从图中看出来,α的权重和β的权重在验证的时候是合理的。

四、总结

  2017年的Attention机制依旧很火,玲琅满目,各式各样。这里从注意力机制的结构入手,将模型的结构分为:单层、多层和基于知识库的三种模型。大家可以多阅读不同领域的论文,解放思想,挖掘适合解决自己问题的新模型。 

 

 

参考文献:

[1] Bahdanau D, Cho K, Bengio Y. Neural Machine Translation by Jointly Learning to Align and Translate[J]. Computer Science, 2014.

[2] An W, An W, An W, et al. Enhancing Recurrent Neural Networks with Positional Attention for Question Answering[C]// International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2017:993-996.

[3] Rijke M D, Rijke M D, Rijke M D, et al. Leveraging Contextual Sentence Relations for Extractive Summarization Using a Neural Attention Model[C]// International ACM SIGIR Conference on Research and Development in Information Retrieval. ACM, 2017:95-104.

[4] Cao Z, Wei F, Li S, et al. Learning Summary Prior Representation for Extractive Summarization[C]// Meeting of the Association for Computational Linguistics and the, International Joint Conference on Natural Language Processing. 2015:829-833.

[5] Yang B, Mitchell T. Leveraging Knowledge Bases in LSTMs for Improving Machine Reading[C]// Meeting of the Association for Computational Linguistics. 2017:1436-1446.