当前位置:   article > 正文

CrossAttention KBQA_cross attention

cross attention

《An End-to-End Model for Question Answering over Knowledge Base with Cross-Attention Combining Global Knowledge》论文笔记

这篇文章于2017年发表在ACL上,个人认为是在MCCNNs这个模型的基础上所作的增量式的工作,两者结构非常相似。

Overview

本文的任务依然是给定一个问题,模型根据知识库生成一组答案。这篇文章也是属于IR-based的范畴,根据主题词从知识库中提取出topic graph,然后根据问题和答案各自的特征进行相似度匹配来得到最终的答案。

在这里插入图片描述

本文提出的模型叫做Cross-Attention,也就是将attention机制引入到问题-答案的匹配中。并且,本文还将全局的KB信息考虑进来,这个做法也对模型的效果起到了提升作用。总之,本文的contributions有如下两点:

  1. 提出了一个端到端的模型Cross-Attention,采用神经网络对问题和答案进行特征提取
  2. 充分利用全局的KB信息,以更精确地生成答案。同时,这也能缓解OOV(out of vocabulary)问题。

Method

Candidate Generation

对于候选答案的生成,本文采取的做法与MCCNNs一致,使用Freebase Search API,对于top1结果生成一张2-hop的候选答案图。候选答案实体集合记为 C q C^{q} Cq

Neural Cross-Attention Model

接下来就是模型的主体部分。特征的提取依然是分为问题、答案两个部分,然后通过attention机制来计算相似度得分。

在这里插入图片描述

Question Representation

首先来看问题的编码。对于问题 q   =   ( x 1 , x 2 , … , x n ) q\ =\ (x_1,x_2,\dots,x_n) q = (x1,x2,,xn),作者首先用一个可训练的embedding层 E w ∈ R d × V E_{w} \in R^{d \times V} EwRd×V来获取word embedding。接下来,与MCCNNs不同的是,作者采用了双向LSTM对问题进行特征提取,那么对于每一时刻 t t t的问题token,我们能得到 h t → \overrightarrow{h_{t}} ht h t ← \overleftarrow{h_{t}} ht ,concatenate起来作为最终表示 [ h t → ; h t ← ] [\overrightarrow{h_{t}};\overleftarrow{h_{t}}] [ht ;ht ]

Answer Representation

对于答案的特征学习,本文依然是考虑几个方面:答案entity a e a_{e} ae,答案relation a r a_{r} ar,答案type a t a_{t} at,答案context a c a_{c} ac。接下来,作者没有人工构建这些特征,而是针对每一个aspect分别用一个可训练的参数矩阵来学习特征,得到的embedding分别记为 e e , e r , e t , e c e_{e},e_{r},e_{t},e_{c} ee,er,et,ec。但是有一个细节,context是有多个KB resources所共同组成的 ( e c 1 , e c 2 , … , e c m ) (e_{c_1},e_{c_2},\dots,e_{c_m}) (ec1,ec2,,ecm),因此作者对所有resources取了个平均得到 e e   =   1 m ∑ j = 1 m e c j e_{e}\ =\ \frac{1}{m} \sum_{j=1}^{m}e_{c_{j}} ee = m1j=1mecj

Cross-Attention Model

得到问题和答案的特征以后,接下来就是cross-attention的部分。从cross这个词也能看得出来本文的attention计算是双向的,分为A2Q和Q2A两个反向。

Answer-to-Query Attention

对于答案的不同aspect,它应该对应问题中不同的单词。A2Q attention的计算公式如下:
w i j   =   f ( W [ h j ; e i ] + b ) α i j   =   e w i j ∑ j ′ e w i j ′ w_{ij}\ =\ f(W[h_{j};e_{i}]+b) \\ \alpha_{ij}\ =\ \frac{e^{w_{ij}}}{\sum_{j'}e^{w_{ij'}}} wij = f(W[hj;ei]+b)αij = jewijewij
然后用attention weight来计算query的加权和
q i   =   ∑ j = 1 n α i j h j q_{i}\ =\ \sum_{j=1}^{n}\alpha_{ij}h_j qi = j=1nαijhj
然后作者定义第 i i i个answer aspect与问题之间的相似度得分:
S ( q , e i )   =   h ( q i , e i )   =   q i T e i S(q,e_i)\ =\ h(q_i,e_i)\ =\ q^T_ie_{i} S(q,ei) = h(qi,ei) = qiTei

Query-to_Answer Attention

对于不同的问题,它们也应该侧重于不同的answer aspect,Q2A的计算用到了上面所计算的相似度的得分。
q ˉ   =   1 n ∑ j = 1 n h j w e i   =   f ( W [ q ˉ ; e i ] + b ) β e i   =   e w e i ∑ j e w e j \bar{q}\ =\ \frac{1}{n}\sum_{j=1}^{n}h_{j}\\ w_{e_{i}}\ =\ f(W[\bar{q};e_{i}]+b)\\ \beta_{e_{i}}\ =\ \frac{e^{w_{e_{i}}}}{\sum_{j}e^{w_{e_{j}}}}\\ qˉ = n1j=1nhjwei = f(W[qˉ;ei]+b)βei = jewejewei
然后用attention weight来计算每个问题与不同answer aspect相似度得分的加权和:
S ( q , a )   =   ∑ e i ∈ { e e , e r , e t , e c } β e i S ( q , e i ) S(q,a)\ =\ \sum_{e_i \in \{e_{e},e_{r}, e_{t}, e_{c}\}} \beta_{e_{i}}S(q,e_i) S(q,a) = ei{ee,er,et,ec}βeiS(q,ei)
那么最终得到的这个 S ( q , a ) S(q,a) S(q,a)就是本文所提出的模型得到的最终的问题-答案之间的相似得分。可以看到这里的cross-attention并不是两个方向互相独立,而是递进的关系,先通过A2Q计算出问题与每个answer aspect之间的相似度,然后再用Q2A计算总的问题-答案相似度。

Training & Inference

本文所采取的训练方式与MCCNNs完全相同,先负采样,然后用Hinge Loss作为损失函数。inference的过程也和MCCNNs相同。

Combining Global Knowledge

接下来是本文的另一个创新点:补充全局知识。具体的做法是使用TransE模型来做Multi-task training,KB-QA和TransE的训练交替进行。由于Freebase实在太大,肯定不能把所有知识都考虑进来,因此作者先忽略掉所有完全不相关的信息,然后提取出问题中的所有实体,对每个实体在知识库中提取2-hop的信息来进行训练。训练的方式仍然是negative sampling + Hinge loss。

Experiment

在WebQuestions上的实验结果如下:

在这里插入图片描述

消融实验:

在这里插入图片描述

实验数据表明A2Q 的attention和Global Knowledge对模型效果的提升相对比较明显。

Analysis

在这里插入图片描述

作者也把attention进行了可视化,我觉得这个例子非常好,两个方向的attention都很好的捕捉到了正确的信息。比如where对应的是answer type, Carpathian对应answer entity, Carpathian mountain range是answer context的主体部分。

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/2023面试高手/article/detail/357312
推荐阅读
相关标签
  

闽ICP备14008679号