CN110516145B - 一种基于句向量编码的信息搜索方法 - Google Patents

一种基于句向量编码的信息搜索方法 Download PDF

Info

Publication number
CN110516145B
CN110516145B CN201910621000.6A CN201910621000A CN110516145B CN 110516145 B CN110516145 B CN 110516145B CN 201910621000 A CN201910621000 A CN 201910621000A CN 110516145 B CN110516145 B CN 110516145B
Authority
CN
China
Prior art keywords
paragraph
candidate
module
sentence
score
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CN201910621000.6A
Other languages
English (en)
Other versions
CN110516145A (zh
Inventor
黄震
王馨怡
刘锋
彭宇行
王聪睿
徐诗怡
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
National University of Defense Technology
Original Assignee
National University of Defense Technology
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by National University of Defense Technology filed Critical National University of Defense Technology
Priority to CN201910621000.6A priority Critical patent/CN110516145B/zh
Publication of CN110516145A publication Critical patent/CN110516145A/zh
Application granted granted Critical
Publication of CN110516145B publication Critical patent/CN110516145B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/33Querying
    • G06F16/3331Query processing
    • G06F16/334Query execution
    • G06F16/3344Query execution using natural language analysis
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/30Information retrieval; Database structures therefor; File system structures therefor of unstructured textual data
    • G06F16/35Clustering; Classification
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/90Details of database functions independent of the retrieved data types
    • G06F16/95Retrieval from the web
    • G06F16/953Querying, e.g. by the use of web search engines
    • G06F16/9535Search customisation based on user profiles and personalisation

Abstract

本发明公开了一种基于句向量编码的信息搜索方法,目的是解决搜索信息准确率低的问题。技术方案是先构建由信息搜索数据库、语义搜索排序模块和段落排序模块构成的基于句向量编码的信息搜索系统,语义搜索排序模块由段落编码表示模块和相关性得分计算模块组成。段落编码表示模块利用现有句向量编码方法,将语句转化为固定长度的句向量表示,以语句层级的信息融合为起点,生成段落编码与问题编码;相关性得分计算模块对段落编码与问题编码进行语义相关性得分计算,段落排序模块据此对文本段落排序,获得最相关的文本段落,得到最准确的搜索结果。采用本发明可提高信息搜索的精确度,且复杂性低,易于工程实现。

Description

一种基于句向量编码的信息搜索方法
技术领域
本发明属于开放域条件下的搜索引擎技术领域,尤其涉及一种基于句向量编码的信息搜索方法。
背景技术
当前,搜索引擎技术已成为信息资源获取的重要手段之一。尽管该技术已取得大量优秀成果,在一定程度上满足了信息获取需求,但以关键词为输入并返回大量相关文档的方式存在很多不足,例如返回的冗余信息过多,关键词匹配排序的策略缺乏对语义层面更深层次的理解和处理,搜索效果难以进一步提高。
传统的搜索方法,通过词频-逆文档频度(英语:term frequency–inversedocument frequency,简称TF-IDF)、最佳匹配-25(英语:Best Match 25,简称BM25)等技术进行关键词查询与文档之间的相关性的评估。然而,这些方法忽略了上下文、句子级的语义关系,从而导致搜索的准确率偏低。
因此,近年来学者采用语义匹配技术来解决这类搜索准确率问题(BhaskarMitra,Nick Craswell 2017年在arXiv发表的论文“Neural Models for InformationRetrieval”,即“信息抽取的神经网络模型”)。语义匹配是基于查询和文档的特征表示开展的相关性匹配评估。近年来,深度学习在自然语言处理领域取得了重大突破,其适用效果得到了广泛的认可。作为机器学习的研究分支,深度学习利用其多层的神经网络结构形成了强大的特征自动提取能力,可完成许多传统机器学习算法难以完成的任务。因而,近期有学者提出采用深度学习技术来解决搜索中语义匹配问题。然而,大量研究集中在基于词级别的语义匹配,这类匹配难以应用于文档中长文本(例如篇章/段落级)的整体语义信息匹配。因为长文本情况下,干扰语义信息较多,特别地,以词向量为基础的深度学习模型易于捕获局部特征,难以建模整体语义信息。
由于深度学习模型的数据信息以数值向量形式在神经网络中传递,因此在基于深度学习的文档处理中,词或句子首先应转化为向量表示。良好的向量表征是完成很多自然语言处理(NLP)任务的重要前提,其中针对单词的一种最简单向量表示形式采用热独码表征(one-hot representation),它最直观也最常用,其做法是将用户所处理的语句或段落中所有单词构建为一个词典(重复单词只记录1次),记录每个单词首次出现的位置,字典包含的条目个数为语句或段落中所有单词的个数。将每个单词表示成为一个向量,向量长度值为字典包含的条目个数,并给单词首次出现的位置赋值为1,其余赋值为0,即可用值1位置代表单词唯一的标识。例如,针对语句“Iloveworking”,构建词典为{‘I’:0,’love’:1,’working’:2},单词“love”一词的向量表示为“010”(此句话三个单词,所以是三位,love在第二位,所以第二位为1,其余为0)。
但是这种表示方式存在很多弊端,首先其形式极其稀疏,因而占据存储量很大。假设语句共包含L个单词,则需要开辟一个规模为L*L的矩阵表示语句的L个单词,运算效率低。其次,由于所有向量全部正交,其任意两个词都是孤立存在的,因此热独码无法用来表达语义相近的词汇之间的关系。
为此,分布式向量表征方式(distributed representation)被提出,它采用固定、低维度的向量来对词进行向量表征。分布式表征即为将单词的表示分散到不同维度上表达,这样有效减小了存储空间开销。针对搜索排序问题,绝大多数现有工作是以词嵌入为基础构建的。词嵌入利用分布式词向量之间的距离计算(如欧式距离)衡量词汇之间的相似关系,一般距离比较小的向量在语义或词性上都比较相近,例如word2vec(见Tomas Mikolov,Ilya Sutskever等人2013年发表在NIPS会议上的论文”Distributed Representations ofWords and Phrases and their Compositionality”,即“单词和词组的分布式向量表征及其构建”)、GloVe(见PenningtonJeffrey,SocherRichard和ManningChristopher2014年发表在EMNLP会议1532-1543页的论文“GloVe:Global vectors for word representation”,即“GloVe:单词的全面向量表示”)等均公布了可以应用到多种自然语言处理任务中的词嵌入表示方法。但基于词嵌入的搜索排序模型缺乏高层级(例如语句层级、段落层级)的信息融合,在文本较长的数据集上准确性较差。
此外,近期诸如InferSent(见Connea等人2017年发表在EMNLP会议670-680页的论文“Supervised Learning of Universal Sentence Representations from NaturalLanguage Inference Data”,即“自然语言推断数据集通用句向量表示的监督学习”)等模型致力于构建句嵌入表示,将语句转化为分布式向量表示,捕获整个语句的语义特征。而HtutPhu Mon,BowmanSamuel R和ChoKyunghyun2018年发表在NAACL会议120-127页的论文“Training a Ranking Function for Open-Domain Question Answering.”即“一种开放域问答的排序方法”中尝试基于句嵌入构建排序网络模型,但在如何由句嵌入生成融合段落语义信息时采用简单加和的方式,忽略了不同语句在段落语义表达上的权重差异,导致语义融合和信息集成不够准确,排序准确性较低。
发明内容
本发明要解决的技术问题是:针对词向量难以建模长文本段落导致搜索准确率低的问题,或由句嵌入生成融合段落语义信息时采用简单加和的方式导致信息融合提取不够准确的问题,提出一种基于句向量编码的信息搜索方法,计算问题与候选段落之间的相关性,然后对文本段落进行语义排序,获得最相关的文本段落,得到最准确的搜索结果。
本发明的技术方案是:先构建由信息搜索数据库、语义搜索排序模块和段落排序模块构成的基于句向量编码的信息搜索系统,语义搜索排序模块由段落编码表示模块和相关性得分计算模块组成。段落编码表示模块利用现有句向量编码方法,将语句转化为固定长度的句向量表示,以语句层级的信息融合为起点,生成段落编码与问题编码;相关性得分计算模块对段落编码与问题编码进行语义相关性匹配,计算出文本段落的相关性得分,并据此对文本段落排序,获得最相关的文本段落,得到最准确的搜索结果。
具体技术方案是:
第一步,构建基于句向量编码的信息搜索系统,基于句向量编码的信息搜索系统由信息搜索数据库、语义搜索排序模块和段落排序模块构成。其中,语义搜索排序模块是由段落编码表示模块和相关性得分计算模块组成的卷积神经网络。构建方法是:
1.1搭建信息搜索数据库,其方法为:
1.1.1构建信息搜索数据库结构:
信息搜索数据库是一张问题信息列表。
问题信息列表共包含N个表项,以每个问题(或关键词)的相关信息作为一个表项进行存储。
问题信息列表的每个表项以字典的格式存储,包含4个域,分别为:问题或关键词、候选段落集合、候选段落得分列表以及问题的正确答案。候选段落集合中包含M(M为正整数)个候选段落,问题的正确答案中包含T(T为正整数)个正确答案。
以问题信息列表第i(1≤i≤N)个表项为例,其构成形式为{Qi,Pi,SSi,Ai},Qi为第i个问题(或关键词):’xxxx....’(字符串表示问题语句);Pi为第i个问题的候选段落集合,Pi:用{S1,S2...Sm...SM}表示,Sm为第m个候选段落,1≤m≤M,Sm为包含R(R为正整数)个元素的语句列表,Sm为集合{s1,s2...sr...sR},sr表示pj的第r个语句,1≤r≤R;候选段落得分列表SSi为:{Score(Qi,S1),Score(Qi,S2),...,Score(Qi,Sm),...,Score(Qi,SM)},Score(Qi,Sm)为浮点数,表示第m个候选段落Sm与Qi的相关性得分;Ai为Qi的答案集合,用{a1,a2...at...aT}表示,at为Qi的第t个答案,1≤t≤T,T为正整数)}。(此时是构建数据库结构,N个元素的M、T是相同的)
问题信息列表(令为D)用集合表示为{{Q1,P1,SS1,A1},{Q2,P2,SS2,A2}...{Qi,Pi,SSi,Ai}...{QN,PN,SSN,AN}},其中{Qi,Pi,SSi,Ai}表示问题信息列表的第i个表项,1≤i≤N,此时{Qi,Pi,SSi,Ai}中的Qi,Pi,SSi,Ai均为空。
1.1.2选择SQuAD(见P.Rajpurkar,J.Zhang,K.Lopyrev和P.Liang 2016年发表在EMNLP会议2383-2392页的论文“Squad:100,000+questions for machine comprehensionof text”即“SQuAD:阅读理解任务的100,000个问题对”)或Quasar(见B.Dhingra,K.Mazaitis和W.W.Cohen 2017年发表在arXiv:1707.03904的论文“Quasar:Datasets forquestion answering by search and reading”,即“Quasar:通过搜索和阅读构成的问答数据集”)或SearchQA(见M.Dunn,L.Sagun,M.Higgins,V.U.Guney,V.Cirik,和K.Cho 2017年发表在arXiv:1704.05179的论文“SearchQA:Anew q&a dataset augmented withcontext from a search engine”,即“SearchQA:从搜索引擎增加段落的全新问答数据集”)或TriviaQA(见M.Joshi,E.Choi,D.Weld和L.Zettlemoyer 2017年发表在ACL1601-1611页的论文“Triviaqa:A large scale distantly supervised challenge datasetfor reading comprehension”,即“TriviaQA:针对阅读理解任务的一个大规模远距离监督数据集”)这四种数据集中的任意一种作为原始数据集,原始数据集中共有N个数据,N为正整数。
1.1.3预处理原始数据集,将预处理后的原始数据集存放到信息搜索数据库中:
根据候选段落的个数,原始数据集可分为两类,一类为多段落问答数据类型,即原始数据集中的一个问题(假设为Qi′)提供包含M个原始候选段落的原始候选段落集合
Figure BDA0002125483270000061
pj表示Qi′提供的第j个原始候选段落(1≤j≤Mi);另一类为单段落问答数据类型,即原始数据集中的一个问题(假设为Qi′)提供一篇原始候选文章Doci,Doci包含M个段落。
1.1.3.1若原始数据集为Quasar、SearchQA或TriviaQA,则原始数据集属于多段落问答数据类型,转步骤1.1.3.3;若原始数据集为SQuAD,则原始数据集属于单段落问答数据类型,转步骤1.1.3.2;
1.1.3.2针对原始数据集的问题或关键词,将原始数据集中提供的原始候选文章拆分处理成段落列表,具体步骤为:
1.1.3.2.1初始化变量i=1,i表示正在处理的原始数据集问题(或关键词)Qi′的编号;
1.1.3.2.2遍历Qi′的候选原始候选文章Doci,遇到Doci中的换行符则进行分段处理,将Doci划分为Mi个候选段落,得到Qi′的原始候选段落集合
Figure BDA0002125483270000062
Mi为正整数,1≤Mi≤M;
1.1.3.2.3令i=i+1,如果i≤N,转步骤1.1.3.2.2,否则,说明原始数据集中所有N个数据均已完成原始候选文章的分段处理,得到了N个原始候选段落集合即
Figure BDA0002125483270000071
转步骤1.1.3.3;
1.1.3.3针对问题或关键词,将
Figure BDA0002125483270000072
进行分句处理,具体步骤为:
1.1.3.3.1初始化变量i=1;
1.1.3.3.2初始化分句处理后的Qi′的候选段落集合Pi为空;初始化变量j=1;
1.1.3.3.3初始化
Figure BDA0002125483270000073
中第j个原始候选段落pj的语句集合Sj为空,
1.1.3.3.3遍历
Figure BDA0002125483270000074
中第j个原始候选段落pj,遇到句末标点(“.”或“!”或“?”),则进行分句处理,将句末标点之前的语句增加到Sj中,共包含R(i,j)个语句(1≤R(i,j)≤R)得到第j个原始候选段落pj的语句列表
Figure BDA0002125483270000075
(sr表示pj的第r个语句,1≤r≤R(i,j)),将Sj放到分句处理后的Qi′的候选段落集合Pi中;
1.1.3.3.4令j=j+1,如果j≤Mi,转步骤1.1.3.3.3,否则,说明Qi′的原始候选段落集合
Figure BDA0002125483270000076
已经完成分句处理,得到分句处理后的Qi′的候选段落集合
Figure BDA0002125483270000077
令问题信息列表D中的Qi=Qi′,令D中的Ai=原始数据集中Q′i对应的答案集合Ai’,令D中的Pi=原始数据集中Q′i对应的候选段落集合Pi′,转步骤1.1.3.3.5;
1.1.3.3.5令i=i+1,如果i≤N,转步骤1.1.3.3.2,否则,说明原始数据集中N个数据均已完成候选段落集合的分句处理,得到了N个候选段落集合,即P′1,...,P′i,...,PN′,且已将D中的问题Q1,...,Qi,...,QN、候选段落集合P1,...,Pi,...,PN、答案集合A1,...,Ai,...,AN分别更新为原始数据集中的Q′1,...,Q′i,...,Q′N、P′1,...,P′i,...,P′N、A′1,...,A′i,...,A′N,转1.1.3.4。
1.1.3.4针对问题或关键词,初始化候选段落得分列表,具体步骤为:
1.1.3.4.1初始化变量i=1:
1.1.3.4.2初始化变量j=1;
1.1.3.4.3初始化D中的Qi的第j个原始候选段落pj的语句列表Sj的得分Score(Qi,Sj)为最小得分MIN(MIN为一个负数,通常取-1*103),即令Score(Qi,Sj)=MIN;
1.1.3.4.4令j=j+1,如果j≤Mi,转步骤1.1.3.4.3;否则,Qi的得分列表SSi完成赋值,即获得了
Figure BDA0002125483270000081
Figure BDA0002125483270000082
步骤1.1.3.4.5;
1.1.3.4.5令i=i+1,如果i≤N,转步骤1.1.3.4.2;否则,说明已得到SS1~SSN,D的候选段落得分列表初始化完毕,转步骤1.2;
1.2构建语义搜索排序模块,语义搜索排序模块与信息搜索数据库相连,由段落编码表示模块和相关性得分计算模块两个模块组成。方法是:
段落编码表示模块是由句向量编码子模块、段落编码子模块、融合函数子模块连接而成的神经网络模块。
其中,句向量编码子模块与信息搜索数据库、段落编码子模块、相关性得分计算模块相连;段落编码子模块与句向量编码子模块、融合函数子模块相连;融合函数子模块与段落编码子模块、相关性得分计算模块相连。
相关性得分计算模块与句向量编码子模块、融合函数子模块相连。
句向量编码子模块从信息搜索数据库读入D中的数据{Qi,Pi,SSi,Ai},将Qi转换为句向量编码Ei q,将Pi中的语句列表Sj转换为句向量编码
Figure BDA0002125483270000083
(R(i,j)表示Qi的候选段落Pi语句列表Sj元素个数,即Pi语句个数,1≤R(i,j)≤R;1≤r≤R(i,j),表示Qi的候选段落语句列表Sj中第r个语句sr的句向量编码)。
Figure BDA0002125483270000091
是长度为d的一维向量,由d个浮点数构成。Ei s是大小为R(i,j)*d的二维向量,其构成元素均为浮点数。d为句向量维度,是一个固定的数值(见Connea等人2017年发表在EMNLP会议670-680页的论文“Supervised Learning of Universal SentenceRepresentations from Natural Language Inference Data”,即“自然语言推断数据集通用句向量表示的监督学习”)。句向量编码子模块将Ei q和Ei s发送给段落编码子模块,同时将Ei q发送给相关性得分计算模块;
段落编码子模块从句向量编码子模块接收Ei q和Ei s,完善补充Ei s所包含的信息,使用BiLSTM神经网络(见Graves A,Schmidhuber J等人2005年发表在IJCNN会议602-610页的论文”Framewise phoneme classification with bidirectional LSTM and otherneural network architectures”,即“基于双向LSTM及其他神经网络的帧态因素分类”)将Ei s转化为整合了Qi以及Sj上下文信息的向量编码Hi p。将Hi p发送给融合函数子模块。其中,Hi p是大小为R(i,j)*d的二维向量,其构成元素均为浮点数。
融合函数子模块是包含1个池化层的神经网络,将向量编码Hi p池化成段落编码Ei p,将Ei p发送给相关性得分计算模块(Ei p是长度为d的一维向量,向量元素为浮点数)。
相关性得分计算模块是一个包含两个全连接层和一个激活函数的分类器神经网络模块。相关性得分计算模块从段落编码表示模块接收Ei q和Ei p,将Qi的句向量编码Ei q和Ei p作为输入,计算两者的相关性,得到Sj对于Qi的相关性得分Score(Qi,Sj),并将Qi的得分列表SSi传入段落排序模块;
1.3构建段落排序模块,段落排序模块与信息搜索数据库模块和语义搜索排序模块相连,根据语义搜索排序模块计算的SSi对Qi的候选段落Pi排序,返回相关性得分最高的候选段落。
第二步,对语义搜索排序模块进行训练,得到网络权重参数集合:
2.1初始化权重参数,方法是:
2.1.1使用随机函数将参数初始化为随机数。需要初始化的参数包含段落编码表示模块中段落编码子模块采用的BiLSTM的参数(参数定义见Graves A,Schmidhuber J等人2005年发表在IJCNN会议602-610页的论文”Framewise phoneme classification Withbidirectional LSTM and other neural network architectures”,即“基于双向LSTM及其他神经网络的帧态因素分类”)
{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}以及相关性得分计算模块中全连接层参数{W(1),W(2),b(1),b(2)};
2.1.2设置训练过程中所需的参数,包括网络模型学习率和批尺寸(batchsize),一般将网络模型学习率设置为一个正数,将batchsize设置为正整数;实验证明,将网络模型学习率设置为0.001,将batchsize设置为64时,相关性排序准确率最高;
2.2对语义搜索排序模块进行训练,得到语义搜索排序模块权重参数集合。方法是:
2.2.1使用Pytorch深度学习框架(见Adam Paszke等人2017年发表在NIPS会议的论文“Automatic differentiation in PyTorch”,即“PyTorch中的自动微分”)实现语义搜索排序模块。
2.2.2通过最小化边缘排序损失函数(margin ranking loss)(见Bai Bing,Weston Jason,Grangier David等人2010年在InformationRetrieval291-314页发表的论文“Learning to rank with(a lot of)word features”,即“使用单词特征学习排序”)训练语义搜索排序模块。
2.2.3将训练结束后得到的{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}和{W(1),W(2),b(1),b(2)}作为网络权重参数集合。
第三步,段落编码表示模块对信息搜索数据库中的问题(或关键词)和候选段落编码,相关性得分计算模块计算问题(或关键词)与候选段落的相关性得分,方法如下:
3.1初始化变量i=1;
3.2段落编码表示模块的句向量编码子模块从信息搜索数据库D读取数据{Qi,Pi,SSi,Ai};
3.3句向量编码子模块采用句向量编码工具(如InferSent等),将Qi转换为句向量编码Ei q
3.4初始化变量j=1;
3.5段落编码子模块采用句向量编码工具(如InferSent等),将Pi中的候选段落语句列表Sj转换为句向量
Figure BDA0002125483270000111
(1≤r≤R(i,j)
Figure BDA0002125483270000112
表示Sj中第r个语句的句向量编码);
3.6段落编码子模块采用拼接的方式将段落句向量Ei s中的每项分别与Ei q拼接到一起,拼接后得到包含问题信息的句向量编码
Figure BDA0002125483270000113
Figure BDA0002125483270000114
Figure BDA0002125483270000115
是一个大小为R(i,j)*2d的二维向量,
Figure BDA0002125483270000116
表示将Ei q
Figure BDA0002125483270000117
拼接后形成的向量;采用BiLSTM神经网络将
Figure BDA0002125483270000118
转换为融合了上下文信息的编码Hi p。将Hi p发送给融合函数子模块。
3.7融合函数子模块采用池化层将向量编码Hi p池化成Sj的段落编码Ei p,即从R(i,j)个d维向量中选择数值最大的1个向量,将R(i,j)*d维转化为1*d维;将Ei p发送给相关性得分计算模块;
3.8相关性得分计算模块从句向量编码子模块接收Qi的句向量编码Ei q,从融合函数子模块接收Sj的段落编码Ei p,构建匹配矩阵,方法是:
按照Ei q、Ei p、Ei q-Ei P(Ei q、Ei p两个向量对应位置的数值相减)、Ei q·Ei P(Ei q、Ei p两个向量对应位置的数值相乘)的顺序拼接得到匹配矩阵MMi,是一个长度为4d的一维向量,表示为公式(1)
Figure BDA0002125483270000121
3.9相关性得分计算模块通过全连接层和LeakyRelu激活函数(见Steffen Eger,Paul Youssef和lrynaGurevych 2018年发表在EMNLP会议4415-4424页的论文”Is it Timeto Swish?Comparing Deep Learning Activation Functions Across NLP tasks”,即“是时候快速转变了吗?基于自然语言处理任务的不同深度学习激活函数的性能比较”)计算Sj与Qi的相关性得分Score(Qi,Sj),计算公式如下:
Score(Qi,Sj)=W(2)LeakyReLU(W(1)MMi+b(1))+b(2)公式(2)
LeakyReLU(W(1)M+b(1))是将(W(1)MMi+b(1))作为激活函数的参数进行计算,得到浮点数结果。
3.10j=j+1,如果j≤M,转步骤3.5,否则,说明Qi的所有候选段落已经完成相关性打分,得到相关性得分列表
Figure BDA0002125483270000122
Figure BDA0002125483270000123
表示Qi与所有候选段落的相关性得分,转步骤3.11;
3.11i=i+1,如果i≤N,转步骤3.2,否则,说明信息搜索数据库中所有需要处理的问题(或关键词)均已完成相关性打分,得到整体得分列表SS=[SS1,SS2,...,SSi,...,SSN],,转第四步;
第四步,段落排序模块根据得分列表对候选段落进行排序筛选,方法是:
4.1设定问题(或关键词)返回的最相关段落个数K,K为正整数,通常K的取值为1或3或5;
4.2初始化变量i=1;
4.3针对Qi,按照SSi中的分值,记录SSi中最高的K个得分对应的序号Index=[I1,I2,...Ik...IK],Ik(1≤k≤K)为排名第k个相似性得分的序号;
4.4输出Index对应的段落为得分最高的K个段落,即输出
Figure BDA0002125483270000131
Figure BDA0002125483270000132
为第Ik个候选段落;
4.4令i=i+1,如果i≤N,转步骤4.3,否则,说明数据集中所有问题(或关键词)已经输出最相关的段落信息,结束。
本发明与现有技术相比具有以下技术效果:
(1)步骤3.3和3.5使用了句向量编码工具,将输入的语句转化为固定长度的句向量编码,在句子层级整合了句内语义信息,每一个句向量的维度固定,与语句包含的单词个数无关,便于不同长度的语句之间信息融合,有利于提高搜索准确性;
(2)获取句向量编码后,步骤3.6将代表问题的句向量拼接到段落的每一个句向量后,将问题(或关键词)的信息与候选段落的信息进行了融合,融合方法较为简单,复杂性低;
(3)步骤3.6完成了语句级别的信息融合后,步骤3.7通过池化层选取最大值形成文本段落的段落级代表向量,加深段落中上下文语义信息的融合,进一步提高了准确性。
总之,本发明基于句向量编码的信息搜索方法,分层级多次融合了上下文语义信息,提高了信息相关性打分的准确性,有效提升了信息搜索的精确度,且方法简单,复杂性低,易于工程实现。
附图说明
图1为本发明中信息搜索方法的流程图;
图2为本发明第一步构建的基于句向量编码的信息搜索系统逻辑结构图;
具体实施方式
图1为本发明中信息搜索方法的流程图;如图1所示,本发明包括以下步骤:
第一步,构建如图2所示的基于句向量编码的信息搜索系统,基于句向量编码的信息搜索系统由信息搜索数据库、语义搜索排序模块和段落排序模块构成;语义搜索排序模块是由段落编码表示模块和相关性得分计算模块组成的卷积神经网络;构建方法是:
1.1搭建信息搜索数据库,方法为:
1.1.1构建信息搜索数据库结构:
信息搜索数据库是一张问题信息列表,用D表示;问题信息列表D共包含N个表项,以每个问题或关键词的相关信息作为一个表项进行存储;
问题信息列表D的每个表项以字典的格式存储,包含4个域,分别为:问题或关键词、候选段落集合、候选段落得分列表以及问题的正确答案;候选段落集合中包含M个候选段落,问题的正确答案中包含T个正确答案,M为正整数,T为正整数;
问题信息列表D用集合表示为{{Q1,P1,SS1,A1},{Q2,P2,SS2,A2}...{Qi,Pi,SSi,Ai}...{QN,PN,SSN,AN}},其中{Qi,Pi,SSi,Ai}表示问题信息列表的第i个表项,1≤i≤N,Qi为第i个问题或关键词;Pi为第i个问题的候选段落集合,Pi用{S1,S2...Sm...SM}表示,Sm为第m个候选段落,1≤m≤M,Sm为包含R个元素的语句列表,Sm为集合{s1,s2...sr...sR},R为正整数,sr表示pj的第r个语句,1≤r≤R;候选段落得分列表SSi为:{Score(Qi,S1),Score(Qi,S2),...,Score(Qi,Sm),...,Score(Qi,SM)},Score(Qi,Sm)为浮点数,表示第m个候选段落Sm与Qi的相关性得分;Ai为Qi的答案集合,用{a1,a2...at...aT}表示,at为Qi的第t个答案,1≤t≤T,T为正整数;
1.1.2选择Quasar或SQuAD或SearchQA或TriviaQA这四种数据集中的任意一种作为原始数据集,原始数据集中共有N个数据,N为正整数;令Q′i为原始数据集中第i个问题或关键词,令Ai’为原始数据集中Q′i对应的答案集合,令Pi′为原始数据集中Q′i对应的候选段落集合;
1.1.3预处理原始数据集,将预处理后的原始数据集存放到信息搜索数据库D中:
1.1.3.1若原始数据集为Quasar、SearchQA或TriviaQA,则原始数据集属于多段落问答数据类型,转步骤1.1.3.3;若原始数据集为SQuAD,则原始数据集属于单段落问答数据类型,转步骤1.1.3.2;
1.1.3.2针对原始数据集的问题或关键词,将原始数据集中提供的原始候选文章拆分处理成段落列表,得到N个原始候选段落集合即
Figure BDA0002125483270000151
转步骤1.1.3.3;
1.1.3.3针对问题或关键词,将
Figure BDA0002125483270000152
进行分句处理,具体步骤为:
1.1.3.3.1初始化变量i=1;
1.1.3.3.2初始化分句处理后的Qi′的候选段落集合Pi为空;初始化变量j=1;
1.1.3.3.3初始化
Figure BDA0002125483270000153
中第j个原始候选段落pj的语句集合Sj为空,
1.1.3.3.3遍历
Figure BDA0002125483270000154
中第j个原始候选段落pj,遇到句末标点,则进行分句处理,将句末标点之前的语句增加到Sj中,共包含R(i,j)个语句,得到第j个原始候选段落pj的语句列表
Figure BDA0002125483270000155
sr表示pj的第r个语句,1≤r≤R(i,j),将Sj放到分句处理后的Qi′的候选段落集合Pi中;
1.1.3.3.4令j=j+1,如果j≤Mi,转步骤1.1.3.3.3,否则,说明Qi′的原始候选段落集合
Figure BDA0002125483270000161
已经完成分句处理,得到分句处理后的Qi′的候选段落集合
Figure BDA0002125483270000162
令问题信息列表D中的Qi=Qi′,令D中的Ai=原始数据集中Q′i对应的答案集合Ai’,令D中的Pi=原始数据集中Q′i对应的候选段落集合Pi′,转步骤1.1.3.3.5;
1.1.3.3.5令i=i+1,如果i≤N,转步骤1.1.3.3.2,否则,说明原始数据集中N个数据均已完成候选段落集合的分句处理,得到了N个候选段落集合,即P′1,...,P′i,...,PN′,且已将D中的问题Q1,...,Qi,...,QN、候选段落集合P1,...,Pi,...,PN、答案集合A1,...,Ai,...,AN分别更新为原始数据集中的Q′1,...,Q′i,...,Q′N、P′1,...,P′i,...,P′N、A′1,...,A′i,...,A′N,转1.1.3.4;
1.1.3.4针对问题或关键词,初始化候选段落得分列表,具体步骤为:
1.1.3.4.1初始化变量i=1;
1.1.3.4.2初始化变量j=1;
1.1.3.4.3初始化D中的Qi的第j个原始候选段落pj的语句列表Sj的得分Score(Qi,Sj)为最小得分MIN,令MIN为-1*103
1.1.3.4.4令j=j+1,如果j≤Mi,转步骤1.1.3.4.3;否则,Qi的得分列表SSi完成赋值,即获得了
Figure BDA0002125483270000163
Figure BDA0002125483270000164
步骤1.1.3.4.5;
1.1.3.4.5令i=i+1,如果i≤N,转步骤1.1.3.4.2;否则,说明已得到SS1~SSN,D的候选段落得分列表初始化完毕,转步骤1.2;
1.2构建语义搜索排序模块,语义搜索排序模块与信息搜索数据库相连,由段落编码表示模块和相关性得分计算模块两个模块组成,方法是:
段落编码表示模块是由句向量编码子模块、段落编码子模块、融合函数子模块连接而成的神经网络模块;
句向量编码子模块与信息搜索数据库、段落编码子模块、相关性得分计算模块相连;段落编码子模块与句向量编码子模块、融合函数子模块相连;融合函数子模块与段落编码子模块、相关性得分计算模块相连;
相关性得分计算模块与句向量编码子模块、融合函数子模块相连;
句向量编码子模块从信息搜索数据库读入D中的数据{Qi,Pi,SSi,Ai},将Qi转换为句向量编码Ei q,将Pi中的候选段落集合Sj转换为句向量编码
Figure BDA0002125483270000171
R(i,j)表示Qi的候选段落Pi语句列表Sj元素个数,即Pi语句个数,1≤R(i,j)≤R;1≤r≤R(i,j),表示Qi的候选段落语句列表Sj中第r个语句sr的句向量编码;
Figure BDA0002125483270000172
是长度为d的一维向量,由d个浮点数构成;Ei s是大小为R(i,j)*d的二维向量,其构成元素均为浮点数;d为句向量维度,是一个固定的数值;句向量编码子模块将Ei q和Ei s发送给段落编码子模块,同时将Ei q发送给相关性得分计算模块;
段落编码子模块从句向量编码子模块接收Ei q和Ei s,完善补充Ei s所包含的信息,将Ei s转化为整合了Qi以及Sj上下文信息的向量编码Hi p,将Hi p发送给融合函数子模块;Hi p是大小为R(i,j)*d的二维向量,其构成元素均为浮点数;
融合函数子模块是包含1个池化层的神经网络,将向量编码Hi p池化成段落编码Ei p,将Ei p发送给相关性得分计算模块,Ei p是长度为d的一维向量,向量元素为浮点数;
相关性得分计算模块是一个包含两个全连接层和一个激活函数的分类器神经网络模块;相关性得分计算模块从段落编码表示模块接收Ei q和Ei p,将Qi的句向量编码Ei q和Ei p作为输入,计算两者的相关性,得到Sj对于Qi的相关性得分Score(Qi,Sj),并将Qi的得分列表SSi传入段落排序模块;
1.3构建段落排序模块,段落排序模块与信息搜索数据库模块和语义搜索排序模块相连,根据语义搜索排序模块计算的SSi对Qi的候选段落Pi排序,返回相关性得分最高的候选段落;
第二步,对语义搜索排序模块进行训练,得到网络权重参数集合:
2.1初始化权重参数,方法是:
2.1.1使用随机函数将参数初始化为随机数;需要初始化的参数包含段落编码表示模块中段落编码子模块采用的BiLSTM神经网络的参数
{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}以及相关性得分计算模块中全连接层参数{W(1),W(2),b(1),b(2)};
2.1.2将网络模型学习率设置为0.001,将batchsize设置为64;
2.2对语义搜索排序模块进行训练,得到语义搜索排序模块权重参数集合,方法是:
2.2.1使用Pytorch深度学习框架实现语义搜索排序模块;
2.2.2通过最小化边缘排序损失函数即margin ranking loss训练语义搜索排序模块;
2.2.3将训练结束后得到的{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}和{W(1),W(2),b(1),b(2)}作为网络权重参数集合;
第三步,段落编码表示模块对信息搜索数据库中的问题或关键词和候选段落编码,相关性得分计算模块计算问题或关键词与候选段落的相关性得分,方法如下:
3.1初始化变量i=1;
3.2段落编码表示模块的句向量编码子模块从信息搜索数据库D读取数据{Qi,Pi,SSi,Ai};
3.3句向量编码子模块采用句向量编码工具,将Qi转换为句向量编码Ei q
3.4初始化变量j=1;
3.5段落编码子模块采用句向量编码工具,将Pi中的候选段落语句列表Sj转换为句向量
Figure BDA0002125483270000191
1≤r≤R(i,j)
Figure BDA0002125483270000192
表示Sj中第r个语句的句向量编码;
3.6段落编码子模块采用拼接的方式将段落句向量Ei s中的每项分别与Ei q拼接到一起,得到包含问题信息的句向量编码
Figure BDA0002125483270000193
Figure BDA0002125483270000194
Figure BDA0002125483270000196
是一个大小为R(i,j)*2d的二维向量,
Figure BDA0002125483270000197
表示将Ei q
Figure BDA0002125483270000198
拼接后形成的向量;段落编码子模块将
Figure BDA0002125483270000199
转换为融合了上下文信息的编码Hi p,将Hi p发送给融合函数子模块;
3.7融合函数子模块采用池化层将向量编码Hi p池化成Sj的段落编码Ei p,即从R(i,j)个d维向量中选择数值最大的1个向量,将R(i,j)*d维转化为1*d维;将Ei p发送给相关性得分计算模块;
3.8相关性得分计算模块从句向量编码子模块接收Qi的句向量编码Ei q,从融合函数子模块接收Sj的段落编码Ei p,按照Ei q、Ei p、Ei q-Ei P、Ei q·Ei P的顺序拼接得到匹配矩阵MMi,MMi是一个长度为4d的一维向量,MMi用公式(1)表示为:
Figure BDA0002125483270000201
3.9相关性得分计算模块通过全连接层和LeakyRelu激活函数计算Sj与Qi的相关性得分Score(Qi,Sj),计算公式如下:
Score(Qi,Sj)=W(2)LeakyReLU(W(1)MMi+b(1))+b(2) 公式(2)
LeakyReLU(W(1)M+b(1))是将(W(1)MMi+b(1))作为激活函数的参数进行计算,得到浮点数结果;
3.10j=j+1,如果j≤M,转步骤3.5,否则,说明Qi的所有候选段落已经完成相关性打分,得到相关性得分列表
Figure BDA0002125483270000202
Figure BDA0002125483270000203
转步骤3.11;
3.11i=i+1,如果i≤N,转步骤3.2,否则,说明信息搜索数据库中所有需要处理的问题或关键词均已完成相关性打分,得到整体得分列表SS=[SS1,SS2,...,SSi,...,SSN],转第四步;
第四步,段落排序模块根据得分列表对候选段落进行排序筛选,方法是:
4.1设定问题或关键词返回的最相关段落个数K,K为1或3或5;
4.2初始化变量i=1;
4.3针对Qi,按照SSi中的分值,记录SSi中最高的K个得分对应的序号Index=[I1,I2,...Ik...IK],Ik为排名第k个相似性得分的序号,1≤k≤K;
4.4输出Index对应的段落为得分最高的K个段落,即输出
Figure BDA0002125483270000204
Figure BDA0002125483270000205
为第Ik个候选段落;
4.4令i=i+1,如果i≤N,转步骤4.3,否则,数据集中所有问题或关键词已经输出最相关的段落信息,结束。

