李龙华
摘要:会话系统为人机交互回答用户提出的查询和问题提供了一种灵活便捷的操作方法。常规的会话系统分为FAQ问答系统和任务型对话系统两类。在FAQ问答系统中,用户需要提供详细具体的信息以方便系统检索返回正确的答案,但是无法得到定制化的答案;在任务型对话系统中,用户必须按照系统定义好的多轮对话交互路径,才能达到最终的目标结果。文章提出一种融合FAQ和任务对话树的方法,解决FAQ和任务型对话树各自的缺点,同时允许领域专家创建对话树,基于该对话树生成训练数据。在实验环境下测试结果表现优秀。
关键词:对话系统;FAQ问答;任务型对话;对话树
中图分类号:TP18 文献标识码:A
文章编号:1009-3044(2023)34-0023-03
开放科学(资源服务)标识码(OSID)
0 引言
2022年OpenAI发布了聊天机器人ChatGPT,在多轮对话、自然语言生成等技术表现优异,在多语言交互自然语言理解任务方面,也具有很强的泛化能力[1]。人机对话系统作为人工智能自然语言处理的重要研究领域,并且相比搜索引擎其能够快速回答用户的问题,同时降低企业生产成本,广泛应用于电子商务后台客服机器人、智能驾驶助手、智能家电控制、商场智能导购等场景[2-3]。
基于FAQ模式的对话系统,可以直接匹配知识库中定义好的问答对[4],只需领域专家收集、描述、定义好系统输出,确保问答对事实正确,即可快速返回用户查询信息[5]。可是FAQ模式无法对特定需求用户给出定制化答复,比如,冰箱怎么调节出行模式,这依赖于冰箱型号和功能,如果把所有可能调节方式都罗列到一个答复中,答案就会变得冗长难以理解。另外,如果把所有冰箱型号的调节出行模式都放到知识库问答对中,问答对的数量也将非常庞大,对检索效率也是一个不小的挑战。此外,FAQ对检索精度要求非常高,如果只返回第一个,而第一个答案可能是错误的,可是如果返回多个候选答案,用户面对众多的答案在筛选过程中也会变得烦琐[6]。所以,FAQ系统期望用户能够提供具体详细的信息,以此提高检索的精度。但是对于普通用户可能并不熟悉这样一个复杂的系统,无法给出特定问题描述。
基于任务型的对话系统,可以基于多轮对话技术引导意图模糊的用户逐步达到最终的目标[7],用户提供简短的、不必详细具体的问题描述,系统即可以给出定制化的答案。然而,基于语义框架的任务型对话不仅需要大量的训练数据来训练一个泛化能力强的语义理解模型,而且对话管理系统也很复杂,很难控制领域意图的边界。所以,基于人工设计的任务流方式的对话系统依旧应用广泛,比如,百度的Unit、Google的DialogFlow等系统,不需要过多的训练数据,而且在特定的垂域场景下,对于非技术人员的领域专家,借助图形界面即可以创建场景对话树,更好的设计系统的交互行为[8]。然而,任务型对话系统对于有经验的用户的具体详细的问题,依旧需要进行多轮交互逐步得到期望信息,而不能直接快速地给出答案。
在实际应用系统中,通常会设计一个分类架构将FAQ问答与任务对话组合使用,即训练一个分类器用于判断用户请求属于哪种对话类型,如图1所示,这种方案依旧无法克服两种对话模式的缺点。
针对上述两种对话模式各有的优缺点,本文提出了:1) 一种融合FAQ问答与任务流对话树的方法;并且在该方法中;2) 领域专家依旧专注于创建任务流对话树,系统基于该对话树自动生成模型训练数据;3) 解决了FAQ问答的回复冗长无法定制化问题,同时针对用户提供的模糊信息,保留了对话系统澄清引导的优势,达到最终目标。
1 FAQ问答与任务流对话树融合方法
本文提出的融合方法通过遍历对话树达到目标节点,输出目标节点的内容,只有在必要的时刻向用户提出澄清引导交互,输出定制化回答。
给定一个对话树有向图G:
[G=(V,E)]
其中:
[V]表示所有节点的集合;
[E]表示所有的边集合。
对话树的每个节点定义了两种交互类型ASK和GOTO,ASK表示澄清并输出节点的内容,GOTO表示跳转到下一个节点并输出节点内容。任意节点v所关联的边的集合定义如下:
[Ev=ASKv,GOTOv,vi,...,GOTOv,vk]
其中:
[ASKv=(v,v)] 表示节点v到自身的边;
[GOTOv,vi=(v,vi)] 表示节点[v]到节点[vi]的边。
对话交互过程即是依据用户的输入[U],系统从起始节点[s]开始,找到一条到达目标节点[g]的路径[p]:
[p=(ASKs,GOTOs,vi,...,ASK(g))]
其中[g∈V],要求[|ASKv|v ∈ V ,ASKv∈ p|]最小,如图2所示。
任务型对话是从起始节点开始不断经过中间节点的跳转最终达到目标节点的交互过程。用户输入U与起始节点计算相似度达到阈值则跳转到相邻的中间节点,如果中间节点为ASK类型,则输出节点文本并等待用户再次输入。这个过程中用户不断输入[U1...Un]与中间节点计算相似度,不断跳转到其他节点,最终达到目标节点。
FAQ问答,如果用户输入U与起始节点计算相似度未达到阈值,则按照廣度优先遍历对话树,在遍历过程中,如果节点为ASK类型,则保留节点的答案,并与用户输入U计算相似度。直到在遍历过程中相似度达到阈值,则输出该节点的内容,如果该节点是ASK类型,则等待用户输入,如果是GOTO类型,则继续跳转到中间节点,直到目标节点。如图3,是两种会话方式融合的一个交互例子。
在图3中,是领域专家设计的一个与查询任务有关的对话树,如果用户直接提供具体的详细的输入,系统经过广度遍历计算相似度达到目标节点输出,即虚线路径。如果用户给出模糊的输入,系统会进行多轮引导交互逐步达到目标节点,即实线路径。如果按照传统的分类架构方案,用户的输入“立式带屏幕的空调怎么调节温度”往往会落入到知识问答对检索任务中,给出笼统的概述的输出,而不是定制化的输出。
在遍历对话树节点的过程中,本文采用了SimBERT为相似度计算的基础模型。当对话树创建完成后,反向遍历各个节点的内容(文本和答案),如果是ASK类型节点,则将节点的文本和答案扩展为训练数据。同时引入数据增强模块,对训练数据进行扩充,以提高模型的泛化能力。
2 实验结论及分析
2.1 实验数据集合
通过真实用户后台交互数据,统计了一个月内高频数据,并从中随机抽取了1 000条数据作为对比实验数据集。示例数据如表1所示。
从示例数据中可以看出,用户的问题范围比较发散,设计家电多个功能的查询与控制,能更好地测评系统回答的效果。
2.2 对比试验
为了对比本文提出的方法的有效性,同时在服务器上部署了两个服务,一个是原系统服务,一个是基于本文方法开发的新服务。针对两个服务输入相同的实验数据集,从回答的正确性和定制化友好性两个维度进行人工评测,回答正确得1分,不正确得0分,回答定制化友好得1分,不友好得0分。對比实验得分如表2所示。
通过表2可以看出,在相同的数据集中,基于本文方法开发的新系统,在正确性和定制友好性都有明显提升,尤其是在回答定制友好性方面,提升了157条数据。
针对定制友好性提升显著的数据,本文从句法复杂度方面做了进一步分析,简单句是指句子只有一个主谓宾结构或者动宾结构的句子,复杂句是指含有状语、宾补等成分的句子,含有子句或者多个谓语动词的句子,如表3所示。
通过表3可以看出,在查询功能数据下共提升127条,提升效果明显,说明本文提出的方法能够较好地解决FAQ类型问答输出的答案过于笼统、无法定制化的问题。同时,在复杂的陈述句数据下本文方法也有少量提升,提升效果不如疑问句,是因为原系统服务在陈述句命令控制方面做了长久的研发与优化工作。
3 总结与展望
本文提出了一种FAQ问答与对话树融合的方法,既保留了任务型问答的澄清引导优势,也解决了FAQ问答的回复笼统冗长问题。并且利用实际用户数据训练了一个相似度计算模型,针对用户输入该模型可以兼容一定的噪音数据,整个方案在实际应用中相比传统分类框架取得了较好的效果。但是本文仍旧存在不足,需要再持续研究优化:1) 如果用户输入的是对话树没有设计的内容,模型和框架表现较差,仍旧需要传统FAQ问答对检索方式进行回答;2) 完全基于框架自动生成的训练数据量还不是很充足,为了保证相似度模型的泛化能力需要引入数据增强工作,将来需要研究小样本学习技术,解决该问题。
参考文献:
[1] 车万翔,窦志成,冯岩松,等.大模型时代的自然语言处理:挑战、机遇与发展[J].中国科学:信息科学,2023,53(9):1645-1687.
[2] 李苹.基于深度学习的FAQ问答系统设计与实现[D].武汉:华中科技大学,2021.
[3] 杨帆,饶元,丁毅,等.面向任务型的对话系统研究进展[J].中文信息学报,2021,35(10):1-20.
[4] 王让.基于文本语义匹配的FAQ问答系统的研究与设计[D].北京:北京邮电大学,2021.
[5] WU C H,YEH J F,CHEN M J.Domain-specific FAQ retrieval using independent aspects[J].ACM Transactions on Asian Language Information Processing,2005,4(1):1-17.
[6] THAKUR N,REIMERS N,RÜCKLÉ A,et al.BEIR:a heterogenous benchmark for zero-shot evaluation of information retrieval models[EB/OL].[2022-10-20].2021:arXiv:2104.08663.https://arxiv.org/abs/2104.08663.pdf.
[7] 张新萍.端到端任务型对话系统的研究与实现[D].长春:长春工业大学,2023.
[8] 赵阳洋,王振宇,王佩,等.任务型对话系统研究综述[J].计算机学报,2020,43(10):1862-1896.
【通联编辑:光文玲】