当前位置:   article > 正文

基于知识图谱的问答系统(四):向量建模篇_向量化建模

向量化建模

首先根据问题中的主题词在知识库中确定候选答案。
把问题和候选答案都映射到一个低维空间,得到它们的分布式表达(Distributed Embedding),
通过训练数据对该分布式表达进行训练,使得问题向量和它对应的正确答案向量在低维空间的关联得分(通常以点乘为形式)尽量高。
当模型训练完成后,则可根据候选答案的向量表达和问题表达的得分进行筛选,找出得分最高的作为最终答案。

关键问题

一是如何将问题和答案映射到低维空间,显然我们不能仅仅将自然语言的问题和答案进行映射,还要将知识库里的知识也映射到这个低维空间中(否则我们就只是在做QA而非KB-QA了)。第二个问题是,如果做过类似工作(one-shot,imgae caption,word embedding等)的朋友应该知道,使用这种方法是需要大量数据去训练这个低维空间的分布式表达的

问题的分布式表达:首先我们把自然语言问题进行向量化,作者将输入空间的维度N设置为字典的大小+知识库实体数目+知识库实体关系数目,可以看出这是一种multi-hot的稀疏表达,是一种简化版的词袋模型(Bag-of-words model)。
答案的分布式表达:我们想想可以怎样对答案进行向量化,最简单的方式,就是像对问题一样的向量化方式,使用一个简化版的词袋模型。由于答案都是一个知识库实体,那么这样的表达就是一个one-hot的表达,显然,这种方式并没有把知识库的知识引入到我们的输入空间中。
第二种方式,我们把知识库想象成一个图,图的节点代表实体,边代表实体关系。通过问题中的主题词可以定位到图中的一个节点,该节点到答案节点有一条路径,我们把该路径上的所有边(实体关系)和点(实体)都以multi-hot的形式存下来作为答案的输入向量。我们这里只考虑一跳(hop)或者两跳的路径,如路径(barack obama, place of birth, honolulu)是一跳,路径(barack obama, people.person.place of birth, location.location.containedby, hawaii) 是两跳。因此这种表示是一种3-hot或4-hot的表示。
第三种方式,让我们回想一下我在揭开知识库问答KB-QA的面纱3·信息抽取篇介绍的信息抽取的方法,对于每一个候选答案,该答案所对应的属性(type/gender等)和关系都是能够帮助我们判断它是否是正确答案的重要信息,因此我们可以把每个候选答案对应的知识库子图(1跳或2跳范围)也加入到输入向量中,假设该子图包含C个实体和D个关系,那么我们最终的表达是一种3+C+D-hot或者4+C+D-hot的表达。和信息抽取方法一样,我们也对关系的方向进行区分,因此我们输入向量的大小变为字典的大小+2*(知识库实体数目+知识库实体关系数目)。

和训练word embedding一样,为减少计算量,我们通过采样的方式构造负样本,50%来自随机挑选,50%来自与问题主题词实体相连的其它路径。
由于benchmark数据集WebQuestion包含的样本数过少,作者还构造了其他几个数据集.

优缺点

可以看出,相比信息抽取和语义解析的方法,该方法几乎不需要任何手工定义的特征(hand- crafted features),也不需要借助额外的系统(词汇映射表,词性标注,依存树等)。相对来说,比较简单,也较容易实现,能取得39.2的F1-score得分(斯坦福13年的语义解析方法只有35.7)也说明了该方法的强大性。通过自动化的方式扩展数据集和多任务训练也部分解决了实验数据不足的缺点。

然而,向量建模方法,是一种趋于黑盒的方法,缺少了解释性(语义解析可以将问题转化成一种逻辑形式的表达,而信息抽取构造的每一维特征的含义也是离散可见的),更重要的是,它也缺少了我们的先验知识和推理(可以看出其F1-score略低于14年使用了大量先验知识的信息抽取方法,该方法F1-score为42.0),事实上,这也是现在深度学习一个比较有争议的诟病。

就篇论文的向量建模方法来说,也存在一些问题,比如对问题的向量表示采用了类似词袋模型的方法,这样相当于并未考虑问题的语言顺序(比如 “谢霆锋的爸爸是谁?” 谢霆锋是谁的爸爸? 这两个问题用该方法得到的表达是一样的,然而这两个问题的意思显然是不同的),且训练分布式表达的模型很简单,相当于一个两层的感知机。

[1] Bordes A, Chopra S, Weston J. Question Answering with Subgraph Embeddings[J]. Computer Science, 2014.
[2] https://zhuanlan.zhihu.com/p/25824501

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

闽ICP备14008679号