建立排序模型的方法、查询自动补全的方法及对应装置与流程

文档序号:20949446发布日期:2020-06-02 20:03阅读:216来源:国知局
建立排序模型的方法、查询自动补全的方法及对应装置与流程

本申请涉及计算机应用技术领域,特别涉及智能搜索技术领域的一种建立排序模型的方法、查询自动补全的方法及对应装置。



背景技术:

qac(queryauto-completion,查询自动补全)目前已被主流的通用搜索引擎和垂直搜索引擎广泛采用。例如,在地图类应用中,当用户输入query(查询)以搜索某个poi(pointofinterest,兴趣点)时,从用户输入不完整query开始(在本申请中将用户输入的不完整query称为查询前缀),搜索引擎可以在候选列表中实时向用户推荐一系列候选的poi以供用户选择作为query的补全结果(在本申请中将候选列表中推荐的query称为查询补全建议)。一旦用户在候选列表中发现其意向的poi,则通过从候选列表中选择该poi即可补全query,从而发起该poi的检索。

举个例子,如图1中所示,当用户在地图类应用的检索框中输入查询前缀“百度”时,能够以候选列表的形式向用户推荐诸如“百度大厦”、“百度大厦-c座”、“百度科技园”等等候选poi以供用户选择,一旦用户从中选择了“百度大厦”,则完成query的补全,发起针对“百度大厦”的检索。

然而,现有的查询自动补全方案中,针对相同的查询前缀提供的建议均是相同的,例如均是在候选列表中基于各poi的检索热度进行排序,并没有考虑到用户对查询前缀的输入习惯。例如,用户习惯性地在输入查询前缀“ba”时,从查询补全建议中点击“百度大厦a座”进行检索。但由于查询补全建议中各poi是按照检索热度排序的,因此热门的“八达岭长城”、“八达岭奥特莱斯”、“八大处”、“百度大厦”等热门poi总排在前面,用户每次都需要从查询补全建议中找到排在靠后的“百度大厦a座”,或者进一步多输入一些字符来选择“百度大厦a座”。显然对于用户而言,输入代价较高,效率低下。



技术实现要素:

有鉴于此,本申请提供了一种建立排序模型的方法、查询自动补全的方法及对应装置、设备和计算机存储介质,使得推荐的查询补全建议更好地符合用户对查询前缀的输入习惯,减小用户的输入代价。

第一方面,本申请提供了一种建立用于查询自动补全的排序模型的方法,该方法包括:

从poi查询日志中获取用户从查询补全建议中选择poi时已输入的查询前缀、该查询前缀对应的查询补全建议中的各poi以及查询补全建议中被用户选择的poi;

利用同一查询前缀对应的查询补全建议中被用户选择的poi以及未被用户选择的poi构成正例负例对;

利用查询前缀以及查询前缀对应的正例负例对训练得到排序模型;

所述排序模型的训练目标为:最大化查询前缀的向量表示与对应的正例poi的向量表示的相似度以及查询前缀的向量表示与对应负例poi的向量表示的相似度之间的差值。

根据本申请一优选实施方式,所述排序模型包括前缀嵌入网络、poi嵌入网络以及排序网络;

所述前缀嵌入网络用于获得查询前缀的向量表示,所述poi嵌入网络用于获得各poi的向量表示,所述排序网络用于确定查询前缀的向量表示与对应poi的向量表示之间的相似度。

根据本申请一优选实施方式,所述前缀嵌入网络包括循环神经网络;

所述获得查询前缀的向量表示包括:

将所述查询前缀中各字符对应的字符向量依次输入循环神经网络,利用所述循环神经网络输出的针对最后一个字符的特征向量得到所述查询前缀的向量表示;或者,

将所述用户的属性特征向量与所述查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用所述循环神经网络输出的最后一个字符对应的特征向量得到所述查询前缀的向量表示。

根据本申请一优选实施方式,所述获得各poi的向量表示包括:

对poi的属性信息进行编码,得到poi的向量表示。

根据本申请一优选实施方式,所述poi嵌入网络包括:卷积神经网络、前馈神经网络和全连接层;

所述对poi的属性信息进行编码包括:

将poi的名称和地址信息采用卷积神经网络进行编码;

将poi的其他属性信息采用前馈神经网络进行编码;

将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

根据本申请一优选实施方式,在训练所述排序模型的过程中,利用所述排序网络的输出确定三元组损失函数,利用三元组损失函数进行前向反馈以更新所述前缀嵌入网络、poi嵌入网络以及排序网络的模型参数,直至所述三元组损失函数满足预设要求,或者达到预设的模型参数更新次数。

