APP下载

具有自主学习与记忆功能的智能政务问答系统研究*

2024-02-17方海泉邓明明

电子技术应用 2024年1期
关键词:客服知识库向量

方海泉,邓明明

(1.浙江工业大学,浙江 杭州 310023;2.浙江大学,浙江 杭州 310058)

0 引言

问答系统可以满足用户快速、准确查找信息的需求,在政务、电商、教育、金融等领域得到广泛应用[1−8]。以问答系统在政务上的应用为例,如:“浙江省民呼我为统一平台”的智能问答系统,以及杭州12345 的智能客服机器人“小杭”,对于公众办事或者咨询问题提供了快速便捷渠道,充分体现了数字技术在政府数字化改革上具有重要的应用价值,可以更好地改善公众参与[9−10]。但是目前的政务问答系统还处在初步发展阶段,用户很多时候更倾向于选择人工客服,政务问答系统还有很大的提升空间。从用户的角度来说,目前的政务问答系统还不够智能。因此,很有必要对现有的问答系统进行改进。

问答系统的种类较多,其中相对简单且常用的问答系统是基于问答对的问答系统,本文以此为研究对象,对基于问答对的问答系统进行智能化升级。如果可行,可以进一步推广到其他类型的问答系统。基于问答对的问答系统的原理是当用户输入一个问题的时候,首先需要在知识库里找到与用户输入的这个问题最相近的问题,然后输出相应的答案。

对于知识库的问答系统,知识库一旦整理好通常是固定的,如果想提升问答系统的性能,需要更新知识库。目前问答知识库更新存在以下几个问题:(1)需要人工整理问答知识库,更新成本较高;(2)更新周期较长;(3)更新的内容缺乏针对性。由于以上原因,现有的问答系统难以满足用户的需求,从而,用户对问答系统的满意度不高。目前的问答系统,当用户没有得到满意答案时,用户需要选择转人工客服才能与人工客服沟通,并且人工客服与问答系统是分开的,信息不能共用。

针对知识库更新难的问题,本文提出了一种自动实时更新知识库的方法。核心思想:当用户问一个问题,问答系统如果能给出答案,则自动输出答案。如果问答系统没有答案,则把这个问题自动发送给人工客服,人工客服回复之后,一方面把答案发送给用户;另一方面,本文构建的问答系统可以把这个问答对自动实时更新到知识库里,下次其他用户问到类似的问题,问答系统就能自动给出答案了,从而使得问答系统具有自主学习与记忆功能。由此,人工客服要做的工作会越来越少,问答系统能回答的问题越来越多,越来越智能。

1 相关研究

本节分为两部分,包括知识库的构建和问答系统建模。

1.1 知识库的构建

早期知识库的构建都是通过人工整理。人工整理和维护知识库的成本较高,且针对性较差,制约了知识库的发展。2020 年,Liu[11]等人用自动学习的方法动态更新知识库,并应用于电商领域,对知识库的更新有较大的改进,这个方法能够从历史对话记录中自动提取问答对,但是不能实时更新知识库。

1.2 问答系统建模

基于问答对的问答系统,其构建原理:计算输入问题与知识库里的问题之间的相似度,并将相似度较高的对应答案作为候选答案。在计算相似度之前需要把用户输入的问题以及知识库里的问题分别转为向量,其本质是文本向量化过程,属于人工智能的自然语言处理方向,学术界对于文本向量化有大量研究。

词袋(Bag of Word)模型是最早的文本向量化方法。2013 年,Mikolov[12]等人提出了词向量(word2vec)模型,word2vec 属于神经网络模型,该模型能够从大规模未经标注的语料中高效地生成词的向量,并提供了CBOW(Continuous Bag of Words) 和Skip-gram 两种模型。2018 年文本向量化迎来预训练模型时期,Peters[13]等人提出了ELMO(Embeddings from Language Models)模型,ELMO 采用双向长短期记忆网络(Long Short-Term Memory,LSTM)。2018 年,Radford[14]等人提出了GPT(Generative Pretrained Transformer),这是一种基于单向Transformer 的预训练模型。Transformer 算法由Vaswani[15]等人于2017 年提出。2018 年,Devli[16]等人提出了 BERT (Bidirectional Encoder Representations from Transformers) 模型。2019 年,SUN[17]等人提出了ERNIE模型,其核心也是由Transformer 构成的。2019 年,Radford[18]等人对GPT 改进提出了GPT-2 模型。2020 年,Brown[19]等人提出了GPT-3 模型。2022 年,人工智能研究实验室 OpenAI 上线了聊天机器人ChatGPT,Chat-GPT 是基于GPT-3.5 模型开发的。这些文本向量化方法对于构建问答系统提供了很好的基础。

本研究的创新点主要体现在知识库构建方面,提出了知识库自动实时更新方法。在构建问答系统时选用较为先进的ERNIE 文本向量化方法,因为ERNIE 是基于中文预训练的模型,该方法更适用于中文文本向量化。

