一种扩展搜索方法与装置与流程

文档序号:12364229阅读:268来源:国知局
一种扩展搜索方法与装置与流程

本发明涉及搜索技术领域,尤其涉及一种扩展搜索的技术。



背景技术:

个性化搜索技术通过引入用户的长期兴趣和短期意图,作为对检索结果召回和排序的因素,能够提高对用户真实意图进行预测的准确性,使得搜索结果更符合用户的需求。现有的个性化搜索方法主要通过对排序靠前(top-n)的自然搜索结果(即根据用户提交的搜索序列获得的搜索结果)进行个性化重排实现,在实际应用中存在诸多局限。

现有技术存在如下问题:

1)召回存在很大局限性。对自然搜索结果按照用户兴趣进行重排的主要目的是在保证相关性的前提下,突出与用户兴趣相符的结果。在自然搜索结果能够充分体现需求的多样性时,上述方法比较有效。然而,自然搜索结果由于考虑了点击等群体用户的反馈,通常只能反映大众化群体的需求,很难覆盖占比更大的长尾需求。此外,为了保证搜索响应时间,通常只截取前面少量结果参与重排。因此,有相当一部分用户的需求由于缺少资源而得不到满足。

2)需要对自然搜索结果增加用于个性化重排序的辅助信息。个性化重排序的主要操作是计算搜索结果与用户兴趣的符合程度,从而给每个搜索结果赋予一个重排序权重。实现这一操作,通常需要针对每一个搜索结果和每一个用户提取相关特征,例如兴趣主题特征等。提取这些特征,一方面需要较为丰富的数据,如用户的行为数据和搜索结果的内容描述数据等,另一方面对于大规模数据需要高昂的计算和存储成本。对于图片搜索等搜索结果内容描述数据不丰富而且搜索结果量巨大的应用场景,满足上述两个需求都存在较大困难。

3)基于主题分类的用户兴趣模型不能完全满足实际应用需求。为了描述用户的个性化需求,现有系统通常会采用人工或者机器学习的方法建立主题模型,将用户的长期或者短期兴趣以及搜索结果都映射到相同的主题模型上,实现用户和搜索结果之间兴趣相似度的计算。通过人工方式建立的主题分类(例如Open Directory Project)虽然质量较高,但是构建和更新成本高,跨领域迁移能力较差。利用机器学习算法(例如LDA)进行自动的文本主题分类,存在准确率不高、对短文本效果欠佳等问题。



技术实现要素:

本发明的目的是提供一种扩展搜索方法与装置。

根据本发明的一个方面,提供了一种扩展搜索方法,其中,该方法包括以下步骤:

-建立每个用户的兴趣词模型;

其中,根据所述每个用户在预定时间窗口内提交的第一搜索序列及其对应浏览搜索结果所关联的第二搜索序列,生成所述每个用户的兴趣搜索词集合,以建立所述每个用户的兴趣词模型;

-建立每个第四搜索序列的扩展词模型;其中,

-根据预定时间窗口内的所有第三搜索序列以及其中长度低于预定阈值的第四搜索序列,获取所述第三搜索序列中包含所述第四搜索序列的第五搜索序列;

-对所述每个第四搜索序列,根据其对应的每个第五搜索序列与该第四搜索序列之间的不同部分,生成所述每个第四搜索序列的扩展词集合,以建立所述每个第四搜索序列的扩展词模型;

其中,该方法还包括:

-根据当前用户的当前搜索序列,基于所述当前用户的兴趣词模型以及所述当前搜索序列的扩展词模型,确定相应的扩展搜索词;

-根据所述当前搜索序列以及所述扩展搜索词,向所述当前用户提供相应的搜索结果。

根据本发明的另一个方面,还提供了一种扩展搜索装置,其中,该装置包括:

-用于建立每个用户的兴趣词模型的装置;

其中,根据所述每个用户在预定时间窗口内提交的第一搜索序列及其对应浏览搜索结果所关联的第二搜索序列,生成所述每个用户的兴趣搜索词集合,以建立所述每个用户的兴趣词模型;

-用于建立每个第四搜索序列的扩展词模型的装置;其中,

-根据预定时间窗口内的所有第三搜索序列以及其中长度低于预定阈值的第四搜索序列,获取所述第三搜索序列中包含所述第四搜索序列的第五搜索序列;

-对所述每个第四搜索序列,根据其对应的每个第五搜索序列与该第四搜索序列之间的不同部分,生成所述每个第四搜索序列的扩展词集合,以建立所述每个第四搜索序列的扩展词模型;

-用于根据当前用户的当前搜索序列,基于所述当前用户的兴趣词模型以及所述当前搜索序列的扩展词模型,确定相应的扩展搜索词的装置;

-用于根据所述当前搜索序列以及所述扩展搜索词,向所述当前用户提供相应的搜索结果的装置。

本发明可以实现更加简单有效的个性化搜索,在满足用户长尾需求(即增加个性化结果召回)、降低计算和存储成本、通用性、实用性等方面具有优势。首先,本发明基于用户行为日志提取每个用户的兴趣搜索词并建立用户的兴趣词模型,然后基于全部用户的行为日志提取每个第四搜索序列的扩展词并建立第四搜索序列的扩展词模型。当特定用户搜索特定搜索序列时,本发明基于用户的兴趣词模型和第四搜索序列的扩展词模型,确定当前用户在当前搜索序列下的扩展搜索词,以对当前搜索序列进行个性化扩展,并以扩展后的搜索序列作为查询,获取个性化的搜索结果。本发明在搜索结果文本描述信息非常稀疏的情况下仍能提供很好的效果。

本发明的一个典型应用是图片的个性化搜索。传统的图片搜索只能为用户提供“千人一面”的搜索结果,但是用户对于图片的需求千差万别,很难用千篇一律的结果满足不同用户的需求。为用户提供个性化的图片搜索结果,将极大提高用户的搜索效率和体验。但是在图片搜索领域,用户需求更加多样性,图片在描述信息方面更加稀疏和不准确,用户看图的成本很低,结果需求量很大。这些特点使得现有个性化搜索方法的效果难尽人意。本发明能够很好的解决这些问题。

附图说明

通过阅读参照以下附图所作的对非限制性实施例所作的详细描述,本发明的其它特征、目的和优点将会变得更明显:

图1示出根据本发明一个实施例的用于扩展搜索的方法流程图;

图2示出根据本发明一个实施例的用于扩展搜索的装置的示意图。

附图中相同或相似的附图标记代表相同或相似的部件。

具体实施方式

在更加详细地讨论示例性实施例之前应当提到的是,一些示例性实施例被描述成作为流程图描绘的处理或方法。虽然流程图将各项操作描述成顺序的处理,但是其中的许多操作可以被并行地、并发地或者同时实施。此外,各项操作的顺序可以被重新安排。当其操作完成时所述处理可以被终止,但是还可以具有未包括在附图中的附加步骤。所述处理可以对应于方法、函数、规程、子例程、子程序等等。

在上下文中所称“计算机设备”,也称为“电脑”,是指可以通过运行预定程序或指令来执行数值计算和/或逻辑计算等预定处理过程的智能电子设备,其可以包括处理器与存储器,由处理器执行在存储器中预存的程序指令来执行预定处理过程,或是由ASIC、FPGA、DSP等硬件执行预定处理过程,或是由上述二者组合来实现。计算机设备包括但不限于服务器、个人电脑、笔记本电脑、平板电脑、智能手机等。

所述计算机设备例如包括移动终端与网络设备。其中,所述移动终端包括但不限于智能手机、PDA等;所述网络设备包括但不限于单个网络服务器、多个网络服务器组成的服务器组或基于云计算(Cloud Computing)的由大量计算机或网络服务器构成的云,其中,云计算是分布式计算的一种,由一群松散耦合的计算机集组成的一个超级虚拟计算机。其中,所述计算机设备可单独运行来实现本发明,也可接入网络并通过与网络中的其他计算机设备的交互操作来实现本发明。其中,所述计算机设备所处的网络包括但不限于互联网、广域网、城域网、局域网、VPN网络等。

需要说明的是,所述移动终端、网络设备和网络等仅为举例,其他现有的或今后可能出现的计算机设备或网络如可适用于本发明,也应包含在本发明保护范围以内,并以引用方式包含于此。

