CN113962228A - 一种基于记忆网络语义融合的长文档检索方法 - Google Patents
一种基于记忆网络语义融合的长文档检索方法 Download PDFInfo
- Publication number
- CN113962228A CN113962228A CN202111246473.6A CN202111246473A CN113962228A CN 113962228 A CN113962228 A CN 113962228A CN 202111246473 A CN202111246473 A CN 202111246473A CN 113962228 A CN113962228 A CN 113962228A
- Authority
- CN
- China
- Prior art keywords
- semantic
- document
- user query
- vector
- documents
- 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.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F40/00—Handling natural language data
- G06F40/30—Semantic analysis
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/21—Design or setup of recognition systems or techniques; Extraction of features in feature space; Blind source separation
- G06F18/214—Generating training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/22—Matching criteria, e.g. proximity measures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F18/00—Pattern recognition
- G06F18/20—Analysing
- G06F18/25—Fusion techniques
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/048—Activation functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
Abstract
本发明涉及一种基于记忆网络语义融合的长文档检索方法,解决长文档检索中面临的如何在有限的输入中最大可能地保留并融合不同段落的语义表示的技术问题,属于信息检索技术领域。本方法利用预训练语言模型强大的上下文语义建模能力,丰富用户查询向量表示和候选文档向量表示的语义信息,更好地实现语义匹配。本方法使用记忆网络存储文档各分段的向量表示作为记忆单元,针对用户查询,利用注意力机制动态读取记忆单元,融合不同段落间的语义向量,能够有效从长文档中抽取相关信息,摆脱了序列模型的遗忘问题,提升了长文档任务下的用户检索质量。
Description
技术领域
本发明涉及一种基于记忆网络语义融合的长文档检索方法,属于信息检索技术领域。
背景技术
长文档检索是信息检索领域的一项基本任务,其特点是:候选文档文本平均长度较长,不同段落间往往包含多个主题,而用户检索意图可能只与文档中的少数几个段落具有强相关性。在给定用户查询情况下,长文档检索模型需要在大量候选长文档中准确检索到与用户查询最相关的目标文档,多应用在文献检索,法律文书检索等场景下。
传统的搜索引擎(如BM25等),是建立在二元独立模型(BIM,Binary IndependenceModel)的基础上,即,设文本可以由某个单词是否出现在文本中作为特征进行表示,并且文本中不同单词的出现相互独立。在结合分词技术和倒排索引的情况下,能够在大规模语料库中实现快速检索。但是,该方式忽略了现实中文本内不同单词的上下文依赖关系,过分强调用户查询与候选文档在文本上的精确匹配(exact match),缺乏语义上的建模,当用户查询以自然语言形式而非关键词出现时,其检索效果较差。
一些研究人员利用RNN、GRU等序列模型,将长文档不同段落通过其内在的逻辑顺序融合在一起。然而,RNN、GRU等序列模型在序列长度较长时会出现遗忘问题,无法建立长距离依赖。同时,将长文本压缩为固定长度的向量,必然会带来信息上的损失。
近年来,预训练语言模型(Pretrained Language Model)的广泛引用,使语义匹配得到了飞速发展,其强大的上下文建模能力和便捷的可迁移性,帮助检索模型不再局限于精确匹配,能够更好地评估用户查询与候选文档之间的语义相似度。但是,在长文档检索中,候选文档长度远远超出预训练语言模型的输入长度限制,不能一次性将整个文档放入预训练语言模型中。因此,如何在有限的输入中最大可能地保留并融合不同段落的语义表示,是长文档检索面临的主要问题和挑战。
发明内容
本发明的目的是针对现有技术存在的缺陷,为了解决长文档检索中面临的如何在有限的输入中最大可能地保留并融合不同段落的语义表示的技术问题,提高长文档检索任务下用户检索的准确性,创造性地提出了一种基于记忆网络语义融合的长文档检索方法。
本发明的创新点在于:采用一种记忆网络来实现不同段落间语义上的融合的方法,利用记忆网络直接存储不同段落的语义向量表示,通过注意力机制对用户查询进行迭代式的更新,从而有效地从长文本中抽取出与给定用户查询相关的内容,提高了长文档检索任务下用户检索的准确性。
为实现上述目的,本发明采用以下技术方案。
首先,对数据进行预处理,通过召回算法筛选出可能与用户查询相关的文档,从而减小后续阶段模型的计算量。然后,对候选文档进行分段编码,将得到的每一个分段作为记忆网络的一个单元。目的是对候选长文档进行划分。之后,使用预训练语言模型对用户查询进行编码,得到用户查询对应的语义向量表示。基于记忆网络的语义融合阶段,筛选不同存储单元与用户查询相关的部分,并更新拓展用户查询。然后,进行迭代更新,获得准确的用户查询信息。利用多层感知机模型,分别对候选文档中的正、负样本打分,并通过损失函数对模型参数进行训练。当完成模型训练后,对给定用户查询,不再区分正、负样本,对候选文档集合的每个文档进行预测评分,并按分数从高至低进行排序,返回分数排名靠前的文档,作为最终的检索结果。
有益效果
本发明方法,相较现有技术,具有如下优点:
1.本方法能够利用预训练语言模型强大的上下文语义建模能力,丰富用户查询向量表示和候选文档向量表示的语义信息,更好地实现语义匹配。
2.本方法使用记忆网络存储文档各分段的向量表示作为记忆单元,针对用户查询,利用注意力机制动态读取记忆单元,融合不同段落间的语义向量,能够有效从长文档中抽取相关信息,摆脱了序列模型的遗忘问题,提升了长文档任务下的用户检索质量。
附图说明
图1为本发明方法的实施流程图。
图2为本发明方法对文档/查询编码具体实施流程图。
具体实施方式
下面结合附图对本发明方法作进一步详细说明。
如图1所示,一种基于记忆网络语义融合的长文档检索方法,包括以下步骤:
步骤1:数据预处理。可通过召回算法,筛选出可能与用户查询相关的文档,从而减小后续阶段模型的计算量。
具体地,步骤1包括以下步骤:
步骤1.1:对于给定的用户查询集合,过滤查询中的特殊字符,并对候选文档集合进行分段。
其中,可以使用正则表达式过滤用户查询中的特殊字符。
步骤1.2:对给定的每条用户查询,从所有候选文档中,按照相似度从大到小的顺序进行排名,并筛选出最大的前F个文档(根据查询需求确定F数量,例如可以选出相似度排名最大的前100个),作为下一阶段的候选文档集合。
例如,可以使用BM25算法对候选文档集合计算用户查询与各个文档的相似度,并返回相似度分数排名前100个文档。
步骤1.3:对给定的每条用户查询,在候选文档集合中挑选出对应的相关文档和不相关文档,分别作为正、负样本。
例如,给定一条用户查询,从事实相关的候选文档集合中随机挑选一个作为正样本,从事实不相关的候选文档集合中随机挑选一个作为负样本,从BM25算法返回的文档集合中随机挑选一个事实不相关的候选文档作为困难负样本,三者拼接在一起,以三元组的形式作为后续模型的输入。
步骤2:对候选文档进行分段编码。其目的是对候选长文档进行划分。将得到的每一个分段作为记忆网络的一个单元。
如图2所示,具体地,步骤2包括以下步骤:
步骤2.1:从文档开始部分,对文档选取固定长度的文本。其中,选取文本按长度平均分段,每段之间存在相同长度的重叠部分。
步骤2.2:使用预训练语言模型对各个分段进行编码,得到各个分段包含上下文语义的向量表示,每个分段作为记忆网络中记忆模块的一个存储单元。
步骤3:使用预训练语言模型对用户查询进行编码,得到用户查询对应的语义向量表示。
其中,所述预训练语言模型可以采用BERT模型。BERT包括嵌入层和多层堆叠的transformer层,每个transformer层包括多头注意力部分和前向传播网络部分。预训练语言模型的编码指BERT的最后两个transformer层输出的每个字符的向量表示加权平均,两层相加即得到最终的输入文本的向量表示。
步骤4:基于记忆网络的语义融合阶段,筛选不同存储单元与用户查询相关的部分。
步骤4具体可以采用以下方法:
利用注意力机制,计算用户查询与不同段落间的相似度,并以此为权重,将多个段落的语义向量表示融合在一起,得到该篇文档的语义向量表示:
αi=sim(qk,pi) (1)
其中,sim(q,pi)为相似度函数,在第k次迭代中,衡量用户查询qk与文本第i个段落pi之间的相似度,其结果为αi;m为存储单元数目,Ok为第k次迭代得到的文档的语义向量表示。
所述相似度函数sim(q,p),具体为:sim(q,p)=vT tanh(W[q;p]),其中,v、W均为训练参数,tanh为激活函数,T为转置,q、p分别为用户查询向量与候选段落表示向量。
步骤5:更新用户查询向量。结合步骤4得到的文本表示向量,丰富用户查询向量的语义。
步骤5具体可以采用以下方法:
将用户查询qk与第k次迭代得到的文档的语义向量表示Ok融合在一起,输出更新后的文档向量:
Ok+1=W1qk+W2Ok+b (3)
其中,Ok+1为第k+1次迭代得到的文档语义向量表示;W1为将qk映射到相同语义空间的线性项,W2为将Ok映射到相同语义空间的线性项,b为将qk、Ok映射到相同语义空间的偏差项;W1、W2、b均为学习参数。
将得到的文档语义向量表示Ok+1作为新的用户查询向量:qk+1=Ok+1。
步骤6:进行迭代更新,获得准确的用户查询信息。
具体地,重复步骤4至步骤5,得到最终的文档向量表示On,n代表总迭代次数。
步骤7:利用多层感知机模型,分别对候选文档中的正、负样本打分,并通过损失函数对模型参数进行训练。
具体地,步骤7具体可以采用以下方法::
步骤7.1:针对给定用户查询,多层感知机模型分别对正、负样本进行打分:
spos=MLP([q;Opos]) (4)
sneg=MLP([q;Oneg]) (5)
其中,spos、sneg分别是用户查询向量与正负样本间的相似度分数,Opos、Oneg分别代表相关文档和不相关文档的向量表示;
MLP([q;O])为多层感知机模型,负责计算用户查询向量与候选文档向量之间的得分,q表示用户查询向量,O表示候选文档向量。
进一步地,MLP([q;O])将q、O拼接在一起后放入多层感知机,具体如下式所示:
MLP(q;O)=sigmoid(W2(RELU(W1[q;O]+b1)+b2) (6)
其中,sigmoid、RELU均为激活函数,W1、W2、b1、b2均为学习参数。
步骤7.2:通过损失函数,对模型进行训练。
模型要求正、负样本之间的得分差距尽量大,并以此作为损失函数,更新模型各部分的参数,具体如下式所示:
其中,Loss为模型预测样本相关性得分与样本实际相关性分数的差值,margin为损失函数阈值,N是样本总数。
其中,对Loss的反向传播时,可以采用Adam算法对模型参数进行更新。
步骤8:完成模型训练后,对给定用户查询,不再区分正、负样本,对候选文档集合的每个文档进行预测评分,并按分数从高至低进行排序,返回分数排序最高的前G个文档(如返回分数排序最高的前10个),作为最终的检索结果。
Claims (8)
1.一种基于记忆网络语义融合的长文档检索方法,其特征在于,包括以下步骤:
步骤1:筛选出可能与用户查询相关的文档;
步骤2:对候选文档进行分段编码,将得到的每一个分段作为记忆网络的一个单元;
步骤3:使用预训练语言模型对用户查询进行编码,得到用户查询对应的语义向量表示;
步骤4:基于记忆网络的语义融合阶段,筛选不同存储单元与用户查询相关的部分;
步骤5:更新用户查询向量;
步骤6:重复步骤4至步骤5,进行迭代更新,获得准确的用户查询信息;
步骤7:利用多层感知机模型,分别对候选文档中的正、负样本打分,并通过损失函数对模型参数进行训练;
步骤8:完成模型训练后,对给定用户查询,不再区分正、负样本,对候选文档集合的每个文档进行预测评分,并按分数从高至低进行排序,返回分数排序最高的前G个文档,作为最终的检索结果。
2.如权利要求1所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,步骤1包括以下步骤:
步骤1.1:对于给定的用户查询集合,过滤查询中的特殊字符,并对候选文档集合进行分段;
步骤1.2:对给定的每条用户查询,从所有候选文档中,按照相似度从大到小的顺序进行排名,并筛选出排名最大的前F个文档,作为下一阶段的候选文档集合;
步骤1.3:对给定的每条用户查询,在候选文档集合中挑选出对应的相关文档和不相关文档,分别作为正、负样本。
3.如权利要求1所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,步骤2包括以下步骤:
步骤2.1:从文档开始部分,对文档选取固定长度的文本,其中,选取文本按长度平均分段,每段之间存在相同长度的重叠部分;
步骤2.2:使用预训练语言模型对各个分段进行编码,得到各个分段包含上下文语义的向量表示,每个分段作为记忆网络中记忆模块的一个存储单元。
4.如权利要求1所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,步骤3中,预训练语言模型采用BERT模型;
其中,BERT包括嵌入层和多层堆叠的transformer层,每个transformer层包括多头注意力部分和前向传播网络部分;
预训练语言模型的编码指BERT的最后两个transformer层输出的每个字符的向量表示加权平均,两层相加即得到最终的输入文本的向量表示。
6.如权利要求5所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,相似度函数sim(q,p)具体为:sim(q,p)=vTtanh(W[q;p]),其中,v、W均为训练参数,tanh为激活函数,T为转置,q、p分别为用户查询向量与候选段落表示向量。
7.如权利要求1所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,步骤5中,通过结合步骤4得到的文本表示向量,丰富用户查询向量的语义,具体如下:
将用户查询qk与第k次迭代得到的文档的语义向量表示Ok融合在一起,输出更新后的文档向量:
Ok+1=W1qk+W2Ok+b (3)
其中,Ok+1为第k+1次迭代得到的文档语义向量表示;W1为将qk映射到相同语义空间的线性项,W2为将Ok映射到相同语义空间的线性项,b为将qk、Ok映射到相同语义空间的偏差项;W1、W2、b均为学习参数;
将得到的文档语义向量表示Ok+1作为新的用户查询向量:qk+1=Ok+1。
8.如权利要求1所述的一种基于记忆网络语义融合的长文档检索方法,其特征在于,步骤7包括以下步骤:
步骤7.1:针对给定用户查询,多层感知机模型分别对正、负样本进行打分:
spos=MLP([q;Opos]) (4)
sneg=MLP([q;Oneg]) (5)
其中,spos、sneg分别是用户查询向量与正负样本间的相似度分数,Opos、Oneg分别代表相关文档和不相关文档的向量表示;
MLP([q;O])为多层感知机模型,负责计算用户查询向量与候选文档向量之间的得分,q表示用户查询向量,O表示候选文档向量;
MLP([q;O])将q、O拼接在一起后放入多层感知机,具体如下式所示:
MLP(q;O)=sigmoid(W2(RELU(W1[q;O]+b1)+b2) (6)
其中,sigmoid、RELU均为激活函数,W1、W2、b1、b2均为学习参数;
步骤7.2:通过损失函数,对模型进行训练;
具体如下:
其中,Loss为模型预测样本相关性得分与样本实际相关性分数的差值,margin为损失函数阈值,N是样本总数。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246473.6A CN113962228A (zh) | 2021-10-26 | 2021-10-26 | 一种基于记忆网络语义融合的长文档检索方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111246473.6A CN113962228A (zh) | 2021-10-26 | 2021-10-26 | 一种基于记忆网络语义融合的长文档检索方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113962228A true CN113962228A (zh) | 2022-01-21 |
Family
ID=79467010
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111246473.6A Pending CN113962228A (zh) | 2021-10-26 | 2021-10-26 | 一种基于记忆网络语义融合的长文档检索方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113962228A (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547251A (zh) * | 2022-02-28 | 2022-05-27 | 陕西师范大学 | 基于bert的两阶段民间故事检索方法 |
CN116226357A (zh) * | 2023-05-09 | 2023-06-06 | 武汉纺织大学 | 一种输入中包含错误信息场景下的文档检索方法 |
-
2021
- 2021-10-26 CN CN202111246473.6A patent/CN113962228A/zh active Pending
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN114547251A (zh) * | 2022-02-28 | 2022-05-27 | 陕西师范大学 | 基于bert的两阶段民间故事检索方法 |
CN114547251B (zh) * | 2022-02-28 | 2024-03-01 | 陕西师范大学 | 基于bert的两阶段民间故事检索方法 |
CN116226357A (zh) * | 2023-05-09 | 2023-06-06 | 武汉纺织大学 | 一种输入中包含错误信息场景下的文档检索方法 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109271505B (zh) | 一种基于问题答案对的问答系统实现方法 | |
CN109829104B (zh) | 基于语义相似度的伪相关反馈模型信息检索方法及系统 | |
CN110442777B (zh) | 基于bert的伪相关反馈模型信息检索方法及系统 | |
CN111611361A (zh) | 抽取式机器智能阅读理解问答系统 | |
CN109840287A (zh) | 一种基于神经网络的跨模态信息检索方法和装置 | |
CN113268995B (zh) | 中文学术关键词抽取方法、装置和存储介质 | |
CN108509474A (zh) | 搜索信息的同义词扩展方法及装置 | |
CN110321419A (zh) | 一种融合深度表示与交互模型的问答匹配方法 | |
CN110263325B (zh) | 中文分词系统 | |
CN110516145B (zh) | 一种基于句向量编码的信息搜索方法 | |
CN114428850B (zh) | 一种文本检索匹配方法和系统 | |
CN111368514A (zh) | 模型训练及古诗生成方法、古诗生成模型、设备和介质 | |
CN113962228A (zh) | 一种基于记忆网络语义融合的长文档检索方法 | |
CN112115716A (zh) | 一种基于多维词向量下文本匹配的服务发现方法、系统及设备 | |
CN109145083B (zh) | 一种基于深度学习的候选答案选取方法 | |
CN115794999A (zh) | 一种基于扩散模型的专利文档查询方法及计算机设备 | |
CN113220832A (zh) | 一种文本处理方法及装置 | |
CN112463944A (zh) | 一种基于多模型融合的检索式智能问答方法及装置 | |
CN112507078A (zh) | 一种语义问答方法、装置、电子设备及存储介质 | |
CN116244445A (zh) | 航空文本数据标注方法及其标注系统 | |
CN113934835B (zh) | 结合关键词和语义理解表征的检索式回复对话方法及系统 | |
CN111309926B (zh) | 一种实体链接方法、装置及电子设备 | |
CN112446219A (zh) | 一种中文请求文本意图分析方法 | |
CN112949293A (zh) | 一种相似文本生成方法、相似文本生成装置及智能设备 | |
CN116842934A (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 |