2 模型结构

针对问答系统的知识库更新成本高、更新不及时的问题,本文提出知识库自动实时更新的问答系统(Question Answering System with Automatic and Real-time Updating of Knowledge Base,QA-ARU-KB)模型。技术路线如图1 所示,具体算法步骤如下。

图1 技术路线

(1)整理知识库

①根据现有的知识库整理好问答对,问答对是一个n行2 列的矩阵,每一行是一个问题及这个问题的答案,n行表示有n个问答对,把问题列记为Q1,答案列记为A1。

②应用文本向量化方法把每一个问题转为向量,问题列Q1经过转换得到的列向量记为V1。这里的文本向量方法用ERNIE。

③把问题的向量列V1与答案列A1按行拼接成n行2列的矩阵M,把矩阵M定义为知识库。

(2)构建问答系统

①假设用户问了一个问题,用文本向量化方法把用户的问题转为向量h0,计算向量h0与问题的向量列V1(矩阵M的第一列)里的每一个向量的相似度,这里的相似度可以用余弦相似度,得到的相似度构成一个列向量,记为R0。

②选出列向量R0中的最大相似度,判断最大相似度是否大于阈值,阈值可以设为0.8,如果大于或等于阈值,认为匹配到相似的问题,该问题对应的答案可以作为用户提问的答案;如果最大的相似度小于阈值,说明知识库里没有答案。

(3)用户与问答系统交互

当用户输入一个问题,经过步骤(2)中问答系统的计算,结果有两种可能:

①问答系统能够给出答案,把答案输出给用户,同时询问用户对这个答案是否满意。如果用户选择“满意”,则不用处理;如果用户选择“不满意”,则说明这个问题的答案需要更新,把用户提的这个问题发送给人工客服。

②问答系统没有答案,提示用户“我把您的问题发给人工客服,稍后回复您”。问答系统自动把用户提的这个问题发送给人工客服。

(4)人工客服与问答系统交互

当人工客服收到问答系统发送过来的问题,判断这个问题是否属于业务范围内的问题:如果属于,则人工客服可以进行回答,然后把答案发送给用户,同时把这个问答对发送到问答知识库;如果不属于,则人工客服不用回答,并且可以删除无效问题。这一步需要用到人工客服的专业知识。

(5)知识库自动实时更新

知识库收到人工客服发来的问答对,这个问答对包括用户提的问题w和人工客服回复的答案d。这个问答对的问题w有两种可能性:一种是知识库里没有出现过的新问题;另一种是知识库里已有的问题,但是用户对这个答案不满意,需要更新。对此有两种不同的处理方式:

①对于知识库里没有出现过的新问题,知识库更新方法如下:

a.用文本向量化方法ERNIE 把这个问题w转为向量,记为向量m;

b.把向量m拼接到向量V1的最下方,得到的向量列仍然记为V1;

c.把问答对的答案d拼接到答案列A1的最下方,得到的答案列仍然记为;

d.把问题的向量列V1与答案列A1按行拼接成(n+1)行2 列的矩阵,得到更新后的知识库,仍然记为M。

②对于知识库里已有的问题,知识库更新方法如下:

a.用文本向量化方法ERNIE 把这个问题w转为向量,记为向量m;

b.把向量m与问题的向量列V1计算余弦相似度,找到相似度最大的向量的位置z。

c.对知识库位于位置z的问答对进行更新,更新方法:对于向量列V1的位置z,在该位置用向量m替换之前的向量,得到的向量列仍然记为V1;对于答案列A1的位置z,在该位置用答案d替换之前的答案,得到的答案列仍然记为A1;

d.把问题的向量列V1与答案列A1按行拼接成n行2列的矩阵,得到更新后的知识库,仍然记为M。

经过以上步骤,在用户、问答系统、人工客服交互的过程中,知识库可以自动实时更新,以后其他用户问到类似问题,问答系统可以实时给出答案,能回答的问题会越来越多,相当于具有记忆功能,而人工客服需要回答的问题会越来越少,从而既能减少人工的工作量,又能提升用户的满意度。

3 实验与分析

知识库自动实时更新的问答系统需要依赖用户、人工客服与问答系统交互,如图2 所示,用户把问题发给问答系统,问答系统如果有答案则直接回复;如果没有答案,则把问题发送给人工客服。人工客服收到用户的问题可以进行回复,回复后用户可以实时看到答案。同时,问答系统可以获取到这个问答对并实时更新到知识库。

图2 用户、人工客服参与的问答系统

为了更好地理解和体验问答系统的效果,本文构建了一个政务问答系统,知识库是关于政务方面的问答对,构建的政务问答系统已发布到互联网上,从而可以在线体验知识库自动实时更新的问答系统。

3.1 整理知识库

