首页> 中国专利> 一种基于网页正文内容的问题式查询推荐方法

一种基于网页正文内容的问题式查询推荐方法

摘要

本发明提出了一种基于网页正文内容的问题式查询推荐方法,属于计算机网络信息检索查询推荐技术领域。所述基于网页正文内容的问题式查询推荐方法依托的查询推荐系统包括问题式查询生成模块和问题式查询推荐模块,包括以下步骤:S1,生成问题式查询,具体为:以网页正文文本段和关键字作为输入,使用神经网络模型生成一个基于网页正文文本段与关键字相关的问题式查询,重复该过程,得到N个问题式查询。S2,以问题式查询之间的相似度作为衡量标准筛选由S1得到的N个问题式查询,作为查询推荐的最终结果。所述方法在摆脱了对用户检索日志的依赖的同时,能更好的帮助用户表达信息需求。

著录项

  • 公开/公告号CN113836408A

    专利类型发明专利

  • 公开/公告日2021-12-24

    原文格式PDF

  • 申请/专利权人 北京理工大学;

    申请/专利号CN202111074829.2

  • 发明设计人 毛先领;赫宇欣;黄河燕;

    申请日2021-09-14

  • 分类号G06F16/9535(20190101);G06N3/04(20060101);G06N3/08(20060101);

  • 代理机构11639 北京正阳理工知识产权代理事务所(普通合伙);

  • 代理人张利萍

  • 地址 100081 北京市海淀区中关村南大街5号

  • 入库时间 2023-06-19 13:49:36

说明书

技术领域

本发明涉及一种查询推荐方法,具体涉及一种基于网页正文内容的问题式查询推荐方法,属于计算机网络信息检索查询推荐技术领域。

背景技术

网络信息检索查询推荐,是根据用户已输入搜索栏的内容,提供完整查询以供用户搜索的任务,它是提高用户检索效率和准确性的一个重要手段。

当前,各大网络搜索引擎都为用户提供了查询推荐的功能。查询推荐的主要目的是:在用户输入的关键字的基础上进行扩充,减少语言的模糊性,并且以更详细的语言阐述用户想要检索|的信息,从而起到提高信息检索效率的作用。

现有的方法可以分为两类,一类是基于点击信息的查询推荐方法,另一类是基于会话的查询推荐方法。其中,基于点击的查询推荐方法主要关注用户在搜索日志中的点击模式,对用户的每一个点击行为进行记录和跟踪,将被点击的URL链接用于研究不同查询之间的关系,并根据这种关系将查询进行聚类,从属于同一聚类的查询将被用于同一主题下的查询推荐。而基于会话的查询推荐则关注用户在同一个搜索会话中提交的查询之间的联系,利用基于循环神经网络的方法可以对用户搜索行为与查询之间的潜在关系建模,将查询日志作为数据序列输入,通过模型预测下一个可能的查询并推荐给用户。

然而,现有的方法主要存在两点不足:一是查询推荐的形式以关键字和短语为主,这种形式的查询不够直观,无法有效地帮助用户阐述信息检索需求。二是现有方法依赖大量用户查询日志信息,难以应用于没有庞大用户基础或发布时间较短的小型数据库。

发明内容

本发明的目的是针对现有查询推荐方法存在形式不直观、依赖大规模用户查询日志等缺陷和不足,为了进一步减少查询过程面临的语义的模糊性并摆脱对用户查询日志的依赖,提出了一种基于网页正文内容的问题式查询推荐方法,所述方法将用户输入的查询关键字和网页正文作为输入,为用户提供一组根据输入内容所提问题式查询作为查询推荐的结果。

为了达到上述目的,本发明采取如下技术方案:

所述基于网页正文内容的问题式查询推荐方法依托的查询推荐系统包括问题式查询生成模块和问题式查询推荐模块;

其中,问题式查询生成模块是一个神经网络模型,该模型根据输入的网页正文和关键字,生成一个基于网页正文内容与关键字相关的问题式查询;

问题式查询生成模块采用Seq2Seq框架,包括编码器和解码器两个部分;

其中,编码器包括双向LSTM层、注意力层1及特征融合门,且三者依次相连,即:双向LSTM层与注意力层1相连,注意力层1与特征融合门相连;

其中,双向LSTM层的输入为编码器的输入,特征融合门的输出即为编码器的输出;

双向LSTM层将网页正文和关键字进行编码输出<文本,关键字>向量表示;注意力层1将隐藏状态通过自注意力机制计算自匹配的向量表示;特征融合门通过可训练的门控向量,融合<文本,关键字>向量表示和自匹配的向量表示,选择有价值的信息组成中间向量表示;

