KHAMA(2019IJCAI)

在这里插入图片描述

Knowledge-enhanced Hierarchical Attention for Community Question Answering with Multi-task and Adaptive Learning

介绍

作者认为社区QA存在下列问题:

  1. 外部事实知识没有得到充分利用(KB)
  2. CQA模型应当考虑输入序列的不同语义级别(attention)
  3. 现有的CQA模型没有考虑输入question的类别,可能丢失重要特征(多任务:QA+question 分类)
  4. 现有的CQA模型不能有效的处理噪声数据

问题定义

给定一个问题 q q q =[ w w w q ^q q 1 _1 1 w w w q ^q q 2 _2 2,…, w w w q ^q q n _n n]和一个答案 a a a=[ w w w a ^a a 1 _1 1 w w w a ^a a 2 _2 2,…, w w w a ^a a m _m m],CQA任务旨在推断标签 Y Y Y ∈ ∈ {good,bed}。此外还假设每个问题 q q q有一个类别标签 x x x

The Overall Architecture:five modules

(1) Knowledge-enhanced Representation Learning with Hierarchical Attention

包括三个阶段的attention

  1. Word-level Mutual Attention
    首先嵌入。word2Vec:词嵌入和ELMo:character-level嵌入,将两个嵌入连接作为异构词向量:
    在这里插入图片描述
    所以每个 q q q a a a的上下文表示分别为:
    在这里插入图片描述
    在这里插入图片描述

然后通过n-gram匹配进行实体检测,并为输入文档中提及的每个实体从知识库中获取前 K K K个实体候选。实体嵌入用的DeepWalk。在形式上,第 t t t个实体的候选实体称为{ e e e n n n t t t t _t t 1 _1 1 e e e n n n t t t t _t t 2 _2 2,…, e e e n n n t t t t _t t K _K K} ∈ ∈ R R R K ^K K × ^× × d ^d d k ^k k b ^b b,其中 d d d k _k k b _b b是嵌入 K K K B B B中的实体的维数。上下文引导的注意力模型被设计为计算文档中提到的每个实体的知识表示,其计算如下:
在这里插入图片描述
v v v是注意力计算函数(MLP), E E E q q q a a a的上下文表示,所以经过attention后获得知识-aware的 q q q a a a表示:
在这里插入图片描述
在这里插入图片描述
在获得实体和单词嵌入后,作者设计了单词级的相互注意机制来识别上下文和知识表示之间的关系。采用上下文和知识表示之间的点积来计算问题 q q q的相关矩阵 M q M_q Mq,如下所示:
在这里插入图片描述
矩阵中每一个元素表示上下文表示和知识表示的相关性(0-1之间)。然后对矩阵中的每行和每列都都做一个取平均值操作,分别为上下文表示和知识表示计算注意向量:
在这里插入图片描述

最后,相互感知:
在这里插入图片描述
I q I^q Iq=[1,…,1] T ^T T,维度为d,⊗表示科罗纳乘积:可以进行两个不同维度的矩阵运算。 ⚪表示元素对乘法。

  1. Phrase-level Attention
    首先将 W q W^q Wq W W W − ^- q ^q q用一个 C C C N N N N N N处理得到feature maps:
    在这里插入图片描述
    然后设计了一种Phrase-level Attention来学习重要的局部n-gram组块:
    在这里插入图片描述
    P q P^q Pq P P P − ^- q ^q q表示短语级别的知识强化的上下文表示和短语级别的上下文强化的知识表示。
    最后使用两个独立的LSTM对 P q P^q Pq P P P − ^- q ^q q编码:
    在这里插入图片描述
  2. Document-level Attention
    使用知识表示作为关注源来关注上下文,以便选择那些关键的知识增强的上下文词块来组成知识感知文档表示。在形式上,文档级关注的定义如下
    在这里插入图片描述
    µ µ µ是mean pooling操作,文档级别的attention的输出 O O O q ^q q i _i i表示为对于 q q q的文档级别的知识强化表示。
    执行相同的操作得到知识增强的答案表示 O O O a ^a a
(2)Interactive Question/Answer Representation Learning

多头注意力处理 O O O a ^a a O O O q ^q q
在这里插入图片描述
其中σq 	I∈Rb
表示关注矩阵的第 i i i行, b b b是关注的跳数。同样,可以计算问题感知答案表征的注意矩阵
σ
然后计算交互:
在这里插入图片描述
faltten是将矩阵展平操作。

(3)Question Categorization

问题表征 e e e m m m b b b q ^q q被feed特定任务的全连接层输出类别概率:
在这里插入图片描述
loss为交叉熵:
在这里插入图片描述

(4)Community Question Answering
  1. Category-aware Representation Learning
    作者开发了一个类别感知转换过程,使转换后的问题嵌入保持类别信息。在形式上,模型将问题表示 e e e m m m b b b q ^q q转换为特定类别的问题表示 e e e m m m b b b q ^q q − ^-
    在这里插入图片描述
    在这里插入图片描述是转换矩阵。
    为了使得转换后的问题表示能够捕获类别信息。引入了 X X X(类别数)个子矩阵( W 1 W_1 W1,…, W X W_X WX),其中每个子矩阵对应于一个问题类别。类别感知变换矩阵 W µ W_µ Wµ可以计算为子矩阵的加权和:
    在这里插入图片描述
    对于CQA任务,连接最终的问题和答案表示,并将它们馈送到特定于任务的完整连接层即可:
    在这里插入图片描述
    CQA任务的loss仍然为交叉熵:
    在这里插入图片描述
  2. Ensemble Learning

作者从SemEval-2017测试集中随机选择100个被KHAMA错误预测的问题进行错误分析。我们观察到,错误预测的问题在问题类别中是不平衡的。“Family Life in Qatar”和“Moving to Qatar”等问题类别中的样本比“Doha Shopping”和“Carsand driving”等其他类别中的样本更难预测。为了建立一个更加稳定和鲁棒的预测模型,作者构造了多个CQA分类器,并集成它们的结果作为最终的预测结果,他们从自适应boosting算法中学习到多个分类器,基于训练误差更新第 i i i个CQA分类器 g i g_i gi的权重 α i α_i αi
在这里插入图片描述
最终预测模型G通过加权投票获得:
在这里插入图片描述

(5)Multi-task Learning

在这里插入图片描述
λ 1 λ_1 λ1= 0.2 and λ 2 λ_2 λ2= 0.8

实验

数据集

SemEval-2015 Task 3和 SemEval-2017 Task 3

实验细节

使用Freebase的子集作为KB:FB5M3
根据服从正态分布初始化图嵌入,维度:100
word2vec:100
LSTM hidden_size:200
CNN feature maps :200 个2×2
分类器数量:5
候选实体数量:6
学习率:1×10 − ^- 4 ^4 4
batch_size:64
L2正则:0.001
dropout:0.2

结果

在这里插入图片描述
在这里插入图片描述
分类器数量和候选实体数量对结果的影响:
在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_43390809/article/details/112617882