本文后面所讨论的方法(其中一些通过流程图示出)可以通过硬件、软件、固件、中间件、微代码、硬件描述语言或者其任意组合来实施。当用软件、固件、中间件或微代码来实施时,用以实施必要任务的程序代码或代码段可以被存储在机器或计算机可读介质(比如存储介质)中。(一个或多个)处理器可以实施必要的任务。

这里所公开的具体结构和功能细节仅仅是代表性的,并且是用于描述本发明的示例性实施例的目的。但是本发明可以通过许多替换形式来具体实现,并且不应当被解释成仅仅受限于这里所阐述的实施例。

应当理解的是,虽然在这里可能使用了术语“第一”、“第二”等等来描述各个单元,但是这些单元不应当受这些术语限制。使用这些术语仅仅是为了将一个单元与另一个单元进行区分。举例来说,在不背离示例性实施例的范围的情况下,第一单元可以被称为第二单元,并且类似地第二单元可以被称为第一单元。这里所使用的术语“和/或”包括其中一个或更多所列出的相关联项目的任意和所有组合。

应当理解的是,当一个单元被称为“连接”或“耦合”到另一单元时,其可以直接连接或耦合到所述另一单元,或者可以存在中间单元。与此相对,当一个单元被称为“直接连接”或“直接耦合”到另一单元时,则不存在中间单元。应当按照类似的方式来解释被用于描述单元之间的关系的其他词语(例如“处于...之间”相比于“直接处于...之间”,“与...邻近”相比于“与...直接邻近”等等)。

这里所使用的术语仅仅是为了描述具体实施例而不意图限制示例性实施例。除非上下文明确地另有所指,否则这里所使用的单数形式“一个”、“一项”还意图包括复数。还应当理解的是,这里所使用的术语“包括”和/或“包含”规定所陈述的特征、整数、步骤、操作、单元和/或组件的存在,而不排除存在或添加一个或更多其他特征、整数、步骤、操作、单元、组件和/或其组合。

还应当提到的是,在一些替换实现方式中,所提到的功能/动作可以按照不同于附图中标示的顺序发生。举例来说,取决于所涉及的功能/动作,相继示出的两幅图实际上可以基本上同时执行或者有时可以按照相反的顺序来执行。

本发明可由网络设备实现。具体地,网络设备建立每个用户的兴趣词模型以及每个第四搜索序列的扩展词模型,进而当用户进行搜索时,网络设备根据当前用户的当前搜索序列,基于所述当前用户的兴趣词模型以及所述当前搜索序列的扩展词模型,确定相应的扩展搜索词,并根据所述当前搜索序列以及所述扩展搜索词,向所述当前用户提供相应的搜索结果。

其中,所述网络设备无需是一台设备,只是作为一个整体来与用户端进行交互。典型地,例如,建立每个用户的兴趣词模型的设备以及建立每个第四搜索序列的扩展词模型的设备可以是同一个设备,也可以是不同设备;而在用户发起搜索时,与用户进行实时交互的设备可以是另一个设备,如接口服务器。

为简化说明,本说明书在以下描述时,并不区分执行上述各操作的具体设备,而统一使用网络设备来描述各步骤/操作/功能。

下面结合附图对本发明作进一步详细描述。

图1示出根据本发明一个实施例的方法流程图,其中具体一种示出扩展搜索过程。

如图1所示,在步骤S1中,网络设备建立每个用户的兴趣词模型;在步骤S2中,网络设备建立每个第四搜索序列的扩展词模型;在步骤S3中,网络设备根据当前用户的当前搜索序列,基于所述当前用户的兴趣词模型以及所述当前搜索序列的扩展词模型,确定相应的扩展搜索词;在步骤S4中,网络设备根据所述当前搜索序列以及所述扩展搜索词,向所述当前用户提供相应的搜索结果。

其中,步骤S1和S2的模型建立过程与步骤S3和S4的用户搜索过程之间并非紧密的连续发生关系。网络设备可以预先建立用户的兴趣词模型以及搜索序列的扩展词模型,并且随后还可根据用户的搜索行为来更新这两个模型。当用户发起搜索时,只要此时网络设备已建立有前述两个模型,可供搜索查询即可,而无需严格设定模型建立过程与用户搜索过程之间的关系,因为所建立的模型还将根据用户的搜索行为来进一步更新。

更进一步地,步骤S1和S2之间也并非实际的顺序发生关系,而仅用于标识两个模型的建立步骤。用户的兴趣词模型以及搜索序列的扩展词模型的建立可以同时进行,也可以先后进行,并且两者的建立顺序也不存在特定顺序。

具体地,在步骤S1中,网络设备建立每个用户的兴趣词模型的操作如下:

网络设备根据每个用户在预定时间窗口内提交的第一搜索序列及其对应浏览搜索结果所关联的第二搜索序列,生成每个用户的兴趣搜索词集合,以建立每个用户的兴趣词模型。

其中,预定时间窗口可以根据不同应用的需要来具体设定,例如3个月。所述第一搜索序列意指用户在预定时间窗口内实际提交的搜索序列。所述第二搜索序列意指对于用户在其提交搜索序列对应的搜索结果中用户进行浏览的搜索结果,这些浏览搜索结果所对应的所有搜索序列。

根据每个用户所对应的第一搜索序列和第二搜索序列,网络设备可以获得每个用户的兴趣搜索序列集合。可选地,第一搜索序列和第二搜索序列已经经过去重处理。对于兴趣搜索序列集合中的各兴趣搜索序列,网络设备对其进行分词处理,并对所获得的各分词进行去重、去停止词后,以获得各用户的兴趣搜索词集合。其中,所述停止词包括但不限于各种不具有实际意义或不影响搜索结果的虚词,例如“的”、“是什么”、“怎么样”等,又如,当搜索某一特定应用领域时,具体如图片搜索场景,用户的搜索序列中可能“图片”这个词的出现频率很高,但是其对于区分不同语义无实质价值,即使词频很高,也不应该作为代表性的关键词。

在此,用户的兴趣词模型的建立至少包括以下3种方式:

1.基于每个用户的兴趣搜索词集合中的各兴趣搜索词及其权重来建立各用户的兴趣词模型(以下称兴趣词模型1)。

例如,网络设备可以统计一个兴趣搜索词集合中各兴趣搜索词的词频,将相应词频直接作为各兴趣搜索词的权重或以词频为基础来计算各兴趣搜索词的权重,具体权重的确定方式可以取决于应用的具体需求,本发明对此不作限定。

据此,1个用户的兴趣词模型的示例如下:

用户1:<兴趣搜索词1,权重1>,<兴趣搜索词2,权重2>,…,<兴趣搜索词n,权重n>。

或者,user1:<term 1,weight 1>,<term 2,weight 2>,…,<term n,weight n>。

2.基于对每个用户的兴趣搜索词集合中各兴趣搜索词的分类来建立各用户的兴趣词模型(以下称兴趣词模型2)。

网络设备可以对兴趣搜索词集合中的各兴趣搜索词进行分类。例如,网络设备可以采用任何现有的分类算法,诸如分类器、LDA(Latent Dirichlet Allocation)自动主题分类算法等。其中,网络设备例如可以通过预先建立分类体系,然后通过标注训练数据来训练获得分类器。

据此,网络设备可以基于每个兴趣搜索词集合所包含的分类以及各分类下的兴趣搜索词来建立各用户的兴趣词模型。

例如,1个用户的兴趣词模型的示例如下:

用户1:<分类1,分类权重1,兴趣搜索词列表1>,<分类2,分类权重2,兴趣搜索词列表2>,…,<分类n,分类权重n,兴趣搜索词列表n>。

或者,user1:<class 1,weight 1,term-list 1>,<class 2,weight 2,term-list 2>,…,<class n,weight n,term-list n>。

其中,兴趣搜索词列表或上述term-list包括所属分类下的兴趣搜索词及其各自的权重。例如,各兴趣搜索词的权重可以基于其对应词频来确定,从而每个分类的分类权重可以基于其中包括的所有兴趣搜索词的权重来确定。

3.根据每个用户及其兴趣搜索词集合,建立用户-兴趣搜索词矩阵;根据用户-兴趣搜索词矩阵,确定每个用户对该用户-兴趣搜索词矩阵中每个兴趣搜索词的兴趣度,从而建立各用户的兴趣词模型(以下称兴趣词模型3)。