解码器包括单向LSTM层、注意力层2、拷贝层以及输出层,且四者依次连接,即:单向LSTM层与注意力层2相连,注意力层2与拷贝层相连,拷贝层与输出层相连;

其中,单向LSTM层的输入为解码器的输入,输出层的输出即为解码器的输出;

单向LSTM层结合编码器生成的中间向量表示和在当前生成词之前所有经过解码器的输出词向量表示得到单向LSTM层的隐藏状态;注意力层2计算当前解码器隐藏状态与编码器最终输出的所有隐藏状态的注意力值;拷贝层计算拷贝分数和生成分数;输出层通过拷贝分数和生成分数计算概率分布,根据概率分布的结果选择概率最大的单词输出;

问题式查询推荐模块以问题式查询之间的相似度作为衡量标准,计算生成的问题式查询两两之间的句子相似度得到相似度矩阵;将每个查询与当前查询的相似度从高到低的排名作为权重,选择前A名查询输出;

所述基于网页正文内容的问题式查询推荐方法,包括以下步骤:

步骤1:生成问题式查询,具体为:以网页正文文本段和关键字作为输入,使用问题式查询生成模块生成一个基于网页正文文本段与关键字相关的问题式查询,重复该过程,得到N个问题式查询,N的个数与网页正文文本段的总个数相同,且N大于0;

其中,生成每个基于网页正文文本段与关键字相关的问题式查询,具体包括如下子步骤:

步骤1.1:将网页正文文本段和关键字输入双向LSTM层进行编码,并将前向传播和后向传播两个方向上的所有隐藏状态拼接起来,用H表示;

步骤1.2:在注意力层1将经双向LSTM层编码的<文本,关键字>向量表示h

步骤1.3:利用特征融合门获得中间向量表示

步骤1.3.1:将自匹配向量表示s

步骤1.3.2:通过特征融合门将<文本,关键字>向量表示h

步骤1.4:解码,将编码器生成的中间向量表示

步骤1.5:在注意力层2,计算注意力值和输出隐藏状态,包括如下子步骤:

步骤1.5.1:利用单向LSTM层的隐藏状态d

步骤1.5.2:计算上下文向量表示c

步骤1.5.3:将单向LSTM层的隐藏状态d

步骤1.6:在拷贝层计算拷贝分数和生成分数,并将拷贝分数和生成分数拼接起来,通过softmax函数计算t时刻在所有词语上的概率分布,根据概率分布的结果选择概率最大的单词输出;

步骤1.7:重复步骤1.4至步骤1.6,直到模型输出终止符,标志着当前问题生成已结束,模型输出的句子为一个问题式查询;

步骤2:进行问题式查询推荐,具体为:筛选步骤1得到的N个问题式查询,选择其中最具有代表性的问题式查询,作为查询推荐的最终结果,包括以下子步骤:

步骤2.1:利用BERT得到问题式查询的句向量表示,计算N个问题式查询两两之间的余弦相似度,得到相似度矩阵;

步骤2.2:将每个问题式查询与当前问题式查询对应的相似度矩阵中的相似度值从高到低的排名作为权重,根据需要,选择前A名查询输出;

其中,A大于等于3。

有益效果

本发明提出的一种基于网页正文内容的问题式查询推荐方法,对比现有技术,具有如下有益效果:

1.所述方法首次提出了问题式查询这一新的查询推荐形式,通过对查询形式进行更加严格的要求,使得生成的查询推荐可以更好的帮助用户表达他们的信息需求;

2.所述方法对比现有技术,摆脱了对用户检索日志的依赖;

3.所述方法经过实验,在测试数据集上取得了最好的效果。

附图说明

图1为本发明的问题式查询生成块结构示意图;

图2为本发明的查询推荐结果与其他方法的查询推荐结果对比图。

具体实施方式

下面结合附图和实施例,对本发明一种基于网页正文内容的问题式查询推荐方法作进一步详细说明。

本发明有丰富的应用场景,其中包括:搜索引擎的冷启动场景、基于数据库的问答系统的问题推荐场景。

