意图识别:分类问题
槽值检测:序列标注任务
目的:将用户的输入转换成结构化数据
对话管理,对话状态追踪:记住之前的信息,并追踪新的槽值,直到足够充分
可依据规则实现,如if、else
使用统计的方法,追踪各个槽值可能的取值分布
POMDP
根据结构化的对话意图,生成回复
传统方法:依赖模板规则,先提前将回复都写好,然后挑一句
30%都是闲聊的请求
需要对话生成
1、检索式对话模型
预先写好输入输出对,收到问题后,进行语义匹配,排序后找出回复
基本只考虑了单轮对话
多轮对话需要考虑好几轮
实现壁垒:对话语料库的构建,所以需要好多爬虫、清晰工作
好处:1)回复的句子一定是流畅的2)不会乱说话,可控性好(根据语料库中来的)
缺点:没办法得到除了语料库外新的信息
中文房间:
基于检索式的,机器真的理解了吗?
基于深度学习的生成式模型框架:
试图模拟对话的概率分布
最大似然估计:
函数拟合:将其不可计算的,变成条件概率分布(可计算)
不需要找到全局最优解,一般全局最优都是空的,用贪心算法找到局部最优即可
RNN+attention 变成transformer
怎么才能让深度神经网络训练的更好呢?
初始值好的话,就比较好,则有了预训练模型,如bert,GPT
在对话生成领域GPT效果更好
在输入和输出处加一些限定条件
单向变双向
解码顺序:正序、乱序、同时生成
好处:复杂度从n变成log(n)甚至变成1
变分模型、隐空间
GAN,生成对抗,取消最大似然估计,目前效果不是很好
结合检索和生成
生成的缺点:可能不流畅
评价方法:尤其是闲聊,不好评价好不好
只有侧面评价:如问题解决率,解决了的经过了多少轮,闲聊时长等