问答系统
Information Retrieval: 基于问答库,利用信息检索(召回、排序)从问答库中选择查询问题与已有问题和答案中最相似的作为输出
Knowledge Based Question Answering: 基于知识库,围绕知识库的实体或者关系,把问题转化成数据库上的查询语句,然接查库获取答案
Task-Bot: 定义场景下一共需要哪些槽值(Slot),用户对话中提到了槽值,抽取记录下来,如果没提到的,就反问,直到槽值都填满了进行查询给出操作
generative/Seq2seq Bot: 完全生成式模型
1. requirements
闲聊还是任务(业务型,知识型)
Close-domain QA 还是 Open-domain QA (海量文档,来回答一个事实性问题factoid questions)
单轮(single-turn)还是多轮(multi-turn)
闭卷问答(closed-book QA)还是基于上下文的问答(in-context learning QA)
多领域
多语言
non-functional requirement: latency 和 throughput
2. ML task & pipeline
检索式(Retrieval),生成式(Generative),任务式
检索式:主要思路是从对话语料库中找出与输入语句最匹配的回复,这些回复通常是预先存储的数据。
生成式:主要思路是基于深度学习的Encoder-Decoder架构,从大量语料中习得语言能力,根据问题内容及相关实时状态信息直接生成回答话术。
任务式:就是任务型对话,通常要维护一个对话状态,根据不同的对话状态决策下一步动作,是查询数据库还是回复用户等等。
知识图谱:爬取的数据经过关系抽取存入Neo4j数据库
基于本地知识的问答库,Bert微调,建立倒排 (inverted index),特征向量余弦相似度
GPT
2.1 任务型
管道方法
自然语言理解(领域识别 domain,意图识别 intents,语意槽填充 slots)
对话管理 Dialogue Management(状态追踪,对话策略优化,知识库与API)
自然语言生成
端对端
3. data collection
4. model
4.1 问题理解
领域/意图识别
实体识别
槽位填充
4.2 召回
倒排索引(Inverted Index)和近似近邻搜索(ApproximateNearest Neighbor Search)进行快速检索
5. evaluation
传统生成指标n-gram based metrics (BLEU、ROUGE)
基于语义距离的指标 BERT-Score
MT-bench和Chatbot Arena进行人工排序
使用GPT4等模型进行打分
6. deploy & serving
7. monitoring & maintenance
8. 优化与问答
如何处理业务对话系统中的unexpected intent
可继续阅读参考rasa中的:Unexpected Intent Policy
参考
Last updated