基于检索和深度学习模型的 问答机器人设计与实现

发表时间:2020/9/7   来源:《教学与研究》2020年11期   作者:由峰
[导读] 问答机器人不仅可以降低人工成本,还能大大提高企业的工作效率,
        摘要: 问答机器人不仅可以降低人工成本,还能大大提高企业的工作效率,在运营商、电商等领域发挥着重要的作用。目前,问答机器人的技术一般是基于检索模型进行构建,在复杂多变的场景下存在反应慢、理解能力差、机械式回答等缺陷。本文本文创新性的提出使用深度学习模型与检索模型相结合的方案,解决了目前方案存在的实体提取失败的场景及长尾问题,提高了问答机器人回答问题的准确度。

        关键字:人工智能;问答机器人;自然语言

1.引言
        近几年,随着人工智能领域的迅速发展,各种聊天机器人、智能助手、问答机器人、智能客服等产品层出不穷,帮助用户在各个领域完成任务。聊天机器人是希望通过人工智能的方法模拟人类对话的计算机程序。
        “人工智能之父”图灵对于机器能否思考的设问开启了人们对于聊天机器人相关的研究工作,由他提出的经典的图灵测试也被认为是人工智能的终极目标。一般来说,聊天机器人可以分为两类:问答机器人和闲聊机器人两种。闲聊机器人比较具有代表类型的有微软小冰、苹果siri、小黄鸡、百度小度等等,主要的目的是通过聊天的方式满足用户的沟通、情感的需求;而问答机器人主要的目的是理解并回答用户提出的问题,这些问题通常属于特定领域和特定场景,侧重于事实性问题或者需要计算和推理类型的问题。
        问答机器人的技术一般是基于检索模型进行构建,即:给定一个问题检索模型会从问答知识库中检索最相近的问题,然后找出对应的答案。但是当检索模型遇到未登录词、歧义词、同义词、停用词去除不完全等情况时,就会无法匹配到答案。为了解决上述问题,本文创新性的提出使用深度学习模型与检索模型相结合的方案。该方案主要包括两个部分:基于检索模型和基于迁移学习的神经网络模型。
2.整体架构与具体算法
        从应用领域上,聊天机器人划分为封闭域和开放域,即问答机器人和闲聊机器人。闲聊机器人主要应用在情感陪护类场景,主要使用生成算法进行答案的生成。生成算法是通过学习问答对中每个词的出现概率,得到预测生成文本的概率,常见的算法如seq2seq、seqGAN等。由于闲聊场景对于回答精度的要求并不是很高,适用于生成算法去生成答案,但是该方法对于封闭领域,需要准确回答问题的场景来说并不适用。本文主要是针对封闭领域的问答机器人在实际应用中遇到的瓶颈和问题进行优化。
2.1 整体框架
        目前对于问答机器人来说,一般方法是基于检索模型与知识图谱相结合的方法:检索模型主要用于在知识图谱中搜索出与原始问题最为相近的k个问题。为了实现这个功能,首先需要对知识图谱的问题进行分词处理。然后需要创建一个单词到问题的反向索引。当接受到用户提出的问题时,首先需要分词,然后去除停止词,扩展同义词,然后用这个新的集合来检索答案。这里实际问题与知识库中问题的相似度计算采用了BM25或者tf-idf算法,最后将相似度最高的答案,作为最终结果输出。
        本文在上述方法的基础上,提出了一种基于检索模型和深度学习模型相结合的方法,架构如图1所示:
       
图1 问答机器人整体架构

        如架构图1所示,本方案不仅使用深度学习算法双向lstm作为标注模型,还使用了crf算法作为判别模型,通过bi-lstm + crf 相结合的方式进行命名实体识别(NER)。在实体提取完成后,我们将提出出来的实体转换成知识图谱能识别的查询语句(如cypher或SPARQL)进行查询,若我们得到查询结果则输出答案;若因为未登录词、停用词等因素未能查询到结果,则使用基于bert的句子相似度算法,通过句子相似度在知识图谱中匹配答案,给出相似问题。下面具体介绍各模块信息。
2.2 检索模型
        基于检索模型回答问题的前提是完成对应领域的知识图谱的构建,构建方法有很多种,可以通过知识抽取、人工标注等方式,具体方式在这里不再赘述,构建完成的知识图谱以三元组的方式进行存储,常用的存储引擎有neo4j、jena等。例如:刘小绪生于四川,在这句话中实体为:四川(地名),刘小绪(人名),核心关系:生于,在知识图谱的三元组表示为:(刘小绪,生于,四川)
        在接收到用户问题后,首先通过检索模型进行答案的检索过程,具体步骤如下:
(1)首先,当接受到用户问题后,我们需要提取实体和关键词,例如用户的问题是:刘小绪生于哪里?我们提取的实体和关键词为刘小绪和成语。
(2)当完成实体提取后,我们需要去知识图谱中进行检索,以neo4j为例,我们使用CQL语法进行查询,在上个例子中,使用“刘小绪”和“生于”这两个词在知识图谱中进行查询,即可得到:四川。
        在下面将针对命名实体识别的算法及知识图谱检索方法进行详细介绍。