在此,用户-兴趣搜索词矩阵的行和列定义如下:将每个用户作为一行,从而有多少个用户则有多少行;将每个兴趣搜索词作为一列,在每行记录相应用户对该列兴趣搜索词的兴趣度,例如,该行用户关联的兴趣搜索词的兴趣度被标注为1,非关联的兴趣搜索词的兴趣度被标注为0,从而所有用户一共有多少个兴趣搜索词则有多少列。可替代地,用户的各关联兴趣搜索词的兴趣度也可以不同,如从范围0-1中取值。因此,用户-兴趣搜索词矩阵通常非常稀疏,其可以通过稀疏矩阵的压缩表示方法来进行存储和参与计算。

例如,网络设备可以通过各种协同过滤算法,如具体采用基于兴趣搜索词(item-based)、基于用户(user-based)或者MF(Matrix Factorization)方法来根据用户的已有兴趣搜索词,通过用户之间的相似性/相关性或者兴趣搜索词之间的相似性/相关性,对用户关于一个与其非关联的兴趣搜索词的兴趣度做出预测,也即网络设备可以将前述协同过滤算法作用于该用户-兴趣搜索词矩阵来生成兴趣度预测模型,以预测每个用户对与其非关联的兴趣搜索词的兴趣度,并可将所预测的兴趣度记录在该用户-兴趣搜索词矩阵中的对应位置。

具体如,用户A搜索过“书法”(即用户A的关联兴趣搜索词),而协同过滤算法能够自动学习到“书法”与“国画”(即用户A的非关联兴趣搜索词)具有很高的相关性,即大多数喜欢“书法”的人也对“国画”感兴趣,因此就可以将“国画”也作为对用户A兴趣的一个预测,如在用户-兴趣搜索词矩阵中,将“书法”与“国画”之间的相关性0.9标注为【“用户A”行,“国画”列】的用户兴趣度。优选地,“用户A”对“国画”的兴趣度也可以基于“书法”与“国画”之间的相关性来进行一定的转换算法确定,或还可结合其他相关参数来确定。本发明对此不做限定。

据此,网络设备根据各用户及其各自的兴趣搜索词集合建立初始的用户-兴趣搜索词矩阵,并进而根据该初始矩阵通过兴趣度预测模型来最终完成对用户-兴趣搜索词矩阵的赋值。因此,最终的用户-兴趣搜索词矩阵包括各用户的兴趣词模型,例如其中每一行即为一个用户的兴趣词模型。

对当前用户提交的当前搜索序列进行个性化扩展是本发明的核心内容。但是,对一个搜索序列不能随意进行扩展,有些扩展明显是不合常理的。例如,用户的当前搜索序列是“范冰冰”,即使该用户是“李冰冰”的粉丝(即该用户的兴趣词中包括“李冰冰”),在这种场景下,将“范冰冰”扩展成“范冰冰李冰冰”也是极不合理的。而如果该用户具有对“古装照”的兴趣时,将“范冰冰”扩展成“范冰冰古装照”则更为合理。因此,实际应用中需要针对一特定搜索序列,给出一特定扩展是否合理的具体判断。这个问题的本质是挖掘每个搜索序列具有哪些合理的需求方向,例如,对于搜索序列“手机壁纸”,美女、动漫、明星、风格等都是其合理的需求方向,均体现了用户在某一兴趣方向的需求。这可通过每个搜索序列的扩展词模型来确定。以下将对该模型的各建立方式进行具体描述。

在步骤S2中,网络设备建立每个第四搜索序列的扩展词模型的操作如下:

网络设备根据预定时间窗口内的所有第三搜索序列以及其中长度低于预定阈值的第四搜索序列,获取第三搜索序列中包含第四搜索序列的第五搜索序列;对每个第四搜索序列,网络设备根据其对应的每个第五搜索序列与该第四搜索序列之间的不同部分,生成每个第四搜索序列的扩展词集合,以建立各第四搜索序列的扩展词模型。

其中,预定时间窗口可以根据不同应用的需要来具体设定,例如3个月。所述第三搜索序列意指在预定时间窗口中搜索引擎的搜索日志中所记录的全部搜索序列。所述第四搜索序列意指第三搜索序列中长度低于预定阈值的搜索序列,其中长度阈值例如4个字符。这是因为具有多需求的搜索序列通常不会很长,为了减少计算量,网络设备通过设置长度阈值,滤出在一定长度范围内的第四搜索序列作为目标搜索序列来对其进行扩展。所述第五搜索序列意指其中包含有第四搜索序列的第三搜索序列,也即长度大于前述预定阈值的第三搜索序列。

对于每个第四搜索序列,网络设备获取其对应的第五搜索序列集合,并获得其中每个第五搜索序列与该第四搜索序列的不同部分。例如,将第四搜索序列标记为qt,将第五搜索序列标记为qf,则两者的不同部分qdiff=qf-qt.据此,网络设备可以获得每个第四搜索序列对应的qdiff集合,对每个qdiff集合中的各qdiff进行分词,并经过必要的去重、去停止词后,获得每个第四搜索序列的扩展词集合。

在此,第四搜索序列的扩展词模型的建立至少包括以下3种方式:

1.基于每个第四搜索序列的扩展词集合中的各扩展词及其权重来建立各第四搜索序列的扩展词模型(以下称扩展词模型1)。

在此,扩展词模型1的建立方式与兴趣词模型1的建立方式类似。因此,1个第四搜索序列的扩展词模型的示例如下:

第四搜索序列1:<扩展词1,权重1>,<扩展词2,权重2>,…,<扩展词n,权重n>。

或者,query 1:<term 1,weight 1>,<term 2,weight 2>,…,<term n,weight n>。

2.基于对每个第四搜索序列的扩展词集合中各扩展词的分类来建立各第四搜索序列的扩展词模型(以下称扩展词模型2)。

在此,扩展词模型2的建立方式与兴趣词模型2的建立方式类似。因此,1个第四搜索序列的扩展词模型的示例如下:

第四搜索序列1:<分类1,分类权重1,扩展词列表1>,<分类2,分类权重2,扩展词列表2>,…,<分类n,分类权重n,扩展词列表n>。

或者,query 1:<class 1,weight 1,term-list 1>,<class 2,weight 2,term-list 2>,…,<class n,weight n,term-list n>。

其中,扩展词列表或上述term-list包括所属分类下的扩展词及其各自的权重。例如,各扩展词的权重可以基于其对应词频来确定,从而每个分类的分类权重可以基于其中包括的所有扩展词的权重来确定。

3.根据每个第四搜索序列及其扩展词集合,建立第四搜索序列-扩展词矩阵;根据第四搜索序列-扩展词矩阵,确定每个第四搜索序列对该第四搜索序列-扩展词矩阵中每个扩展词的相关度,从而建立各第四搜索序列的扩展词模型(以下称扩展词模型3)。

在此,第四搜索序列-扩展词矩阵的行和列定义如下:将每个第四搜索序列作为一行,从而有多少个第四搜索序列则有多少行;将每个扩展词作为一列,在每行记录相应第四搜索序列与该列扩展词的相关度,例如,每个第四搜索序列与其扩展词集合中各扩展词的相关度为1,与其他扩展词的相关度为0,从而所有第四搜索序列一共有多少个扩展词则有多少列。可替代地,每个第四搜索序列与其扩展词集合中各扩展词的相关度也可以不同,如从范围0-1中取值。因此,第四搜索序列-扩展词矩阵通常非常稀疏,其可以通过稀疏矩阵的压缩表示方法来进行存储和参与计算。

因此,网络设备同样可以将前述协同过滤算法作用于该第四搜索序列-扩展词矩阵来生成相关度预测模型,以预测每个第四搜索序列相对与其尚未关联的扩展词的相关度。

据此,网络设备根据各第四搜索序列及其各自的扩展词集合建立初始的第四搜索序列-扩展词矩阵,并进而根据该初始矩阵通过相关度预测模型来最终完成对第四搜索序列-扩展词矩阵的赋值。因此,最终的第四搜索序列-扩展词矩阵包括各第四搜索序列的扩展词模型,例如其中每一行即为一个第四搜索序列的扩展词模型。

以上为网络设备在后端建立模型的过程。随后将描述网络设备在前端与用户进行交互,以完成实时搜索的过程。