Claims (7)

1.一种基于句向量编码的信息搜索方法,其特征在于包括以下步骤:
第一步,构建基于句向量编码的信息搜索系统,基于句向量编码的信息搜索系统由信息搜索数据库、语义搜索排序模块和段落排序模块构成;语义搜索排序模块是由段落编码表示模块和相关性得分计算模块组成的卷积神经网络;构建方法是:
1.1搭建信息搜索数据库,方法为:
1.1.1构建信息搜索数据库结构:
信息搜索数据库是一张问题信息列表,用D表示;问题信息列表D共包含N个表项,以每个问题或关键词的相关信息作为一个表项进行存储;
问题信息列表D的每个表项以字典的格式存储,包含4个域,分别为:问题或关键词、候选段落集合、候选段落得分列表以及问题的正确答案;候选段落集合中包含M个候选段落,问题的正确答案中包含T个正确答案,M为正整数,T为正整数;
问题信息列表D用集合表示为{{Q1,P1,SS1,A1},{Q2,P2,SS2,A2}…{Qi,Pu,SSi,Ai}...{QN,PN,SSN,AN}},其中{Qi,Pi,SSi,Ai}表示问题信息列表的第i个表项,1≤i≤N,Qi为第i个问题或关键词;Pi为第i个问题的候选段落集合,Pi用{S1,S2…Sm…SM}表示,Sm为第m个候选段落,1≤m≤M,Sm为包含R个元素的语句列表,Sm为集合{s1,s2…sr…sR},R为正整数,sr表示pj的第r个语句,1≤r≤R;候选段落得分列表SSi为:{Score(Qi,S1),Score(Qi,S2),…,Score(Qi,Sm),…,Score(Qi,SM)},Score(Qi,Sm)为浮点数,表示第m个候选段落Sm与Qi的相关性得分;Ai为Qi的答案集合,用{a1,a2…at…aT}表示,at为Qi的第t个答案,1≤t≤T,T为正整数;
1.1.2选择Quasar或SQuAD或SearchQA或TriviaQA这四种数据集中的任意一种作为原始数据集,原始数据集中共有N个数据,N为正整数;令Q′i为原始数据集中第i个问题或关键词,令Ai’为原始数据集中Q′i对应的答案集合,令Pi′为原始数据集中Q′i对应的候选段落集合;
1.1.3预处理原始数据集,将预处理后的原始数据集存放到信息搜索数据库D中:
1.1.3.1若原始数据集为Quasar、SearchQA或TriviaQA,则原始数据集属于多段落问答数据类型,转步骤1.1.3.3;若原始数据集为SQuAD,则原始数据集属于单段落问答数据类型,转步骤1.1.3.2;
1.1.3.2针对原始数据集的问题或关键词,将原始数据集中提供的原始候选文章拆分处理成段落列表,得到N个原始候选段落集合即
Figure FDA0002407576460000021
转步骤1.1.3.3;
1.1.3.3针对问题或关键词,将N个原始候选段落集合即
Figure FDA0002407576460000022
进行分句处理,具体步骤为:
1.1.3.3.1初始化变量i=1;
1.1.3.3.2初始化分句处理后的Qi′的候选段落集合Pi为空;初始化变量j=1;
1.1.3.3.3初始化
Figure FDA0002407576460000023
中第j个原始候选段落pj的语句集合Sj为空,
1.1.3.3.3遍历
Figure FDA0002407576460000024
中第j个原始候选段落pj,遇到句末标点,则进行分句处理,将句末标点之前的语句增加到Sj中,共包含R(i,j)个语句,得到第j个原始候选段落pj的语句列表
Figure FDA0002407576460000025
sr表示pj的第r个语句,1≤r≤R(i,j),将Sj放到分句处理后的Qi′的候选段落集合Pi中;1≤R(i,j)≤R;
1.1.3.3.4令j=j+1,如果j≤Mi,转步骤1.1.3.3.3,否则,说明Qi′的原始候选段落集合
Figure FDA0002407576460000031
已经完成分句处理,得到分句处理后的Qi′的候选段落集合
Figure FDA0002407576460000032
令问题信息列表D中的Qi=Qi′,令D中的Ai=原始数据集中Q'i对应的答案集合Ai’,令D中的Pi=原始数据集中Q′i对应的候选段落集合Pi′,转步骤1.1.3.3.5;
1.1.3.3.5令i=i+1,如果i≤N,转步骤1.1.3.3.2,否则,说明原始数据集中N个数据均已完成候选段落集合的分句处理,得到了N个候选段落集合,即P′1,…,P′i,…,PN′,且已将D中的问题Q1,…,Qi,…,QN、候选段落集合P1,…,Pi,…,PN、答案集合A1,…,Ai,…,AN分别更新为原始数据集中的Q′1,…,Q′i,…,Q′N、P′1,…,P′i,…,P′N、A′1,…,A′i,…,A′N,转1.1.3.4;
1.1.3.4针对问题或关键词,初始化候选段落得分列表,具体步骤为:
1.1.3.4.1初始化变量i=1;
1.1.3.4.2初始化变量j=1;
1.1.3.4.3初始化D中的Qi的第j个原始候选段落pj的语句列表Sj的得分Score(Qi,Sj)为最小得分MIN,MIN为一个负数,即令Score(Qi,Sj)=MIN;
1.1.3.4.4令j=j+1,如果j≤Mi,转步骤1.1.3.4.3;否则,Qi的得分列表SSi完成赋值,即获得了
Figure FDA0002407576460000033
Figure FDA0002407576460000034
步骤1.1.3.4.5;
1.1.3.4.5令i=i+1,如果i≤N,转步骤1.1.3.4.2;否则,说明已得到SS1~SSN,D的候选段落得分列表初始化完毕,转步骤1.2;
1.2构建语义搜索排序模块,语义搜索排序模块与信息搜索数据库相连,由段落编码表示模块和相关性得分计算模块两个模块组成,方法是:
段落编码表示模块是由句向量编码子模块、段落编码子模块、融合函数子模块连接而成的神经网络模块;
句向量编码子模块与信息搜索数据库、段落编码子模块、相关性得分计算模块相连;段落编码子模块与句向量编码子模块、融合函数子模块相连;融合函数子模块与段落编码子模块、相关性得分计算模块相连;
相关性得分计算模块与句向量编码子模块、融合函数子模块相连;
句向量编码子模块从信息搜索数据库读入D中的数据{Qi,Pi,SSi,Ai},将Qi转换为句向量编码Ei q,将Pi中的候选段落集合Sj转换为句向量编码
Figure FDA0002407576460000041
R(i,j)表示Qi的候选段落Pi语句列表Sj元素个数,即Pi语句个数,1≤R(i,j)≤R;1≤r≤R(i,j),表示Qi的候选段落语句列表Sj中第r个语句sr的句向量编码;
Figure FDA0002407576460000042
是长度为d的一维向量,由d个浮点数构成;Ei s是大小为R(i,j)*d的二维向量,其构成元素均为浮点数;d为句向量维度,是一个固定的数值;句向量编码子模块将Ei q和Ei s发送给段落编码子模块,同时将Ei q发送给相关性得分计算模块;
段落编码子模块从句向量编码子模块接收Ei q和Ei s,完善补充Ei s所包含的信息,将Ei s转化为整合了Qi以及Sj上下文信息的向量编码Hi p,将Hi p发送给融合函数子模块;Hi p是大小为R(i,j)*d的二维向量,其构成元素均为浮点数;
融合函数子模块是包含1个池化层的神经网络,将向量编码Hi p池化成段落编码Ei p,将Ei p发送给相关性得分计算模块,Ei p是长度为d的一维向量,向量元素为浮点数;
相关性得分计算模块是一个包含两个全连接层和一个激活函数的分类器神经网络模块;相关性得分计算模块从段落编码表示模块接收Ei q和Ei p,将Qi的句向量编码Ei q和Ei p作为输入,计算两者的相关性,得到Sj对于Qi的相关性得分Score(Qi,Sj),并将Qi的得分列表SSi传入段落排序模块;
1.3构建段落排序模块,段落排序模块与信息搜索数据库模块和语义搜索排序模块相连,根据语义搜索排序模块计算的SSi对Qi的候选段落Pi排序,返回相关性得分最高的候选段落;
第二步,对语义搜索排序模块进行训练,得到网络权重参数集合:
2.1初始化权重参数,方法是:
2.1.1使用随机函数将参数初始化为随机数;需要初始化的参数包含段落编码表示模块中段落编码子模块采用的BiLSTM的参数{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}以及相关性得分计算模块中全连接层参数{W(1),W(2),b(1),b(2)};
2.1.2网络模型学习率设置为正数,将批尺寸batchsize设置为正整数;
2.2对语义搜索排序模块进行训练,得到语义搜索排序模块权重参数集合,方法是:
2.2.1使用Pytorch深度学习框架实现语义搜索排序模块;
2.2.2通过最小化边缘排序损失函数即margin ranking loss训练语义搜索排序模块;
2.2.3将训练结束后得到的{Wl0,Wl1,Wl0_r,Wl1_r,bl0,bl1,bl0_r,bl1_r}和{W(1),W(2),b(1),b(2)}作为网络权重参数集合;
第三步,段落编码表示模块对信息搜索数据库中的问题或关键词和候选段落编码,相关性得分计算模块计算问题或关键词与候选段落的相关性得分,方法如下:
3.1初始化变量i=1;
3.2段落编码表示模块的句向量编码子模块从信息搜索数据库D读取数据{Qi,Pi,SSi,Ai};
3.3句向量编码子模块采用句向量编码工具,将Qi转换为句向量编码Ei q
3.4初始化变量j=1;
3.5段落编码子模块采用句向量编码工具,将Pi中的候选段落语句列表Sj转换为句向量
Figure FDA0002407576460000061
Figure FDA0002407576460000062
Figure FDA0002407576460000063
表示Sj中第r个语句的句向量编码;
3.6段落编码子模块采用拼接的方式将段落句向量Ei s中的每项分别与Ei q拼接到一起,得到包含问题信息的句向量编码
Figure FDA0002407576460000064
Figure FDA0002407576460000065
Figure FDA00024075764600000612
是一个大小为R(i,j)*2d的二维向量,
Figure FDA0002407576460000068
表示将Ei q
Figure FDA0002407576460000069
拼接后形成的向量;段落编码子模块采用BiLSTM神经网络将
Figure FDA00024075764600000610
转换为融合了上下文信息的编码Hi p,将Hi p发送给融合函数子模块;
3.7融合函数子模块采用池化层将向量编码Hi p池化成Sj的段落编码Ei p,即从R(i,j)个d维向量中选择数值最大的1个向量,将R(i,j)*d维转化为1*d维;将Ei p发送给相关性得分计算模块;
3.8相关性得分计算模块从句向量编码子模块接收Qi的句向量编码Ei q,从融合函数子模块接收Sj的段落编码Ei q,按照Ei q、Ei p、Ei q-Ei P、Ei q·Ei P的顺序拼接得到匹配矩阵MMi,MMi是一个长度为4d的一维向量,MMi用公式(1)表示为:
Figure FDA00024075764600000611
3.9相关性得分计算模块通过全连接层和LeakyRelu激活函数计算Sj与Qi的相关性得分Score(Qi,Sj),计算公式如下:
Score(Qi,Sj)=W(2)LeakyReLU(W(1)MMi+b(1))+b(2)公式(2)
LeakyReLU(W(1)M+b(1))是将(W(1)MMi+b(1))作为激活函数的参数进行计算,得到浮点数结果;
3.10j=j+1,如果j≤M,转步骤3.5,否则,说明Qi的所有候选段落已经完成相关性打分,得到相关性得分列表
Figure FDA0002407576460000073
Figure FDA0002407576460000074
转步骤3.11;
3.11i=i+1,如果i≤N,转步骤3.2,否则,说明信息搜索数据库中所有需要处理的问题或关键词均已完成相关性打分,得到整体得分列表SS=[SS1,SS2,…,SSi,…,SSN],转第四步;
第四步,段落排序模块根据得分列表对候选段落进行排序筛选,方法是:
4.1设定问题或关键词返回的最相关段落个数K,K为正整数;
4.2初始化变量i=1;
4.3针对Qi,按照SSi中的分值,记录SSi中最高的K个得分对应的序号Index=[I1,I2,…Ik…IK],Ik为排名第k个相似性得分的序号,1≤k≤K;
4.4输出Index对应的段落为得分最高的K个段落,即输出
Figure FDA0002407576460000071
Figure FDA0002407576460000072
为第Ik个候选段落;
4.4令i=i+1,如果i≤N,转步骤4.3,否则,数据集中所有问题或关键词已经输出最相关的段落信息,结束。
2.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于1.1.3.2步所述将原始数据集中提供的原始候选文章拆分处理成段落列表的方法为:
1.1.3.2.1初始化变量i=1,i表示正在处理的原始数据集问题或关键词Qi′的编号;
1.1.3.2.2遍历Qi′的候选原始候选文章Doci,遇到Doci中的换行符则进行分段处理,将Doci划分为Mi个候选段落,得到Qi′的原始候选段落集合
Figure FDA0002407576460000081
Mi为正整数,1≤Mi≤M;
1.1.3.2.3令i=i+1,如果i≤N,转步骤1.1.3.2.2,否则,原始数据集中所有N个数据均已完成原始候选文章的分段处理,得到N个原始候选段落集合即
Figure FDA0002407576460000082
3.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于1.1.3.3.3步所述句末标点指“.”或“!”或“?”。
4.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于1.1.3.4.3步所述MIN为-1*103
5.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于2.1.2步所述网络模型学习率设置为0.001,所述batchsize设置为64。
6.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于第三步所述句向量编码工具指InferSent。
7.如权利要求1所述的一种基于句向量编码的信息搜索方法,其特征在于第四步所述K的取值为1或3或5。
CN201910621000.6A 2019-07-10 2019-07-10 一种基于句向量编码的信息搜索方法 Active CN110516145B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201910621000.6A CN110516145B (zh) 2019-07-10 2019-07-10 一种基于句向量编码的信息搜索方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201910621000.6A CN110516145B (zh) 2019-07-10 2019-07-10 一种基于句向量编码的信息搜索方法