第二方面,本申请提供了一种查询自动补全的方法,该方法包括:

获取用户当前输入的查询前缀,以及确定与所述查询前缀对应的候选兴趣点poi;

将所述查询前缀与所述候选poi输入排序模型,得到所述排序模型对各候选poi的评分,所述候选poi的评分依据所述查询前缀的向量表示与候选poi的向量表示之间的相似度得到的;

依据各候选poi的评分确定向所述用户推荐的查询补全建议;

其中,所述排序模型采用如上所述的方法预先训练得到。

根据本申请一优选实施方式,所述查询前缀的向量表示采用如下方式得到:

在所述排序模型中,将所述查询前缀中各字符对应的字符向量依次输入循环神经网络,利用所述循环神经网络输出的针对最后一个字符的特征向量得到所述查询前缀的向量表示;或者,

在所述排序模型中,将所述用户的属性特征向量与所述查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用所述循环神经网络输出的最后一个字符对应的特征向量得到所述查询前缀的向量表示。

根据本申请一优选实施方式,所述各poi的向量表示采用以下方式确定:

在所述排序模型中,各poi的属性信息进行编码,得到poi的向量表示。

根据本申请一优选实施方式,所述对poi的属性信息进行编码包括:

在所述排序模型中,将poi的名称和地址信息采用卷积神经网络进行编码;

将poi的其他属性信息采用前馈神经网络进行编码;

将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

第三方面,本申请提供了一种建立用于查询自动补全的排序模型的装置,该装置包括:

第一获取单元,用于从poi查询日志中获取用户从查询补全建议中选择poi时已输入的查询前缀、该查询前缀对应的查询补全建议中的各poi以及查询补全建议中被用户选择的poi;

第二获取单元,用于利用同一查询前缀对应的查询补全建议中被用户选择的poi以及未被用户选择的poi构成正例负例对;

模型训练单元,用于利用查询前缀以及查询前缀对应的正例负例对训练得到排序模型;

所述排序模型的训练目标为:最大化查询前缀的向量表示与对应的正例poi的向量表示的相似度以及查询前缀的向量表示与对应负例poi的向量表示的相似度之间的差值。

根据本申请一优选实施方式,所述排序模型包括前缀嵌入网络、poi嵌入网络以及排序网络;

所述前缀嵌入网络用于获得查询前缀的向量表示,所述poi嵌入网络用于获得各poi的向量表示,所述排序网络用于确定查询前缀的向量表示与对应poi的向量表示之间的相似度。

根据本申请一优选实施方式,所述前缀嵌入网络包括循环神经网络;

所述模型训练单元在训练排序模型过程中,具体用于:

将所述查询前缀中各字符对应的字符向量依次输入循环神经网络,利用所述循环神经网络输出的针对最后一个字符的特征向量得到所述查询前缀的向量表示;或者,

将所述用户的属性特征向量与所述查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用所述循环神经网络输出的最后一个字符对应的特征向量得到所述查询前缀的向量表示。

根据本申请一优选实施方式,所述模型训练单元在训练排序模型过程中,具体用于通过所述poi嵌入网络对poi的属性信息进行编码,得到poi的向量表示。

根据本申请一优选实施方式,所述poi嵌入网络包括:卷积神经网络、前馈神经网络和全连接层;

所述模型训练单元在通过所述poi嵌入网络对poi的属性信息进行编码时,具体用于:

将poi的名称和地址信息采用卷积神经网络进行编码;

将poi的其他属性信息采用前馈神经网络进行编码;

将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

根据本申请一优选实施方式,所述模型训练单元在训练所述排序模型的过程中,利用所述排序网络的输出确定三元组损失函数,利用三元组损失函数进行前向反馈以更新所述前缀嵌入网络、poi嵌入网络以及排序网络的模型参数,直至所述三元组损失函数满足预设要求,或者达到预设的模型参数更新次数。

第四方面,本申请提供了一种查询自动补全的装置,该装置包括:

获取单元,用于获取用户当前输入的查询前缀,以及确定与所述查询前缀对应的候选兴趣点poi;

评分单元,用于将所述查询前缀与所述候选poi输入排序模型,得到所述排序模型对各候选poi的评分,所述候选poi的评分依据所述查询前缀的向量表示与候选poi的向量表示之间的相似度得到的;

查询补全单元,用于依据各候选poi的评分确定向所述用户推荐的查询补全建议;