在步骤S3中,网络设备根据当前用户的当前搜索序列,基于当前用户的兴趣词模型以及当前搜索序列的扩展词模型,确定相应的扩展搜索词。

在此,扩展搜索词的确定至少包括以下方式:

1)兴趣词模型1+扩展词模型1

其中,每个用户的兴趣词模型1基于该用户的兴趣搜索词集合中的各兴趣搜索词及其权重来建立;每个第四搜索序列的扩展词模型1基于该第四搜索序列的扩展词集合中的各扩展词及其权重来建立。

据此,网络设备根据当前用户的兴趣搜索词集合与当前搜索序列的扩展词集合中的相同词及其排序权重,确定相应的扩展搜索词。

例如,网络设备获取上述两个集合中的相同词,并根据每个相同词分别在这两个集合中的权重来确定其排序权重,如将两个权重相加或做其他加权平均来获得该排序权重,随后按照各相同词的排序权重来从中确定扩展搜索词。

2)兴趣词模型2+扩展词模型2

其中,每个用户的兴趣词模型2基于对该用户的兴趣搜索词集合中各兴趣搜索词的分类来建立;每个第四搜索序列的扩展词模型2基于对该第四搜索序列的扩展词集合中各扩展词的分类来建立。

据此,网络设备根据当前用户的兴趣搜索词集合与当前搜索序列的扩展词集合对应的相同分类及其排序权重,确定候选扩展分类,进而从候选扩展分类下的词中选择扩展搜索词。

例如,网络设备获取上述两个集合中的相同分类以及各分类的排序权重,如将每个相同分类分别在两个集合中的权重相加或做其他加权平均来获得该分类的排序权重,随后按照各相同分类的排序权重来从中确定候选扩展分类。

对于每个候选扩展分类,网络设备获取其中在上述两个集合的相同词,并根据相同词的排序权重来从中选择扩展搜索词。

可替代地,对于每个候选扩展分类,网络设备获取其中在上述两个集合的相同词,并将相同词加入候选扩展搜索词列表;对于候选扩展分类中只存在于扩展词集合中的词,网络设备也可将其加入候选扩展搜索词列表;对于候选扩展分类中只存在于兴趣搜索词集合中的词,网络设备则不将其纳入候选扩展搜索词列表。这是为了防止产生不合理的扩展,因为符合当前用户兴趣的兴趣搜索词,未必适合对当前搜索序列进行扩展。在对各候选扩展分类进行上述处理后,网络设备获得最终的候选扩展搜索词列表,进而按照其中各候选扩展搜索词的排序权重从中选择扩展搜索词。其中,对于同属两个集合中的候选扩展搜索词,其排序权重可以基于其分别在两个集合中的权重来确定。对于仅属于扩展词集合中的候选扩展搜索词,其排序权重可以基于其在所属集合中的权重来确定。

3)兴趣词模型3+扩展词模型3

其中,每个用户的兴趣词模型3基于用户-兴趣搜索词矩阵来建立;每个第四搜索序列的扩展词模型3基于第四搜索序列-扩展词矩阵来建立。

据此,网络设备根据该用户-兴趣搜索词矩阵来获取当前用户所对应的兴趣搜索词,以及根据该第四搜索序列-扩展词矩阵来获取当前搜索序列所对应的扩展词,并将两者作为候选扩展搜索词集合;进而,网络设备根据该候选扩展搜索词集合中每个词相对当前用户的兴趣度及其与当前搜索序列的相关度,从该候选扩展搜索词集合中选择扩展搜索词。

例如,网络设备通过协同过滤算法作用于用户-兴趣搜索词矩阵来生兴趣度预测模型以及作用于第四搜索序列-扩展词矩阵生成相关度预测模型,以获得各用户对各兴趣搜索词的兴趣度以及各第四搜索序列与各扩展词的相关度,进而根据当前用户对各候选扩展搜索词的兴趣度和当前搜索序列与各候选扩展搜索词的相关度,如对两者相加、相乘或通过其他加权计算方式,来从候选扩展搜索词中选择扩展搜索词。

相对于方式2)而言,从效果上来看,方式3)还能够对只出现在用户的兴趣词模型中的兴趣搜索词进行预测和判断其是否可以作为扩展搜索词。

4)兴趣词模型3

其中,每个用户的兴趣词模型基于用户-兴趣搜索词矩阵来建立。

据此,网络设备根据该用户-兴趣搜索词矩阵来确定当前用户对当前搜索序列的扩展词集合中各扩展词的兴趣度,以从中选择扩展搜索词。

例如,对于当前搜索序列的扩展词集合中的各扩展词,网络设备查询用户-兴趣搜索词矩阵来获得当前用户对前述各扩展词的兴趣度,并据此从中选择扩展搜索词。其中,用户-兴趣搜索词矩阵的建立方式以上内容已有描述,在此不做赘述。

根据一个优选实施例,网络设备在获得当前用户对当前搜索序列的扩展词集合中各扩展词的兴趣度之后,还可以结合其中各扩展词的权重,来从中选择扩展搜索词。其中,各扩展词的权重可基于其搜索词频来确定。

例如,根据当前用户对当前搜索序列的各扩展词的兴趣度以及各扩展词的权重,网络设备可以对这两个值相加、相乘或进行其他加权计算,以获得前述各扩展词的排序权重,并据此从中选择扩展搜索词。

优选地,网络设备还可以进一步引入扩展词所属分类的分类权重来从中选择扩展搜索词。

例如,根据当前搜索序列的各扩展词的权重及其所属分类的分类权重,网络设备为各扩展词确定一加权权重,进而结合当前用户对各扩展词的兴趣度来进一步获得各扩展词的排序权重,并据此从中选择扩展搜索词。

根据另一个优选实施例,网络设备还可以根据当前搜索序列的扩展词集合中各扩展词分类的权重,确定候选扩展词分类,进而根据当前用户对候选扩展词分类下的各扩展词的兴趣度,从中选择扩展搜索词。

例如,根据当前搜索序列的扩展词集合中各扩展词分类的权重,网络设备从这些分类中确定一个或多个候选扩展词分类,进而获得各候选扩展词分类下的扩展词,并获得当前用户对前述扩展词的兴趣度,据此从中选择扩展搜索词。

优选地,网络设备在选择扩展搜索词时,还可以进一步引入扩展词的权重。

例如,网络设备获得各候选扩展词分类下的扩展词后,根据当前用户对前述各扩展词的兴趣度以及前述各扩展词的权重,网络设备还可以对这两个值相加、相乘或进行其他加权计算,以获得前述各扩展词的排序权重,并据此从中选择扩展搜索词。

5)扩展词模型3

其中,每个第四搜索序列的扩展词模型基于第四搜索序列-扩展词矩阵来建立。

据此,网络设备根据该第四搜索序列-扩展词矩阵来确定当前搜索序列与当前用户的兴趣搜索词集合中各兴趣搜索词的相关度,以从中选择扩展搜索词。

例如,对于当前用户的兴趣搜索词集合中的各兴趣搜索词,网络设备查询第四搜索序列-扩展词矩阵来获得当前搜索序列对前述各兴趣搜索词的相关度,并据此从中选择扩展搜索词。其中,第四搜索序列-扩展词矩阵的建立方式以上内容已有描述,在此不做赘述。

根据一个优选实施例,网络设备在获得当前搜索序列与当前用户的兴趣搜索词集合中各兴趣搜索词的相关度之后,还可以结合其中各兴趣搜索词的权重,来从中选择扩展搜索词。其中,各兴趣搜索词的权重可基于其搜索词频来确定。

例如,根据当前搜索序列与当前用户的兴趣搜索词的相关度以及各兴趣搜索词的权重,网络设备可以对这两个值相加、相乘或进行其他加权计算,以获得前述各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

优选地,网络设备还可以进一步引入兴趣搜索词所属分类的分类权重来从中选择扩展搜索词。

例如,根据当前用户的各兴趣搜索词的权重及其所属分类的分类权重,网络设备为各兴趣搜索词确定一加权权重,进而结合各兴趣搜索词与当前搜索序列的相关度来进一步获得各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

根据另一个优选实施例,网络设备还可以根据当前用户的兴趣搜索词集合中各兴趣搜索词分类的权重,确定候选兴趣搜索词分类,进而根据当前搜索序列与候选兴趣搜索词分类下的各兴趣搜索词的相关度,从中选择扩展搜索词。

