1、 整个对话系统的流程:
a、 开放域多轮对话,瞎聊,识别用户意图
b、 准入条件,根据设定好的准入条件,进入封闭域对话
c、 封闭域对话,填槽,必填槽不完整就要澄清让用户填完整,最终执行
解释:
从一个开放域转入到封闭域,或者从一个封闭域转入到另一个封闭域,中间的跳转是需要逻辑判断的,而这个逻辑判断就是准入条件。
2、封闭式对话 --- 具体任务的;
a、输入和输出都是可枚举的,输入的是每个任务的每个槽位,输出的是给定槽位值之后,然后输出的各种可能性。
b、对话有明确的目标和流程 --- 当有些槽值不明确的时候,系统会反问用户,来获得这些槽值
2、slot-filling dialogue 填槽指的是为了让用户意图转化为用户明确的指令而补全信息的过程。
填槽式对话 slot需要在开始定义好的,然后从对话数据中,找到相关信息,直接填充
例如打车中的,出发地点槽,目的地槽,出发时间槽中的属性分别是“出发地点”、“目的地”和“出发时间”
3、任务型对话系统的流程图
language understanding: 将用户说的话转化为槽值的形式
dialog manager: 追踪状态 、 做出相应的 act
nature language generation: 将 act 转为 文字,表述出去
4、NLU模块: domain detection, intent determination and slot tagging
domain detection, intent determination --- 识别交谈的是哪个领域或者具体意图
对于 semantic representation:
a、分布式语义表示 (vector 形式) b、框架式语义表示(slot) c、模型论语义表示 (logic)
领域是指同一类型的数据或者资源,以及围绕这些数据或资源提供的服务,比如“餐厅”,“酒店”,“飞机票”、“火车票”、“电话黄页”等;
意图是指对于领域数据的操作,一般以动宾短语来命名,比如飞机票领域中,有“购票”、“退票”等意图;
属性槽用来存放领域的属性,比如飞机票领域有“时间”“出发地”“目的地”等;
6、可扩展的算法框架:各个领域在知识库、数据、模型、算法等方面,都是各自独立的。
本文参考资料:
[1] https://yq.aliyun.com/articles/8301
[2] https://yq.aliyun.com/articles/158691?spm=a2c4e.11153940.blogcont8301.16.840d5d7aivi5p0
[3] Gao J, Galley M, Li L, et al. Neural Approaches to Conversational AI.[C]. meeting of the association for computational linguistics, 2018: 2-7.