本文由云+社区发布
| 导语 问答系统是信息检索的一种高级形式,能够更加准确地理解用户用自然语言提出的问题,并经过检索语料库、知识图谱或问答知识库返回简洁、准确的匹配答案。相较于搜索引擎,问答系统能更好地理解用户提问的真实意图, 进一步能更有效地满足用户的信息需求。问答系统是日前人工智能和自然语言处理行业中一个倍受关注并拥有广泛发展前景的科研方向。
1、引言
问答系统处理的对象重点包含用户的问题以及答案。按照问题所属的知识行业,问答系统可分为面向限定域的问答系统、面向开放域的问答系统、以及面向常用问题集(Frequently Asked Questions, FAQ)的问答系统。依据答案源自,问答系统可分为基于结构化数据的问答系统如KBQA、基于文本的问答系统如设备阅读理解、以及基于问答对的问答系统如FAQ问答。另外,根据答案的反馈机制划分,问答系统还能够分为基于检索式的问答系统和基于生成式的问答系统。
本文重点阐述FAQBot检索型问答系统的关联科研和处理框架,以及深度学习在其中的应用。FAQ检索型问答是按照用户的新Query去FAQ知识库找到最合适的答案并反馈给用户。如图所示:
其中,Qi是知识库里的标准问,Ai是标准问对应的答案。
详细处理流程为: 候选集离线建好索引。采用Lucene引擎,为数万个类似问集合创立字级别倒排索引。Lucene引擎的性能能够将召回时间掌控在毫秒级别,大大减轻后续模块的计算压力;线上收到用户 query 后,初步召回一批候选集做为粗排结果传入下一模块进行进一步精确排序;利用matching模型计算用户query和FAQ知识库中问题或答案的匹配程度;利用ranking 模型对候选集做 rerank 并返回 topk个候选答案。能够看出,FAQ问答系统的核心任务能够抽象为文本匹配任务。传统文本匹配办法如信息检索中的BM25,向量空间模型VSM等办法,重点处理字面类似度问题。然而因为中文含义的丰富性,一般很难直接按照重要字匹配或基于设备学习的浅层模型来确定两个句子之间的语义类似度。近几年,利用神经网络,尤其是深度学习模型学习文本中深层的语义特征,对文本做语义暗示后进行语义匹配的办法起始被提出并应用于检索式问答系统。基于深度学习的模型一方面能够节省人工提取特征的海量人力物力。另外,相比于传统办法,深度文本匹配模型能够从海量的样本中自动提取出词语之间的关系,并能结合短语匹配中的结构信息和文本匹配的层次化特性,发掘传统模型很难发掘的隐含在海量数据中含义不显著的特征,更精细地描述文本匹配问题。
2、深度学习文本匹配
FAQ问答系统通常有两种处理思路,一种是类似问题匹配,即对比用户问题与现有FAQ知识库中问题的类似度,返回用户问题对应的最准确的答案,这种思路类似于text paraphrase;另一种是问题答案对匹配,即对比用户问题与FAQ知识库中答案的匹配度,返回用户问题对应的最准确的答案,这种思路为答案选取,即QA匹配。这两个类型相通的地区在于都能够看作文本语义匹配,非常多模型能同期在两个任务上都得到很好的效果,区别在于QA匹配存在问题与答案区别质的问题。
下面总结有些基于深度学习的文本匹配工作,期盼能够抛砖引玉,如有遗漏或错误,欢迎弥补或指出。
2.1 模型框架
概括来讲,
|