数据来源选自“浙江省民呼我为统一平台”网页,进入该网页的“我要咨询”可以看到一个智能问答系统界面,地点可以选择浙江省各个地市。以选择杭州市为例,可以咨询户籍及身份证、出入境、五险一金、车驾业务、公司企业团体、职业证件、人生周期、部门职责等方面的问题。以此为数据源,从中选取并整理了400 个问答对作为知识库。用ERNIE 方法把问题列转为向量。

3.2 构建问答系统、用户端、人工客服端并部署程序

按照本文第2 节提出的算法构建模型,问答系统用Python 程序实现,用户端、人工客服端用Vue 实现,通过互联网把用户端、问答系统、人工客服端三部分集成起来,实现数据互通,并通过docker 部署程序,计算机系统采用Linux 系统。在用户和人工客服的参与下,可以实现知识库自动实时更新的问答系统。

3.3 网页界面

为了体验知识库自动实时更新的问答系统,本文构建了用户端和人工客服端的两个网页界面。

用户端网址为:http://www.algstar.com/Upload?type=9。

用户端网页界面如图3 所示,用户可以输入想问的问题,如果问答系统有答案会直接输出答案,并询问用户对该答案是否满意。如果问答系统没有答案,问答系统会输出“我把您的问题发给人工客服,稍后回复您”。例如当用户问“杭州西湖区政务服务中心在哪里?”,问答系统暂时没有答案,系统会把问题自动发送给人工客服。

图3 用户端网页界

人工客服端网页界面如图4 所示,如果一个问题属于业务范围内的问题,人工客服可以回复该问题,需要先点击该问题,然后回复并点击“发送”,用户可以实时看到人工客服回复的答案;如果该问题不属于业务范围的问题,人工客服可点击删除。对于这个例子,人工客服回复:“ 杭州市西湖区文一西路858 号”。

图4 人工客服端网页界

当人工客服回复了问题,问答系统会自动实时把答案发送给用户,用户能看到人工客服的回复。这个问答对会自动实时更新到知识库。之后,当其他用户问到类似的问题,问答系统可以实时给出答案,无需再问人工客服了。如图5 所示,当用户问“请问西湖区政务服务中心地址?”,问答系统自动回复“杭州市西湖区文一西路858 号”。由此说明,构建的问答系统具有自主学习与记忆功能,使用越久,会越智能。另外,问答系统自动回复了问题的同时,还会进一步问用户对该答案是否满意,用户可以反馈意见。值得一提的是,构建的问答系统应用了文本向量化方法,通过计算向量相似度可以实现更好的匹配,不要求每一个字完全对应,问答系统具有较好的语言理解能力。

图5 用户端收到答案,再次问类似问题可自动获得答案

3.4 后台系统

在后台系统,可以查看实时动态更新的知识库,后台系统显示的部分知识库样例如图6 所示,每一个问答对包括问题和答案。

图6 后台系统显示的知识库样例

3.5 分析与讨论

本文构建的政务问答系统以用户为中心,充分考虑用户的需求。当用户问的问题得不到满意的回复,系统会及时获取用户的提问并发送给人工客服,人工客服利用专业知识回复并发送给用户。同时,系统自动获取该问答对,并实时更新到知识库。之后,其他用户问到同类问题,系统能自动回复,人工客服无需回复重复的问题。整个问答系统构建的思想是人机结合,使得问答系统更加智能,更能满足用户的需求。

4 结论

针对政务、电商、金融等专业性较强的领域,传统的问答系统知识库更新困难,本文通过构建知识库自动实时更新的问答系统(QA-ARU-KB)模型,让用户和人工客服可以实时沟通,并把沟通的信息实时保存到知识库,使问答系统实现自主学习与记忆功能。

本文方法的优点:(1)问答系统的知识库可以自动实时更新,从而使得问答系统具有自主学习与记忆功能。该方法适用于专业性较强的领域,如政务、电商、金融等,这些领域需要人工客服的专业知识,不是Chat-GPT 所能替代的。同一个问题,人工客服只需要回答一次,问答系统就能记住,这样人工客服就不用做重复的工作。(2)给用户提供了反馈意见的机会,充分吸收人的智慧,从而更加智能。用户如果对答案不满意可以点击“不满意”,这样可以对知识库里已有的问答对更新,在用户和人工客服的交互下,知识库的更新更有针对性,从而构建出以用户为中心的问答系统,让用户满意的问答系统。

本文提出的方法目前只适用于基于问答对的问答系统,其他类型的问答系统有待进一步研究。未来可以把本文方法与ChatGPT 结合起来。目前的问答系统是文本交互,可以增加语音识别、语音合成功能,实现语音交互。

猜你喜欢

客服知识库向量
向量的分解
聚焦“向量与三角”创新题
语音推销
基于TRIZ与知识库的创新模型构建及在注塑机设计中的应用
敬业的客服
高速公路信息系统维护知识库的建立和应用
向量垂直在解析几何中的应用
向量五种“变身” 玩转圆锥曲线
基于Drupal发布学者知识库关联数据的研究
基于广东“一张网”对内客服模式的探讨