例如,根据当前用户的兴趣搜索词集合中各兴趣搜索词分类的权重,网络设备从这些分类中确定一个或多个候选兴趣搜索词分类,进而获得各候选兴趣搜索词分类下的兴趣搜索词,并获得当前搜索序列与前述兴趣搜索词的相关度,据此从中选择扩展搜索词。

优选地,网络设备在选择扩展搜索词时,还可以进一步引入兴趣搜索词的权重。

例如,网络设备获得各候选兴趣搜索词分类下的兴趣搜索词后,根据当前搜索序列与前述各兴趣搜索词的相关度以及前述各兴趣搜索词的权重,网络设备还可以对这两个值相加、相乘或进行其他加权计算,以获得前述各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

6)机器学习

其中,每个用户的兴趣词模型基于用户-兴趣搜索词矩阵来建立,每个第四搜索序列的扩展词模型基于第四搜索序列-扩展词矩阵来建立。在此,用户-兴趣搜索词矩阵以及第四搜索序列-扩展词矩阵的建立方式以上内容已有描述,此处不做赘述。

据此,网络设备基于该用户-兴趣搜索词矩阵来确定每个用户的特征信息,基于该第四搜索序列-扩展词矩阵来确定每个第四搜索序列的特征信息,以及基于该用户-兴趣搜索词矩阵与该第四搜索序列-扩展词矩阵来确定两个矩阵中每个词的特征信息;从而,基于当前用户的特征信息、当前搜索序列的特征信息以及当前用户的兴趣搜索词集合及当前搜索序列的扩展词集合中各词的特征信息,网络设备确定其中每个词的可用扩展概率,进而从中确定扩展搜索词。

在此,首先需要通过机器学习的方式训练好一个可用扩展概率的计算模型(也可以称为打分模型)。例如,训练过程可以包括:a生成训练数据集:从用户行为日志中采样一批用户、搜索序列、扩展搜索词,以及用户是否有行为的标注数据,为每条数据中的用户、搜索序列、扩展搜索词生成各自的特征信息;b训练模型:利用上述训练数据,训练打分模型,其中,打分模型即以用户特征信息、搜索序列特征信息、扩展搜索词特征信息等作为自变量,以预测值(可用扩展概率)为输出的函数。训练的目标是拟合训练数据,即对于(用户、搜索序列、扩展搜索词)的组合,如果标注可用扩展概率为1,则输出值尽量逼近1;如果标注可用扩展概率为0,则输出尽量逼近0。据此,网络设备得到训练好的可用扩展概率的计算模型。优选地,扩展搜索词的特征信息中还可以进一步考虑其与搜索序列组合后形成的扩展搜索序列的一些特征,例如历史查询量、历史点击率等。

随后,例如,网络设备从用户-兴趣搜索词矩阵中抽取当前用户的特征信息,从第四搜索序列-扩展词矩阵中抽取当前搜索序列的特征信息,并基于这两个矩阵抽取当前用户的兴趣搜索词集合及当前搜索序列的扩展词集合中各词的特征信息,进而根据上述打分模型,获得前述各词的可用扩展概率,以从中选择扩展搜索词。

在步骤S4中,网络设备根据当前搜索序列以及步骤S3中确定的扩展搜索词,向当前用户提供相应的搜索结果。

其中,在步骤S3中所确定扩展搜索词可以为一个或多个。当有多个扩展搜索词时,网络设备可以分别根据其中每个扩展搜索词对当前搜索序列进行扩展,此时获得的实际搜索序列=当前搜索序列+1个扩展搜索词。对于每个扩展后的搜索序列,网络设备可以获得相应的搜索结果,从而如果有3个扩展搜索词且为每个搜索序列返回10个搜索结果,则对于扩展后的全部搜索序列,网络设备可以向用户提供30个搜索结果。

进一步地,这些搜索结果可以不区分对应的实际搜索序列而一并提供给用户,其中各搜索结果也可以参考其他因素来进行排序。或者,这些搜索结果也可以在区分各自对应的实际搜索序列的情况下,被提供给用户,如在搜索结果页面的不同区域分别提供各扩展后的搜索序列所对应的搜索结果。

此外,还需考虑当前搜索序列本身的搜索结果,这些搜索结果可以与上述扩展后搜索序列的搜索结果相互融合,如直接合并后提供给用户或重新排序后提供给用户。

可替代地,扩展后的搜索序列所对应的搜索结果也可以被特型展现,如在搜索结果页面中的特定区域集中展现,并还可进一步做一些特殊的展现效果。

图2示出根据本发明一个实施例的装置示意图,其中具体一种示出扩展搜索装置。如图2所示,扩展搜索装置20包括兴趣模型建立装置21、扩展模型建立装置22、扩展确定装置23和结果提供装置24。

兴趣模型建立装置21建立每个用户的兴趣词模型;扩展模型建立装置22建立每个第四搜索序列的扩展词模型;扩展确定装置23根据当前用户的当前搜索序列,基于所述当前用户的兴趣词模型以及所述当前搜索序列的扩展词模型,确定相应的扩展搜索词;结果提供装置24根据所述当前搜索序列以及所述扩展搜索词,向所述当前用户提供相应的搜索结果。

其中,兴趣模型建立装置21和扩展模型建立装置22的模型建立过程与扩展确定装置23和结果提供装置24的用户搜索过程之间并非紧密的连续发生关系。兴趣模型建立装置21和扩展模型建立装置22可以预先建立用户的兴趣词模型以及搜索序列的扩展词模型,并且随后还可根据用户的搜索行为来更新这两个模型。当用户发起搜索时,只要此时前述两个模型已建立并可供搜索查询即可,而无需严格设定模型建立过程与用户搜索过程之间的关系,因为所建立的模型还将根据用户的搜索行为来进一步更新。

更进一步地,兴趣模型建立装置21和扩展模型建立装置22各自的操作之间也并非实际的顺序发生关系,而仅用于标识两个模型的建立操作。用户的兴趣词模型以及搜索序列的扩展词模型的建立可以同时进行,也可以先后进行,并且两者的建立顺序也不存在特定顺序。

具体地,兴趣模型建立装置21建立每个用户的兴趣词模型的操作如下:

兴趣模型建立装置21根据每个用户在预定时间窗口内提交的第一搜索序列及其对应浏览搜索结果所关联的第二搜索序列,生成每个用户的兴趣搜索词集合,以建立每个用户的兴趣词模型。

其中,预定时间窗口可以根据不同应用的需要来具体设定,例如3个月。所述第一搜索序列意指用户在预定时间窗口内实际提交的搜索序列。所述第二搜索序列意指对于用户在其提交搜索序列对应的搜索结果中用户进行浏览的搜索结果,这些浏览搜索结果所对应的所有搜索序列。

根据每个用户所对应的第一搜索序列和第二搜索序列,兴趣模型建立装置21可以获得每个用户的兴趣搜索序列集合。可选地,第一搜索序列和第二搜索序列已经经过去重处理。对于兴趣搜索序列集合中的各兴趣搜索序列,兴趣模型建立装置21对其进行分词处理,并对所获得的各分词进行去重、去停止词后,以获得各用户的兴趣搜索词集合。其中,所述停止词包括但不限于各种不具有实际意义或不影响搜索结果的虚词,例如“的”、“是什么”、“怎么样”等,又如,当搜索某一特定应用领域时,具体如图片搜索场景,用户的搜索序列中可能“图片”这个词的出现频率很高,但是其对于区分不同语义无实质价值,即使词频很高,也不应该作为代表性的关键词。

在此,用户的兴趣词模型的建立至少包括以下3种方式:

1.基于每个用户的兴趣搜索词集合中的各兴趣搜索词及其权重来建立各用户的兴趣词模型(以下称兴趣词模型1)。

例如,兴趣模型建立装置21可以统计一个兴趣搜索词集合中各兴趣搜索词的词频,将相应词频直接作为各兴趣搜索词的权重或以词频为基础来计算各兴趣搜索词的权重,具体权重的确定方式可以取决于应用的具体需求,本发明对此不作限定。

据此,1个用户的兴趣词模型的示例如下:

用户1:<兴趣搜索词1,权重1>,<兴趣搜索词2,权重2>,…,<兴趣搜索词n,权重n>。

