几篇KBQA论文阅读

栏目: 数据库 · 发布时间: 5年前

内容简介:七篇和KBQA多多少少有些相关的论文,有些精读有些只是略读。1.《Improving Natural Language Inference Using External Knowledge in the Science Questions Domain》在NLI(自然语言推理)任务中,提出一种结合知识库的方法。

七篇和KBQA多多少少有些相关的论文,有些精读有些只是略读。

1.《Improving Natural Language Inference Using External Knowledge in the Science Questions Domain》

在NLI(自然语言推理)任务中,提出一种结合知识库的方法。

已有的引入外部知识的方法,无非是:

1.引入事实(facts),包含实体以及他们之间的关系;

2.引入词法信息,比如一个实体的所有同义词;

3.引入常识,比如所有涉及到的concept组成的subgraph。

提出的使用外部知识的方法:

text-only,graph-only,text-and-graph

Text-Based Model:把Hypothesis和Premise的文本作为输入的一个多层分类模型。

Graph-Based Model:对Premise和Hypothesis分别构建一个sub-graph,包含里面出现过的entity,以及相应的relation。

用来验证的数据集:SciTail

2.《Exploiting Rich Syntactic Information for Semantic Parsing with Graph-to-Sequence Model》

发表在EMNLP’2018的短文,腾讯AI实验室与IBM Search的工作。

之前的语义解析(Semantic Parsing)方法通常都是在decoder端的改进,encoder就是简单的seqLSTM来编码word-order的特征。但是句法特征(syntactic features)对于编码非常重要。

在Semantic Parsing的几个Benchmark数据集Jobs640,ATIS和Geo880上达到了与SOTA差不多的性能,而且对抗样本上的鲁棒性更强。

方法:

  1. 利用syntactic graph来表示word-order,dependency和constituency特征。
  • word-order特征,句子里每个单词是一个节点互相连接。(双向)
  • dependency特征,代表了单词直接的语法关系,依赖信息非常重要(Reddy等人证明依赖解析树能够直接转化为Logical Form),将单词之间以有向边连接并指向依赖标签。
  • constituency特征,constituency解析的结果代表了phrase结构信息,把constituent tree中非终止节点以及它们之间的边加入到syntactic graph中。
  1. 使用graph2seq模型(Xu et al. 2018),首先使用graph encoder对syntactic graph进行编码,而后使用RNN+Attention进行解码得到Logical Form。
  • 把图中节点的text信息转化为embedding表示该节点;
  • 找到每个节点的前向邻居和后向邻居;并以一种规则更新节点的表示;
  • 把所有节点表示feed到MLP+Max-Pooling网络中得到graph-embedding。
  • 解码阶段使用graph embedding初始化隐状态,Attention的M是节点的表示。

3.《Learning to Map Sentences to Logical Form: Structured Classification with Probabilistic Categorial Grammars 》

MIT在2005年semantic parsing方面的工作,把自然语言句子映射到Logic Form上。

1.介绍了一下λ表达式;

2.介绍了本文中使用的logic form,combinatory categorial grammars组合范畴语法。

CCG包含一个词典lexicon,其中有一些词类型是基本类型NP,另一些是复杂类型。

CCG还包含一个combinatory rules,所以相邻的字符串能够递归的组合起来。比如函数组合规则A/B B -> A。

CCG的优势就是语法类型和语义类型一致性保持的较好。比如lexicon中每个词在规定语法类型的同时,可以规定语义类型(λ表达式)

3.介绍如何把CCG扩展到Probabilistic CCG,也就是求P(L,T|S)其中L是最后的逻辑表达式,T是每一步推导的结果而S是原文。PCCG主要解决CCG中的歧义问题,该问题可能产生于语法解析过程,也可能产生于语义解析过程。(前者对应同一个词不同的语法类型或语法组合类型,后者对应不同语法对应到了同一语义)

对于一个S,推导除了多个(L,T)的时候,这篇文章首先学习出一个f,把(S,L,T)三元组映射到d个特征向量(对应S和T中不同子结构的数量),而后使用一个函数(如下)作为不同(L,T)的最终概率。

几篇KBQA论文阅读

