《FAQ-based Question Answering via Knowledge Anchors》笔记

《FAQ-based Question Answering via Knowledge Anchors》笔记

本日志介绍的文章发表于NLPCC 2020,不是什么顶会,主要是跟个人最近工作内容比较相关,同时文章引用了一种传统的基于模板的关系抽取方法,对个人启发还是比较大的,毕竟近年来的风气都是无脑DL,原文链接:

FAQ-based Question Answering via Knowledge Anchors

简介

FAQ式问答是目前问答系统中应用较多的一种方法,大部分FAQ式问答系统均采用问题——问题匹配的方法训练模型,如典型的孪生网络(Siamese Networks)架构,模型通常学习到文本的字面相似度,或一定程度的语义相似度,效果取决于训练数据的规模及生成方式。然而在一些垂直域问答中,不同意图的句子可能也存在较高的字面相似度语义相似度,例如“我想去体育西路的卫生间”与“体育西路的便利店在哪里?”,这两句话可能有较高的语义相似度,但显然应该以不同的方式响应。

本文提出了一种基于知识锚定的KAQA(Knowledge Anchor)方法,通过建立少量垂直域的知识图谱,增强特定领域的FAQ能力,例如下图所示:

在这里插入图片描述

方法

1. 整体架构

KAQA主要包含三个模块:知识图谱构建查询锚定多通道匹配知识图谱构建模块通过多种方式(模型+规则+人工)构造先验知识,为后继模块提供支撑;查询锚定模块扫描查询及文档标题,识别、链接知识库实体,提取实体间存在的关系,并通过多个模型进行关系消歧;多通道查询模块计算出查询及文档标题之间的,字词级别、实体级别与关系级别的语义相似度。整体架构如下图所示:

在这里插入图片描述

2. 知识图谱构建

知识图谱构建过程首先在目标领域设置一部分种子实体,然后基于模板匹配(patterns-based)+NER模型(如CRF)获取最终的实体集。也可以基于现有的领域知识图谱进行构建。

基于这些实体,使用了多个模型组合的方式提取关系(triples):

  1. 使用pattern-based bootstrapping方法结合计数特征、词法特征(词权及POS标签等)、句法分析生成高频关系;(企业——主营业务:NP(是一家|是一所|是) VV NP 的企业)

具体可参考《Snowball: Extracting Relations from Large Plain-Text Collections

  1. 实现了基于神经网络的关系提取模型,如CNN/PCNN

  2. 使用一个线性变换层对所有生成的关系进行排序;

  3. 实现了CKRL方法,基于人工标注的数据进行训练,提升关系提取的整体可信度。(准确率在95%左右)

3. 查询锚定

在查询锚定阶段,需要对实体及关系进行消歧。在本文的场景中,实体消歧只使用了最大正向匹配方法,已取得了可接受的准确率。

对于关系的消歧,首先对所有已识别的实体,提取两两实体间的所有关系,如下表:

在这里插入图片描述

对于has_operation关系,有4种候选关系可反映核心的语义信息,关系消歧的任务就是选出其中真正的关系,文章实施了3种方法:

  1. 使用基于规则的方法,归纳简单的句法规则、模板、词法特征(如词权、POS、实体类型)、关系级别特征(关系类型、实体对距离)等进行匹配;

  2. 使用知识推理方法,归纳一些启发式的推理模式,例如图1中,由于friendWeChat的一个组件,因此恢复更应该与friend进行关联,而不是WeChat

  3. 基于FastText训练神经网络消歧方法(Neural Triple Disambiguation),输入问句及目标关系,输出关系的置信度,具体又包括几种特征:(a)目标关系三元组;(b)位置特征,即每个token相对于实体的位置,因为目标三元组有两个实体,所以每个token有两个位置特征;©冲突实体特征,如果三元组 ( e A , r , e B ) (e_A, r, e_B) (eA,r,eB)作为目标关系,而 ( e B , r , e C ) (e_B, r, e_C) (eB,r,eC)是一个候选关系,则 ( e A , e C ) (e_A, e_C) (eA,eC)是一个冲突实体;(d)冲突关系特征,除目标关系自身外,如果一个候选关系与目标关系共享了任意实体,则该候选关系是冲突关系。

(d)原句是if a triple (except the target triple itself) shares any entities with that in target triple, then this triple is viewed as a conflict triple,按一般的理解,出现在问句中的实体总是容易存在链式关系的,链式关系可能表达了一种互斥的原理,类似2中的启发式推理。

4. 多通道匹配

多通道匹配模块把语句、实体、关系三类特征拼接在一起,训练分类器输出相似度,形式化描述为:

s = softmax ( MLP ( f ( q , d ) ) ) , f ( q , d ) = concat ( f w ( q , d ) , f e ( q , d ) , f t ( q , d ) ) \text{s} = \text{softmax}(\text{MLP}(\text{f}^{(q, d)})), \text{f}^{(q, d)} = \text{concat}(\text{f}_w^{(q, d)}, \text{f}_e^{(q, d)}, \text{f}_t^{(q, d)}) s=softmax(MLP(f(q,d))),f(q,d)=concat(fw(q,d),fe(q,d),ft(q,d))

其中 f w ( q , d ) \text{f}_w^{(q, d)} fw(q,d) f e ( q , d ) \text{f}_e^{(q, d)} fe(q,d) f t ( q , d ) \text{f}_t^{(q, d)} ft(q,d)分别表示查询——文档标题的token特征、实体特征、关系特征(hidden states),基于这3类特征,文章分别对比了3个文本匹配模型:

  1. Architecture-I:典型的孪生网络架构,使用基础的特征提取层例如CNN,分别提取查询、文档标题特征,拼接后进行分类输出:

f w ( q , d ) = concat ( CNN ( W q ) , CNN ( Q d ) ) \text{f}_w^{(q, d)} = \text{concat}(\text{CNN}(W^q), \text{CNN}(Q^d)) fw(q,d)=concat(CNN(Wq),CNN(Qd))

怀疑文章用错记号,找不到 Q d Q^d Qd的出处,可能是指 W d W^d Wd

  1. MatchPyramid:该方法直接计算两句子之间每个token的相似度矩阵,然后通过CNN提取相似度特征:

f w ( q , d ) = CNN ( M ) , M i j = cosine ( w i q , w j d ) \text{f}_w^{(q, d)} = \text{CNN}(M), M_{ij} = \text{cosine}(w_i^q, w_j^d) fw(q,d)=CNN(M),Mij=cosine(wiq,wjd)

  1. Inter-Weighted Alignment Network(IWAN):略。

总结

总体来看,该文章最大的创新点在于使用知识图谱增强传统FAQ的语义匹配能力,传统方法仅能依靠字面信息,该文章扩充了实体信息及关系信息,更直观的理解,是传统方法可能仅仅识别出问句的意图,而该文章可以进一步融入语义槽,甚至槽间的关系。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值