何国对,黄容鑫,黄伟刚,李 航,覃 晓**,元昌安,施 宇,廖兆琪
(1.南宁师范大学计算机与信息工程学院,八桂学者创新团队实验室,广西南宁 530000;2.广西科学院,广西南宁 530007)
问答系统(Question Answering System,QA)是人工智能和自然语言处理领域中一个倍受关注并具有广泛发展前景的研究方向[1],它能用准确、简洁的自然语言回答用户用自然语言提出的问题。旅游是问答系统的一个重要应用场景。一个完善的旅游知识问答系统,能够帮助人们在旅游前、旅游中,通过询问快速获得旅游资讯、了解旅游目的地的文化和特色旅游资源,对游客、管理部门和商家而言,都具有重要的应用价值。然而,当前针对旅游行业的知识咨询现状却难以令人满意:一方面游客对旅游地的文化知识和旅游资讯的咨询需求不断增大[2];另一方面,由于各个地方在旅游知识自动问答系统的建设方面投入不足,当前的咨询服务还停留在依靠用户独自在网上搜索碎片化信息阶段,远远不能满足用户的需求。
知识图谱技术[3]能够把大量不同种类的信息链接在一起,使其形成一个关系网络,为人们提供从“关系”角度分析问题的能力。当前,基于知识图谱的问答系统已经在油茶产业[4]、苹果种植销售产业[5]、水利信息管理[6]等方面得到充分研究和应用,而知识图谱所具备的推理功能,更是让其在新冠肺炎智能辅助问诊系统[7]、军事装备知识问答系统[8]、中医药知识问答与辅助开药系统[9]中表现出令人惊喜的效果。
大部分领域构建知识图谱和问答系统是希望通过构建知识库来提高领域知识的检索效率,同时辅助推理、决策等行为,这也是各个领域智能化的基本需求。知识图谱技术是领域智能化的一条路径,旅游领域的智能化无疑也需要借助知识图谱来实现。旅游领域的知识图谱可以用来辅助各种复杂的旅游应用分析,同时也可以对用户进行个性化的路线推荐[10,11]。广西是一个多民族聚居的地区,壮、汉、苗、瑶、侗等多个民族都在此地居住[12],各个民族都有着悠久的历史和灿烂的文化,在语言、社交、婚姻、服装、饮食、建筑等文化上各具特色,又相互交融。利用广西民族文化知识图谱,构建一个知识问答系统,对人工智能助力广西旅游业的发展而言,无疑是一项具有重要意义的工作。
本研究构建的广西文化旅游问答系统,基于南宁师范大学“全域数字文化旅游智能服务技术研发及应用”项目团队所构建的广西民族文化知识图谱,知识图谱的部分内容如图1所示。该知识图谱的实体包含具有广西民族文化色彩的旅游景点、民族、民族文化、民族节假婚庆、民族服饰等概念,每一类概念下存储多个实体及实体关系。以民族服饰为例,其中包含广西各民族的服装、头饰、鞋子、帽子等实体,实体关系包含民族、支系、历史、服装部件、服装特点、穿着人群、相关人物、相关传说等。
广西民族文化知识图谱实体与实体关系以三元组(ei,rs,ej)的形式存储于neo4j数据库中,其中,ei,ej分别表示实体i和实体j,rs表示实体i和实体j之间的关系。例如:三元组(香粽,食材,糯米)中,香粽和糯米为两个实体,食材为关系,表示糯米为香粽的食材。知识图谱中实体、实体关系均以单词方式存储,其中表示关系的单词称为关系词。
广西民族文化知识图谱建立了广西旅游景点、民族和民族文化的关联性,将三者之间的关联关系可视化,实现知识的关联与挖掘,使得这些民族旅游文化不再是数据孤岛,为基于广西民族文化知识图谱的问答系统的构建奠定了数据和技术基础。
图1 广西民族文化知识部分数据可视化结果
基于广西民族文化知识图谱的问答系统,主要有3个核心模块:(1)基于BERT的命名实体识别模块(BERT based Entity_identification Model,BEiM),(2)基于模版的关系抽取模块(Template based Relationship_extraction Module,TReM),(3)基于知识图谱的匹配推理模块(Knowledge Graph based Matching Module,KGMM)。BEiM模块主要功能:对给定对询问语句,识别出其中对实体词,帮助问答系统理解询问主体(即确定询问的范围)。TReM模块通过对询问句的关系抽取,完成对询问句的语义解析,帮助问答系统理解询问的语义(即确定询问的内容)。KGMM模块则是在广西民族文化知识图谱之上,构建查询匹配语句,完成针对询问句的匹配推理解答。
以在文化旅游问答系统询问“你知道丹洲书院在哪里吗?”为例。对于问句“你知道丹洲书院在哪里吗?”,问答系统首先通过命名实体识别模块BEiM确定问句中所提及的实体“丹洲书院”,然后通过关系抽取模块TReM确定问句所问的意图,既确定问句所涉及的关系“具体位置”,最后通过匹配推理模块KGMM将“丹洲书院”与“具体位置”映射为知识图谱的结构化查询,并在知识图谱中最终确定问句的目标实体为“丹洲古镇”(图2)。
以下详细介绍3个主要功能模块。
图2 基于知识图谱的问答系统执行流程
BERT[13]是一种预训练语言表示的语言表征模型,它是谷歌公司在大量文本语料上训练出来的通用的“语言理解”模型。BERT模型的核心功能是对输入的自然语言语料进行分析。在分析基础上将文本中各个字或词的一维词向量作为输入,经过一系列复杂的转换后,最终输出每个词的一维词向量表示,即BERT会对句子中的每个词作处理,并得到每个词最终的语义表示。对BERT的输出层进行微调,可以使其适应不同的文本分析需求,因此能够灵活应用于问答任务和语言推理,无需针对具体任务做大幅度架构修改。
基于BERT的强大功能,本研究设计并实现了基于BERT命名实体识别模型BEiM。对于询问句S,假设经过BERT模型处理后,得到S的字符集合为(S1,S2,…,Sm),字符集合中的任意一个Si代表输入的字符i的词向量。词的类别按命名实体识别约定,分为B-PER、I-ORG、E-PER、O 4类,其中B-PER表示字符处在实体字符边界的开始,I-ORG表示字符处在实体的中间,E-ORG表示字符处在实体的结束位置,字符O表示不属于实体的无关字符,BEiM模型可描述如下:
BEiM(S)=MLP(BERT(S))=
MLP(S1,S2,…,Sm)={p(S1),p(S2),…,
p(Sm)},
其中,MLP为对BERT模型的输出作简单全连接的操作,p(Si)为对字符Si类别的预测。
p(Si)=cj,且cj∈{B-PER,I-ORG,E-PER,O},j=1,2,3,4。
从模型描述可知,BEiM分两个阶段对输入的询问句S进行处理。第一阶段,使用BERT对输入的询问句S的每个字符进行embedding,得到每个字符的向量表示,并将每个字符的embedding输入到Transformer block(Trm)中,Trm会计算句子中所有词对当前输入词的贡献,再根据得到的信息对当前输入词进行编码,获得询问句词向量(S1,S2,…,Sm)。第二阶段,采用MLP对词向量的类别进行预测,对获得的词向量(S1,S2,…,Sm)作全连接操作并进行多层感知机权重的调整。图3给出BEiM的架构,并说明询问句“丹洲岛上有什么”的处理过程。
图3 BEiM架构图
关系抽取是问答系统中帮助系统理解询问句语义的环节,只有理解并获取了询问句中的语义关系,才能把该关系映射到知识图谱中,最终获取答案。
为方便说明TReM构建方法,下面先对相关概念进行定义和描述。
设在领域知识图谱中,共定义了n个关系,则可将关系集记为R={r1,r2,…,rn}。其中fr(wri)=rj表示从关系词wri到关系rj的映射。假设知识图谱中存储的关系词数目为m,则m个关系词构成集合WR。
定义1(关系词集合) 由广西民族文化知识图谱中所有关系词构成的集合,记为WR:
WR={wri|fr(wri)=rj,i∈[1,m],j∈[1,n],m>n}。
由知识图谱的特性可知,在知识图谱中,关系词的数目m往往大于关系数目n(m>n),因此多个关系词将会被映射到同一个关系。本文将fr函数定义为关系模板,它能将具有同一种语义关系的关系词映射为同一个关系。由n个关系模版构成的集合定义为关系模版集。
定义2(关系模版和关系模版集) 关系模版是指被映射为同一个关系的关系词向量,关系模版集是由所有关系模版构成的集合,记为WRS:
WRS={WRSj|j∈[1,n]}。
则第j个关系模版记为WRSj:
即WRS是由n个不定长的关系模版构成的集合。对于一个关系模版而言,该模版中的所有关系词,均映射到同一个关系中。
TReM的具体实现方法:首先构建广西民族文化知识图谱关系词组集WRS;然后调用分词函数split(),获取询问句分词向量W;最后,在关系词组集中对问句分词向量进行匹配检索,如果检索成功,则问句关系即可判定为匹配关系。TReM算法描述如下:
Template based Relationship_extraction algorithm
input:query senten S,WRS
output:relation of words in S,记为Sr
begin
(1)W:(w1,w2,…,wm)←split(S) //
(2)for i=1 to m do
(3) for j=1 to n do
(4) ifwiinWRSj:
(5)Sr←rj
(6) end for
(7)end for
(8)end
KGMM的主要功能是基于广西民族文化知识图谱,根据BEiM 和 TReM的输出结果,构造Cypher查询模板进行答案的查询。对于问答系统,只要确定查询实体的E,然后再确定查询实体关联关系r,便可构造。构造的查询语句为 “MATCH (n:E)-[re:r]->(s) return s”,该语句通过确定问句的实体E,并通过关系链路r确定答案s,其中查询语句中n:E 表示将实体名称E赋值给实体n,re:r表示将关系名称r赋值给关系链路re。该查询语句会查询与实体E具有关系r的实体并返回。例如:对于问句“你知道丹洲书院在哪里吗?”,确定询问实体“丹洲书院”与实体关系“具体位置”,便可将查询语句构造为“MATCH (n:丹洲书院)-[re:具体位置]->(s) return s”,该语句会匹配与“丹洲书院”具有“具体位置”关系的实体并返回。
至此,本研究介绍了基于知识图谱的广西民族文化问答系统的关键技术。系统的具体实现方法如下:首先构建广西民族文化知识图谱KG关系词组集WRS;然后将问句S输入到BEiM模型,得到问句的询问实体E,再将问句S输入到关系抽取模块TReM,得到关系r,进而将实体E和关系r输入到匹配推理模块KGMM,得到查询语句Q,最后基于语句Q在广西民族文化知识图谱上查询答案t并返回。广西民族文化问答系统模型算法(Knowledge question answering algorithm)描述如下:
Knowledge question answering algorithm
input:query senten S,WRS,KG
output:answer t of KG
(1)E=BEiM(S)
(2)R=TReM(S,WRS)
(3)Q←KGMM(E,R)= ‘MATCH (n:E)-[re:R]->(t) return t’
(4)match t based on Q from KG
(5)return t
对问答系统而言,能否正确识别问句中所询问的实体是问答系统的关键,只有先确定了实体,才能通过关系链路把正确答案找出来,因此命名实体识别模型通常需要达到较高的精度才能投入到问答系统中使用。为此,先对基于BERT的命名实体识别模型(BEiM)进行训练测试,其中训练数据集以及验证集使用的是含有人名、地名、机构名、时间、景点、饮食等实体的标注序列数据,其数据为通用的中文命名实体识别数据集Uniuersal data;同时,对广西民族文化知识图谱中的部分实体数据集进行测试。
本研究使用准确率作为命名实体识别的评价指标。本研究使用BEiM预训练模型来训练中文命名实体识别数据集。BEim对输入字特征进行微调,通过微调可以更好地学习与命名实体相关的特征。从BEiM模型对部分广西民族文化知识图谱实体进行命名实体识别的实验结果可知,BEiM在Universal data验证集上的准确率达到了99.30%,BEiM模型对部分广西文化知识图谱上的命名实体识别精度达到94.45%,完全能够胜任广西文化旅游问答系统的命名实体识别任务。
如表1所示,用户分别询问了景点的票价、旅游地点的美食、景区内的主要景点、当地美食的主要食材等问题,问答系统都能很好地对用户的问句进行解析,并通过广西民族旅游文化知识图谱进行检索,得到了准确的答案,并用精简的方式返回给用户,增强用户的体验感。
表1 问答系统询问测试
本文设计并实现了基于广西民族旅游文化知识图谱的智能问答系统,重点介绍了问答系统中命名实体识别和询问句关系抽取关键技术。在实现的智能问答系统上进行询问测试,其结果表明系统能够准确解析询问句子,从知识图谱中检索到准确答案,并以简洁的实体树形式展示。该智能问答系统不足之处在于:基于模版的命名实体识别方法需要构建大量的关系词组模版,才能保证将用户的问句映射为知识图谱中的关系,而手工构建关系词组模版将导致高额的系统构建代价。因此在下一步工作中,可以设计一套完整的映射模型,将用户问句自动映射到知识图谱中的关系列表中,从而提升系统的智能程度,降低系统构建代价。