其中,所述排序模型由如上所述的装置预先训练得到。

根据本申请一优选实施方式,所述评分单元具体用于:

在所述排序模型中,将所述查询前缀中各字符对应的字符向量依次输入循环神经网络,利用所述循环神经网络输出的针对最后一个字符的特征向量得到所述查询前缀的向量表示;或者,

在所述排序模型中,将所述用户的属性特征向量与所述查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用所述循环神经网络输出的最后一个字符对应的特征向量得到所述查询前缀的向量表示。

根据本申请一优选实施方式,所述评分单元具体用于:

在所述排序模型中,对各poi的属性信息进行编码,得到poi的向量表示。

根据本申请一优选实施方式,所述评分单元具体用于:

在所述排序模型中,将poi的名称和地址信息采用卷积神经网络进行编码;

将poi的其他属性信息采用前馈神经网络进行编码;

将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

第五方面,本申请还提供了一种电子设备,包括:

至少一个处理器;以及

与所述至少一个处理器通信连接的存储器;其中,

所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行如上所述的方法。

第六方面,本申请还提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其特征在于,所述计算机指令用于使所述计算机执行如上所述的方法。

由以上技术方案可以看出,本申请中将用户输入的查询前缀融入排序模型进行poi的排序学习,使得排序模型能够学习到用户在选择查询补全建议中的poi时输入的个性化的查询前缀。基于此排序模型进行的查询自动补全,能够更好地符合用户对查询前缀的输入习惯,减小用户的输入代价。

上述可选方式所具有的其他效果将在下文中结合具体实施例加以说明。

附图说明

附图用于更好地理解本方案,不构成对本申请的限定。其中:

图1是查询自动补全的界面示例图;

图2示出了可以应用本发明实施例的示例性系统架构;

图3为本申请实施例提供的建立排序模型的方法流程图;

图4为本申请实施例提供的训练排序模型的结构示意图;

图5为本申请实施例提供的获取poi向量表示的示意图;

图6为本申请实施例提供的查询自动补全的方法流程图;

图7为本申请实施例提供的排序模型的工作原理示意图;

图8为本申请实施例提供的建立排序模型的装置结构图;

图9为本申请实施例提供的查询自动补全的装置结构图;

图10是用来实现本申请实施例的方法的电子设备的框图。

具体实施方式

以下结合附图对本申请的示范性实施例做出说明,其中包括本申请实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本申请的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。

图2示出了可以应用本发明实施例的示例性系统架构。如图2所示,该系统架构可以包括终端设备101和102,网络103和服务器104。网络103用以在终端设备101、102和服务器104之间提供通信链路的介质。网络103可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。

用户可以使用终端设备101和102通过网络103与服务器104交互。终端设备101和102上可以安装有各种应用,例如语音交互应用、网页浏览器应用、通信类应用等。

终端设备101和102可以是各种电子设备,包括但不限于智能手机、平板电脑、pc、智能电视等等。本发明所提供的查询自动补全的装置可以设置并运行于服务器104上。其可以实现成多个软件或软件模块(例如用来提供分布式服务),也可以实现成单个软件或软件模块,在此不做具体限定。

例如,当用户通过在终端设备101上的浏览器或客户端提供的检索界面上输入查询前缀时,浏览器或客户端将该查询前缀实时提供给服务器端104,由服务器端采用本申请提供的方法向终端设备101返回用户当前输入的查询前缀对应的查询补全建议。如果用户从该查询补全建议中发现意愿的poi,则可以通过选择该poi发起针对该poi的检索。如果用户从查询补全建议中未发现意愿的poi,则可以继续进行输入,然后浏览器或客户端再将查询前缀实时提供给服务器端104,由服务器端104返回用户输入的查询前缀对应的查询补全建议。从而形成这样一种效果:在用户输入query的过程中,随着用户输入的查询前缀实时向用户推荐查询补全建议。

服务器104可以是单一服务器,也可以是多个服务器构成的服务器群组。应该理解,图2中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。

本申请的技术实质在于建立用户与poi之间的关联,其使用场景可以为:当用户使用地图类数据进行poi检索的过程中,随着用户输入的查询前缀实时向用户推荐查询补全建议。其中查询补全建议是在确定出用户输入的查询前缀对应的候选poi后,利用排序模型对各候选poi进行排序后得到的。在本申请中提供了一种全新的排序模型结构以及训练方式,使得基于此排序模型的查询自动补全能够更好地符合用户对查询前缀的输入习惯,减小输入代价。为了方便对本申请的理解,首先结合实施例对建立排序模型的方法进行详细描述。

