Advertisement

论文笔记:A Gated Self-attention Memory Network for Answer Selection

阅读量:

作者:陈宇飞

单位:燕山大学


论文地址:https://www.aclweb.org/anthology/D19-1610/
论文代码:https://github.com/laituan245/StackExchangeQA


目录

  • 一、研究问题

  • 二、解决思路

  • 三、模型设计

    • 3.1 The gated self-attention mechanism
    • 3.2 Combining with the memory network
    • 3.3 GSAMN for answer selection
    • 3.4 Transfer Learning
  • 四、实验分析

    • 4.1 Ablation Analysis
    • 4.2 对比实验

一、研究问题

答案选择(AS)是一个重要的研究问题,在许多的领域都有应用,以往的深度学习方法主要采用比较-聚合的结构,本文将采用一种新的方法结构来完成答案选择任务。

二、解决思路

本文首先分析了以往的一些模型,比如(Bian等人的Dynamic-Clip Attention model),分析这些模型中都存在前几层只是单纯的把问题和候选答案分别编码成了向量表示的序列,但是这些序列都是相互独立的,完全忽略了该序列与另一个序列之间的信息联系的问题,这也是本文为解决这个问题所提出的模型的设计思路和创新点,本文提出使用记忆网络(memory network)和自注意力两个架构,同时结合来自大规模在线语料库的简单迁移学习技术来完成答案选择任务。

三、模型设计

3.1 The gated self-attention mechanism

与传统的注意力机制求输入向量序列X=[x_1..x_n]与上下文信息c之间的相关性得分\alpha相比,本文提出了一种叫做门控注意力机制的新方法,在传统注意力的基础上加入了自注意力s_i^j用来表示序列中的第i个单词和序列中的第j个单词的注意力分数,也就是向量x的自注意力分数,然后再计算向量c和向量x的注意力分数s_i^c,最后将计算的相关性分数汇总成g_i,其本质就是想把两个向量cx同时融入到attention机制中。
在这里插入图片描述

3.2 Combining with the memory network

因为在大多数以前的存储器网络架构中,存储器单元之间的交互相对有限,在每一跳,单个控制向量只能用于独立解释每个存储单元。为了克服这一限制。本文模型设计采用记忆网络与上述门控自我注意机制相结合的方法,其中简化记忆流程如下图。
在这里插入图片描述

其中用c_k来控制上下文,x_1^k...x_n^k作为第k个位置的跳跃点记忆值,控制向量c是随机初始化的,初始记忆向量x_1^k...x_n^k可以采用word2vec、GloVe、BERT等来获取。每次门控自我注意机制的计算结果作用在记忆单元的更新计算中,公式如下。
在这里插入图片描述

由于上述公式已经处理了记忆向量x_i^{k+1},所以在更新控制器c_k时只需将每个记忆向量x_i^{k+1}求和取平均,无需进行加权平均,公式如下。
在这里插入图片描述

3.3 GSAMN for answer selection

在做答案选择任务时,方法就比较简单了。先将问题和答案进行拼接,然后当作一个输入序列输入模型,将任务视为一个二分类问题。

3.4 Transfer Learning

因为现在大量公共社区问答平台的兴起,这些平台包含大量的问答对,同时会包含很多领域的问答,这就为本文的迁移学习提供了一个很好的机会。首先使用从社区问答平台中爬取的数据集预先训练一个答案选择模型,然后本文采用了WikiQA数据集和TrecQA数据集作为实验数据集,在预先训练好的模型上进行微调。该迁移学习方法的优势在于数据获取简单,只需要在相关网站爬取数据即可,且可以提升模型性能。

四、实验分析

4.1 Ablation Analysis

消融实验部分较为简单,只是单纯的将模型做了拆分,列出了实验结果,没有进行分析,实验结果如下,其中消融实验只做了BERT baseline、[BERT + GSAMN]、[BERT + Transfer Learning] 三个,其他为对比实验结果。
在这里插入图片描述

4.2 对比实验

本文使用[BERT+Transformers]、[BERT+Transformers+Transfer Learning],在Bert之后加入额外的6层的Transformers并没有对模型有提升,原因是BERT本身已经包含12个Transformer layers,堆叠更多的层将没有任何帮助,尤其是在测试的数据集不大的情况下。

全部评论 (0)

还没有任何评论哟~