Publications (2)

Publication Number Publication Date
CN110516145A CN110516145A (zh) 2019-11-29
CN110516145B true CN110516145B (zh) 2020-05-01

Family

ID=68622574

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201910621000.6A Active CN110516145B (zh) 2019-07-10 2019-07-10 一种基于句向量编码的信息搜索方法

Country Status (1)

Country Link
CN (1) CN110516145B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN111159340B (zh) * 2019-12-24 2023-11-03 重庆兆光科技股份有限公司 基于随机优化预测的机器阅读理解的答案匹配方法及系统
CN112364146A (zh) * 2020-11-27 2021-02-12 支付宝(杭州)信息技术有限公司 查询文档排序方法、装置及电子设备
CN113065356B (zh) * 2021-03-19 2023-10-31 南方电网调峰调频发电有限公司信息通信分公司 一种基于语义分析算法的it设备运维故障建议处理方法
CN113032533B (zh) * 2021-05-31 2021-09-03 宏龙科技(杭州)有限公司 一种基于稀疏向量匹配的高效检索方法

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101717230B1 (ko) * 2015-12-30 2017-03-16 성균관대학교산학협력단 재귀 오토인코더 기반 문장 벡터 모델링을 이용하는 문서 요약 방법 및 문서 요약 시스템
CN109829478A (zh) * 2018-12-29 2019-05-31 平安科技(深圳)有限公司 一种基于变分自编码器的问题分类方法和装置

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2015033341A1 (en) * 2013-09-09 2015-03-12 Sami Shamoon College Of Engineering (R.A.) Polytope based summarization method
CN104933183B (zh) * 2015-07-03 2018-02-06 重庆邮电大学 一种融合词向量模型和朴素贝叶斯的查询词改写方法
CN107832326B (zh) * 2017-09-18 2021-06-08 北京大学 一种基于深层卷积神经网络的自然语言问答方法
CN107808011B (zh) * 2017-11-20 2021-04-13 北京大学深圳研究院 信息的分类抽取方法、装置、计算机设备和存储介质

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR101717230B1 (ko) * 2015-12-30 2017-03-16 성균관대학교산학협력단 재귀 오토인코더 기반 문장 벡터 모델링을 이용하는 문서 요약 방법 및 문서 요약 시스템
CN109829478A (zh) * 2018-12-29 2019-05-31 平安科技(深圳)有限公司 一种基于变分自编码器的问题分类方法和装置