实施例一、

图3为本申请实施例提供的建立排序模型的方法流程图,如图3所示,该方法可以包括以下步骤:

在301中,从poi查询日志中获取用户从查询补全建议中选择poi时已输入的查询前缀、该查询前缀对应的查询补全建议中各poi以及查询补全建议中被用户选择的poi。

例如,某用户user_a在逐一输入字符形成各查询前缀的过程中,在输入“ba”时,从查询补全建议中点击了poi“百度大厦a座”,那么获取用户标识user_a、查询前缀“ba”、对应的查询补全建议中的各poi,以及被用户选择的poi“百度大厦a座”,作为一条数据。采用同样方式可以从大规模用户的poi查询日志中获取很多条数据用于排序模型的训练。

在302中,利用同一查询前缀对应的查询补全建议中被用户选择的poi以及未被用户选择的poi构成正例负例对。

接续上例,对于步骤301得到的其中一条数据:用户标识user_a、查询前缀“ba”、对应的查询补全建议中的各poi,以及被用户选择的poi“百度大厦a座”。对于同一查询前缀“ba”而言,其对应的被用户选择的poi“百度大厦a座”作为正例,查询补全建议中未被用户选择的poi“八达岭长城”作为负例,因此“ba”与“百度大厦a座”构成正例对,“ba”和“八达岭长城”构成负例对。由于查询补全建议中还存在其他未被用户选择的poi,例如“百度大厦”、“百度科技园”等等,因此“ba”也可以和“百度大厦”构成负例对,“ba”也可以和“百度科技园”构成负例对。

在303中,利用查询前缀以及查询前缀对应的正例负例对训练得到排序模型,其中排序模型的训练目标为:最大化查询前缀的向量表示与对应的正例poi的向量表示的相似度以及查询前缀的向量表示与对应负例poi的向量表示的相似度之间的差值。

传统的用于查询自动补全的排序模型而言,其输入并不包含查询前缀,查询前缀仅仅用于进行候选poi的召回,排序模型依据候选poi的热度以及用户属性信息等输出对各候选poi的评分。而本申请实施例中,排序模型的输入为查询前缀和poi,查询前缀的向量表示以及poi的向量表示均在排序模型内部获得,并基于两者向量表示之间的相似度输出对各poi的评分。相应地,本申请实施例中排序模型在训练时,获取查询前缀的向量表示以及poi的向量表示的部分以及确定两者向量表示之间相似度的部分是统一进行训练的。

具体地,本实施例中排序模型可以具体包括三个部分:前缀嵌入网络、poi嵌入网络以及排序网络,如图4中所示。其中前缀嵌入网络用于获得查询前缀的向量表示,poi嵌入网络用于获得各poi的向量表示,排序网络用于确定查询前缀的向量表示与对应poi的向量表示之间的相似度。

即在训练过程中,对于一条训练数据:查询前缀、该查询前缀对应的正例poi以及该查询前缀对应的负例poi而言,将查询前缀输入前缀嵌入网络,前缀嵌入网络输出该查询前缀的向量表示u。将查询前缀对应的正例poi和负例poi分别输入poi嵌入网络,poi嵌入网络输出正例poi的向量表示v+和负例poi的向量表示v-。排序网络分别计算查询前缀的向量表示u和正例poi的向量表示v+之间的相似度s+,查询前缀的向量表示u和正例poi的向量表示v-之间的相似度s-。整个排序模型的训练目标为:最大化s+和s-之间的差值。

下面分别对排序模型中的各网络进行详细描述。

前缀嵌入网络:

前缀嵌入网络可以包括循环神经网络,例如可以采用bi-lstm(bi-directionallstm,双向长短时记忆网络)。将查询前缀中各字符对应的字符向量依次输入bi-lstm,例如用户输入查询前缀“ba”的过程中是先输入“b”再输入“a”,因此将“b”的字符向量和“a”的字符向量按顺序依次输入bi-lstm。bi-lstm首先针对“b”输出一个向量表示,再针对“a”输出一个向量表示。其中针对“a”输出的向量表示会参考之前记忆的上下文信息,因此将bi-lstm输出的针对最后一个字符“a”的向量表示作为查询前缀的向量表示。

另外,除了查询前缀之外,用户的属性特征也会对用户会选择的poi带来影响。因此作为一种优选的实施方式,在确定查询前缀的向量表示时,前缀嵌入网络可以进一步考虑用户的属性特征。具体地,可以将用户的属性特征向量与查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用循环神经网络输出的最后一个字符对应的特征向量得到查询前缀的特征向量表示。