2.3 深度学习模型
        深度学习受启发于人脑相互交叉关联的神经元,模仿人脑架构出一个含有多隐层的机器学习模型。在此模型中建立一个与人脑类似的神经网络来分析、存储和处理数据,深度学习的本质是模仿人脑的多层抽象机制为大规模数据建模提供解决方案。
        深度学习最有代表的两个模型为卷积神经网络(CNN)和循环神经网络(RNN),前者主要应用在图形图像领域,后者由于其序列化特质所以在自然语言领域也应用十分广泛。近两年自然语言处理(NLP)领域发展迅速,从循环神经网络rnn、长短记忆神经网络lstm、ELMo、transformer到bert,NLP领域取得了解决记忆消失问题,增加attention注意力机制,融合语意理解等里程碑进展,随着2018年谷歌开源了bert模型,使得NLP又上了新的一个台阶。
        本文将使用bert算法进行句子相似度判定,找出与用户问题相类似的候选答案,解决检索模型中实体提取、未登陆词等问题。下面将对基于bert的句子相似度算法进行详细阐述。
2.3.1 bert算法
        BERT的全称是Bidirectional Encoder Representation from Transformers,即双向Transformer的Encoder。bert模型的核心在于借鉴了图形图像领域的预训练方法,即用了Masked LM(遮盖法)和Next Sentence Prediction(下一句预测)两种方法分别捕捉词语和句子representation。
1.bert的模型结构
        bert模型结构如图2所示,与OpenAI GPT相比,bert是采用的双向transformer链接;与ELMo相比,虽然都是“双向”,但目标函数其实是不同的。ELMo是独立训练representation然后拼接,而BERT则是以多个representation作为目标函数训练LM。
       
图2 bert模型结构
2.embedding 词嵌入

        bert的词嵌入方法由三种embedding求和而成,如图3所示:

图3 embedding 结构
        CLS:每个序列的第一个 token 始终是特殊分类嵌入(special classification embedding),即 CLS。对应于该 token 的最终隐藏状态(即,Transformer的输出)被用于分类任务的聚合序列表示。如果没有分类任务的话,这个向量是被忽略的。
        SEP:用于分隔一对句子的特殊符号。有两种方法用于分隔句子:第一种是使用特殊符号 SEP;第二种是添加学习句子 A 嵌入到第一个句子的每个 token 中,句子 B 嵌入到第二个句子的每个 token 中。如果是单个输入的话,就只使用句子 A 。
3.预训练模型
        这一块内容是BERT的核心创新部分。作者使用两个新的无监督预测任务对 BERT 进行预训练。第一个任务是 Masked LM,第二个是 Next Sentence Prediction。
(1)Masked LM(遮盖语言模型)
        为了训练深度双向表征,bert算法采用了一个直接的方法,即:随机的掩盖一定比例的输入字词token ,然后只预测这些被掩盖的字词token。作者将这个过程作为 Masked LM,也被称为 “完形填空”。在这个任务中,被掩盖的字词的最终隐藏向量将被输入到词汇表中的输出 softmax 层,就像标准的语言模型一样。
(2)Next Sentence Prediction(下一句预测)
        很多重要的下游任务,像问答任务(QA)、语意推断(NLI)等都是基于理解两个句子之间的关系。这种句子之间的关系不能够被语言模型直接捕获。为了训练理解句子关系的模型,bert预先训练二进制化的下一句子预测任务,该任务可以从任何单词语料库中简单的生成。具体来说,当为每个预训练样本选择句子 A 和 B 时,50% 的时间 B 是跟随 A 的实际下一个句子,50% 的时间是来自语料库的随机句子。
2.3.2 基于bert的句子相似度模块
        上文阐述的属于bert模型核心算法部分,当我们使用bert进行词向量编码后,我们就会执行具体的下游任务,在本文我们使用bert进行句子相似度任务,这部分被称为Fine-tuning过程,即需要针对预测任务进行调整。
        例如,我们使用bert-as-service将两个句子转为向量表示,我们便可以通过余弦cos计算相似度。

3.实验与分析
        使用本文方案设计并实现问答机器人已经落地应用,作为平台智能问答助手向用户解答在使用平台过程中遇到的问题。
4.结束语
        针对问答机器人目前常用的检索模型存在的问题,本文创新性的提出使用深度学习模型与检索模型相结合的方案,解决了在问答机器人领域存在的实体提取失败的场景及长尾问题,提高了问答机器人回答问题的准确度。

作者简介:
由峰(1965),男,学士,主要从事大数据及人工智能方向的教学和研究

投稿 打印文章 转寄朋友 留言编辑 收藏文章
  期刊推荐
1/1
转寄给朋友
朋友的昵称:
朋友的邮件地址:
您的昵称:
您的邮件地址:
邮件主题:
推荐理由:

写信给编辑
标题:
内容:
您的昵称:
您的邮件地址: