智能搜索
前面在介绍语义检索时,我们讲到了DSSM以及QA match,这两种方式都是基于模型的检索,首先将用户Query和Answer映射到语义空间内的稠密的向量表达,然后通过有监督的方式训练match模型,这种方式由于存在召回损失和匹配误差,一般准确率不会太高。基于知识图谱的智能搜索先对用户的Query进行实体抽取,然后在知识库中进行知识检索,最终以知识卡片的形式将搜索结果展现出来,这是一种端到端的更直接的检索方式,检索结果相对来说更加精确。
智能检索主要包含以下几个关键步骤:
- 对Query文本进行分词、词性标注以及纠错,或者通过NER任务抽取出关键字。
- 将关键字与知识库中的实体及属性进行匹配,抽取摘要图,既保留足够的信息来计算查询所需的元素和结构,同时减少探索空间。
- 知识检索并做ranking,返回匹配度较高的实体。
实战部分详见基于elasticsearch的KBQA实现及示例
智能问答
问答是搜索引擎的下一代交互形式,能够以准确简洁的自然语言为用户提供问题的解答。根据问答形式可以分为一问一答(单轮)、交互式问答(多轮)、阅读理解。 知识问答(Knowledge Based Question and Answer,KBQA),首先将用户输入的Query经过语义解析转换为知识图谱的查询语言进行查询和推理,然后将得到的答案再进行组合以形成人类可阅读的文本。所以语义解析是知识查询的重难点。 KBQA的主流方法有三种:基于模板的方法、基于语义解析的方法、基于深度学习的方法。
基于模板的方法将模板定义为SPARQL query模板,然后直接将用户自然语言的Query映射为SPARQL query模板(规则或者deep QQ match的方式),并紧接着将模板中的占位符进行槽填充,最后查询知识库。
基于语义解析的方法如下所示:
基于深度学习的方法: 上面的模型采用CNN对知识图谱候选路径进行打分。输入是用户Query和候选路径,然后通过deep QQ match模型得到相似度得分。 上面的模型也是通过deep QQ match对知识图谱候选子图进行打分,其中实体和关系的嵌入式表示可以通过TransE模型获得。
实战部分详见基于REfO的KBQA实现及示例
更多参考资料:
从零开始构建知识图谱
SimmerChan知识图谱专栏
社群
- 微信公众号