随着人工智能技术在各个领域的广泛应用,人们获取知识的方式不再局限于搜索引擎,通过问答的方式得到相关知识成为一种新的知识检索方式,并衍生出一些垂直领域的应用系统,如MedQA[1]、MiPACQ[2]等。
目前,主流问答模型主要是基于语义解析和表示学习两类方法。例如,文献[3]提出基于语义匹配的问答模型,将问题转化为查询图,通过对查询问题进行编码,计算编码向量与原问题的关联度。然而,该方法没有考虑实体与关系之间的顺序,不能很好地解决多约束的复杂问题。文献[4]采用Tree2Seq方法,将查询图利用Tree-based LSTM进行编码,在WebQuestions等数据集上取得较好的效果。文献[5]基于Embedding-based编码方法,将查询问题和候选答案映射到同一语义空间中,选取答案实体、答案路径和答案子图特征,通过计算语义相似度得到最终候选答案。
上述基于语义解析和表示学习的方法在一定程度上解决了问答模型中存在的实体、关系顺序问题和多约束的复杂问题,但没有考虑每个词之间的语序和属性问题。随着深度学习在特征提取中表现出的显著优势,它也被广泛地应用于问答模型中对问题和答案的处理上。
为了解决词之间的语序和属性问题,文献[6]提出多通道卷积网络模型,利用卷积神经网络对问句和答案类型、答案路径、答案子图进行编码,该方法对词序信息、问句与答案关系对的智能问答系统有明显的提升效果。文献[7]提出一种改进的记忆网络KV-MemNN,相对普通的记忆网络,该模型可以更好地存储复杂结构数据,在多个记忆槽进行浅层的多跳推理任务,并生成相关子图路径。文献[8]基于记忆网络构建了BAMnet模型,通过Attention机制[9]来捕捉问题与知识图谱信息的相关性,生成相关性增强问题的表示,提升对复杂问题的处理能力。
在医疗领域,文献[10]通过对国外医学领域的问题进行研究,指出当前医学问答系统大都是基于机器学习和检索技术,存在精准度不高、检索速度慢等问题。随着知识图谱技术在各个领域的广泛应用,基于知识图谱的问答系统有了一些研究成果,但整体上尚处于起步阶段。文献[11]采取多标签分类及排序技术,实现智能疾病的导诊和医疗问答功能。文献[12]应用自然语言处理技术,通过融合多种机器学习模型设计了医疗健康智能问答系统。文献[13]融合LSTM[14]和注意力模型,构建了医学领域问答系统,使得语义识别中局部和全局误差较大的问题得到改善。文献[15]构建了疾病知识图谱,在此基础上通过图计算的方式构造特征关联网络,完成疾病辅助诊疗系统。文献[16]利用多来源文本构建中文知识图谱,为医疗问答系统和智能辅助诊疗领域奠定了专业知识基础。文献[17]基于已构建的甲状腺知识图谱,实现了甲状腺治疗的自动问答系统。
综上可知,采用机器学习和深度学习的问答模型在候选答案的筛选和多约束复杂问题的处理上取得了一定的效果,解决了问答中实体、关系顺序问题和语句词序关联性不足问题,并且在医学领域有了初步的研究成果,但是存在答案精确度不足和响应时间较慢的情况。因此,本文聚焦儿童病领域,构建了儿童病知识图谱,提出了融合TF-IDF、BERT和DSSM的问答模型(TIBD-QA),有效提升了答案精确度和时间效率,在此基础上搭建了儿童病问答系统,综合对比发现,TIBD-QA模型在儿童病问答系统上效果较好。
1 TIBD-QA模型TIBD-QA模型对用户输入的问题,使用TF-IDF进行关键词提取,对未提取到的关键词利用知识图谱进行补充,将输入问题的关键词与儿童病护理(以下简称儿护)问答对语料进行相似度计算,获得对应问题答案。
由于BERT模型对全局语义有较强的深度理解能力,本文模型在TF-IDF答案筛选基础上引入BERT-DSSM[17]模型,以获得精准的语义匹配效果。
TIBD-QA模型由候选集生成、QueryModel、AnswerModel、DSSM模型四部分组成。候选集生成模块采取TF-IDF方法提取关键词,并与已知语料库进行文本匹配;QueryModel和AnswerModel负责对候选答案对进行语义向量化;DSSM模型将相似度得分进行排序,得到后验概率最大值。
1.1 候选集生成候选集生成模块是通过TF-IDF方法将用户输入的问题进行分词和关键词提取,再与已经构建的儿护语料做文本匹配,得到候选问答集。候选集生成模块如图 1所示。
![]() |
图 1 候选集生成模块 Fig. 1 Candidate set generation module |
候选集生成模块是对用户输入的问题采用TF-IDF方法进行关键词提取,利用知识图谱来补充关键词信息,将得到的关键词与构建的儿护问答对语料进行相似度计算,得到对应的候选问答对集合,并利用BERT对集合进行向量化和微调,以得到更好的效果。
1.2 问答集合处理QueryModel和AnswerModel是将候选集生成的问答对集合以问题和答案的形式分别输入BERT模型进行编码和非线性变化。问答集合处理模块如图 2所示。
![]() |
图 2 问答集合处理模块 Fig. 2 Question and answer set processing module |
考虑到DSSM模型在进行排序匹配时需要一个问题多个答案作为模型输入,同时为了提升实验效果以及答案的精确度,最终选择一个问题和六个答案作为模型的输入。QueryModel和AnswerModel负责对问题(一个问题)和答案(六个答案)进行词向量嵌入转换。
由于问题和答案的表示应具有不同的语义环境特征,因而采用伪孪生兄弟神经网络。在BERT模型转换后,通过Tanh激活函数非线性变换来区别Query和Answer输入模型,通过余弦相似度计算,得到每个备选答案与问题之间的匹配相似度。
1.3 DSSM模型DSSM模型是对待匹配文本进行相关度排序,其模型结构可以划分为输入层、表示层和匹配层三部分。DSSM模型结构如图 3所示。
![]() |
图 3 DSSM模型结构 Fig. 3 DSSM model structure |
DSSM模型的主要作用是排序匹配,并选择出最好的答案。通过余弦相似度计算可以得到每个备选答案与问题之间的匹配相似度,将六个备选答案与问题的匹配相似度得分通过全连接层和Softmax层输出,得分最高的答案文本作为模型预测的结果。
通过计算余弦距离得到问题Q和答案A之间的语义相似度,计算公式为
$ R\left(Q, A_{n}\right)=\cos \left(\boldsymbol{y}_{Q}, \boldsymbol{y}_{A_{n}}\right)=\frac{\boldsymbol{y}_{Q}^{\mathrm{T}} \boldsymbol{y}_{A_{n}}}{\left\|\boldsymbol{y}_{Q}\right\| \cdot\left\|\boldsymbol{y}_{A_{n}}\right\|} 。$ | (1) |
然后通过Softmax函数将Q和A1, A2,…,An之间的语义相似度转化为一个后验概率分布,计算公式为
$ P(A \mid Q)=\frac{\exp (\gamma R(Q, A))}{\sum\limits_{i=1}^{n} \exp \left(\gamma R\left(Q, A_{i}\right)\right)} , $ | (2) |
其中:γ表示Softmax函数的平滑因子。DSSM模型通过最大化后验概率进行训练,对于问题Q,候选文档集合A中包含的被用户点击的文档记为A+,没有被用户点击的文档记为A-。训练时的损失函数可以表示为
$ L o s s=-\log \prod D^{+} \in D P\left(D^{+} \mid Q\right) 。$ | (3) |
通过随机梯度下降(SGD)算法计算最小化损失函数,即可得到模型参数。对比了传统语义匹配算法和神经网络语义匹配算法的优缺点以及实验的效果,最终采取将TF-IDF与BERT-DSSM模型相结合的方式。
TIBD-QA模型处理过程(算法1)的具体步骤如下。
算法1 TIBD-QA算法
输入: Pi=(p1, p2, p3, p4, p5, p6),B={(Q1, A1, Y1), (Q2, A2, Y2),…,(QN, AN, YN)},其中Qi∈Q为问题集,Ai=(a1, a2, a3, a4, a5, a6)∈A为答案集,Yi=(y1, y2, y3, y4, y5, y6)∈Y={0, 1}为真实答案标注。问题模型为M1, 答案模型为M2,排序模型为M3。
输出: Pi=(p1, p2, p3, p4, p5, p6)∈P={0, 1}。
1 Begin:
2 for i to B;
3 Do i=Embedding(i)//问题答案向量化为768维
4 for Qi, ai to i;
5 Do Qi, ai=tanh(M1(Qi)), tanh(M2(ai))// 向量经tanh转为128维
6 for Qi, ai to i;
7 Do Qi, ai=M3(Qi), M3(ai)//排序模型处理
8 cosValue=cos(Qi, ai)//计算余弦相似度值
9 Pi=Softmax(F(cosValue))//Softmax得到了概率最大值
10 Pi=max(Pi)//取出集合概率最大值进行返回
11 end
该算法分为M1、M2和M3三部分,将问题和答案文本转化为768维向量,通过激活函数进行非线性变化,将转换后的结果经过M3处理,得到对应的一个问题和六个答案的向量。通过余弦相似度的方法得到六个候选答案的相似度,并经过Softmax函数返回最优解。
2 方法对比与结果为验证本文模型的效果,选取妈妈网儿护问答中七万条问答对作为原始数据,通过负采样进行数据标记,得到ChildQA数据集(数据集正确答案由医学院医生进行标注),按照4∶1划分为训练集和测试集,通过精确率(P)、准确率(Acc)、召回率(R)、F1值和平均反应时间(t)来检验和评测模型效果,计算公式为
$ P=\frac{T P}{T P+F P}, $ | (4) |
$ R=\frac{T P}{T P+F N}, $ | (5) |
$ \begin{array}{c} F 1=\frac{2 P R}{P+R}, \\ \end{array} $ | (6) |
$ A c c=\frac{T_{w}}{T_{w}+F_{w}}, $ | (7) |
其中:TP为正样本中被正确识别为正样本的数量;FP为负样本中被错误识别为正样本的数量;FN为正样本中被错误识别为负样本的数量;Tw为词w被标注为正例的个数;Fw为词w被标注为负例的个数。
在排序匹配模型中使用传统的Word2Vec作为输入层,选择Word2Vec、Word2Vec-DSSM、Word2Vec- CNN-DSSM、ROBERTA-DSSM、ALBERT-DSSM、KV-MemNN、BAMnet七种方法与本文TIBD-QA方法进行对比实验。选择某一反应时间限度内综合指标最高的模型作为问答系统的排序匹配模型,分别在ChildQA数据集与WebQA公开数据集上进行测试,其中ChildQA数据集文本条数为77 115,WebQA数据集文本条数为212 126。
在相同实验环境下,不同方法在ChildQA和WebQA数据集上的实验结果如表 1所示。
![]() |
表 1 不同方法在ChildQA和WebQA数据集上的实验结果 Tab. 1 Experimental results of different methods on ChildQA and WebQA data sets |
由表 1可以看出,本文方法在ChildQA数据集上较其他方法都有较好的性能提升。Word2Vec是直接计算文本表示转换后的余弦相似度,得到的匹配结果的准确度一般。DSSM是广告推荐中重要的匹配方法,是从词的角度分析备选答案与查询问题的匹配度,但该方法不能充分利用文本的语序和上下文信息,没有考虑全文语言环境。因此,通过将Word2Vec和DSSM模型相结合,使获得的准确率比仅采用Word2Vec模型提高了约9.0个百分点。为解决DSSM模型的语序信息丢失问题,引入CNN模型对文本信息进行卷积池化,使得语义相似的文本信息得到补充,增强了模型语义提取能力,但该模型并未考虑语义关联度低的文本信息,其模型的准确率较Word2Vec-DSSM有一定的提升,接近TIBD-QA模型的匹配效果。
TIBD-QA模型的准确率、精确率、召回率和F1值都优于其他模型,该模型在ChildQA数据集上的精确率较ALBERT-DSSM、Word2Vec-CNN-DSSM、BAMnet、KV-MemNN和ROBERTA-DSSM分别提升13.3、4.2、0.7、2.9、14.5个百分点,召回率分别提升16.0、6.0、1.5、3.4、14.3个百分点,F1值分别提升14.0、5.7、2.3、4.6、15.0个百分点。
为验证TIBD-QA模型的泛化性,在公开数据集WebQA上进行对比实验。结果表明,TIBD-QA模型的精确率较ALBERT-DSSM、Word2Vec-CNN-DSSM、BAMnet、KV-MemNN和ROBERTA-DSSM分别提升11.9、6.8、1.6、2.7、12.2个百分点,召回率分别提升17.7、8.1、1.1、0.2、17.6个百分点,F1值分别提升18.1、4.0、0.7、1.4、17.3个百分点。
从WebQA数据集的实验结果可以看出,TIBD-QA模型总体表现比AlBERT-DSSM效果要好,虽然在时间损耗上有所增加,但准确率提升效果十分显著,从71.1%上升至84.9%。另外,TIBD-QA模型在WebQA数据集上的准确率、F1值和召回率较BAMnet和KV-MemNN有所提升,然而多模型融合会导致在时间花费上有所增加,综合对比后,TIBD-QA方法较上述两种方法的效果要好。
相比于基于Word2Vec的排序匹配模型而言,TIBD-QA模型通过注意力机制和双向训练的预训练任务,更为精准地描述了文本段落全局的语义,而不是依赖于从词的角度上对文章进行拆解和分析。相比于卷积池化对短距离的上下文信息提取,BERT模型能描述的信息更为全面和深刻。
3 儿童病知识问答验证系统为验证本文提出的TIBD-QA模型的有效性,构建儿童病问答系统,问答系统架构如图 4所示。
![]() |
图 4 问答系统架构 Fig. 4 Question and answer system architecture |
针对上述架构图,用户在问答系统的前端界面提出问题,将问题传递给TIBD-QA模型。该模型先使用TF-IDF方法对输入的问题进行关键词提取,并传递到知识图谱中,根据图谱中的关键词和关系,把补充的关键词传递到TIBD-QA模型中,通过对候选结果进行排序,将相似度得分最高的候选答案传输到MongoDB数据库中,系统根据数据库整理好的答案通过ajax返回到前端页面。
3.1 领域知识图谱构建儿科医疗问答知识图谱是通过儿科领域专业的书籍进行构建的,其中包括美国儿科学会出版的《育儿百科》和《儿科保健学》。此外,利用基于Scrapy框架的网络爬虫来爬取万方医学网的专家论文文献和指南,具体获取的数据条数和数据格式如表 2所示。
![]() |
表 2 验证系统数据详情 Tab. 2 Verification system data details |
由于已经获取的这些数据存在着格式混乱和一些脏数据,将电子版的儿科书籍进行格式转换,转换成txt格式,与论文文献和指南格式统一,去除不需要的图片和表格。
针对专业书籍数据的特殊性,采用PaddlePaddleOCR技术进行识别,从而得到对应的文本数据,接着使用正则方式对数据进行清洗,最终将数据统一处理成json和csv格式。整理后的实体条数为8 121,关系条数为71 084。
针对整理后的实体和关系,形成〈小儿肺病,并发症,呼吸道感染〉三元组的结构,存储在neo4j数据库中,在数据库中通过查询语句可以获得疾病的并发症、症状和用药等实体,例如小儿肺病、呼吸道感染、肺炎等。最终生成的儿童病知识图谱部分显示如图 5所示。
![]() |
图 5 儿童病知识图谱部分显示 Fig. 5 Partial display of the knowledge map of childhood diseases |
本文面向医疗领域开发了融合知识图谱的儿童病问答系统,该系统使用Flask作为Web框架,Mongdb作为后端数据库,主要使用Python语言,采用的深度学习框架是Tensorflow,可视化页面使用的技术是Html、Jquery、Css以及D3.js。最终搭建的问答系统可视化如图 6所示。
![]() |
图 6 问答系统可视化 Fig. 6 Visualization of question and answer system |
为进一步验证本文方法在实际应用系统上的有效性,面向儿童病领域搭建了儿童病问答系统,并在ChildQA数据集上对系统进行测试。根据问答系统对在线用户咨询问题的回复效果去评估模型,从用户日志中随机采样2k个有效问题,使用人工计算F1、召回率、精确率、准确率、平均反应时间五项指标。系统效果对比评估实验结果如表 3所示。
![]() |
表 3 系统效果对比评估实验结果 Tab. 3 Comparative evaluation experiment results of system effect |
由表 3可以看出,TIBD-QA模型在准确率、精确率、F1值和召回率上较其他七种方法都有所提升。模型的准确率较KV-MemNN和BAMnet分别提升0.8、2.1个百分点,F1值较KV-MemNN和BAMnet分别提升1.6、1.1个百分点。由于多模型融合在系统验证时会存在一定的时间损失,因而平均反应时间提升效果不太明显。综合对比分析后发现,TIBD-QA模型在儿童病问答系统上效果较好。
4 小结搜索引擎缺乏对用户问题的理解,需要在大量医疗信息中进行筛选,随着互联网医疗健康信息的快速增加以及人们对医疗健康信息需求的不断增长,这项工作不仅耗时、耗力,也不能准确找出关注的内容。为解决这个问题,本文提出一种基于多模型融合的TIBD-QA问答方法,并与构建的知识图谱进行融合,形成基于知识图谱的儿童病问答系统。该系统提高了中文医疗领域答案查询的精准度,可以给医护人员和患者带来较大的便利性。
[1] |
WESTON J, BORDES A, COPRA S, et al. Towards AI-complete question answering: a set of prerequisite toy tasks[EB/OL]. [2021-02-18]. https://www.researchgate.net/publication/272522139.
( ![]() |
[2] |
HII P C, CHUNG W Y. A comprehensive ubiquitous healthcare solution on an androidTM mobile device[J]. Sensors, 2011, 11(7): 6799-6815. DOI:10.3390/s110706799 ( ![]() |
[3] |
LUO K Q, LIN F L, LUO X S, et al. Knowledge base question answering via encoding of complex query graphs[C]//Proceedings of the Conference on Empirical Methods in Natural Language Processing. Stroudsburg: Association for Computational Linguistics, 2018: 2185-2194.
( ![]() |
[4] |
ZHU S G, CHENG X, SU S. Knowledge-based question answering by tree-to-sequence learning[J]. Neurocomputing, 2020, 372: 64-72. DOI:10.1016/j.neucom.2019.09.003 ( ![]() |
[5] |
BORDES A, CHOPRA S, WESTON J. Question answering with subgraph embeddings[C]//Proceedings of the Conference on Empirical Methods in Natural Language Processing. Stroudsburg: Association for Computational Linguistics, 2014: 615-620.
( ![]() |
[6] |
DONG L, WEI F R, ZHOU M, et al. Question answering over freebase with multi-column convolutional neural networks[C]//Proceedings of the 53rd Annual Meeting of the Association for Computational Linguistics and the 7th International Joint Conference on Natural Language Processing. Stroudsburg: Association for Computational Linguistics, 2015: 260-269.
( ![]() |
[7] |
XU K, LAI Y, FENG Y, et al. Enhancing key-value memory neural networks for knowledge based question answering[C]//Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics. Stroudsburg: Association for Computational Linguistics, 2019: 2937-2947.
( ![]() |
[8] |
CHEN Y, WU L F, ZAKI M J. Bidirectional attentive memory networks for question answering over knowledge bases[C]//Proceedings of the Conference of the North American Chapter of the Association for Computational Linguistics. Stroudsburg: Association for Computational Linguistics, 2019: 2913-2923.
( ![]() |
[9] |
OCASIO W. Attention to attention[J]. Organization science, 2011, 22(5): 1286-1296. DOI:10.1287/orsc.1100.0602 ( ![]() |
[10] |
张芳芳, 马敬东, 王小贤, 等. 国外医学领域自动问答系统研究现状及启示[J]. 医学信息学杂志, 2017, 38(3): 2-6, 25. ZHANG F F, MA J D, WANG X X, et al. Research status and implications of foreign medical automatic question answering system[J]. Journal of medical informatics, 2017, 38(3): 2-6, 25. ( ![]() |
[11] |
李超. 智能疾病导诊及医疗问答方法研究与应用[D]. 大连: 大连理工大学, 2016. LI C. Research and application on intelligent disease guidance and medical question answering method[D]. Dalian: Dalian University of Technology, 2016. ( ![]() |
[12] |
颜昕. 基于自然语言处理的医疗健康问答系统[J]. 通讯世界, 2018(6): 255-256. YAN X. Medical health question answering system based on natural language processing[J]. Telecom world, 2018(6): 255-256. DOI:10.3969/j.issn.1006-4222.2018.06.163 ( ![]() |
[13] |
毕铭文, 左敏, 张青川. 基于LSTM-SPA的医学领域问答技术研究[J]. 山东工业技术, 2019(1): 247. BI M W, ZUO M, ZHANG Q C. Research on question answering technology in medical field based on LSTM-SPA[J]. Shandong industrial technology, 2019(1): 247. ( ![]() |
[14] |
WAN S X, LAN Y Y, GUO J F, et al. A deep architecture for semantic matching with multiple positional sentence representations[EB/OL]. [2021-02-18]. https://www.researchgate.net/publication/285271115.
( ![]() |
[15] |
李苗苗, 邢凯, 张利萍, 等. 基于图计算和知识图谱的疾病辅助诊别研究[J]. 电子技术, 2018, 47(9): 8-12. LI M M, XING K, ZHANG L P, et al. Research on disease auxiliary diagnosis based on graph computing and knowledge graph[J]. Electronic technology, 2018, 47(9): 8-12. ( ![]() |
[16] |
昝红英, 窦华溢, 贾玉祥, 等. 基于多来源文本的中文医学知识图谱的构建[J]. 郑州大学学报(理学版), 2020, 52(2): 45-51. ZAN H Y, DOU H Y, JIA Y X, et al. Construction of Chinese medical knowledge graph based on multi-source corpus[J]. Journal of Zhengzhou university (natural science edition), 2020, 52(2): 45-51. ( ![]() |
[17] |
马晨浩. 基于甲状腺知识图谱的自动问答系统的设计与实现[J]. 智能计算机与应用, 2018, 8(3): 102-107. MA C H. Design and implementation of automatic question answering system based on thyroid knowledge map[J]. Intelligent computer and applications, 2018, 8(3): 102-107. ( ![]() |