在搜索引擎的冷启动场景下,本发明的训练过程如步骤A至步骤B所示不变,在步骤C只需要将步骤C.1中通过爬虫技术得到的网页正文替换为搜索引擎或数据库中存储的文本,并将用户真实输入的查询关键字作为关键字,在步骤C.2生成问题式查询之前,利用搜索引擎检索15篇最相关的文本作为输入,按照步骤C.1.3进行相同的预处理,从而得到步骤C.2所需的网页正文文本段和关键字。之后执行步骤C.2至步骤C.3即可得到可用于搜索引擎的查询推荐结果,省略步骤C.4。由上述步骤可以看出,本发明在生成查询推荐结果的过程中没有用到任何用户检索日志的信息,因此在冷启动场景下也可以为用户提供高质量的查询推荐,与传统方法相比具有优势。

在基于数据库的问答系统的问题推荐场景下,用户在使用问答系统时需要向系统输入一个问题,然而对于用户来说将信息需求转换为语义明确的问题的过程比较复杂和困难。本发明可以帮助用户阐明自己的信息需求、提供一组语义丰富且完整的问题式查询,为用户提供了便利,进一步提高了使用该问答系统的效率。与上一应用场景类似,本发明训练过程如步骤A至步骤B所示不变,在步骤C只需要将步骤C.1中通过爬虫技术得到的网页正文替换为数据库中存储的文本,并将用户在问答系统中输入的问题前缀作为关键字。在步骤C.2生成问题式查询之前,利用Elastic Search检索数据库中15篇最相关的文本作为输入,按照步骤C.1.3进行相同的预处理,从而得到步骤C.2所需的网页正文文本段和关键字。之后按照步骤C.2至步骤C.3即可得到可用于搜索引擎的查询推荐结果,步骤C.4可以略去。与传统方法相比,本发明摆脱了对用户搜索日志的依赖,因此可以也应用于没有庞大用户基础或发布时间较短的小型数据库

实施例1

下面结合附图和实施例,对本发明方法作进一步详细说明。本实施例阐述了本发明在处理数据集时采用的流程、涉及的神经网络模型的结构和详细参数以及实验结果。

一种基于网页正文内容的问题式查询推荐方法,包括以下步骤:

步骤A:数据集构建。

在SQuAD数据集的基础上,构建用于训练问题式查询生成模块的数据集,此数据集中的一组数据为三元组<含位置信息的关键字,问题,网页正文文本段>。

步骤A.1:计算SQuAD所有问题中每个单词的TF-IDF值,具体包括如下子步骤:

步骤A.1.1:问题预处理,具体为:

对SQuAD数据集中的所有问题进行格式化和分词操作。其中,格式化包括将问题中所有大写英文字母转换为对应的小写英文字母,并将部分标点符号和表达进行转换。

例如,将“。”替换为“.”,将“,”替换为“,”,将“;”替换为“,”,将“p.m.”替换为“pm”,将“a.m.”替换为“am”。

步骤A.1.2:在所有问题上计算每个单词的TF-IDF值,TF-IDF值的计算公式如(1):

其中,TF-IDF

步骤A.1.3:将每个单词与其相应的TF-IDF值保存为TF-IDF词表,词表中每一项数据格式为<单词,TF-IDF值>。

步骤A.2:从问题中选择关键字,对数据集中的每一个问题依次进行处理,重复这一步骤,直到所有问题都被处理。

其中,处理数据集中的每个问题,具体包括如下子步骤:

步骤A.2.1:对当前问题进行分词操作,得到由问题中每个单词构成的列表。

步骤A.2.2:根据列表中每个单词对应的TF-IDF值逆序排列,选择前5个单词保留作为当前问题的关键词。

步骤A.2.3:将关键词中在原问题中相邻的单词合并为关键词组,将经过合并处理后的关键词和关键词组作为最终的关键字词表。

例如,对于“how many grammy awards has beyonce won?”这一问题,通过步骤A.2.1提取到的关键词为:“grammy”,“awards”,“beyonce”,“won”,很明显可以看出“grammyawards”是一个完整的词组,且相比较于单个单词可以传递更加明确的信息,因此将“grammy”和“awards”合并为关键词组。由此得到该问题最终的关键字词表:“grammyawards”,“beyonce”,“won”。

步骤A.2.4:对于关键字词表中的每一个关键字,计算关键字和问题对应答案在网页正文文本段中的距离,选择距离最近的关键字作为与当前问题对应的关键字,以关键字在文中所在的位置(即为网页正文文本段正序第几个单词),构成三元组<含位置信息的关键字,问题,网页正文文本段>。

步骤A.3:按照步骤A.1至步骤A.2的流程分别处理SQuAD数据集的训练集和验证集。再将由验证集获得的数据(本实施例中为9435个)平均分为验证集和测试集两部分,最终得到训练集(本实施例中为132567个)、开发集和测试集,详细信息如表1、表2所示。