其中用户的属性特征可以是诸如用户的年龄、性别、工作、收入等级、所在城市等信息,用户属性特征的向量表示可以对这些信息进行编码后得到。上述的字符对应的字符向量可以是将字符映射到字符向量空间后得到。仍以用户输入查询前缀“ba”为例,首先将用户的属性特征向量与字符“b”的字符向量进行拼接,然后将拼接后得到的向量输入循环神经网络;再将用户的属性特征向量与字符“a”的字符向量进行拼接,然后将拼接后得到的向量输入循环神经网络。将循环神经网络输出的“a”对应的特征向量作为查询前缀“ba”的向量表示。

poi嵌入网络:

在本实施例中poi嵌入网络是对poi的属性信息进行编码,得到poi的向量表示。其中涉及的属性信息可以包括但不限于poi的标识、名称、类别、地址、标签等信息。

作为一种优选的实施方式,poi嵌入网络可以包括卷积神经网络、前馈神经网络和全连接层。其中可以将poi的名称和地址信息采用卷积神经网络进行编码,将poi的其他属性信息采用前馈神经网络进行编码。然后,将同一poi的编码结果进行拼接后得到的向量经过全连接层的映射,得到该poi的向量表示,如图5中所示。

排序网络:

排序网络主要是计算查询前缀的向量表示与poi的向量表示之间的相似度,在训练过程中会分别针对一个正负例对中,查询前缀与正例poi的相似度以及查询前缀与负例poi的相似度进行计算。在本申请中计算相似度的方式可以采用诸如l2范式,要求查询前缀的向量表示与poi的向量表示维度一致。

在模型训练过程中,上述的训练目标可以体现为最小化三元组损失函数lδ,例如采用如下公式:

lδ=∑max(s+-s-+τ,0)

其中,τ为超参数。

每一轮迭代均利用排序网络的输出确定上述三元组损失函数,然后利用三元组损失函数进行前向反馈以更新前缀嵌入网络、poi嵌入网络以及排序网络的模型参数,直至三元组损失函数满足预设要求,或者达到预设的模型参数更新次数(即迭代次数)等。

至此,训练得到排序模型。

实施例二、

图6为本申请实施例提供的查询自动补全的方法流程图,如图6中所示,该方法可以包括以下步骤:

在601中,获取用户当前输入的查询前缀,以及确定与该查询前缀对应的候选poi。

在本申请适用于各种形式的输入内容,可以是汉字、拼音、首字母简称,等等,但输入的查询前缀均可以看成是字符串。随着用户输入查询前缀,实时获取用户当前输入的查询前缀。例如,用户想输入“百度大厦”的过程中,会经历输入“百”、“百度”、“百度大”等多个查询前缀,则针对每一个查询前缀都执行本申请所提供的方法。即用户输入“百”时,当前输入的查询前缀为“百”,针对该查询前缀执行本申请的方法为用户推荐查询补全建议。当用户输入“百度”时,当前输入的查询前缀为“百度”,针对该查询前缀执行本申请的方法为用户推荐查询补全建议。当用户输入“百度大”时,当前输入的查询前缀为“百度大”,针对该查询前缀执行本申请的方法为用户推荐查询补全建议。

确定与当前输入的查询前缀对应的候选poi的方式可以采用现有的实现方式,目的是找到以该查询前缀为文本开头的poi,或者找到与该查询前缀强相关的poi。

例如可以在poi库中预先针对poi以各种对应的查询前缀建立倒排索引。当用户输入query时,针对当前输入的查询前缀查询poi库,命中的所有poi作为候选poi。

再例如可以在poi库中预先建立poi与各种查询前缀之间的关联,该关联可以是从用户检索历史中获得。例如用户曾经输入过“浙大”后,从搜索结果中选择“浙江大学”的poi。该关联也可以是利用同义poi词表获得,例如“故宫”又称“紫禁城”,则预先建立查询前缀“紫禁”、“zijin”等与“故宫”poi的关联。该关联也可以由人工添加。

在602中,将用户当前输入的查询前缀和候选poi输入排序模型,得到排序模型对各候选poi的评分,其中候选poi的评分依据查询前缀的向量表示与候选poi的向量表示之间的相似度得到。

与实施例一中类似的,用户当前输入的查询前缀和候选poi分别输入排序模型中的前缀嵌入网络和poi嵌入网络,得到查询前缀的向量表示u和候选poi的向量表示v,然后由排序网络确定查询前缀的向量表示u与各候选poi的向量表示v之间的相似度s,依据该相似度对各候选poi进行评分,如图7所示。

