赞
踩
问答型主要有问答系统,可以视为单轮的对话系统。 问答系统研究有很长时间了(该有的“坑”还是“坑”,因为语言的理解和表示有待突破),它解决的更多的是知识型的问题。目前研究最多的是答案是一个实体的客观性知识的任务(这 算是一 种定义),比如“中国的首都是哪儿?一一“北京”,对于答案是一句话或者一段话,或者是主观性的,甚至是个性化的问题,那就更是困难了。 所以问答系统比较困难也比较复杂,涉及的技术点也很多,因此,要 想做一个还可用的问答系统,就要针对某个具体场景去解决相应的问答需求,要做通用的自动问答系统,还是很困难的。问答系统的另一个应用就是客服系统,即使用机器来辅助人回答高频经常被问到的问题,提高客服人员的效率。问答系统目前主要有如下几类方法 。
该方法的思路就是来一个 Query 之后首先语义分析出逻辑表达式,然后根据 这个逻辑表达式去知识库中推理查询出答案。既使用知识图谱解决。这个方法的重点就在于语义分析。
这种方法的思想就是来一个问题之后,首先是问题的各种分析,包括抽取关键词、关系词、焦点词以及问题的各种分类信息,然后从海量文档中检索出可能包含答案的文档段落,再在证据库中找到相关的证据支撑, 最后根据许多模型对结果排序找到最终的答案。
这种方法是基于深度学习的模型,它首先将问题表征成一个向量(这个过程缺省略了问题分析步骤),然后将答案也表征成向量,最后计算这 两个向量的关联度,值越高那么就越可能是答案 。 它的核心就是在表征答案的时候如何把候选知识(无结构化段落或者结构化子图〉表征进来。
然而一个真正的问答系统一般都是根据要解决的问题融合多种方法来处理。
任务型对话系统更多的是完成一些任务,比如订机票、订餐等等。这类任务有个较明显的特点,就是需要用户提供 一 些明显的信息( slot, 槽位), 如订机票就需要和用户交互得到出发地、目的地和出发时间等槽位, 然后有 可能还要和用户确认等等,最后帮用户完成一件事情。
系统会根据当前状态 Cstate)和相应的动作( action)来决定下一步的状态和反馈,即求状态转移概率P(r,s’|s,a),这其实就是马尔科夫决策 过程 的思想 CMDP)。 首先是 得到用户的 Query。 然后是自然语言理解模块(NaturalLanguageUnderstanding),主要是槽位识别和意图识别,而且这时候识别的意图有可能是有多个的,对应的槽位也会不 同,都会有个置信度 。 然后就是对话管理模块,它包括 Dialog State Tracking (DST) 和 Dialog Policy。 DST 就是根据之前的 信息得到它的 state, state 其实就是 slot 的信息 :得到了多少 slot,还差什么 slot,以及它 们的得分等等。 Dialog Policy 就是根据 state 做出 一个决策,叫 action,如 还需要什么 slot,是否要确认等等。最后就是自然语言生成模块(Natural Language Generation),把相应的 action 生成一句话回复给用户。 Dialog Policy就是根据 state做一个决策,只要有了 state,就比较容易了,所以 DST 就比较关键。目前 DST 主要有这么几种方法 。
生成式模型把对话状态抽象成有关系统 action 和用户 SLU 结果的贝叶 斯网络,所以它的求解可以使用贝叶斯推理
b ′ ( s ′ ) = P ( s , a , u ~ ) = η ∑ u ′ P ( u ~ ′ ∣ u ′ ) P ( u ′ ∣ s ′ , a ) b ( s ) b^{'}(s^{'}) = P(s,a,\tilde{u}) = \eta \sum_{u^{'}}P(\tilde{u}^{'}|u^{'})P(u^{'}|s^{'},a)b(s)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。