最终使用的feature是每个lexical entry在T中使用的次数。

4.《SQLNet》&《Seq2SQL》

与semantic parsing相关的论文。17年11月。ICLR2018。以及17年6月。

Seq2 SQL 利用RL解决生成SQL的where子句中order导致的交叉熵错误问题,在wikiSQL上显著的提高了效果。

SQLNet利用column attention来预测每个column name是否出现在column slot中。

5.《The Web as a Knowledge-base for Answering Complex Questions》

特拉维夫Tel-Aviv大学的Talmor和Berant在2018年的工作。

关于Semantic Parsing和QA的问题,针对复杂问题,提出了ComplexWebQuestion数据集,以及一个PointerNetwork为主的框架解决QueryDecomposition。

相关工作,有一个研究Query-Paraphrase的工作,还有一个SQA研究decomp的工作(那个工作使用了人工标注的split-query,需要更多的监督信息,而且针对table这样结构化数据而不是web数据)

首先,利用PointerNetwork把复杂问题分解,然后把分解后的简单问题送入搜索引擎,最后利用RC模型抽取答案。

几个关键步骤:

  1. 数据集的产生,由simpleQuestion的logicForm进行扩展(四种方式),并生成MG-Complex-Query,并采用众包的方式产生HG-Complex-Query。
  2. 数据集问题分类:Comp(two hop),conj(two constraint),comparable,superlative。
  3. 监督信号的来源,noisy alignment,通过MG-query-split-point,通过对齐的方式找到最可能的HG-split-point。
  4. noisy supervision产生的具体过程:
    1. 给原数据集每个sample增加annotation;
    2. 计算MG和NL的输出的word相似度矩阵(利用glove-300d-vector)。
    3. 计算MG的query的split-point,容易求得。
    4. 根据2&3的结果,得到带有噪音的NL的split-points作为监督信号。
  5. 训练中computation tree(也就是输入和输出)的表示:
    1. comp(two hop),i&j,i和j之间的是第一跳的query,得到的答案填充到 j的部分作为第二跳的query。
    2. conj(two constrain),i决定在哪里断开,j决定是否把某个词复制到断开的后面一段的问题中(不复制即为-1)。
  6. 评价准则,Precision@1(27.5),距离人类的标准还有差距(63)。
  7. 模型训练时无法处理的情况(comparable,superlative,negative),这些不太好通过搜索引擎获得(如何获得所有entity的结果?),因此在数据集中这类问题(10%)直接作为simpleQ处理,以后如果基于KB或者Table的QA进行研究的话,会增加这类算子。
  8. AugmentedPointerNetwork模型,利用query+comp+conj作为decode的词库。
  9. 决定是否进行decomp,利用RC模型给出的答案的score,查看simp还是decomp的score高,进而决定是否进行decomp。
  10. 使用了两个RC模型,web-based QA+RASOR以及DocQA,来验证decomp的有效性。
  11. 但是RC和Web-based QA这两个模型的代码并没有放进来。

6.《Evaluating Semantic Parsing against a Simple Web-based Question Answering Model》

特拉维夫Tel-Aviv大学的Talmor在2017年的工作。上一篇论文中web-based qa framework就是这个工作。

首先,利用query在www上获取前100篇snippets。而后利用tf-idf,获取1-4gram的前若干个candidate,之后利用log-linear模型和一些特征从这些candidate中给出top-k,k由一个公式获得。在ComplexQuestions数据集(junwei)上获得了不错的效果。

7.《Entity-Duet Neural Ranking: Understanding the Role of Knowledge Graph Semantics in Neural Information Retrieval》-ACL2018

1.问题

搜索引擎排序。Ranking task in search systems。

在Neural IR系统中,entity和semantic起到的作用。

2.已有方法(相关工作)

两个方向:

1.entity-oriented search,从知识图谱中抽取实体和语义信息,增强基于特征匹配的搜索引擎排序。能够利用实体和知识图谱中的语义信息。

a.利用KB中的attributes,作为ranking feature,Dietz等人2014.

b.通过相关entity,构建query和documents之间的额外关联。

2.Neural Ranking Models:能够利用神经网络,在大量数据情况下学到更加有效和鲁棒的ranking model。