或者,user1:<term 1,weight 1>,<term 2,weight 2>,…,<term n,weight n>。

2.基于对每个用户的兴趣搜索词集合中各兴趣搜索词的分类来建立各用户的兴趣词模型(以下称兴趣词模型2)。

兴趣模型建立装置21可以对兴趣搜索词集合中的各兴趣搜索词进行分类。例如,兴趣模型建立装置21可以采用任何现有的分类算法,诸如分类器、LDA(Latent Dirichlet Allocation)自动主题分类算法等。其中,兴趣模型建立装置21例如可以通过预先建立分类体系,然后通过标注训练数据来训练获得分类器。

据此,兴趣模型建立装置21可以基于每个兴趣搜索词集合所包含的分类以及各分类下的兴趣搜索词来建立各用户的兴趣词模型。

例如,1个用户的兴趣词模型的示例如下:

用户1:<分类1,分类权重1,兴趣搜索词列表1>,<分类2,分类权重2,兴趣搜索词列表2>,…,<分类n,分类权重n,兴趣搜索词列表n>。

或者,user1:<class 1,weight 1,term-list 1>,<class 2,weight 2,term-list 2>,…,<class n,weight n,term-list n>。

其中,兴趣搜索词列表或上述term-list包括所属分类下的兴趣搜索词及其各自的权重。例如,各兴趣搜索词的权重可以基于其对应词频来确定,从而每个分类的分类权重可以基于其中包括的所有兴趣搜索词的权重来确定。

3.根据每个用户及其兴趣搜索词集合,建立用户-兴趣搜索词矩阵;根据用户-兴趣搜索词矩阵,确定每个用户对该用户-兴趣搜索词矩阵中每个兴趣搜索词的兴趣度,从而建立各用户的兴趣词模型(以下称兴趣词模型3)。

在此,用户-兴趣搜索词矩阵的行和列定义如下:将每个用户作为一行,从而有多少个用户则有多少行;将每个兴趣搜索词作为一列,在每行记录相应用户对该列兴趣搜索词的兴趣度,例如,该行用户关联的兴趣搜索词的兴趣度被标注为1,非关联的兴趣搜索词的兴趣度被标注为0,从而所有用户一共有多少个兴趣搜索词则有多少列。可替代地,用户的各关联兴趣搜索词的兴趣度也可以不同,如从范围0-1中取值。因此,用户-兴趣搜索词矩阵通常非常稀疏,其可以通过稀疏矩阵的压缩表示方法来进行存储和参与计算。

例如,兴趣模型建立装置21可以通过各种协同过滤算法,如具体采用基于兴趣搜索词(item-based)、基于用户(user-based)或者MF方法来根据用户的已有兴趣搜索词,通过用户之间的相似性/相关性或者兴趣搜索词之间的相似性/相关性,对用户关于一个与其非关联的兴趣搜索词的兴趣度做出预测,也即兴趣模型建立装置21可以将前述协同过滤算法作用于该用户-兴趣搜索词矩阵来生成兴趣度预测模型,以预测每个用户对与其非关联的兴趣搜索词的兴趣度,并可将所预测的兴趣度记录在该用户-兴趣搜索词矩阵中的对应位置。

具体如,用户A搜索过“书法”(即用户A的关联兴趣搜索词),而协同过滤算法能够自动学习到“书法”与“国画”(即用户A的非关联兴趣搜索词)具有很高的相关性,即大多数喜欢“书法”的人也对“国画”感兴趣,因此就可以将“国画”也作为对用户A兴趣的一个预测,如在用户-兴趣搜索词矩阵中,将“书法”与“国画”之间的相关性0.9标注为【“用户A”行,“国画”列】的用户兴趣度。优选地,“用户A”对“国画”的兴趣度也可以基于“书法”与“国画”之间的相关性来进行一定的转换算法确定,或还可结合其他相关参数来确定。本发明对此不做限定。

据此,兴趣模型建立装置21根据各用户及其各自的兴趣搜索词集合建立初始的用户-兴趣搜索词矩阵,并进而根据该初始矩阵通过兴趣度预测模型来最终完成对用户-兴趣搜索词矩阵的赋值。因此,最终的用户-兴趣搜索词矩阵包括各用户的兴趣词模型,例如其中每一行即为一个用户的兴趣词模型。

对当前用户提交的当前搜索序列进行个性化扩展是本发明的核心内容。但是,对一个搜索序列不能随意进行扩展,有些扩展明显是不合常理的。例如,用户的当前搜索序列是“范冰冰”,即使该用户是“李冰冰”的粉丝(即该用户的兴趣词中包括“李冰冰”),在这种场景下,将“范冰冰”扩展成“范冰冰李冰冰”也是极不合理的。而如果该用户具有对“古装照”的兴趣时,将“范冰冰”扩展成“范冰冰古装照”则更为合理。因此,实际应用中需要针对一特定搜索序列,给出一特定扩展是否合理的具体判断。这个问题的本质是挖掘每个搜索序列具有哪些合理的需求方向,例如,对于搜索序列“手机壁纸”,美女、动漫、明星、风格等都是其合理的需求方向,均体现了用户在某一兴趣方向的需求。这可通过每个搜索序列的扩展词模型来确定。以下将对该模型的各建立方式进行具体描述。

扩展模型建立装置22建立每个第四搜索序列的扩展词模型的操作如下:

扩展模型建立装置22根据预定时间窗口内的所有第三搜索序列以及其中长度低于预定阈值的第四搜索序列,获取第三搜索序列中包含第四搜索序列的第五搜索序列;对每个第四搜索序列,扩展模型建立装置22根据其对应的每个第五搜索序列与该第四搜索序列之间的不同部分,生成每个第四搜索序列的扩展词集合,以建立各第四搜索序列的扩展词模型。

其中,预定时间窗口可以根据不同应用的需要来具体设定,例如3个月。所述第三搜索序列意指在预定时间窗口中搜索引擎的搜索日志中所记录的全部搜索序列。所述第四搜索序列意指第三搜索序列中长度低于预定阈值的搜索序列,其中长度阈值例如4个字符。这是因为具有多需求的搜索序列通常不会很长,为了减少计算量,网络设备通过设置长度阈值,滤出在一定长度范围内的第四搜索序列作为目标搜索序列来对其进行扩展。所述第五搜索序列意指其中包含有第四搜索序列的第三搜索序列,也即长度大于前述预定阈值的第三搜索序列。

对于每个第四搜索序列,扩展模型建立装置22获取其对应的第五搜索序列集合,并获得其中每个第五搜索序列与该第四搜索序列的不同部分。例如,将第四搜索序列标记为qt,将第五搜索序列标记为qf,则两者的不同部分qdiff=qf-qt.据此,扩展模型建立装置22可以获得每个第四搜索序列对应的qdiff集合,对每个qdiff集合中的各qdiff进行分词,并经过必要的去重、去停止词后,获得每个第四搜索序列的扩展词集合。

在此,第四搜索序列的扩展词模型的建立至少包括以下3种方式:

1.基于每个第四搜索序列的扩展词集合中的各扩展词及其权重来建立各第四搜索序列的扩展词模型(以下称扩展词模型1)。

在此,扩展词模型1的建立方式与兴趣词模型1的建立方式类似。因此,1个第四搜索序列的扩展词模型的示例如下:

第四搜索序列1:<扩展词1,权重1>,<扩展词2,权重2>,…,<扩展词n,权重n>。

或者,query 1:<term 1,weight 1>,<term 2,weight 2>,…,<term n,weight n>。

2.基于对每个第四搜索序列的扩展词集合中各扩展词的分类来建立各第四搜索序列的扩展词模型(以下称扩展词模型2)。

在此,扩展词模型2的建立方式与兴趣词模型2的建立方式类似。因此,1个第四搜索序列的扩展词模型的示例如下:

第四搜索序列1:<分类1,分类权重1,扩展词列表1>,<分类2,分类权重2,扩展词列表2>,…,<分类n,分类权重n,扩展词列表n>。

或者,query 1:<class 1,weight 1,term-list 1>,<class 2,weight 2,term-list 2>,…,<class n,weight n,term-list n>。

其中,扩展词列表或上述term-list包括所属分类下的扩展词及其各自的权重。例如,各扩展词的权重可以基于其对应词频来确定,从而每个分类的分类权重可以基于其中包括的所有扩展词的权重来确定。

