时间:2024-05-04
李东奇 李明鑫 张潇
摘要:知识库问答是当今自然语言处理的热门研究方向,它允许用户输入自然语言问句,问答系统分析问句、查询知识库并智能返回给用户答案,无须用户进一步查询搜索。开放域问答更加拓宽了用户查询的知识领域范围。如何准确处理用户输入的自然语言问句并在知识库中进行推理是知识库问答的难题之一。文章主要研究并讨论了知识库问答的命名实体识别和关系抽取,这些任务主要应用了深度学习技术。
关键词: 知识库问答;命名实体识别;关系抽取;深度学习;自然语言处理
中图分类号:TP311 文献标识码:A
文章编号:1009-3044(2020)36-0179-03
Abstract: Knowledge base question-answer is a popular research direction in natural language processing. It allows users to input natural language questions. Question answering system can analyze questions, query knowledge base and return answers to users intelligently without further query and search. Open domain question-answer widens the scope of user query knowledge. How to deal with the natural language questions input by users accurately and reasoning in the knowledge base is one of the difficult problems in the knowledge base question answering. The paper mainly studies and discusses named entity recognition and relation extraction of knowledge base question-answer. These tasks mainly apply deep learning technology.
Key words:knowledge base question answer; named entity recognition; relation extraction; deep learning; natural language processing
1 研究背景
随着信息社会的不断发展,产生的信息量日益指数型增长,人们需要从这繁杂的信息中獲取有用的信息,从早先的分类目录网站到现在的基于文本和超文本链接的搜索引擎,人们在不断地寻找更有效的信息检索方式。自动问答系统被视为下一代搜索引擎的发展方向之一,它不同于传统的多局限于对提问信息的关键词进行检索并只能返回答案列表的搜索引擎;问答系统能对提问信息的语义进行理解,并返回更精确并符合语义的答案信息。根据信息来源、问答范围、会话管理等不同的分类标准可对自动问答系统进行不同的分类。以信息来源为标准,可将问答系统分为利用特征提取技术如模式识别、文本统计等提供语义推理的检索式问答系统;以问答社区用户互动为形式,在提供答案前对其进行专家推荐、相似度检索、质量评估等处理的社区问答系统;以结构化的知识库为核心,对提问文本进行语义解析与理解后基于对知识库中的知识进行抽取而获得答案的知识库问答系统。本文将聚焦于知识库问答技术[1]。
2 知识库问答技术现状
知识库又名知识图谱,其本质是一种存储结构化数据的语义网络。通常知识库使用结构化的
针对知识库问答系统的构建,现行的主流方法有逻辑表达式、信息抽取、向量建模等方式。基于逻辑表达式的方法对自然语言通过语义解析的方式转化为可供机器理解的形式化逻辑表达式,如lamda、查询语句等,传统的此类方法需要大量的人工标记的数据进行模型训练,近年来的研究更倾向于训练语义理解器或构建查询图的方式来简化语义理解过程。基于信息提取的方法致力于从提问信息中提取实体以其为中心获得拓展知识子图并经过分析得到答案的信息抽取方法,其主要步骤分为命名实体识别、关系抽取、候选答案筛选等;基于向量建模的方法则先获得粗略的候选答案,并在向量空间中使用经过大量数据训练的模型对候选答案进行打分并返回答案。
近年来随着LSTM、注意力机制等深度学习方法的出现与应用,结合了神经网络方法的知识库自动问答系统在性能上展现出了令人惊艳的效果提升。这种方法大多将神经网络模型用于不同方法的子步骤上,以贪心思想在每一步骤获得最优解后以期获得综合后的最优解,然而此种方法也会在一定程度上丢失不同环节之间的联系。
基于知识库的问答系统早期多在垂直域的专用数据库上进行应用,近年来随着以YAGO、DBpedia为代表的开放域知识库的拓展和深度学习等方法的发展与应用,基于开放域知识库的问答系统研究取得了较大的进展,而垂直域数据库由于受限于其自身的特性,无法适配现有的表现较好的问答模型,近五年来鲜有进展[2]。
本文讨论了一种基于信息抽取的知识库问答构建方法,在命名实体识别、关系抽取、候选答案筛选等环节结合应用不同的神经网络模型以期获得组合后的最优解。
3 相关算法
如图1所示,本文所述的知识问答框架包括3个任务:命名实体识别、关系抽取和答案选择。 命名实体处理和关系抽取算法模型依次处理用户输入的问句,将识别出的实体(人名、地名等)与关系对应到知识库的相应三元组中,经过答案选择得到答案,返回给用户。
本文使用的是NLPCC(Natural Language Processing and Chinese Computing,CCF国际自然语言处理与中文计算会议)开放的开放域中文知识库及相关数据集[3],知识库中存储着一条条三元组,三元组为结构化的<主体,谓词,客体>,如<李明, 出生日期,1963.1>。该知识库中存在一些噪音,如主体、谓词中的空白字符和多余字符。
3.1 命名实体识别
命名实体识别是知识库问答乃至自然语言处理技术中的关键技术,在句子或词组中一般有一个或多个“命名实体”,此处“命名实体”主要指人名、地名、机构名和时间日期等。命名实体识别技术就是将句子中的若干名词识别出来,有时还要指明识别出的名词的类别,如上述的人名、地名等名词类别。命名实体识别有若干种方法,本文重点讲解基于统计学习的Bi-LSTM-CRF(Bidirectional Long Short-Term Memory-Conditional Random Field, 双向长短记忆网络-条件随机场)模型。
命名实体识别本质上是一种序列标注的任务,即将输入的语言序列转化为标注序列。本文对于命名实体识别采用BIO标注,命名实体的起始字标注为“B”,实体中的非起始字标注为“I”,不在实体中的字标注为“O”。
Bi-LSTM-CRF模型首先接收输入一个句子中的各个单词(在中文中表现为一系列汉字),然后向CRF层中输入Bi-LSTM层中输出的预测分数,最终选择得分最高的作为最佳标签。该模型的大致结构如图2所示:
输入层:每个汉字映射为一个m维向量,即词向量,如果一个句子的最长长度为n个汉字,那么将向模型输入n*m的矩阵。其中词向量可使用简单的独热向量(one hot vector),也可使用经过预训练的词向量模型,如word2vec模型[4],以增加训练出的模型的准确性。
Bi-LSTM层:LSTM的核心主要是以下结构:遗忘门、输入门、输出门以及记忆Cell输入门与遗忘门两者的共同作用就是舍弃无用的信息,把有用的信息传入到下一时刻。对于整个结构的输出,主要是记忆Cell的输出和输出门的和输出门的输出相乘所得到的。其结构用公式表达如下[5]:
其中,[σ]是激活函数,[W]是权重矩阵,[b]是偏置向量,[zt]是待增加的内容,[ct]是[t]时刻的更新状态,[it],[ft],[ot]分别是输入门、遗忘门及输出门的输出结果,[ht]则是整个LSTM单元[t]时刻的输出。
单向的LSTM层无法同时处理上下文信息,于是便有了Bi-LSTM神经网络。 其思想是通过前向LSTM和后向LSTM两层来收集句子的前向和后向信息,每一个时间步都对应着上下文信息。 在命名实体识别任务中,Bi-LSTM网络输出字符到各标签的打分。
CRF层:Bi-LSTM可处理长距离的上下文信息,垂直预测字符到标签的打分,但无法平行处理相邻标签的关系。 CRF(condition random field, 条件随机场)则弥补了这项缺点。 让[X=(x1,x2,…,xn)]和[Y=(y1,y2,…,yn)]分别为输入序列和输出序列,根据Markov性质[6],模型的表达式如下。
经过Bi-LSTM-CRF模型,可以得到各字符的标签最大分数序列,由此可标注出句子中的人名、地名等命名实体。 需要注意的是,一个命名实体可能包含多个命名实体,我们可以简单取其中单词长度最长的实体,也可通过实体消歧进行进一步的处理,这里不再详细讨论。
处理得到的候选实体[e]不一定能够准确映射到知识库中存在的实体,因为一种命名实体可能有多个别名,得到的候选实体可能只是知识库中三元组主体的别名。根据NLPCC随知识库提供的别名文件“nlpcc-iccpol-2016.kbqa.kb.mention2id”,里面提供了知识库所有实体的别名,据此建立别名字典[7],可以实现实体映射,得到对应于知识库三元组的实体[e]。
3.2 关系抽取
在关系抽取算法中,我们应用BERT(Bidirectional Encoder Representations from Transformers)模型。BERT模型是一个双向多层的Transformer[8]编码器,它的输入是一个字级别的单词序列,该序列可为完整的一个句子或者一对句子(词组),如果是一对句子(词组),则它们被一个特殊的符号[SEP]隔开。 输入的模型除了字向量,还可以是段向量和位置向量。 输入序列的第一个单词总是一个表示分类的符号[CLS],最终对应这个特殊符号的隐藏状态可被用作分类任务[9]。BERT模型是通过词掩盖预测和句子级别的连续性预测两项无监督学习任务,在专用TPU上进行预训练。 经过微调(fine-tuning)后,預训练的BERT模型可被大范围用在各种自然语言处理的任务中。
BERT模型使用多个双向Transformer编码器,每个单元主要由自注意力机制(Self-Attention)和前馈神经网络(Feed Forward)组成。Transformer使用了自注意力机制代替了传统的CNN和RNN神经网络。关于BERT模型更多的讨论请参考[10]。
根据命名实体识别,我们得到了问句中的(唯一)实体[e],根据实体查询知识库,可以得到一系列候选关系[R=(r1,r2,…,rm)],我们可以将关系抽取当作分类任务,当问句匹配对应的候选关系时,标签为“1”,反之则为“0”,所以将问句[Q]和候选关系[ri]拼接为[[Q;ri]],并输入到BERT算法模型,输出二分类的概率分布[pi]:
3.3 答案选择
根据上述方法找出的问句中的实体[e]和关系[r],查询知识库中对应的三元组[
4 结语
本文首先陈述了知识库问答的模型框架,然后依次讨论了其中命名实体识别、关系抽取等任务的算法。这些算法应用了越来越多的深度学习技术,在知识库问答领域中有重要的地位。开放域的知识库问答技术具有重要的研究价值和生产实际价值,它使用户能快速获取多领域的浅层知识,提高获取信息的便捷度。在中文知识库问答中,中文知识库的构建也是目前重要的研究发展方向和难题,相信未来研究人员能够有更多的进步与创新。
参考文献:
[1] 郭天翼,彭敏,伊穆兰,等.自然语言处理领域中的自动问答研究进展[J].武汉大学学报(理学版),2019,65(5):417-426.
[2] 胡楠.基于开放领域知识库的自动问答研究[D].武汉:华中科技大学,2019.
[3] Nan Duan. Overview of the NLPCC-ICCPOL 2016 shared task: Open domain Chinese question answering[M]// Natural Language Understanding and Intelligent Applications. Springer International Publishing, 2016.
[4] Goldberg Y, Levy O. word2vec Explained: deriving Mikolov et al.'s negative-sampling word-embedding method[J]. arXiv preprint arXiv:1402.3722, 2014.
[5] 谢腾,杨俊安,刘辉.基于BERT-BiLSTM-CRF模型的中文实体识别[J].计算机系统应用,2020,29(7):48-55.
[6] 李航.统计学习方法[M].北京:清华大学出版社,2012.
[7] 周博通,孙承杰,林磊,等.基于LSTM的大规模知识库自动问答[J].北京大学学报(自然科学版),2018,54(2):286-292.
[8] Vaswani A , Shazeer N , Parmar N , et al. Attention Is All You Need[J]. arXiv, 2017.
[9] Liu A , Huang Z , Lu H , et al. BB-KBQA: BERT-Based Knowledge Base Question Answering[C]// 2019.
[10] Devlin J , Chang M W , Lee K , et al. BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding[J]. 2018.
【通聯编辑:唐一东】
我们致力于保护作者版权,注重分享,被刊用文章因无法核实真实出处,未能及时与作者取得联系,或有版权异议的,请联系管理员,我们会立即处理! 部分文章是来自各大过期杂志,内容仅供学习参考,不准确地方联系删除处理!