具体地,在排序模型的前缀嵌入网络中实现时,可以将查询前缀中各字符对应的字符向量依次输入循环神经网络,利用循环神经网络输出的针对最后一个字符的特征向量得到查询前缀的向量表示。

作为一种优选的实施方式,在排序模型的前缀嵌入网络的实现中,可以将用户的属性特征向量与查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用循环神经网络输出的最后一个字符对应的特征向量得到查询前缀的向量表示。

其中用户的属性特征可以是诸如用户的年龄、性别、工作、收入等级、所在城市等信息,用户属性特征的向量表示可以对这些信息进行编码后得到。上述的字符对应的字符向量可以是将字符映射到字符向量空间后得到。

在poi嵌入网络中,候选poi输入poi嵌入网络,poi嵌入网络对候选poi的属性信息进行编码,得到候选poi的向量表示。其中涉及的属性信息可以包括但不限于候选poi的标识、名称、类别、地址、标签等信息。

poi嵌入网络可以包括卷积神经网络、前馈神经网络和全连接层。其中可以将候选poi的名称和地址信息采用卷积神经网络进行编码,将候选poi的其他属性信息采用前馈神经网络进行编码。然后,将同一候选poi的编码结果进行拼接后得到的向量经过全连接层的映射,得到该候选poi的向量表示。

排序网络在计算用户输入的查询前缀的向量表示和候选poi的向量表示之间的相似度时,可以采用诸如l2范式的方式。

在603中,依据各候选poi的评分确定向用户推荐的查询补全建议。

本步骤中,可以将评分值大于或等于预设评分阈值的候选poi作为查询补全建议,也可以将评分值排在前p个的poi作为查询补全建议,等等,其中p为预设的正整数。在向用户推荐查询补全建议时,依据各poi的评分在候选列表中进行排序。推荐方式可以沿用现有的在检索框附近的下拉框的形式,也可以采用其他形式。

通过本实施例中的方式,将用户输入的查询前缀融入排序模型进行poi的排序学习,使得排序模型能够学习到用户在选择查询补全建议中的poi时输入的个性化的查询前缀。基于此排序模型进行的查询自动补全,能够更好地符合用户对查询前缀的输入习惯,减小用户的输入代价。举个例子,假设用户习惯性地在输入查询前缀“ba”时,从查询补全建议中点击“百度大厦a座”进行检索。通过本申请提供的方式,排序模型能够学习到用户的该输入习惯,使得用户在输入查询前缀“ba”时,能够在查询补全建议中提高“百度大厦a座”的排名,使得用户能够轻松地从查询补全建议中选择“百度大厦a座”。而不必因为“百度大厦a座”这一poi的热度较低而需要从排名靠后的位置中查找,甚至需要输入更多的字符来使得查询补全建议中出现“百度大厦a座”。显然提高了用户的输入效率,减小了输入代价。

另外,本申请对于一些独特的输入习惯也能够很好地进行学习。例如一个用户习惯用“thu”作为查询前缀去检索“清华大学”这一poi。通过本申请提供的方式,排序模型就能够学习到用户的该输入习惯,当该用户或者其他用户输入“thu”的时候,能够快速地给出“清华大学”这一查询补全建议,从而提升用户的使用体验。

以上是对本申请提供的方法进行的详细描述,下面结合实施例对本申请提供的装置进行详细描述。

实施例三、

图8为本申请实施例提供的建立排序模型的装置结构图,如图8中所示,该装置包括:第一获取单元01、第二获取单元02和模型训练单元03,其中各组成单元的主要功能如下:

第一获取单元01负责从poi查询日志中获取用户从查询补全建议中选择poi时已输入的查询前缀、该查询前缀对应的查询补全建议中的各poi以及查询补全建议中被用户选择的poi。

第二获取单元02负责利用同一查询前缀对应的查询补全建议中被用户选择的poi以及未被用户选择的poi构成正例负例对。

模型训练单元03负责利用查询前缀以及查询前缀对应的正例负例对训练得到排序模型。

其中排序模型包括前缀嵌入网络、poi嵌入网络以及排序网络;前缀嵌入网络用于获得查询前缀的向量表示,poi嵌入网络用于获得各poi的向量表示,排序网络用于确定查询前缀的向量表示与对应poi的向量表示之间的相似度;排序模型的训练目标为:最大化查询前缀的向量表示与对应的正例poi的向量表示的相似度以及查询前缀的向量表示与对应负例poi的向量表示的相似度之间的差值。