3.根据每个第四搜索序列及其扩展词集合,建立第四搜索序列-扩展词矩阵;根据第四搜索序列-扩展词矩阵,确定每个第四搜索序列对该第四搜索序列-扩展词矩阵中每个扩展词的相关度,从而建立各第四搜索序列的扩展词模型(以下称扩展词模型3)。

在此,第四搜索序列-扩展词矩阵的行和列定义如下:将每个第四搜索序列作为一行,从而有多少个第四搜索序列则有多少行;将每个扩展词作为一列,在每行记录相应第四搜索序列与该列扩展词的相关度,例如,每个第四搜索序列与其扩展词集合中各扩展词的相关度为1,与其他扩展词的相关度为0,从而所有第四搜索序列一共有多少个扩展词则有多少列。可替代地,每个第四搜索序列与其扩展词集合中各扩展词的相关度也可以不同,如从范围0-1中取值。因此,第四搜索序列-扩展词矩阵通常非常稀疏,其可以通过稀疏矩阵的压缩表示方法来进行存储和参与计算。

因此,扩展模型建立装置22同样可以将前述协同过滤算法作用于该第四搜索序列-扩展词矩阵来生成相关度预测模型,以预测每个第四搜索序列相对与其尚未关联的扩展词的相关度。

据此,扩展模型建立装置22根据各第四搜索序列及其各自的扩展词集合建立初始的第四搜索序列-扩展词矩阵,并进而根据该初始矩阵通过相关度预测模型来最终完成对第四搜索序列-扩展词矩阵的赋值。因此,最终的第四搜索序列-扩展词矩阵包括各第四搜索序列的扩展词模型,例如其中每一行即为一个第四搜索序列的扩展词模型。

以上为兴趣模型建立装置21和扩展模型建立装置22在后端建立模型的过程。随后将描述扩展确定装置23和结果提供装置24在前端与用户进行交互,以完成实时搜索的过程。

扩展确定装置23根据当前用户的当前搜索序列,基于当前用户的兴趣词模型以及当前搜索序列的扩展词模型,确定相应的扩展搜索词。

在此,扩展搜索词的确定至少包括以下方式:

1)兴趣词模型1+扩展词模型1

其中,每个用户的兴趣词模型1基于该用户的兴趣搜索词集合中的各兴趣搜索词及其权重来建立;每个第四搜索序列的扩展词模型1基于该第四搜索序列的扩展词集合中的各扩展词及其权重来建立。

据此,扩展确定装置23根据当前用户的兴趣搜索词集合与当前搜索序列的扩展词集合中的相同词及其排序权重,确定相应的扩展搜索词。

例如,扩展确定装置23获取上述两个集合中的相同词,并根据每个相同词分别在这两个集合中的权重来确定其排序权重,如将两个权重相加或做其他加权平均来获得该排序权重,随后按照各相同词的排序权重来从中确定扩展搜索词。

2)兴趣词模型2+扩展词模型2

其中,每个用户的兴趣词模型2基于对该用户的兴趣搜索词集合中各兴趣搜索词的分类来建立;每个第四搜索序列的扩展词模型2基于对该第四搜索序列的扩展词集合中各扩展词的分类来建立。

据此,扩展确定装置23根据当前用户的兴趣搜索词集合与当前搜索序列的扩展词集合对应的相同分类及其排序权重,确定候选扩展分类,进而从候选扩展分类下的词中选择扩展搜索词。

例如,扩展确定装置23获取上述两个集合中的相同分类以及各分类的排序权重,如将每个相同分类分别在两个集合中的权重相加或做其他加权平均来获得该分类的排序权重,随后按照各相同分类的排序权重来从中确定候选扩展分类。

对于每个候选扩展分类,网络设备获取其中在上述两个集合的相同词,并根据相同词的排序权重来从中选择扩展搜索词。

可替代地,对于每个候选扩展分类,扩展确定装置23获取其中在上述两个集合的相同词,并将相同词加入候选扩展搜索词列表;对于候选扩展分类中只存在于扩展词集合中的词,扩展确定装置23也可将其加入候选扩展搜索词列表;对于候选扩展分类中只存在于兴趣搜索词集合中的词,扩展确定装置23则不将其纳入候选扩展搜索词列表。这是为了防止产生不合理的扩展,因为符合当前用户兴趣的兴趣搜索词,未必适合对当前搜索序列进行扩展。在对各候选扩展分类进行上述处理后,扩展确定装置23获得最终的候选扩展搜索词列表,进而按照其中各候选扩展搜索词的排序权重从中选择扩展搜索词。其中,对于同属两个集合中的候选扩展搜索词,其排序权重可以基于其分别在两个集合中的权重来确定。对于仅属于扩展词集合中的候选扩展搜索词,其排序权重可以基于其在所属集合中的权重来确定。

3)兴趣词模型3+扩展词模型3

其中,每个用户的兴趣词模型3基于用户-兴趣搜索词矩阵来建立;每个第四搜索序列的扩展词模型3基于第四搜索序列-扩展词矩阵来建立。

据此,扩展确定装置23根据该用户-兴趣搜索词矩阵来获取当前用户所对应的兴趣搜索词,以及根据该第四搜索序列-扩展词矩阵来获取当前搜索序列所对应的扩展词,并将两者作为候选扩展搜索词集合;进而,扩展确定装置23根据该候选扩展搜索词集合中每个词相对当前用户的兴趣度及其与当前搜索序列的相关度,从该候选扩展搜索词集合中选择扩展搜索词。

例如,兴趣模型建立装置21和扩展模型建立装置22分别通过协同过滤算法作用于用户-兴趣搜索词矩阵来生兴趣度预测模型以及作用于第四搜索序列-扩展词矩阵生成相关度预测模型,以获得各用户对各兴趣搜索词的兴趣度以及各第四搜索序列与各扩展词的相关度,进而扩展确定装置23根据当前用户对各候选扩展搜索词的兴趣度和当前搜索序列与各候选扩展搜索词的相关度,如对两者相加、相乘或通过其他加权计算方式,来从候选扩展搜索词中选择扩展搜索词。

相对于方式2)而言,从效果上来看,方式3)还能够对只出现在用户的兴趣词模型中的兴趣搜索词进行预测和判断其是否可以作为扩展搜索词。

4)兴趣词模型3

其中,每个用户的兴趣词模型基于用户-兴趣搜索词矩阵来建立。

据此,扩展确定装置23根据该用户-兴趣搜索词矩阵来确定当前用户对当前搜索序列的扩展词集合中各扩展词的兴趣度,以从中选择扩展搜索词。

例如,对于当前搜索序列的扩展词集合中的各扩展词,扩展确定装置23查询用户-兴趣搜索词矩阵来获得当前用户对前述各扩展词的兴趣度,并据此从中选择扩展搜索词。其中,用户-兴趣搜索词矩阵的建立方式以上内容已有描述,在此不做赘述。

根据一个优选实施例,扩展确定装置23在获得当前用户对当前搜索序列的扩展词集合中各扩展词的兴趣度之后,还可以结合其中各扩展词的权重,来从中选择扩展搜索词。其中,各扩展词的权重可基于其搜索词频来确定。

例如,根据当前用户对当前搜索序列的各扩展词的兴趣度以及各扩展词的权重,扩展确定装置23可以对这两个值相加、相乘或进行其他加权计算,以获得前述各扩展词的排序权重,并据此从中选择扩展搜索词。

优选地,扩展确定装置23还可以进一步引入扩展词所属分类的分类权重来从中选择扩展搜索词。

例如,根据当前搜索序列的各扩展词的权重及其所属分类的分类权重,扩展确定装置23为各扩展词确定一加权权重,进而结合当前用户对各扩展词的兴趣度来进一步获得各扩展词的排序权重,并据此从中选择扩展搜索词。

根据另一个优选实施例,扩展确定装置23还可以根据当前搜索序列的扩展词集合中各扩展词分类的权重,确定候选扩展词分类,进而根据当前用户对候选扩展词分类下的各扩展词的兴趣度,从中选择扩展搜索词。

例如,根据当前搜索序列的扩展词集合中各扩展词分类的权重,扩展确定装置23从这些分类中确定一个或多个候选扩展词分类,进而获得各候选扩展词分类下的扩展词,并获得当前用户对前述扩展词的兴趣度,据此从中选择扩展搜索词。

