1.本发明属于计算机技术领域,尤其涉及一种用户查询推荐方法、装置、电子设备及存储介质。
背景技术:
2.在互联网无处不在的时代,通过查询检索用户可以得到许多推荐结果。有时,可能众多的推荐结果中没有一个是用户想要的。有时,众多的推荐结果中只有几个是用户想要的,用户需要在大量的推荐结果中综合多方面因素考虑来选出最符合预期的这几个,而且这些多方面因素往往又是相互冲突的。若用户想要更加准确的获取自己想要的结果,通常还需要给出更加多且精确的查询条件,然而用户在检索过程中往往是不确定自己要给出哪些精确条件的。更多的时候,不同人给出同样的检索条件而想要得到的结果是一样的,目前的查询检索网站或系统不能做到根据不同人的兴趣进行推荐,以实现结果因人而异,千人千面。
3.通常,有两个主要因素来决定用户最感兴趣方案,即基于优势的排序、基于实用程序排序。基于优势的排序常见有skyline查询,是一种针对一个产品数据集,返回所有不被其他产品支配的产品的查询方法。skyline查询不需要用户输入偏好权重,即不需要用户精确的偏好权重输入,但是skyline查询返回的结果的个数是不确定的,可能返回大量用户无法处理的结果,即输出大小不可控,并且skyline查询对所有用户返回的都是一样的结果,做不到个性化推荐。数据管理的决策支持系统中常见的查询有top-k查询,该查询方法能根据用户的偏好输入针对不同用户的喜好推荐不同的产品,并且推荐的结果是前k个,结果可控,然而该查询方法需要用户输入一个精确的偏好权重,然后根据该偏好权重返回结果。
4.一般来说,用户在检索过程中并不会明确告知其某种偏好到什么程度,甚至很多用户有可能自己也不确定喜欢什么,用户想要的更多的是一种相对较随意的输入查询,从而得到符合用户感兴趣的并且结果可控的个性化推荐结果。然而现有的查询方法,例如,skyline查询、top-k查询,都不能同时满足用户的需求。
技术实现要素:
5.本发明的目的在于提供一种用户查询推荐方法、装置、电子设备及存储介质,旨在解决由于现有技术无法提供一种有效的搜索方法,导致现有检索或查询时结果准确度不高的问题。
6.一方面,本发明提供了一种用户查询推荐方法,所述方法包括下述步骤:
7.接收当前用户输入的、包括查询对象的查询条件,根据所述查询条件获取所述当前用户对所述查询对象的偏好权重;
8.获取所有搜索用户对所述查询对象的偏好区域,将所述偏好区域拆分成多个偏好子区域;
9.获取所述当前用户的偏好权重所在的偏好子区域,按照到所述当前用户的偏好权
重的距离从小到大的顺序,在所述所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的所述预设数量个查询结果。
10.另一方面,本发明提供了一种用户查询推荐装置,所述装置包括:
11.权重获取单元,用于接收当前用户输入的、包括查询对象的查询条件,根据所述查询条件获取所述当前用户对所述查询对象的偏好权重;
12.区域拆分单元,用于获取所有搜索用户对所述查询对象的偏好区域,将所述偏好区域拆分成多个偏好子区域;以及
13.结果返回单元,用于获取所述当前用户的偏好权重所在的偏好子区域,按照到所述当前用户的偏好权重的距离从小到大的顺序,在所述所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的所述预设数量个查询结果。
14.另一方面,本发明还提供了一种电子设备,包括存储器、处理器以及存储在所述存储器中并可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时实现如上所述用户查询推荐方法的步骤。
15.另一方面,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质存储有计算机程序,所述计算机程序被处理器执行时实现如上所述用户查询推荐方法的步骤。
16.本发明在接收当前用户输入的、包括查询对象的查询条件后,根据查询条件获取所述当前用户对所述查询对象的偏好权重,获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域,获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果,这样,即使用户查询词不准确,也可以得到检索结果数量可控、用户感兴趣的个性化结果的准确推荐。
附图说明
17.图1是本发明实施例一提供的用户查询推荐方法的实现流程图;
18.图2是本发明实施例一提供的偏好区域的示意图;
19.图3是本发明实施例二提供的用户查询推荐方法的实现流程图;
20.图4是本发明实施例三提供的用户查询推荐装置的结构示意图;
21.图5是本发明实施例四提供的用户查询推荐装置的结构示意图;以及
22.图6是本发明实施例五提供的电子设备的结构示意图。
具体实施方式
23.为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
24.以下结合具体实施例对本发明的具体实现进行详细描述:
25.实施例一:
26.图1示出了本发明实施例一提供的用户查询推荐方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
27.在步骤s101中,接收当前用户输入的、包括查询对象的查询条件,根据查询条件获取当前用户对查询对象的偏好权重;
28.本发明实施例适用于电子设备,例如,个人计算机、服务器等,具体地,适用于电子设备上的数据或信息查询软件。当前用户输入的查询条件包括查询对象,例如,当用户输入“手机”时,手机即为要查询的对象,进一步地,查询条件还可以包括当前用户的偏好,例如,用户查询时可输入或选择手机的价位、性能、硬件参数等,此时可直接从查询条件中获取当前用户对查询对象的偏好权重,当前用户对查询对象的偏好权重具体可用偏好权重向量表示,例如,将偏好权重组合在一起得到偏好权重向量,偏好权重向量中每个元素值相加的总和为1。当然,用户在输入查询条件时也可以不输入偏好权重,此时,可通过电子设备上预先存储的用户偏好权重得到,例如,可以由当前用户的查询历史数据得到用户偏好权重。
29.因此,在一优选实施例中,根据查询条件获取当前用户对查询对象的偏好权重时,从查询条件中获取当前用户对查询对象的偏好权重向量;或,获取预先存储的当前用户对查询对象的偏好权重向量,以便于后续准确地向用户推荐其偏好的查询结果。
30.在步骤s102中,获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域;
31.由于所有搜索用户对查询对象进行查询时,其偏好各个相同,因此,在本技术实施例中,获取所有搜索用户对查询对象的偏好权重,所有用户的偏好权重可构成一个偏好区域。作为示例地,例如,当每个用户偏好用向量u=(w1,w2)表示、且w1 w2=1时,用坐标画出所有用户的偏好向量的点,那么整个用户区域就是w1 w2=1、0《=w1《=1这条线段,如图2所示。
32.在将偏好区域拆分成多个偏好子区域时,可将偏好相近的用户划分为一个区域,对应地,即是将偏好区域拆分成多个偏好子区域。在本发明实施例的一优选方式中,在将偏好区域拆分成多个偏好子区域时,根据所有搜索用户对查询对象的偏好权重向量以及查询对象对应的每个候选对象的评价向量,计算每个搜索用户下查询对象对应的每个候选对象的评价值,将候选对象相同、且该候选对象评价值排名第一的对应用户偏好权重向量划分在同一个偏好子区域,从而精确地将相同或相近用户偏好划分到同一偏好子区域。在该优选方式中,用户对查询对象的偏好权重使用偏好权重向量表示,候选对象为对查询对象查询时返回的候选结果,评价向量则是厂商或用户对候选对象的各个方面或维度的评价。例如,当用户查询对象为手机时,候选对象有苹果手机、华为手机、三星手机,对手机的评价维度有性能、价格,作为示例地,苹果手机的评价向量可表示为p1=(0.7,0.3),该评价向量表示性能分数为0.7,价格分数为0.3。作为示例地,在计算每个搜索用户下查询对象对应的每个候选对象的评价值时,例如,若一用户对查询对象的偏好权重向量表示为u1=(0.1,0.9),查询到的一候选对象的评价向量表示为p1=(0.3,0.7),则候选对象在用户眼里的评价值为(0.3,0.7)
·
(0.1,0.9)=0.3*0.1 0.7*0.9=0.66。
33.具体地,在计算每个搜索用户下查询对象对应的每个候选对象的评价值,将候选对象相同、且该候选对象评价值排名第一的对应用户偏好权重向量划分在同一个偏好子区域时,将每个搜索用户(对搜索对象)的偏好权重向量设置为未知变量u(在这里为了便于描述,某一查询对象的用户可以用偏好权重向量表示),当前候选对象(或产品)的评价向量表示为已知向量p(在这里为了便于描述,候选对象可用评价向量表示),其他候选对象表示为
p=(p1,p2,
…
,pn),所求的一个偏好子区域可转换为求解不等式方程组:
34.p*u》=p1*u,
35.p*u》=p2*u,
36.…
,
37.p*u》=pn*u.
38.如果上述不等式方程组有解,则表示存在一个偏好子区域,该偏好子区域对应的所有搜索用户在搜索查询对象时存在评价值排第一的该同一候选对象,如果上述不等式方程组无解,则表示不存在评价值排第一的该同一候选对象。在对每个候选对象都求解一个上述不等式方程组后,就得到一系列偏好子区域,每个偏好子区域都有其相对应的排第一的候选对象。
39.在步骤s103中,获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果。
40.在本发明实施例中,获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果。
41.本发明实施例在接收当前用户输入的、包括查询对象的查询条件后,根据查询条件获取所述当前用户对所述查询对象的偏好权重,获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域,获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果,这样,即使用户查询词不准确,也可以得到检索结果数量可控、用户感兴趣的个性化结果的准确推荐。
42.实施例二:
43.图3示出了本发明实施例二提供的用户查询推荐方法的实现流程,为了便于说明,仅示出了与本发明实施例相关的部分,详述如下:
44.在步骤s301中,接收当前用户输入的、包括查询对象的查询条件,根据查询条件获取当前用户对查询对象的偏好权重;
45.在步骤s302中,获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域;
46.在本发明实施例中,步骤s301-s302的具体实施方式可参考实施例一中的步骤s101-步骤s102的对应描述,在此不再赘述。
47.在步骤s303中,将拆分得到的多个偏好子区域定义为top-1类型区域;
48.在本发明实施例中,每个区域(子区域)的类型被分为top-i类型,其中i=1,
…
,k,其中,k为预先设置的正整数,即区域的类型包括top-1、top-2、
…
、top-k。top-1类型区域表明该区域对应用户具有评价值排名第一的相同候选对象,top-2类型区域由top-1类型区域划分得到,表明该区域对应用户具有评价值排名第一、第二的相同候选对象,以此类推。在通过步骤s302拆分得到的子区域后,对第一次划分得到的子区域进行定义或标记,将拆分得到的多个偏好子区域定义为top-1类型区域。
49.在步骤s304中,将当前用户的偏好权重向量所在的偏好子区域放入最小堆中,键
值为该区域到当前用户的偏好权重向量之间的距离;
50.在本发明实施例中,采用最小堆来维护偏好子区域,当将当前用户的偏好权重向量所在的偏好子区域放入最小堆中,最小堆自动对进入的元素进行排序,以满足最小堆的结构要求。在区域到当前用户的偏好权重向量之间的距离时,具体地,如果区域为一个线段,则可通过计算线段到当前用户的偏好权重向量这个点的距离,来计算区域到当前用户的偏好权重向量之间的距离,如果区域为三维,则可通过计算多边形到点的距离,来计算区域到当前用户的偏好权重向量之间的距离。
51.在步骤s305中,取出最小堆中的第一个元素;
52.在步骤s306中,判断最小堆中的第一个元素对应的区域的类型;
53.在本发明实施例中,在取出最小堆中的第一个元素后,判断该元素对应的区域的类型,若第一个元素的区域类型为top-1,则执行步骤s307,若第一个元素的区域类型为top-i、且i不等于1或k,则执行步骤s308,若第一个元素的区域类型为top-k,则执行步骤s309。
54.在步骤s307中,若第一个元素的区域类型为top-1类型,将与第一个元素偏好子区域相邻的、未进入过最小堆中的其他top-1区域放入最小堆中。
55.在步骤s308中,将第一个元素的区域拆分为top-(i 1)区域,将拆分得到的top-(i 1)区域放入最小堆中;
56.在本发明实施例中,若第一个元素的区域类型为top-1类型,执行步骤s307,接着执行步骤s308,之后跳转至步骤s305,即在执行步骤s307后,将第一个元素的区域拆分为top-(i 1)区域,将拆分得到的top-(i 1)区域放入最小堆中,最小堆会对放入堆中的元素进行自动排序,并跳转至步骤s305。也就是说,在执行步骤s307后,将第一个元素的区域拆分为top-2区域,将拆分得到的top-2区域放入最小堆中,然后转至步骤s305。
57.若第一个元素的区域类型为top-i类型、且i不等于1或k,将第一个元素的区域拆分为top-(i 1)区域,将拆分得到的top-(i 1)区域放入最小堆中,接着跳转至步骤s305。
58.在步骤s309中,若第一个元素的区域类型为top-k类型,将第一个元素的区域的k个候选对象放入查询结果集中;
59.在步骤s310中,确认查询结果集中是否包括预设数量个查询结果,是则执行步骤s311,以向当前用户返回预设数量个查询结果,否则跳转至步骤s305。
60.在步骤s311中,向当前用户返回预设数量个查询结果。
61.在本发明实施例中,若查询结果集中包括预设数量个查询结果,则已搜索到预设数量个查询结果,此时向当前用户返回预设数量个查询结果,否则继续搜索。
62.本发明实施例在接收当前用户输入的、包括查询对象的查询条件后,根据查询条件获取所述当前用户对所述查询对象的偏好权重,获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域,获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果,这样,即使用户查询词不准确,也可以得到检索结果数量可控、用户感兴趣的个性化结果的准确推荐。
63.实施例三:
64.图4示出了本发明实施例三提供的用户查询推荐装置的结构,为了便于说明,仅示
出了与本发明实施例相关的部分,其中包括:
65.权重获取单元41,用于接收当前用户输入的、包括查询对象的查询条件,根据查询条件获取当前用户对查询对象的偏好权重;
66.区域拆分单元42,用于获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域;以及
67.结果返回单元43,用于获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果。
68.在本发明实施例中,用户查询推荐装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。各单元的具体实施例方式可参考实施例一的描述,在此不再赘述。
69.实施例四:
70.图5示出了本发明实施例四提供的用户查询推荐装置的结构,为了便于说明,仅示出了与本发明实施例相关的部分,其中包括:
71.权重获取单元51,用于接收当前用户输入的、包括查询对象的查询条件,根据查询条件获取当前用户对查询对象的偏好权重;
72.区域拆分单元52,用于获取所有搜索用户对查询对象的偏好区域,将偏好区域拆分成多个偏好子区域;以及
73.结果返回单元53,用于获取当前用户的偏好权重所在的偏好子区域,按照到当前用户的偏好权重的距离从小到大的顺序,在所在的偏好子区域以及邻近区域,搜索预设数量个查询结果,并返回搜索到的预设数量个查询结果。
74.其中,权重获取单元51包括:
75.第一获取子单元511,用于从查询条件中获取当前用户对查询对象的偏好权重向量;或
76.第二获取子单元512,用于获取预先存储的当前用户对查询对象的偏好权重向量。
77.区域拆分单元52包括:
78.区域拆分子单元521,用于根据所有搜索用户对查询对象的偏好权重向量以及查询对象对应的每个候选对象的评价向量,计算每个搜索用户下查询对象对应的每个候选对象的评价值,将候选对象相同、且该候选对象评价值排名第一的对应用户偏好权重向量划分在同一个偏好子区域。
79.结果返回单元53包括:
80.类型定义单元531,用于将拆分得到的多个偏好子区域定义为top-1类型区域;
81.第一插入单元532,用于将当前用户的偏好权重向量所在的偏好子区域放入最小堆中,键值为该区域到当前用户的偏好权重向量之间的距离;
82.取出单元533,用于取出最小堆中的第一个元素,若第一个元素的区域类型为top-1类型,将与第一个元素偏好子区域相邻的、未进入过最小堆中的其他top-1区域放入最小堆中,将第一个元素的区域拆分为top-2区域,将拆分得到的top-2区域放入最小堆中,并触发取出单元继续取出最小堆中的第一个元素;
83.第二插入单元534,用于若第一个元素的区域类型为top-i类型、且i不等于1或k,
将第一个元素的区域拆分为top-(i 1)区域,将拆分得到的top-(i 1)区域放入最小堆中,并触发取出单元继续取出最小堆中的第一个元素;
84.结果反馈单元535,用于若第一个元素的区域类型为top-k类型,将第一个元素的区域的k个候选对象放入查询结果集中,确认查询结果集中是否包括预设数量个查询结果,是则返回预设数量个查询结果,否则触发取出单元继续取出最小堆中的第一个元素。
85.在本发明实施例中,用户查询推荐装置的各单元可由相应的硬件或软件单元实现,各单元可以为独立的软、硬件单元,也可以集成为一个软、硬件单元,在此不用以限制本发明。各单元的具体实施例方式可参考实施例二的描述,在此不再赘述。
86.实施例五:
87.图6示出了本发明实施例五提供的电子终端的结构,为了便于说明,仅示出了与本发明实施例相关的部分。
88.本发明实施例的电子终端6包括处理器60、存储器61以及存储在存储器61中并可在处理器60上运行的计算机程序62。该处理器60执行计算机程序62时实现上述各个用户查询推荐方法实施例中的步骤,例如图1所示的步骤s101至s103。或者,处理器60执行计算机程序62时实现上述各装置实施例中各单元的功能,例如图4所示单元41至43的功能。
89.本发明实施例的电子设备可以为个人计算机、服务器。该电子设备6中处理器60执行计算机程序62时实现用户查询推荐方法时实现的步骤可参考前述方法实施例的描述,在此不再赘述。
90.实施例五:
91.在本发明实施例中,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时实现上述用户查询推荐方法实施例中的步骤,例如,图1所示的步骤s101至s103。或者,该计算机程序被处理器执行时实现上述各装置实施例中各单元的功能,例如图4所示单元41至43的功能。
92.本发明实施例的计算机可读存储介质可以包括能够携带计算机程序代码的任何实体或装置、记录介质,例如,rom/ram、磁盘、光盘、闪存等存储器。
93.以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。
转载请注明原文地址:https://tc.8miu.com/read-844.html