a.学习分布式表示,然后找到相关的关系(基于表示的)

b.直接通过word-level的信息交互,对q和d的相关度进行建模(基于交互的),这种方法提高了准确率(尤其是大规模数据的)

详细的相关工作:

Huang等人的DSSM:把letter-tri-grams给哈希到低维向量。输入是三个字母为窗口的vector(50w的词库->3w维的向量),通过hash压缩向量空间并增加泛化能力。而后通过多层MLP得到语义向量,然后把q和d的语义向量cos得到后验概率,最大化被点击的d的后验概率。使用词袋模型,丢失了语义和词序信息。直接学习到文档的语义表示。

几篇KBQA论文阅读

Xiong等人的K-NRM:模型的translation layer计算q和d的双向cos-similarity(这里叫做translation matrix)。然后,在kernel pooling层,利用RBF核把词与词之间的相似度转化为q-d的相似度特征向量。K个核,每个核计算得到的是query中每个词和d中每个词的相似度。用RBF的话,是一种动态的pooling,计算相似度离

最接近的词汇数量。最后通过一个tanh的仿射变换,得到ranking score。

几篇KBQA论文阅读

Dai&Xiong等人的Conv-KNRM:conv层利用CNN抽取N-gram的embedding feature,而后在cross-match层对n进行match得到若干个match matrix,每个矩阵得到一个pooling feature,而后这些feature矩阵通过concat得到最终的feature,最后用pair-wise-LeToR损失进行优化。

此外,还有一些工作(3-4个)研究KB辅助Neural-based-model进行IR任务,和本文工作相似。

3.论文提出的方法

几篇KBQA论文阅读

EDRM

利用知识图谱的语义信息(实体的分布式表达),增强neural based rank model的性能。

首先学习entity的分布式语义表示:

entity embedding:就是直接通过embedding得到。

description embedding,通过描述字段的embedding矩阵进行卷积和max-pooling得到的。

type embedding,每个entity有n个type的话,首先获得每个type的embedding,而后通过和bag-of-words进行注意力计算并加权求和,得到type embedding。

最后,把三种信息concat起来得到enriched entity embedding。

而后通过Xiong等人提出的一个entity-oriented-search framework(但是xiong等人提出的是依靠人工设计的feature),通过bag-of-words和bag-of-entities来计算d和q的匹配度,一共计算出四种方向的矩阵。融入n-gram信息(n=1,2,3),把每个n-gram汇聚在一起。

其中的pooling也是和之前的工作一样的。之所以叫soft-TF(term frequency),是因为当

的时候,就等于统计EM的词数量。

把entity的信息融入,同时使用基于神经网络而不是特征匹配的 排序 系统。增加了系统的泛化能力。

4.实验及结果

数据集:一个商业的搜索log。Sogou和CN-DBPedia的query-log。

进行了ablation analysis,case study,以及性能分析。


以上所述就是小编给大家介绍的《几篇KBQA论文阅读》,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对 码农网 的支持!

查看所有标签

猜你喜欢:

本站部分资源来源于网络,本站转载出于传递更多信息之目的,版权归原作者或者来源机构所有,如转载稿涉及版权问题,请联系我们

深入Linux内核架构

深入Linux内核架构

Wolfgang Mauerer / 郭旭 / 人民邮电出版社 / 201005 / 149.00元

众所周知,Linux操作系统的源代码复杂、文档少,对程序员的要求高,要想看懂这些代码并不是一件容易事。本书结合内核版本2.6.24源代码中最关键的部分,深入讨论Linux内核的概念、结构和实现。具体包括进程管理和调度、虚拟内存、进程间通信、设备驱动程序、虚拟文件系统、网络、时间管理、数据同步等方面的内容。本书引导你阅读内核源代码,熟悉Linux所有的内在工作机理,充分展现Linux系统的魅力。 ......一起来看看 《深入Linux内核架构》 这本书的介绍吧!

JS 压缩/解压工具
JS 压缩/解压工具

在线压缩/解压 JS 代码

RGB转16进制工具
RGB转16进制工具

RGB HEX 互转工具

Markdown 在线编辑器
Markdown 在线编辑器

Markdown 在线编辑器