优选地,扩展确定装置23在选择扩展搜索词时,还可以进一步引入扩展词的权重。

例如,扩展确定装置23获得各候选扩展词分类下的扩展词后,根据当前用户对前述各扩展词的兴趣度以及前述各扩展词的权重,网络设备还可以对这两个值相加、相乘或进行其他加权计算,以获得前述各扩展词的排序权重,并据此从中选择扩展搜索词。

5)扩展词模型3

其中,每个第四搜索序列的扩展词模型基于第四搜索序列-扩展词矩阵来建立。

据此,扩展确定装置23根据该第四搜索序列-扩展词矩阵来确定当前搜索序列与当前用户的兴趣搜索词集合中各兴趣搜索词的相关度,以从中选择扩展搜索词。

例如,对于当前用户的兴趣搜索词集合中的各兴趣搜索词,扩展确定装置23查询第四搜索序列-扩展词矩阵来获得当前搜索序列对前述各兴趣搜索词的相关度,并据此从中选择扩展搜索词。其中,第四搜索序列-扩展词矩阵的建立方式以上内容已有描述,在此不做赘述。

根据一个优选实施例,扩展确定装置23在获得当前搜索序列与当前用户的兴趣搜索词集合中各兴趣搜索词的相关度之后,还可以结合其中各兴趣搜索词的权重,来从中选择扩展搜索词。其中,各兴趣搜索词的权重可基于其搜索词频来确定。

例如,根据当前搜索序列与当前用户的兴趣搜索词的相关度以及各兴趣搜索词的权重,扩展确定装置23可以对这两个值相加、相乘或进行其他加权计算,以获得前述各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

优选地,扩展确定装置23还可以进一步引入兴趣搜索词所属分类的分类权重来从中选择扩展搜索词。

例如,根据当前用户的各兴趣搜索词的权重及其所属分类的分类权重,扩展确定装置23为各兴趣搜索词确定一加权权重,进而结合各兴趣搜索词与当前搜索序列的相关度来进一步获得各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

根据另一个优选实施例,扩展确定装置23还可以根据当前用户的兴趣搜索词集合中各兴趣搜索词分类的权重,确定候选兴趣搜索词分类,进而根据当前搜索序列与候选兴趣搜索词分类下的各兴趣搜索词的相关度,从中选择扩展搜索词。

例如,根据当前用户的兴趣搜索词集合中各兴趣搜索词分类的权重,扩展确定装置23从这些分类中确定一个或多个候选兴趣搜索词分类,进而获得各候选兴趣搜索词分类下的兴趣搜索词,并获得当前搜索序列与前述兴趣搜索词的相关度,据此从中选择扩展搜索词。

优选地,扩展确定装置23在选择扩展搜索词时,还可以进一步引入兴趣搜索词的权重。

例如,扩展确定装置23获得各候选兴趣搜索词分类下的兴趣搜索词后,根据当前搜索序列与前述各兴趣搜索词的相关度以及前述各兴趣搜索词的权重,网络设备还可以对这两个值相加、相乘或进行其他加权计算,以获得前述各兴趣搜索词的排序权重,并据此从中选择扩展搜索词。

6)机器学习

其中,每个用户的兴趣词模型基于用户-兴趣搜索词矩阵来建立,每个第四搜索序列的扩展词模型基于第四搜索序列-扩展词矩阵来建立。在此,用户-兴趣搜索词矩阵以及第四搜索序列-扩展词矩阵的建立方式以上内容已有描述,此处不做赘述。

据此,扩展确定装置23基于该用户-兴趣搜索词矩阵来确定每个用户的特征信息,基于该第四搜索序列-扩展词矩阵来确定每个第四搜索序列的特征信息,以及基于该用户-兴趣搜索词矩阵与该第四搜索序列-扩展词矩阵来确定两个矩阵中每个词的特征信息;从而,基于当前用户的特征信息、当前搜索序列的特征信息以及当前用户的兴趣搜索词集合及当前搜索序列的扩展词集合中各词的特征信息,扩展确定装置23确定其中每个词的可用扩展概率,进而从中确定扩展搜索词。

在此,首先需要通过机器学习的方式训练好一个可用扩展概率的计算模型(也可以称为打分模型)。例如,训练过程可以包括:a生成训练数据集:从用户行为日志中采样一批用户、搜索序列、扩展搜索词,以及用户是否有行为的标注数据,为每条数据中的用户、搜索序列、扩展搜索词生成各自的特征信息;b训练模型:利用上述训练数据,训练打分模型,其中,打分模型即以用户特征信息、搜索序列特征信息、扩展搜索词特征信息等作为自变量,以预测值(可用扩展概率)为输出的函数。训练的目标是拟合训练数据,即对于(用户、搜索序列、扩展搜索词)的组合,如果标注可用扩展概率为1,则输出值尽量逼近1;如果标注可用扩展概率为0,则输出尽量逼近0。据此,扩展确定装置23得到训练好的可用扩展概率的计算模型。优选地,扩展搜索词的特征信息中还可以进一步考虑其与搜索序列组合后形成的扩展搜索序列的一些特征,例如历史查询量、历史点击率等。

随后,例如,扩展确定装置23从用户-兴趣搜索词矩阵中抽取当前用户的特征信息,从第四搜索序列-扩展词矩阵中抽取当前搜索序列的特征信息,并基于这两个矩阵抽取当前用户的兴趣搜索词集合及当前搜索序列的扩展词集合中各词的特征信息,进而根据上述打分模型,获得前述各词的可用扩展概率,以从中选择扩展搜索词。

结果提供装置24根据当前搜索序列以及扩展确定装置23所确定的扩展搜索词,向当前用户提供相应的搜索结果。

其中,扩展确定装置23所确定扩展搜索词可以为一个或多个。当有多个扩展搜索词时,结果提供装置24可以分别根据其中每个扩展搜索词对当前搜索序列进行扩展,此时获得的实际搜索序列=当前搜索序列+1个扩展搜索词。对于每个扩展后的搜索序列,结果提供装置24可以获得相应的搜索结果,从而如果有3个扩展搜索词且为每个搜索序列返回10个搜索结果,则对于扩展后的全部搜索序列,结果提供装置24可以向用户提供30个搜索结果。

进一步地,这些搜索结果可以不区分对应的实际搜索序列而一并提供给用户,其中各搜索结果也可以参考其他因素来进行排序。或者,这些搜索结果也可以在区分各自对应的实际搜索序列的情况下,被提供给用户,如在搜索结果页面的不同区域分别提供各扩展后的搜索序列所对应的搜索结果。

此外,还需考虑当前搜索序列本身的搜索结果,这些搜索结果可以与上述扩展后搜索序列的搜索结果相互融合,如直接合并后提供给用户或重新排序后提供给用户。

可替代地,扩展后的搜索序列所对应的搜索结果也可以被特型展现,如在搜索结果页面中的特定区域集中展现,并还可进一步做一些特殊的展现效果。

需要注意的是,本发明可在软件和/或软件与硬件的组合体中被实施,例如,本发明的各个装置可采用专用集成电路(ASIC)或任何其他类似硬件设备来实现。在一个实施例中,本发明的软件程序可以通过处理器执行以实现上文所述步骤或功能。同样地,本发明的软件程序(包括相关的数据结构)可以被存储到计算机可读记录介质中,例如,RAM存储器,磁或光驱动器或软磁盘及类似设备。另外,本发明的一些步骤或功能可采用硬件来实现,例如,作为与处理器配合从而执行各个步骤或功能的电路。

对于本领域技术人员而言,显然本发明不限于上述示范性实施例的细节,而且在不背离本发明的精神或基本特征的情况下,能够以其他的具体形式实现本发明。因此,无论从哪一点来看,均应将实施例看作是示范性的,而且是非限制性的,本发明的范围由所附权利要求而不是上述说明限定,因此旨在将落在权利要求的等同要件的含义和范围内的所有变化涵括在本发明内。不应将权利要求中的任何附图标记视为限制所涉及的权利要求。此外,显然“包括”一词不排除其他单元或步骤,单数不排除复数。系统权利要求中陈述的多个单元或装置也可以由一个单元或装置通过软件或者硬件来实现。第一,第二等词语用来表示名称,而并不表示任何特定的顺序。

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