Also Published As

Publication number Publication date
CN110516145A (zh) 2019-11-29

Similar Documents

Publication Publication Date Title
CN109271505B (zh) 一种基于问题答案对的问答系统实现方法
CN111611361B (zh) 抽取式机器智能阅读理解问答系统
CN110516145B (zh) 一种基于句向量编码的信息搜索方法
CN110298037B (zh) 基于增强注意力机制的卷积神经网络匹配的文本识别方法
CN112100351A (zh) 一种通过问题生成数据集构建智能问答系统的方法及设备
CN106970910B (zh) 一种基于图模型的关键词提取方法及装置
CN106502994B (zh) 一种文本的关键词提取的方法和装置
CN111259127B (zh) 一种基于迁移学习句向量的长文本答案选择方法
CN110674252A (zh) 一种面向司法领域的高精度语义搜索系统
CN110222163A (zh) 一种融合cnn与双向lstm的智能问答方法及系统
CN111291188B (zh) 一种智能信息抽取方法及系统
CN109032375A (zh) 候选文本排序方法、装置、设备及存储介质
CN112115253B (zh) 基于多视角注意力机制的深度文本排序方法
CN111428443B (zh) 一种基于实体上下文语义交互的实体链接方法
CN112307182B (zh) 一种基于问答系统的伪相关反馈的扩展查询方法
CN114428850B (zh) 一种文本检索匹配方法和系统
CN112328800A (zh) 自动生成编程规范问题答案的系统及方法
CN113704416A (zh) 词义消歧方法、装置、电子设备及计算机可读存储介质
CN112036178A (zh) 一种配网实体相关的语义搜索方法
CN109145083B (zh) 一种基于深度学习的候选答案选取方法
Li et al. LSTM-based deep learning models for answer ranking
CN113962228A (zh) 一种基于记忆网络语义融合的长文档检索方法
CN112417170B (zh) 面向不完备知识图谱的关系链接方法
Khorashadizadeh et al. Attention-based Convolutional Neural Network for Answer Selection using BERT
CN111382333A (zh) 基于案件相关性联合学习与图卷积的新闻文本句中案件要素抽取方法

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination
SE01 Entry into force of request for substantive examination
GR01 Patent grant
GR01 Patent grant