一,什么是基于知识图谱的问答(KBQA)?
KBQA--knowledge base question answering,通过对问题进行语义理解及解析,通过知识库进行查询。
二,KBQA的基本要素:
输入:自然语言问句,例如“姚明的老婆是谁?”,“姚明的身高多少?”
输出:知识图谱里的实体或者关系,例如“叶莉”,“2米29”
评价标准:召回率,准确率,F1-Score
三,KBQA的最基础方法--基于模板方法:
步骤:
自然语言查询-->意图识别(Intention Recognition)-->实体链指(Entity Linking)+关系识别(Relation Detection) -->查询语句拼装(Query Construction)-->返回结果选择(Answering Selection)
下面简单介绍下各个步骤的内容:
意图识别(Intention Recognition):预先准备好意图模板,可以通过相似度来匹配,也可以通过机器学习里的分类问题来解决,这个是所有问答系统都要面临的问题。
实体链指(Entity Linking)+关系识别(Relation Detection):将查询语句中出现的实体和关系映射到知识图谱里,本质是一个NER问题,只是需要将NER结果进一步链接到图谱。
参考论文:
Entity Linking: Finding Extracted Entitiesin a Knowledge Base
Improved Neural Relation Detection forKnowledge Base Question Answering
查询语句拼装(Query Construction):需要根据底层知识图谱的查询语言,拼装成对应的query来查询(sparq等),最简单的方法就是预先定义好查询模板,根据之前解析出来的(意图,实体,关系)填进模板查询即可。
返回结果选择(Answering Selection):图谱查询之后的结果可能存在多个,需要选择一个最合适的答案,可以预先指定排序规则去选择答案。
基于模板的优点:
查询响应速度快
准确率高,可以回答复杂查询
基于模板的缺点:
要满足用户的各种问法,需要建立庞大的模板库,这个过程是很耗精力的
可以优化的点:
以上步骤最大的问题在于,需要人工事先准备模板,需要很大的工作量,是否可以自动生成模板?
参考论文:Automated Template Generation for Question Answering over KnowledgeGraphs
四,其他方法:
KBQA除了基于模板的方法之外,还有基于语义解析和基于深度学习等方法,后续再开新的文章进行介绍。