搜索方法及装置与流程

文档序号:33524866发布日期:2023-03-22 07:06阅读:54来源:国知局
搜索方法及装置与流程

1.本技术涉及互联网技术领域,特别涉及一种搜索方法、装置、计算机设备及存储介质。


背景技术:

2.搜索底部(feedblast)是一个在搜索结果页面下方的模块,承接用户在看完搜索结果后,继续向下滑动时的流量。
3.在搜索结果页面中,由于用户会带有比较强烈的搜索意图,因此搜索底部中推荐的商品应当与用户的搜索词(query)有一定的相关性,才能使推荐的商品符合用户的需求,进而提高推荐商品的转化率。然而,目前大多部平台的搜索页面中搜索底部的推荐逻辑依然只考虑了用户和商品,使得搜索底部推荐的商品很多情况下与用户的搜索词无关,推荐的商品不符合用户的需求,无法引起用户点击或购买的兴趣,转化率较低。


技术实现要素:

4.本技术的目的在于提供一种搜索方法、装置、计算机设备及存储介质,用于解决目前搜索底部推荐商品转化率较低的技术问题。
5.本技术实施例的一个方面提供了一种搜索方法,包括:获取目标用户输入的第一搜索词;根据预设的改写词表对所述第一搜索词进行改写,得到n个第二搜索词,所述改写词表根据多个用户处于同一会话中的历史搜索词得到,所述n为正整数;根据所述第二搜索词确定推荐给所述目标用户的关联商品,返回所述关联商品。
6.可选地,方法还包括:获取处于同一会话的多个用户的第一历史搜索词和第二历史搜索词,所述第一历史搜索词为对应的点击率满足第一预设条件或对应的转化率满足第二预设条件的历史搜索词,所述第二历史搜索词为对应的点击率不满足所述第一预设条件且对应的转化率不满足所述第二预设条件的历史搜索词;将每一所述第一历史搜索词和每一所述第二历史搜索词分别组成词对形成词对集,词对集中包括若干组词对;确定词对集中的所述词对是否满足第三预设条件,并在当前词对满足所述第三预设条件的情况下,将所述当前词对保存至所述改写词表中,所述第三预设条件至少包括所述词对的共现频率大于或等于频率阈值。
7.可选地,所述第三预设条件还包括所述词对的相似度大于或等于相似度阈值。
8.可选地,在所述确定所述词对集中的词对是否满足第三预设条件之前,还包括:获取所述词对中的所述第一历史搜索词和所述第二历史搜索词的语义向量;根据所述语义向量确定所述词对中的所述第一历史搜索词和所述第二历史搜索词的相似度。
9.可选地,所述根据所述第二搜索词确定推荐给所述目标用户的关联商品,包括:将所述n个第二搜索词分为第一优先队列和第二优先队列,所述第一优先队列和所述第二优先队列分别包括若干个所述第二搜索词;根据搜索模型中的召回子模型和所述第一优先队列中的所述第二搜索词召回第一商品;在所述第一商品的数量大于或等于数量阈值,或,当
前请求并发数大于或等于并发阈值的情况下,根据所述搜索模型和所述第一商品确定所述关联商品。
10.可选地,方法还包括:在所述第一商品的数量小于所述数量阈值,且请求次数小于预设次数的情况下,采用所述召回子模型根据所述第二优先队列中的所述第二搜索词召回第二商品;根据所述搜索模型、所述第一商品和所述第二商品确定所述关联商品。
11.可选地,方法还包括:在所述第一优先队列中所述第二搜索词的数量小于第一数量的情况下,从知识图谱中获取所述第一优先队列中所述第二搜索词的关联词进行候补;或者,在所述第二优先队列中所述第二搜索词的数量小于第二数量的情况下,从所述知识图谱中获取所述第二优先队列中所述第二搜索词的关联词进行候补。
12.可选地,所述根据所述第二搜索词确定推荐给所述目标用户的关联商品,包括:采用搜索模型中的第二排序子模型获取所述搜索模型中第一排序子模型输出的第三商品,所述第三商品是所述搜索模型根据所述第二搜索词确定的商品;采用所述第二排序子模型对所述第三商品进行评分,得到所述第三商品的排序得分;分别获取所述第三商品对应第二搜索词与所述第一搜索词的相似度,并根据所述第二搜索词与所述第一搜索词的相似度确定所述第三商品的相似度得分;根据所述排序得分和所述相似度得分确定所述第三商品的最终评分;将所述最终评分大于分数阈值的所述第三商品作为所述关联商品。
13.本技术实施例的一个方面又提供了一种搜索装置,包括:获取模块,用于获取目标用户输入的第一搜索词;改写模块,用于根据预设的改写词表对所述第一搜索词进行改写,得到n个第二搜索词,所述改写词表根据多个用户处于同一会话中的历史搜索词得到,所述n为正整数;确定模块,用于根据所述第二搜索词确定推荐给所述目标用户的关联商品,返回所述关联商品。
14.本技术实施例的一个方面又提供了一种计算机设备,所述计算机设备包括存储器、处理器以及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述计算机程序时用于实现上述的搜索方法的步骤。
15.本技术实施例的一个方面又提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序可被至少一个处理器所执行,以使所述至少一个处理器执行上述的搜索方法的步骤。
16.本技术实施例提供的搜索方法、装置、计算机设备及存储介质,包括以下优点:
17.通过获取目标用户输入的第一搜索词,根据预设的改写词表对第一搜索词进行改写,得到n个第二搜索词,其中改写词表根据多个用户处于同一会话中的历史搜索词得到;再根据第二搜索词确定推荐给目标用户的关联商品,返回关联商品;由于改写词表是通过多个用户处于同一会话中的历史搜索词得到的,而用户处于同一会话中的历史搜索词具有相关性,因此通过改写词表对用户输入的原有搜索词进行改写,再根据改写的搜索词获取关联商品推荐给用户,可以使搜索底部(feedblast)推荐的商品与用户的搜索词有一定的关联性,从而使推荐的关联商品符合用户的需求,容易引起用户点击或购买的兴趣,提高转化率。
附图说明
18.图1示意性示出了本技术实施例的搜索方法的环境架构图;
19.图2示意性示出了本技术实施例一的搜索方法的流程图
20.图3为本技术实施例的搜索方法的应用示例图;
21.图4为图2新增步骤的流程图;
22.图5为图4新增步骤的流程图;
23.图6为本技术实施例的搜索方法进行改写词挖掘的应用示例图;
24.图7为图2中步骤s430的子步骤的流程图;
25.图8为图7中新增步骤的流程图;
26.图9为图2中步骤s430另一子步骤的流程图;
27.图10为本技术实施例的搜索方法的流程示例图;
28.图11为本技术实施例的搜索方法得到的搜索结果页面的示例图;
29.图12示意性示出了本技术实施例二的搜索装置的框图;
30.图13示意性示出了本技术实施例三的计算机设备的硬件架构图。
具体实施方式
31.为了使本技术的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本技术进行进一步详细说明。应当理解,此处所描述的具体实施例仅用以解释本技术,并不用于限定本技术。基于本技术中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本技术保护的范围。
32.需要说明的是,在本技术实施例中涉及“第一”、“第二”等的描述仅用于描述目的,而不能理解为指示或暗示其相对重要性或者隐含指明所指示的技术特征的数量。由此,限定有“第一”、“第二”的特征可以明示或者隐含地包括至少一个该特征。另外,各个实施例之间的技术方案可以相互结合,但是必须是以本领域普通技术人员能够实现为基础,当技术方案的结合出现相互矛盾或无法实现时应当认为这种技术方案的结合不存在,也不在本技术要求的保护范围之内。
33.在本技术的描述中,需要理解的是,步骤前的数字标号并不标识执行步骤的前后顺序,仅用于方便描述本技术及区别每一步骤,因此不能理解为对本技术的限制。
34.下面为本技术涉及的术语解释:
35.搜索底部feedblast:搜索结果页搜索结果下方的模块,例如在滑到搜索结果下方露出的“为你推荐”商品列表。
36.query:用户搜索的搜索词。
37.session:标识用户的一次会话行为,可以连续跨多个渠道,例如先后访问了推荐和搜索,都可以算作是一次session。
38.点击率(ctr):是指网站页面上某一内容被点击的次数与被显示次数之比,即clicks/views,它是一个百分比,反映了网页上某一内容的受关注程度。
39.转化率:是指在一个统计周期内,完成转化行为的次数占推广信息总点击次数的比率,即orders/clicks。
40.es,是基于java开发的开源搜索引擎,设计用于云计算,能够达到实时搜索,稳定、可靠、快速。
41.图1示意性示出了本技术实施例的环境架构图,如图所示:
42.客户端300通过网络200连接服务端100。用户通过客户端300输入搜索词,从而使服务端100可以获取到相应的搜索词。服务端100在获取到搜索词后,除了根据搜索词获取正常的搜索结果外,还根据预设的改写词表对搜索词进行改写,得到改写后的若干个搜索词,其中,改写词表是根据多个用户处于同一会话中的历史搜索词得到,包括若干组改写词对,用于根据其中的改写词对改写搜索词,得到改写后的搜索词;在得到改写后的搜索词后,服务端100可以根据预设的搜索模型使用改写后的搜索词确定推荐给用户的关联商品;再将关联商品通过网络200返回至客户端100与正常的搜索结果放在同一个搜索页面中显示。客户端300在显示关联商品,可以是在搜索底部(feedblast)进行相应的显示。
43.在示例性的实施例中,服务端100可以指数据中心,例如单个房屋,或者分布在不同的地理位置(例如,在几个房屋)。服务端100可以通过一个或多个网络200提供服务。
44.网络200包括各种网络设备,例如路由器、交换机、多路复用器、集线器、调制解调器、网桥、中继器、防火墙、代理设备和/或类似。网络200可以包括物理链路,例如同轴电缆链路、双绞线电缆链路、光纤链路、它们的组合和/或类似物。网络200可以包括无线链路,例如蜂窝链路、卫星链路、wi-fi链路和/或类似物。
45.客户端300可以包括诸如移动设备、平板设备、膝上型计算机、智能设备(例如智能服装、智能手表、智能眼镜)、虚拟现实耳机、游戏设备、机顶盒、数字流设备、机器人、车载终端、智能电视、电视盒或电子书阅读器。
46.相关技术中,搜索底部推荐的商品均是根据用户和商品的因素来确定的,与用户的搜索词无关,使得搜索底部推荐的商品不符合用户的需求,无法引起用户点击或者购买的兴趣,转化率较低。
47.本技术实施例的搜索方案,可以使搜索底部推荐的商品符合用户的需求,提高用户点击或者购买的兴趣,提高转化率。
48.以下将通过若干个实施例介绍本技术实施例的搜索方案,为便于理解,下面将以图1中的服务端100为执行主体进行示例性描述。
49.实施例一
50.图2示意性示出了本技术实施例的搜索方法的流程图,包括步骤s410~步骤s430,具体说明如下:
51.步骤s410,获取目标用户输入的第一搜索词。
52.第一搜索词是指目标用户在客户端300中输入的原来的搜索词。目标用户在客户端300输入第一搜索词并点击搜索后,第一搜索词通过网络200发送至服务端100,服务端100即可获取到第一搜索词。
53.步骤s420,根据预设的改写词表对第一搜索词进行改写,得到n个第二搜索词,改写词表根据多个用户处于同一会话中的历史搜索词得到,n为正整数。
54.同一会话中的历史搜索词是指在一次会话(session)中的历史搜索词。其中,一次会话可以定义为离开搜索页面未超过预定时间或者未退出搜索对应的应用等情况下的会话,而历史搜索词是指用户曾经使用来搜索的词。
55.服务端100可以对用户处于同一会话中的历史搜索词进行保存,从而可以根据多个(大量)用户处于同一会话中的历史搜索词进行挖掘,从而得到改写词表。其中,改写词表包括若干组改写词对,用于根据其中的改写词对改写第一搜索词。
56.由于用户处于同一会话中的历史搜索词一般具有一定的相关性,因此对其进行挖掘,可以得到相应的改写词表。服务端100在对用户处于同一会话中的历史搜索词进行挖掘时,可以将同一会话中全部的历史搜索词均认为是有相关性,将每一历史搜索词与剩余历史搜索词分别组成改写词表中的一个词对;也可以是对同一会话中的历史搜索词进行评估,将满足一定条件的词对作为改写词表中的词对,具体挖掘的方式可以根据实际需要进行设置,此处不做具体限制。
57.服务端100在获取到第一搜索词后,可以将第一搜索词与改写词表中的词进行匹配,再根据改写词表中与第一搜索词匹配的词所对应的词改写第一搜索词,从而得到改写后的第二搜索词。例如,若第一搜索词为a,而改写词表中包括改写词对为a和b,则可以为:将搜索词a与改写词表中的改写词对进行匹配,确定匹配的改写词对为a和b,则将a改写为b,从而得到b作为第二搜索词。若改写词表中包括多组可以与第一搜索词匹配的改写词对,则可以得到多个第二搜索词。
58.步骤s430,根据第二搜索词确定推荐给目标用户的关联商品,返回关联商品。
59.服务端100在根据第二搜索词确定推荐给目标用户的关联商品时,可以是通过预设的搜索模型根据第二搜索词对商品进行召回、粗排和精排等操作,从而确定推荐给目标用户的关联商品。搜索模型可以包括召回子模型、粗排子模型和精排子模型,从而使搜索模型可以完成相应的召回、粗排和精排等相应的操作,最终确定返回给目标用户的关联商品。
60.可以理解的是,服务端100也可以采用搜索模型根据第一搜索词对商品进行召回、粗排和精排等操作,从而确定与目标用户直接输入的第一搜索词相应的商品。可选地,服务端100在根据第二搜索词确定推荐给目标用户的关联商品时,可以与第一搜索词对应的搜索相独立,进行独立的排序。而在返回关联商品时,可以与第一搜索词对应的搜索结果一同返回,并显示在同一个搜索页面中的不同区域或模块。
61.请参考图3,其为本技术实施例的搜索方法的应用示例图,如图所示,可以在线上对请求进行分流,分为两个组,一个为实验组,采用本技术实施例的搜索方法,另一个为对照组,采用目前的基于用户和商品的因素来推荐的方法,从而可以通过两个组的对比来确定本技术实施例的搜索方法的优化效果。具体地,如果是对照组的流量,则可以直接返回原始的搜索底部(feedblast);如果为实验组的流量,则可以根据挖掘的改写词表对用户输入的搜索词进行改写等预处理,再通过召回和排序来最终确定最终推荐给用户的关联商品显示在搜索底部。其中,改写词表可以通过离线阶段进行挖掘,并通过hive同步至服务端的db(数据库);在线上阶段,可以将改写词表同步至内存,从而方便进行线上的使用。
62.本技术实施例的搜索方法,通过获取目标用户输入的第一搜索词,根据预设的改写词表对第一搜索词进行改写,得到n个第二搜索词,其中改写词表根据多个用户处于同一会话中的历史搜索词得到;再根据第二搜索词确定推荐给目标用户的关联商品,返回关联商品;由于改写词表是通过多个用户处于同一会话中的历史搜索词得到的,而用户处于同一会话中的历史搜索词具有相关性,因此通过改写词表对用户输入的原有搜索词进行改写,再根据改写的搜索词获取关联商品推荐给用户,可以使搜索底部(feedblast)推荐的商品与用户的搜索词有一定的关联性,从而使推荐的关联商品符合用户的需求,容易引起用户点击或购买的兴趣,提高转化率,从而方便达到提高支付用户数等目的或效果。
63.在示例性的实施例中,如图4所示,搜索方法还可以包括步骤s440~步骤s460,具
体如下:
64.步骤s440,获取处于同一会话的多个用户的第一历史搜索词和第二历史搜索词,第一历史搜索词为对应的点击率满足第一预设条件或对应的转化率满足第二预设条件的历史搜索词,第二历史搜索词为对应的点击率不满足第一预设条件且转化率不满足第二预设条件的历史搜索词。
65.第一预设条件可以包括但不限于点击率大于或等于点击率阈值。同样地,第二预设条件可以包括但不限于转化率大于或等于转化率阈值。可选地,第一预设条件或第二预设条件还可以对历史搜索词本身作进一步限定,例如限定在一定时间内(如30天内)充足曝光下(即曝光率大于一定数值)的历史搜索词的点击率大于或等于一个预设的点击率阈值。一个搜索词被越多用户使用,则其曝光率就越大,越少使用,则其曝光率就越小。由于被少量用户使用的搜索词具有的代表意义较少,因此选取充足曝光的历史搜索词可以使确定的第一历史搜索词和第二搜索词更有代表性和更有使用价值。
66.服务端100可以获取多个用户处于同一会话中的历史搜索词,将处于同一会话中的历史搜索词与第一预设条件和第二预设条件进行比较,若历史搜索词对应的点击率满足第一预设条件或对应的转化率满足第二预设条件,则确定该历史搜索词为第一历史搜索词;若历史搜索词对应的点击率不满足第一预设条件且对应的转化率不满足第二预设条件,则确定该历史搜索词为第二历史搜索词。
67.步骤s450,将第一历史搜索词和第二历史搜索词分别组成词对形成词对集,词对集中包括若干组词对。
68.具体地,可以将每一第一历史搜索词分别和每一第二历史搜索词分别组成词对,再根据组成的词对形成由若干组词对组成的词对集。例如,若某个用户处于同一会话的第一历史搜索词为a,第二历史搜索词为b和c,则可以分别组成ab和ac两个词对。可选地,也可以是将第一历史搜索词和第二历史搜索词随机组成词对,例如,前述例子中,可以是随机生成ab词对或ac词对。
69.应当理解的是,处于同一会话的历史搜索词可以为多个,也可能只有一个,而只有一个历史搜索词的情况下,无法确定与其关联的历史搜索词,因此在实际应用中,若未获取到同一会话的第一历史搜索词和第二历史搜索词,则可以结束本次挖掘的流程。
70.步骤s460,确定词对集中的词对是否满足第三预设条件,并在当前词对满足第三预设条件的情况下,将当前词对保存至改写词表中,第三预设条件至少包括词对的共现频率大于或等于频率阈值。
71.在第三预设条件为词对的共现频率大于或等于频率阈值时,服务端100可以对词对集中的每一词对的共现频率进行计算,再将计算的结果与频率阈值进行比较,从而确定每一词对的共现频率是否大于或等于频率阈值。例如,若第三预设条件为词对的共现频率大于或等于20,则服务端100可以将每一词对的共现频率与20进行比较,若大于或等于20,则确定该词对满足第三预设条件,否则不满足第三预设条件。当然,若第三预设条件还包括其它条件,则服务端100可以再确定词对是否满足其它条件,进而确定其是否满足第三预设条件。在当前词对满足第三预设条件的情况下,将当前词对保存至改写词表中,作为改写词表中的其中一个改写词对;若当前词对不满足第三预设条件,则放弃当前词对,继续确定其它词对是否满足第三预设条件。
72.本实施例中,通过获取处于同一会话的多个用户的第一历史搜索词和第二历史搜索词,其中第一历史搜索词为对应的点击率满足第一预条件或对应的转化率满足第二预设条件的历史搜索词,第二历史搜索词为对应的点击率不满足第一预设件且对应的转化率不满足第二预设条件的历史搜索词;将每一第一历史搜索词和每一第二历史搜索词分别组成词对形成词对集,确定词对集中的词对是否满足第三预设条件,并在当前词对满足第三预设条件的情况下,将当前词对保存至改写词表中,其中第三预设条件至少包括词对的共现频率大于或等于频率阈值;由于第一历史搜索词是点击率或转化率较好的历史搜索词,而第二历史搜索词是点击率或转化率较差的历史搜索词,因此将第一历史搜索词与第二历史搜索词组成词对,进而确定改写词表,可以在通过改写词表来改写用户原来的搜索词(第一搜索词)时,得到点击率或转化率较好的改写词(第二搜索词),从而使关联商品的点击率或转化率提高;另外,由于第三预设条件至少包括词对的共现频率大于或等于频率阈值,而词对的共现频率能有效地体现词对中历史搜索词的相关性,因此将满足第三预设条件的词对作为改写词表中的改写词,可以有效地将相关的历史搜索词作为改写词。
73.在示例性的实施例中,第三预设条件还包括词对的相似度大于或等于相似度阈值。
74.相似度阈值可以根据实际需要设置,例如为0.6,此处不做具体限制。
75.可以理解的是,通过词对的共现频率来确定改写词表,虽然可以将具有相关性的历史搜索词确定为改写词,但是精度较低。而第三预设条件还包括词对的相似度大于或等于相似度阈值,可以通过双重标准来确定改写词,提高改写词表改写的精度,从而使确定的关联商品更加符合目标用户的需求。
76.在示例性的实施例中,在步骤s460之前,即在确定词对集中的词对是否满足第三预设条件之前,如图5所示,可以包括步骤s470~步骤s480,具体如下:
77.步骤s470,获取词对中的第一历史搜索词和第二历史搜索词的语义向量。
78.可选地,在获取词对中的第一历史搜索词和第二历史搜索词的语义向量时,可以是采用word2vec模型进行获取,其中,word2vec模型是一种轻量的神经网络结构,仅包含输入层、隐藏层、输出层。在采用word2vec模型获取词对中的第一历史搜索词和第二历史搜索词的语义向量,具体可以是采用word2vec模型中的skip-gram算法来获取相应的语义向量。由于word2vec模型比较轻量,因此使用word2vec模型来确定词对的相似度,可以降低对服务端计算资源的占用。
79.步骤s480,根据语义向量确定词对中的第一历史搜索词和第二历史搜索词的相似度。
80.在得到相应的语义向量后,服务端100可以根据相似度算法来确定词对中的第一历史搜索词和第二历史搜索词的相似度。其中,相似度算法可以根据实际需要设置,例如余弦相似度等,此处不做具体限制。
81.如图6所示,其为本技术实施例的搜索方法进行改写词挖掘的应用示例图。如图所示,可以先将会话分为单搜索词(query)的会话和多搜索词(query)的会话,然后根据点击率或转化率等指标将搜索词进一步区分为第一历史搜索词(即图中的“好”query)和第二历史搜索词(即图中的“坏”query);再基于处于同一会话中的搜索词一般是相互关联的关系,与“好”query与“坏”query进行配对,根据配对后的词对的共现频率和相似度阈值最终确定
改写词表。其中相似度是通过word2vec模型获取语义向量,再通过余弦相似度计算得到。
82.本实施例中,通过获取词对中的第一历史搜索词和第二历史搜索词的语义向量,根据其语义向量确定词对中的第一历史搜索词和第二历史搜索词的相似度,可以方便确定词对是否满足第三预设条件。
83.相关技术中,会使用同义词挖掘的方法来对用户的搜索词进行改写,但这种方法由于需要进行二分类,而进行二分类至少需要人工进行万级别的标注来获得训练样本,因此需要耗费大量的人力成本。而上述实施例中,通过词对的共现频率和相似度对同一会话中的历史搜索词组成的词对进行确定,可以实现改写词的自动挖掘,能够在无标注的情况下作改写扩展召回,不需要耗费大量的人力成本,降低了改写扩展召回的实施难度。同时,后续也可以根据线上的实际效果(如转化率)等对改写词作质量标注,从而对改写词表中的改写词作进一步的优化。
84.在示例性的实施例中,步骤s430中,根据第二搜索词确定推荐给目标用户的关联商品,如图7所示,可以包括步骤s431~步骤s433,具体如下:
85.步骤s431,将n个第二搜索词分为第一优先队列和第二优先队列,第一优先队列和第二优先队列分别包括若干个第二搜索词。
86.在将n个第二搜索词分为第一优先队列和第二优先队列时,可以是根据共现频率和/或相似度对词对进行排序,将排序靠前的放在第一优先队列,将排序靠后的放在第二优先队列,具体分配的规则可以根据实际需要进行设置,此处不做具体限制。第一优先队列和第二优先队列包括的第二搜索词的数量可以相等,也可以不相等,例如,若共有20个第二搜索词,则可以将排序的前2个第二搜索词放在第一优先队列,其余的18个第二搜索词放在第二优先队列。
87.可以理解的是,为了保证搜索返回的商品数量,第二搜索词的数量通常较大。而如果将所有第二搜索词都放到搜索引擎中进行搜索,则会占用搜索引擎较多的计算资源,影响搜索引擎的性能;而将第二搜索词分为两个优先队列进行搜索,可以在保证搜索返回的商品数量的同时,减少对搜索引擎的性能的影响。实际应用中,也可以将n个第二搜索词分为多个优先队列。
88.步骤s432,根据搜索模型中的召回子模型和第一优先队列中的第二搜索词召回第一商品。
89.具体地,根据搜索模型中的召回子模型和第一优先队列中的第二搜索词召回第一商品,可以是采用搜索模型中的召回子模型根据第一优先队列中的第二搜索词召回第一商品。
90.搜索模型具体可以包括召回、粗排、精排等链路,从而可以实现商品的推荐,其中,搜索模型及其中包括的召回子模型、粗排子模型和精排子模型,其中,粗排子模型具体可以采用人工规则策略模型、线性模型、双塔内积深度模型或轻量级mlp(多层感知器)粗排模型;精排子模型具体可以采用线性模型,也可以采用深度学习模型。粗排子模型和精排子模型具体采用的模型及算法可以根据实际需要设置,此处不做具体限制。
91.第一商品是指召回子模型根据第一优先队列中的第二搜索词召回的商品。
92.步骤s433,在第一商品的数量大于或等于数量阈值,或,当前请求并发数大于或等于并发阈值的情况下,根据搜索模型和第一商品确定关联商品。
93.其中,根据搜索模型和第一商品确定关联商品可以为:采用搜索模型根据第一商品确定关联商品。数量阈值和并发阈值可以根据实际需要进行设置,此处不做具体限制。在第一商品的数量大于或等于数量阈值时,表明召回的商品数量已经足够,可以保证返回充足数量的关联商品,此时不再需要根据第二优先队列的第二搜索词进行搜索,从而进一步减少对搜索引擎资源的占用。而当前请求并发数大于或等于并发阈值时,表明当前请求数过多(如活动时),如果再根据第二优先队列的第二搜索词进行请求,会使请求并发数更多,导致搜索引擎被占用的资源过多,因此直接根据第一商品确定关联商品,可以减少对搜索引擎资源的占用。
94.在采用搜索模型根据第一商品确定关联商品时,可以是采用搜索模型中的粗排子模型和精排子模型对第一商品作进一步筛选,从而得到最终的关联商品。
95.本实施例中,通过将n个第二搜索词分为第一优先队列和第二优先队列,可以在保证搜索返回的商品数量的同时,减少对搜索引擎的性能的影响;而根据搜索模型中的召回子模型和第一优先队列中的第二搜索词召回第一商品,在第一商品的数量大于或等于数量阈值,或,当前请求并发数大于或等于并发阈值的情况下,根据搜索模型和第一商品确定关联商品,可以进一步减少对搜索引擎资源的占用,提高搜索引擎的使用性能。
96.在示例性的实施例中,如图8所示,搜索方法还可以包括步骤s434~步骤s435,具体如下:
97.步骤s434,在第一商品的数量小于数量阈值,且请求次数小于预设次数的情况下,采用召回子模型根据第二优先队列中的第二搜索词召回第二商品。
98.第二商品是指召回子模型根据第二优先队列中的第二搜索词召回的商品。
99.预设次数可以根据实际需要进行设置,此处不做限制。由于第二搜索词分两个优先队列(第一优先队列和第二优先队列),而相同优先队列的搜索词进行搜索时一般搜索结果不会发生变化,因此预设次数可以与优先队列的数量一致。例如,上述优先队列为两个,则预设次数可以为2。在一些场景中,请求次数可以为请求批次,即请求属于第几批请求。例如,第一优先队列对应的请求批次为第一批请求,第二优先队列对应的请求批次为第二批请求。
100.在第一商品的数量小于数量阈值时,表明召回的商品数量较少,不足以返回充足数量的关联商品,因此,服务端100可以请求次数小于预设次数的情况下,采用召回子模型根据第二优先队列中的第二搜索词对商品继续召回,得到召回的第二商品。
101.步骤s435,根据搜索模型、第一商品和第二商品确定关联商品。
102.具体地,步骤s435可以为:采用搜索模型根据第一商品和第二商品确定关联商品。在召回第一商品和第二商品后,服务端100可以根据搜索模型将第一商品和第二商品共同作为召回的商品,再通过粗排子模型和精排子模型对召回的商品(第一商品和第二商品)进行处理,就可以得到相应的关联商品。
103.本实施例中,通过在第一商品的数量小于数量阈值,且请求次数小于预设次数的情况下,采用召回子模型根据第二优先队列中的第二搜索词召回第二商品,再根据搜索模型、第一商品和第二商品确定关联商品,可以使用两个优先队列的第二搜索词进行搜索,从而确保返回数量较多的关联商品。
104.在示例性的实施例中,搜索方法还可以包括:在第一优先队列中第二搜索词的数
量小于第一数量的情况下,从知识图谱中获取第一优先队列中第二搜索词的关联词进行候补;或者,在第二优先队列中第二搜索词的数量小于第二数量的情况下,从知识图谱中获取第二优先队列中第二搜索词的关联词进行候补。
105.其中,关联词可以包括但不限于上位词、下位词、近义词或同义词等。
106.第一数量和第二数量可以根据实际需要进行设置,例如第一数量可以为10,而第二数量为100个,此处不做具体限制。服务端100在从知识图谱取关联词进行候补时,可以是使候补后第一优先队列中第二搜索词的数量等于第一数量,第二优先队列中第二搜索词的数量等于第二数量。
107.由于第一优先队列中第二搜索词或第二优先队列中第二搜索词可能存在数量不足的情况,这样会使返回的关联商品较少,因此通过从知识图谱中获取关联词进行候补,可以保证第二搜索词有一定的数量,从而保证返回较多的关联商品供用户进行选择,提高用户的体验。
108.在示例性的实施例中,如图9所示,步骤s430中,根据第二搜索词确定推荐给目标用户的关联商品,还可以包括步骤s510~步骤s550,具体如下:
109.步骤s510,采用搜索模型中的第二排序子模型获取搜索模型中第一排序子模型输出的第三商品,第三商品是搜索模型根据第二搜索词确定的商品。
110.其中,第二排序子模型可以为前述的精排子模型,而第一排序子模型可以为前述的粗排子模型。
111.具体地,搜索模型可以是通过召回子模型根据第二搜索词召回商品,在经过粗排子模型后,其输出的是粗排后得到的一定数量的第三商品,而精排子模型的输入则为该一定数量的第三商品。
112.步骤s520,采用第二排序子模型对第三商品进行评分,得到第三商品的排序得分。
113.步骤s530,分别获取第三商品对应的第二搜索词与第一搜索词的相似度,并根据第二搜索词与第一搜索词的相似度确定第三商品的相似度得分。
114.步骤s540,根据排序得分和相似度得分确定第三商品的最终评分。
115.步骤s550,将最终评分大于分数阈值的第三商品作为关联商品。
116.可以理解的是,若直接根据搜索模型中的精排子模型对商品的评分来确定关联商品,则关联商品实际上是由第二搜索词(也即改写后的搜索词)决定的,而使用的各个第二搜索词与第一搜索词的相关性是有差异的,因此在采用精排子模型对商品进行评分的同时,再次根据商品对应的第二搜索词与第一搜索词的相似度得到的相似度得分来综合评分,可以使最终返回的关联商品与用户原有的搜索词的相关性更好,进一步提高关联商品推荐的准确性。
117.请参考图10,其为本技术实施例的搜索方法的流程示例图。如图所示,将第二搜索词分两个优先队列,先用第一优先队列进行请求,若请求的结果大于或等于300(即上述的数量阈值),或活动时请求并发数过多(即大于上述的并发阈值),则不再采用第二优先队列进行请求,直接根据第一优先队列经过粗排和精排得到最终的关联商品返回;若请求的结果小于300,且请求的次数小于2(对应上述的预设次数),则采用第二优先队列继续请求;在采用第二优先队列进行请求后,由于此时的请求次数等于2,则不再进行请求的循环,根据目前召回的商品进行粗排和精排,最终确定推荐给用户的关联商品进行返回。其中,在精排
阶段,可以结合精排得分和上述的相似度得到来确定商品的最终评分,进而根据最终评分确定关联商品。
118.请参考图11,其为本技术实施例的搜索方法得到的搜索结果页面的示例图。如图所示,当用户搜索“敦煌飞天”,搜索结果卡片展示结束还可以展示其他和敦煌系列有关的商品。
119.实施例二
120.图12示意性示出了根据本技术实施例二的搜索装置600的框图,该搜索装置600可以被分割成一个或多个程序模块,一个或者多个程序模块被存储于存储介质中,并由一个或多个处理器所执行,以完成本技术实施例。本技术实施例所称的程序模块是指能够完成特定功能的一系列计算机程序指令段,以下描述将具体介绍本实施例中各程序模块的功能。
121.如图12所示,该搜索装置600可以包括获取模块610、改写模块620和确定模块630。
122.获取模块610,用于获取目标用户输入的第一搜索词;
123.改写模块620,用于根据预设的改写词表对第一搜索词进行改写,得到n个第二搜索词,改写词表根据多个用户处于同一会话中的历史搜索词得到,n为正整数;
124.确定模块630,用于根据第二搜索词确定推荐给目标用户的关联商品,返回关联商品。
125.在示例性的实施例中,搜索装置600还包括挖掘模块(图中未示出),其中,挖掘模块用于:获取处于同一会话的多个用户的第一历史搜索词和第二历史搜索词,第一历史搜索词为对应的点击率满足第一预设条件或对应的转化率满足第二预设条件的历史搜索词,第二历史搜索词为对应的点击率不满足第一预设条件且对应的转化率不满足第二预设条件的历史搜索词;将每一第一历史搜索词和每一第二历史搜索词分别组成词对形成词对集,词对集中包括若干组词对;确定词对集中的词对是否满足第三预设条件,并在当前词对满足第三预设条件的情况下,将当前词对保存至改写词表中,第三预设条件至少包括词对的共现频率大于或等于频率阈值。
126.在示例性的实施例中,第三预设条件还包括词对的相似度大于或等于相似度阈值。
127.在示例性的实施例中,挖掘模块还用于:获取词对中的第一历史搜索词和第二历史搜索词的语义向量;根据语义向量确定词对中的第一历史搜索词和第二历史搜索词的相似度。
128.在示例性的实施例中,确定模块630还用于:将n个第二搜索词分为第一优先队列和第二优先队列,第一优先队列和第二优先队列分别包括若干个第二搜索词;根据搜索模型中的召回子模型和第一优先队列中的第二搜索词召回第一商品;在第一商品的数量大于或等于数量阈值,或,当前请求并发数大于或等于并发阈值的情况下,根据搜索模型和第一商品确定关联商品。
129.在示例性的实施例中,确定模块630还用于:在第一商品的数量小于数量阈值,且请求次数小于预设次数的情况下,采用召回子模型根据第二优先队列中的第二搜索词召回第二商品;根据搜索模型、第一商品和第二商品确定关联商品。
130.在示例性的实施例中,改写模块620还用于:在第一优先队列中第二搜索词的数量
小于第一数量的情况下,从知识图谱中获取第一优先队列中第二搜索词的关联词进行候补;或者,在第二优先队列中第二搜索词的数量小于第二数量的情况下,从知识图谱中获取第二优先队列中第二搜索词的关联词进行候补。
131.在示例性的实施例中,确定模块630还用于:采用搜索模型中的第二排序子模型获取搜索模型中第一排序子模型输出的第三商品,第三商品是搜索模型根据第二搜索词确定的商品;采用第二排序子模型对第三商品进行评分,得到第三商品的排序得分;分别获取第三商品对应第二搜索词与第一搜索词的相似度,并根据第二搜索词与第一搜索词的相似度确定第三商品的相似度得分;根据排序得分和相似度得分确定第三商品的最终评分;将最终评分大于分数阈值的第三商品作为关联商品。
132.实施例三
133.图13示意性示出了根据本技术实施例三的适于搜索方法的计算机设备700的硬件架构图。计算机设备700可以是一种能够按照事先设定或者存储的指令,自动进行数值计算和/或数据处理的设备。例如,可以是机架式服务器、刀片式服务器、塔式服务器或机柜式服务器(包括独立的服务器,或者多个服务器所组成的服务器集群)、网关等。如图13所示,计算机设备700至少包括但不限于:可通过系统总线相互通信链接存储器710、处理器720、网络接口730。其中:
134.存储器710至少包括一种类型的计算机可读存储介质,可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,存储器710可以是计算机设备700的内部存储模块,例如该计算机设备700的硬盘或内存。在另一些实施例中,存储器710也可以是计算机设备700的外部存储设备,例如该计算机设备700上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,存储器710还可以既包括计算机设备700的内部存储模块也包括其外部存储设备。本实施例中,存储器710通常用于存储安装于计算机设备700的操作系统和各类应用软件,例如搜索方法的程序代码等。此外,存储器710还可以用于暂时地存储已经输出或者将要输出的各类数据。
135.处理器720在一些实施例中可以是中央处理器(central processing unit,简称为cpu)、控制器、微控制器、微处理器、或其他数据处理芯片。该处理器720通常用于控制计算机设备700的总体操作,例如执行与计算机设备700进行数据交互或者通信相关的控制和处理等。本实施例中,处理器720用于运行存储器710中存储的程序代码或者处理数据。
136.网络接口730可包括无线网络接口或有线网络接口,该网络接口730通常用于在计算机设备700与其他计算机设备之间建立通信链接。例如,网络接口730用于通过网络将计算机设备700与外部终端相连,在计算机设备700与外部终端之间的建立数据传输通道和通信链接等。网络可以是企业内部网(intranet)、互联网(internet)、全球移动通信系统(global system of mobile communication,简称为gsm)、宽带码分多址(wideband code division multiple access,简称为wcdma)、4g网络、5g网络、蓝牙(bluetooth)、wi-fi等无线或有线网络。
137.需要指出的是,图13仅示出了具有部件710-730的计算机设备,但是应理解的是,
并不要求实施所有示出的部件,可以替代的实施更多或者更少的部件。
138.在本实施例中,存储于存储器710中的搜索方法还可以被分割为一个或者多个程序模块,并由一个或多个处理器(本实施例为处理器720)所执行,以完成本技术实施例。
139.实施例四
140.本技术实施例还提供一种计算机可读存储介质,计算机可读存储介质其上存储有计算机程序,计算机程序被处理器执行时实现实施例中的搜索方法的步骤。
141.本实施例中,计算机可读存储介质包括闪存、硬盘、多媒体卡、卡型存储器(例如,sd或dx存储器等)、随机访问存储器(ram)、静态随机访问存储器(sram)、只读存储器(rom)、电可擦除可编程只读存储器(eeprom)、可编程只读存储器(prom)、磁性存储器、磁盘、光盘等。在一些实施例中,计算机可读存储介质可以是计算机设备的内部存储单元,例如该计算机设备的硬盘或内存。在另一些实施例中,计算机可读存储介质也可以是计算机设备的外部存储设备,例如该计算机设备上配备的插接式硬盘,智能存储卡(smart media card,简称为smc),安全数字(secure digital,简称为sd)卡,闪存卡(flash card)等。当然,计算机可读存储介质还可以既包括计算机设备的内部存储单元也包括其外部存储设备。本实施例中,计算机可读存储介质通常用于存储安装于计算机设备的操作系统和各类应用软件,例如实施例中搜索方法的程序代码等。此外,计算机可读存储介质还可以用于暂时地存储已经输出或者将要输出的各类数据。
142.显然,本领域的技术人员应该明白,上述的本技术实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本技术实施例不限制于任何特定的硬件和软件结合。
143.以上仅为本技术的优选实施例,并非因此限制本技术的专利范围,凡是利用本技术说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本技术的专利保护范围内。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1