具体地,前缀嵌入网络可以包括循环神经网络。模型训练单元03在训练排序模型过程中,可以将查询前缀中各字符对应的字符向量依次输入循环神经网络,利用循环神经网络输出的针对最后一个字符的特征向量得到查询前缀的向量表示。

作为一种优选的实施方式,模型训练单元03在训练排序模型过程中,可以将用户的属性特征向量与查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用循环神经网络输出的最后一个字符对应的特征向量得到查询前缀的向量表示。

具体地,模型训练单元03在训练排序模型过程中,可以通过poi嵌入网络对poi的属性信息进行编码,得到poi的向量表示。

作为一种优选的实施方式,poi嵌入网络可以包括:卷积神经网络、前馈神经网络和全连接层。模型训练单元03在通过poi嵌入网络对poi的属性信息进行编码时,可以将poi的名称和地址信息采用卷积神经网络进行编码;将poi的其他属性信息采用前馈神经网络进行编码;将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

具体地,模型训练单元03在训练排序模型的过程中,利用排序网络的输出确定损失函数,利用损失函数进行前向反馈以更新前缀嵌入网络、poi嵌入网络以及排序网络的模型参数,直至损失函数满足预设要求,或者达到预设的模型参数更新次数。

实施例四、

图9为本申请实施例提供的查询自动补全的装置结构图,本装置中使用的排序模型可以由图8所示装置预先训练得到。如图9中所示,该装置包括:获取单元11、评分单元12和查询补全单元13。其中各组成单元的主要功能如下:

获取单元11负责获取用户当前输入的查询前缀,以及确定与查询前缀对应的候选兴趣点poi。

评分单元12负责将查询前缀与候选poi输入排序模型,得到排序模型对各候选poi的评分,候选poi的评分依据查询前缀的向量表示与候选poi的向量表示之间的相似度得到的。

具体地,评分单元12可以在排序模型中,将查询前缀中各字符对应的字符向量依次输入循环神经网络,利用循环神经网络输出的针对最后一个字符的特征向量得到查询前缀的向量表示。

作为一种优选的实施方式,评分单元12可以在排序模型中,将用户的属性特征向量与查询前缀中各字符对应的字符向量分别进行拼接后依次输入循环神经网络,利用循环神经网络输出的最后一个字符对应的特征向量得到查询前缀的向量表示。

具体地,评分单元12可以在排序模型中,对各poi的属性信息进行编码,得到poi的向量表示。

作为一种优选的实施方式,评分单元12可以在排序模型中,将poi的名称和地址信息采用卷积神经网络进行编码;将poi的其他属性信息采用前馈神经网络进行编码;将同一poi的编码结果进行拼接后,经过全连接层的映射,得到该poi的向量表示。

排序网络在计算用户输入的查询前缀的向量表示和候选poi的向量表示之间的相似度时,可以采用诸如l2范式的方式。

查询补全单元13负责依据各候选poi的评分确定向用户推荐的查询补全建议。

具体地,查询补全单元13可以将评分值大于或等于预设评分阈值的候选poi作为查询补全建议,也可以将评分值排在前p个的poi作为查询补全建议,等等,其中p为预设的正整数。在向用户推荐查询补全建议时,依据各poi的评分在候选列表中进行排序。推荐方式可以沿用现有的在检索框附近的下拉框的形式,也可以采用其他形式。

根据本申请的实施例,本申请还提供了一种电子设备和一种可读存储介质。

如图10所示,是根据本申请实施例的建立排序模型或查询自动补全的方法的电子设备的框图。电子设备旨在表示各种形式的数字计算机,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。

如图10所示,该电子设备包括:一个或多个处理器1001、存储器1002,以及用于连接各部件的接口,包括高速接口和低速接口。各个部件利用不同的总线互相连接,并且可以被安装在公共主板上或者根据需要以其它方式安装。处理器可以对在电子设备内执行的指令进行处理,包括存储在存储器中或者存储器上以在外部输入/输出装置(诸如,耦合至接口的显示设备)上显示gui的图形信息的指令。在其它实施方式中,若需要,可以将多个处理器和/或多条总线与多个存储器和多个存储器一起使用。同样,可以连接多个电子设备,各个设备提供部分必要的操作(例如,作为服务器阵列、一组刀片式服务器、或者多处理器系统)。图10中以一个处理器1001为例。