表1 数据集统计信息表

表2 数据集统计信息表

步骤B:训练阶段。

训练问题式查询生成模块,问题式查询生成模块的组件与连接方式如图1所示,具体步骤如下:

步骤B.1:初始化问题式查询生成模块中的所有参数。

在实验中,问题式查询生成模块使用Pytorch实现。在训练时进行分批训练,将batch size设置为64,使用Adam随机梯度下降的方法,将初始学习率设置为0.1,dropout设置为0.3。

步骤B.2:将训练集依照batch size分为若干个batch,对于每个batch(含义为批次)做如下训练:

步骤B.2.1:将<含位置信息的关键字,网页正文文本段>,输入问题式查询生成模块,获得生成问题的句向量表示。

步骤B.2.2:对于生成问题的句向量表示与数据集中的标准问题的句向量表示,计算交叉熵损失。交叉熵损失函数L计算公式(3):

其中,y表示生成问题的句向量表示,

步骤B.2.3:基于Adam随机梯度下降方法,反向更新模型参数。

步骤B.3:重复步骤B.2,训练问题式查询生成模块,直到该模块在开发集上的损失收敛。

步骤C:测试及应用阶段。

构建测试数据集,利用本发明生成问题式查询推荐结果,并将本发明生成的问题式查询推荐结果与主流搜索引擎提供的查询推荐结果进行比较,通过人工评价的方式验证本发明结果的有效性。

具体包括以下步骤:

步骤C.1:构建测试数据集。

步骤C.1.1:在TREC 2019任务提供的查询数据集上,按照步骤A.2.1至步骤A.2.3获得关键字词表,选择关键字词表中长度最长的一项作为本查询的关键字。将查询数据集中的原始查询视为用户原本的信息需求,以此作为人工评价的参照,使得人工评价的标准更加明确。

步骤C.1.2:采用爬虫方法,爬取与关键字相关的15篇网页正文并保存在数据库中,根据这些文档的内容生成针对关键字的查询推荐,平均每个关键字对应一组文档。

利用谷歌搜索和必应搜索提供的API,可以获得针对每个关键词产生的一组查询推荐,可以将这两组查询推荐作为评价基线。

步骤C.1.3:测试数据集预处理。

由于爬虫获取的文档内容参差不齐,存在网页正文为其他语言、文本内容与关键字关联性较低的问题。因此,在将网页正文与关键字输入到本发明之前,首先需要对网页正文的内容进行预处理,具体步骤如下:

步骤C.1.3.1:对原始网页正文进行格式化处理,清除掉多余的空格和不符合要求的特殊字符。

步骤C.1.3.2:按照每400字符为一个输入文本段的标准,将网页正文分割为若干网页正文文本段。

步骤C.1.3.3:针对分割好的每一个网页正文文本段,检查网页正文文本段中是否包括关键字的内容,去掉不包含关键字的无关网页正文文本段,最终保留15个网页正文文本段。

步骤C.2:生成问题式查询;将处理好的15个网页正文文本段,依次输入问题式查询生成模块,生成15个基于网页正文文本段与关键字相关的问题式查询;

且,问题式查询的个数与网页正文文本段的总个数相同;

其中,生成每个基于网页正文文本段与关键字相关的问题式查询,具体包括如下子步骤:

步骤C.2.1:将网页正文文本段和关键字输入双向LSTM层进行编码,并将前向传播和后向传播两个方向上的所有隐状态拼接起来,用H表示,具体公式如(4)所示:

其中,双向LSTM层编码输出<文本,关键字>向量表示,记为h

步骤C.2.2:在注意力层1将经双向LSTM层编码的<文本,关键字>向量表示h

s

其中,矩阵W

步骤C.2.3:利用特征融合门获得中间向量表示

步骤C.2.3.1:将自匹配向量表示s

f

其中,W

步骤C.2.3.2:通过特征融合门将<文本,关键字>向量表示h

其中,g

步骤C.2.4:解码,将编码器生成的中间向量表示

d

其中,d

步骤C.2.5:在注意力层2,计算注意力值,并得到输出隐藏状态。具体包括如下子步骤:

步骤C.2.5.1:利用解码器当前状态的隐藏状态d

其中,T为矩阵的转置,W

步骤C.2.5.2:计算上下文向量表示c

步骤C.2.5.3:将单向LSTM层的隐藏状态d

其中,W

步骤C.2.6:在拷贝层计算拷贝分数和生成分数,具体为;