存储器1002即为本申请所提供的非瞬时计算机可读存储介质。其中,所述存储器存储有可由至少一个处理器执行的指令,以使所述至少一个处理器执行本申请所提供的建立排序模型或查询自动补全的方法。本申请的非瞬时计算机可读存储介质存储计算机指令,该计算机指令用于使计算机执行本申请所提供的建立排序模型或查询自动补全的方法。

存储器1002作为一种非瞬时计算机可读存储介质,可用于存储非瞬时软件程序、非瞬时计算机可执行程序以及模块,如本申请实施例中的建立排序模型或查询自动补全的方法对应的程序指令/模块。处理器1001通过运行存储在存储器1002中的非瞬时软件程序、指令以及模块,从而执行服务器的各种功能应用以及数据处理,即实现上述方法实施例中的建立排序模型或查询自动补全的方法。

存储器1002可以包括存储程序区和存储数据区,其中,存储程序区可存储操作系统、至少一个功能所需要的应用程序;存储数据区可存储根据该电子设备的使用所创建的数据等。此外,存储器1002可以包括高速随机存取存储器,还可以包括非瞬时存储器,例如至少一个磁盘存储器件、闪存器件、或其他非瞬时固态存储器件。在一些实施例中,存储器1002可选包括相对于处理器1001远程设置的存储器,这些远程存储器可以通过网络连接至该电子设备。上述网络的实例包括但不限于互联网、企业内部网、局域网、移动通信网及其组合。

该电子设备还可以包括:输入装置1003和输出装置1004。处理器1001、存储器1002、输入装置1003和输出装置1004可以通过总线或者其他方式连接,图10中以通过总线连接为例。

输入装置1003可接收输入的数字或字符信息,以及产生与该电子设备的用户设置以及功能控制有关的键信号输入,例如触摸屏、小键盘、鼠标、轨迹板、触摸板、指示杆、一个或者多个鼠标按钮、轨迹球、操纵杆等输入装置。输出装置1004可以包括显示设备、辅助照明装置(例如,led)和触觉反馈装置(例如,振动电机)等。该显示设备可以包括但不限于,液晶显示器(lcd)、发光二极管(led)显示器和等离子体显示器。在一些实施方式中,显示设备可以是触摸屏。

此处描述的系统和技术的各种实施方式可以在数字电子电路系统、集成电路系统、专用asic(专用集成电路)、计算机硬件、固件、软件、和/或它们的组合中实现。这些各种实施方式可以包括:实施在一个或者多个计算机程序中,该一个或者多个计算机程序可在包括至少一个可编程处理器的可编程系统上执行和/或解释,该可编程处理器可以是专用或者通用可编程处理器,可以从存储系统、至少一个输入装置、和至少一个输出装置接收数据和指令,并且将数据和指令传输至该存储系统、该至少一个输入装置、和该至少一个输出装置。

这些计算程序(也称作程序、软件、软件应用、或者代码)包括可编程处理器的机器指令,并且可以利用高级过程和/或面向对象的编程语言、和/或汇编/机器语言来实施这些计算程序。如本文使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(pld)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。

为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,crt(阴极射线管)或者lcd(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。

可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(lan)、广域网(wan)和互联网。

计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

由以上描述可以看出,本申请实施例提供的上述方法、装置、设备和计算机存储介质可以具备以下优点:

1)将用户输入的个性化的查询前缀融入排序模型进行poi的排序学习,使得排序模型能够学习到用户在选择查询补全建议中的poi时输入的个性化的查询前缀。基于此排序模型进行的查询自动补全,能够更好地符合用户对查询前缀的输入习惯,减小用户的输入代价。

2)在获取查询前缀的向量表示时,采用循环神经网络使得查询前缀的向量表示能够更加符合文本的上下文约束。

3)本申请中在对各poi的属性信息进行编码时,充分考虑了poi作为一个多源信息的聚合体,融合poi的名称、地址、类别、标识等信息,从而使得对poi的表示更加准确。

应该理解,可以使用上面所示的各种形式的流程,重新排序、增加或删除步骤。例如,本发申请中记载的各步骤可以并行地执行也可以顺序地执行也可以不同的次序执行,只要能够实现本申请公开的技术方案所期望的结果,本文在此不进行限制。

上述具体实施方式,并不构成对本申请保护范围的限制。本领域技术人员应该明白的是,根据设计要求和其他因素,可以进行各种修改、组合、子组合和替代。任何在本申请的精神和原则之内所作的修改、等同替换和改进等,均应包含在本申请保护范围之内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1