其中,拷贝层负责决定当前输出单词应该从输入序列中拷贝,还是应该生成一个单词,分别计算拷贝分数score

其中,x

步骤C.2.7:在输出层将拷贝分数和生成分数拼接起来,通过softmax函数计算t时刻在所有词语上的概率分布,根据概率分布的结果选择概率最大的单词输出,概率分布P的计算公式如(14)所示:

其中,y

步骤C.2.8:重复步骤C.2.4至步骤C.2.7,直到模型输出终止符,标志着当前问题式查询的生成已结束,模型输出的句子为一个问题式查询;

步骤C.3:进行问题式查询推荐,具体为:筛选步骤C.2得到的15个问题式查询,选择其中最具有代表性的问题式查询,作为查询推荐的最终结果,具体包括如下子步骤:

步骤C.3.1:计算生成的问题式查询两两之间的余弦相似度,得到相似度矩阵。具体包括如下子步骤:

步骤C.3.1.1:通过BERT得到问题式查询的句向量表示;

步骤C.3.1.2:计算两个问题式查询A和B之间的余弦相似度;

步骤C.3.2:将每个问题式查询与当前问题式查询对应的相似度矩阵中的相似度值从高到低的排名作为权重,根据需要,选择前3或5名查询输出;

本实施例中,考虑到一组查询推荐中查询的数量和生成查询时网页正文文本段的数量都会对查询推荐的结果和质量造成影响,在测试部分共进行4组测试,分别为:

(1)查询推荐数量为3个,输入网页正文文本段数量为5个;

(2)查询推荐数量为3个,输入网页正文文本段数量为10个;

(3)查询推荐数量为5个,输入网页正文文本段数量为5个;

(4)查询推荐数量为5个,输入网页正文文本段数量为10个。

步骤3.4:人工评价。

测试部分采用人工评价方式,每组测试包含50组数据,评分人员获得的信息包括:关键字、原查询及本发明、谷歌搜索引擎和必应搜索引擎这三个不同的系统提供的查询推荐。用户将参考关键字与原查询的内容,对三组查询推荐分别评分,分数取值可以为0、0.2、0.4、0.6、0.8、1.0。由3位评分人员分别对这四组实验进行打分,与谷歌和必应搜索引擎做比较,最终对三位评分人员给出的打分求平均值,获得每组实验的最终评分,测试结果如表3所示。

表3 测试结果

测试结果表明,本发明与谷歌搜索引擎和必应搜索引擎相比可以提供更优质的查询推荐,更能满足用户的信息需求,在信息检索时有更好的表现。

图2展示了实验数据集上的一个典型的样例中谷歌搜索引擎和必应搜索引擎和本发明的表现。在这个样例中用户的信息需求是希望知道肝酶上升的原因,输入的关键字为“肝酶”。从查询推荐形式的角度来看,谷歌搜索引擎和必应搜索引擎给出的查询推荐都是前缀匹配的形式,即便是在关键字的基础上进行了扩展之后,仍有较高的语义模糊性。而本发明提供的查询推荐是问题式的,每个查询都是一个完整的句子,可以直接对应上某个特定的信息需求。从查询推荐内容的角度俩看,谷歌和必应搜索引擎提供的查询推荐内容比较单一,在列出的查询中并没有与“原因”相关的描述。而本发明针对“肝酶”提出了不同角度、覆盖范围更广泛的问题式查询推荐,其中有两条都与用户对于“引起肝酶上升原因”的信息需求相吻合。由此可以看出,当用户的信息需求是具有一定深度的问题时,谷歌搜索引擎和必应搜索引擎的表现与本发明有着较大的差距,从查询推荐的形式也可以看出本发明给出的查询推荐涵盖的信息更加明确、具体。在用户进行信息检索的过程中,当其想要描述的信息越复杂的时候,就越需要查询推荐帮助用户完成将信息需求转化为查询语句的过程,因此,本发明在面对复杂的信息检索需求时有着较好的表现,这对于实际应用有着很重要的意义。

以上所述为本发明的较佳实施例而已,本发明不应该局限于该实施例和附图所公开的内容。凡是不脱离本发明所公开的精神下完成的等效或修改,都落入本发明保护的范围。

去获取专利,查看全文>

相似文献

  • 专利
  • 中文文献
  • 外文文献
获取专利

客服邮箱:kefu@zhangqiaokeyan.com

京公网安备:11010802029741号 ICP备案号:京ICP备15016152号-6 六维联合信息科技 (北京) 有限公司©版权所有
  • 客服微信

  • 服务号