一种推荐对象的确定方法

文档序号:25280633发布日期:2021-06-01 17:27阅读:152来源:国知局
一种推荐对象的确定方法
本申请涉及计算机网络
技术领域
,尤其涉及一种推荐对象的确定方法。
背景技术
:随着移动互联网的发展和移动设备的普及,出现了许多基于位置的推荐服务,如附近的美食定位和酒店预订。在实际实现中,还需要根据用户的兴趣对推荐对象进行排名,而空间关键字查询技术是解决这一问题的工具。通常,空间关键字查询需要返回查询位置附近与查询关键字最匹配的推荐对象。但是在某些应用程序场景中,单个推荐对象可能无法满足用户一个行程中所有的需求,例如,用户可能想要在某个时间段内看电影、吃饭和购物,根据用户的需求,需要分别为用户推荐电影院、餐厅和购物中心来满足用户的信息获取需求。因此在某些应用场景下,需要同时为用户分别推荐多类不同的推荐对象。但是由于不同类型的推荐对象是相互独立的,而不同的推荐对象又可能有不同的营业时间,例如电影院、餐厅和购物中心分别有不同的营业时间,因此可能会出现同时推荐多类不同的推荐对象时,推荐对象的组合不合理的情况。技术实现要素:本申请提供了一种推荐对象的确定方法。可解决交通网络中近似集合关键字搜索的问题。本申请第一方面提供一种推荐对象的确定方法,包括:接收用户的查询请求,所述查询请求中包含第一关键字、目标时间、目标位置,所述第一关键字是指所述用户输入的查询词,目标时间是指所述用户选定的时间区间,目标位置是指所述用户在交通网络的网络位置;获取所述交通网络中的候选推荐对象集合,所述交通网络包括:用户和候选推荐对象,所述候选推荐对象被查询的信息包括:第二关键字、开放时间和对象位置;根据目标时间和开放时间,消减所述候选推荐对象集合中不符合时间距离阈值的候选推荐对象,得到第一推荐集合;根据第一关键字和第二关键字,消减所述第一推荐集合中不符合文本距离阈值的候选推荐对象,得到第二推荐集合;根据目标位置和对象位置,消减所述第二推荐集合中不符合网络距离的候选推荐对象,得到第三推荐集合,所述网络距离是指连接所述目标位置与所述候选推荐对象的网络位置之间的最短路径的长度;根据所述时间距离、所述文本距离、所述网络距离和权重系数得到代价函数,根据所述代价函数的数值对所述第三推荐集合中的候选推荐对象进行消减,得到代价最小的结果集。现有的相关研究大多集中在欧几里得空间的集合关键字查询coskq上,不能处理交通网络上的coskq查询,而本申请基于交通网络,能够处理更加现实的应用场景。在一个交通网络中,对象-对象之间的距离是由交通网络的连通性决定的,而不是像在欧氏空间里由对象的坐标决定的,可以由对象的坐标值直接计算得出。现实的应用场景中,由于文本表达的多样性,关键字存在拼写错误或翻译拼写差异(例如,theater与theatre)的问题,导致潜在的结果对象可能会被错误地排除。因此,这类问题涉及到的近似关键字也应该包含在检索范围内。coskq查询通常需要精确的关键字匹配,不能实现近似空间关键字查询,本申请通过上述技术手段则可以解决这一问题。此外,现有的空间关键字查询研究大多只关注文本信息和空间信息,而忽略了时间信息。然而,时间信息在空间关键字查询中也扮演着重要的角色。例如,餐馆通常都有自己的营业时间,所以食客可以根据餐厅的营业时间来计划他们的时间表,以便充分利用用餐时间。同时考虑时间信息和文本信息,用餐者可能会对他们的行程有一个更好的计划。由以上技术方案可知,本申请提供的方法具有以下有益效果:同时考虑了交通网络中查询和对象之间的文本相似度、时间相似度和空间邻近度,实现交通网络中时间感知近似集合关键字搜索。优选地,根据目标时间和开放时间,消减所述候选推荐对象集合中不符合时间距离阈值的候选推荐对象,得到第一推荐集合的步骤,包括:获取所述候选推荐对象的开放时间;计算所述目标时间和所述开放时间的时间距离比值;如果所述时间距离比值大于时间距离阈值;则所述开放时间对应的候选推荐对象被消减;如果所述时间距离比值小于等于时间距离阈值;则所述开放时间对应的候选推荐对象满足时间匹配,记作第一推荐对象;所有满足时间匹配的所述第一推荐对象组成第一推荐集合。优选地,根据第一关键字和第二关键字,消减所述第一推荐集合中不符合文本距离阈值的候选推荐对象,得到第二推荐集合步骤,包括:关键字映射步骤:获取所述第一推荐集合的候选推荐对象;查询所述第一推荐集合的候选推荐对象的第二关键字;获取所述第一关键字和所述第一推荐集合的候选推荐对象的第二关键字的编辑距离,所述编辑距离为所述第二关键字转化为所述第一关键字的最小编辑操作的数目;获取所述编辑距离最小的候选推荐对象,记作第二推荐对象;近似关键字匹配步骤:如果所述第二推荐对象的编辑距离与最大串长的比值不大于文本距离阈值,则所述第二推荐对象满足关键字匹配,所述最大串长指所述第一关键字串长值和所述第二关键字串长值中较大串长值;所有满足关键字匹配条件的第一关键字和第二关键字组成关键字匹配集。优选地,还包括:完全关键字匹配步骤:根据所述关键字匹配集和所述关键字,得到完全关键字匹配集。优选地,根据所述时间距离、所述文本距离、所述网络距离和权重系数得到代价函数的步骤,包括:计算时间距离步骤:根据所述目标时间、所述第三推荐集合以及所述第三推荐集合的候选推荐对象的开放时间,得到时间距离。优选地,根据所述时间距离、所述文本距离、所述网络距离和权重系数得到代价函数的步骤,包括:计算文本距离步骤:根据所述第一关键字、所述关键字匹配集以及所述完全关键字匹配集,得到文本距离,所述文本距离是指,完全关键字匹配集中各关键字对的编辑距离的加权平均值。本申请第二方面提供一种应用于交通网络的tdag-tree,包括:交通网络的g-tree和树中每个结点的ti-d-at文件;所述交通网络的g-tree被配置为:采用多级划分算法递归地将交通网络划分为大小相等的子图,同时最小化边界顶点的数量,保存划分结果;所述树中每个结点的ti-d-at文件,所述结点表示一个子图,包括:gi的距离度量,gi.dm;gi内任意对象对之间的最大距离(maxind(gi))和gi的直径(dia(gi)),其中dia(gi)是gi中任意两点之间的最大距离;gi的时间倒排文件,包括:判断gi是否是叶结点;若是,则记录每个小时间隔开放的对象列表;否则,对于每个小时间隔,将记录包含该时间段内开放的对象的子结点列表。首先,采用g-tree索引对交通网络进行划分,保留各交通网络区域(子图)的距离度量,便于查询与对象之间或对象对之间的网络距离计算。同时,在每个子图的推荐对象上构造文本时间索引,有效地组织对象的文本时间信息。当查询用户和推荐对象分布在一个大型交通网络中,上述技术方案能够快速计算查询与对象或对象对之间的网络距离,同时考虑关键字相似度、时间相似度、查询和对象之间的距离以及对象对之间距离,因此所提出方法应足够有效以显著降低查询处理成本。可见,混合索引tdag-tree来有效地组织对象的文本、时间和空间信息,从而加速tacoskq查询处理。优选地,还包括:at部件,所述at部件被配置为:使用k-means聚类算法、根据关键字之间的编辑距离对gi中对象的关键字进行划分,得到几个簇cj(0≤j≤m)及其质心根据簇cj中每个关键字与其参照关键字之间的编辑距离,计算得一个参照键值即其中d为gi中所有簇cj中,其参照关键字与属于cj的关键字之间的最大编辑距离的最大者,m为gi中的簇数;对gi中每个对象,根据其关键字和相应的参照键值在b+树中索引。对于每个叶子图gi,我们预先计算其中对象的关键字之间的编辑距离,并构造at部件,对gi中包含的对象的关键字的编辑距离进行索引,以加快文本距离的计算;通过这种方式,我们可以最小化每个簇中关键字之间编辑距离的数学期望;为了进一步方便查询处理过程中的文本距离计算,对gi中的每个簇cj中的关键字,我们还保留了最小的编辑距离和最大编辑距离由以上技术方案可知,本申请具有以下技术效果:本申请提供的tacoskq查询,与现有的coskq查询不同,它同时考虑了交通网络中的文本相似度、时间相似度和空间邻近度;本申请提供的一种新的混合索引tdag-tree来有效地组织对象的文本、时间和空间信息,从而加速tacoskq查询处理。在tdag-tree的基础上;本申请提供的基于tdag-tree的消减方法同时支持查询与对象间距离消减、对象与对象间距离消减、近似关键字消减和时间消减。本申请实现了交通网络中时间感知的近似集合空间关键字查询处理,tdagb算法可以节省由于底层交通网络规模大或合格对象分布稀少而造成的网络扩展的巨大成本;而且可以利用tdag-tree对大量不合格区域和不合格对象进行消减,进一步加速查询的处理。本申请首先根据时间区间对子图(区域)进行消减,其次根据文本相似度进行子图消减,再次根据网络距离消减子图,最后结合时间、文本和空间因素来进一步消减子图,实现子图的消减;进一步,对每个区域(或者子图)内的对象进行消减;最终,针对剩下的对象,再根据代价函数,得到代价最小的结果集,实现了交通网络中时间感知的近似集合空间关键字搜索。tdagb是基本算法,返回一个具有较松散的近似边界的近似解;tdagimp算法通过在一些特定位置多次调用tdagb,提高查询结果集的精确度,返回一个较优的近似结果集。也即代价更低、更接近最优解的结果集。附图说明为了更清楚地说明本申请的技术方案,下面将对实施例中所需要使用的附图作简单地介绍,显而易见地,对于本领域普通技术人员而言,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。图1为本申请一种推荐对象的确定方法的流程示意图;图2为本申请一种推荐对象的确定方法中交通网络的一种实施例的结构示意图;图3a为本申请一种应用于图2所示的交通网络的g-tree的一种实施例的结构示意图;图3b为本申请一种图3a所示的g-tree的距离度量矩阵(dm)的示意图;图4a为本申请一种推荐对象的确定方法中交通网络的另一种实施例的结构示意图;图4b为本申请一种应用于图4a所示的交通网络的g-tree的一种实施例的结构示意图;图4c为本申请一种应用于图4b所示的tdag-tree中结点的at部件的示意图;图5为本申请一种推荐对象的确定方法中近似文本匹配的流程示意图。具体实施方式下面将详细地对实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下实施例中描述的实施方式并不代表与本申请相一致的所有实施方式。仅是与权利要求书中所详述的、本申请的一些方面相一致的系统和方法的示例。在下述实施例中,为方便各个参数的表达,我们以q来代表用户,例如:目标位置我们表示为q.loc。图1为本申请一种推荐对象的确定方法的流程示意图。如图1所示,s1接收用户的查询请求,所述查询请求中包含第一关键字、目标时间、目标位置,所述第一关键字是指所述用户输入的查询词,目标时间是指所述用户选定的时间区间,目标位置是指所述用户在交通网络的网络位置;查询请求包括:目标位置q.loc,第一关键字q.doc和目标时间q.t=[ts,te],其中ts和te分别为用户q的查询起始时间和结束时间;第一关键字,可以是由多个关键字构成的关键字集合。另外,文本距离阈值q.ψ和时间距离阈值q.κ,可以由用户q在发起查询请求时给出,也可以由系统推荐后用户选定,本申请不做限定。如图2所示,用户q(用三角形表示)分布在道路网络上,发起一个查询请求,查询第一关键字为“餐厅、剧院、停车场”,目标时间为“11:00-14:00”。s2获取所述交通网络中的候选推荐对象集合,所述交通网络包括:用户和候选推荐对象,所述候选推荐对象被查询的信息包括:第二关键字、开放时间和对象位置;本申请中,我们称交通网络中各个被匹配的场所为对象,即候选推荐对象,由所有候选推荐对象组成集合称为候选推荐对象集合。每个候选推荐对象的第二关键字、开放时间和对象位置是客观存在的。候选推荐对象,对象位置o.loc,第二关键字o.doc和开放时间o.t=[ts,te],则推荐对象o可以表示为:o=<o.loc,o.doc,o.t>,其中ts和te分别为对象o的开门时间和关门时间。第二关键字,可以是由多个关键字构成的集合。如图2所示,八个候选推荐对象o1到o8(用圆圈表示)分布在道路网络上,候选推荐对象的相应文本信息和时间信息如表1所示。在另外一些实施例中,如表3所示,树结点gi的时间倒排文件(ti)文件。结合s1和s2,如图2所示的道路网络比较简单,但在另外一些实施例中,图4a所示,用户和候选推荐对象可能分布在一个大型交通网络中,如何有效地计算查询与对象或对象对之间的网络距离是一个需要解决的问题。其次,系统中可能存在数百万个时空文本对象,需要考虑对象的大量关键字和时间信息。因此,本申请示出的一种推荐对象的确定方法,交通网络是由一组顶点和边组成的加权图,此外,还保留了分布在交通网络各边上的一组对象和一组tacoskq查询;通用树tdag-tree将交通网络划分为大小相等的子图,如g1、g2…gi。一个结点,代表道路网路的一个区域,也就是一个子图。其中,结点分为叶结点和非叶结点;通过先消减子图,再消减剩余的子图中的候选推荐对象的方式进行。s3根据目标时间和开放时间,消减所述候选推荐对象集合中不符合时间距离阈值的候选推荐对象,得到第一推荐集合;如图2所示,由于o3和o6的开放时间与q的目标时间完全不相交,即开放时间和目标时间的交集为空集,因此对它们进行消减,得到第一推荐集合{o1、o2、o4、o5、o7、o8}。在gi中,可能包括多个候选推荐对象,即gi是候选推荐对象集合的子集,因此,在另外一些实施例中,根据时间距离阈值进行消减gi,包括:给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ)和一个子图gi;如果|gi.ti.t∩q.t|<(1-q.κ)×|q.t|,则gi被安全消减,其中,gi.ti.t是gi.ti带有非空列表的时间区间的并集。时间匹配步骤具体如下:s301获取所述候选推荐对象的开放时间;给定q.t和o.t。s302计算所述目标时间和所述开放时间的时间距离比值;时间距离比值可以为:s303如果所述时间距离比值大于时间距离阈值,则所述开放时间对应的候选推荐对象被消减;s304如果所述时间距离比值小于等于时间距离阈值;则所述开放时间对应的候选推荐对象满足时间匹配,记作第一推荐对象;如果其中,q.κ为预设阈值且κ∈(0,1);则q和o满足时间匹配,即s305所有满足时间匹配的所述第一推荐对象组成第一推荐集合;同样,对于一个查询q和一个对象集s,如果有则q和s满足时间匹配,即计算时间距离步骤具体如下:给定一个时间区间为q.t的查询q和一个时间区间为o.t的对象o,时间距离dtemd(q,o)定义如下:同样,对于查询q和对象集s,时间距离dtemd(q,s)定义为:s4根据第一关键字和第二关键字,消减所述第一推荐集合中不符合文本距离阈值的候选推荐对象,得到第二推荐集合;通过文本距离阈值来限制关键字和第二关键字的近似程度。本申请可以解决近视关键字匹配,通过文本距离阈值q.ψ来限制。精确关键字匹配可以看成近似匹配的特例,当阈值为0是精确匹配。如图2所示,o4也被消减,因为它不包含与任何查询关键字相似的关键字,得到第二推荐集合{o1、o2、o5、o7、o8}。在gi中,可能包括多个候选推荐对象,即gi是候选推荐对象集合的子集,因此,在另外一些实施例中,根据文本距离进行消减gi,也称区域消减,包括:给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ)和一个子图gi;如果key,qj.signature∩gi.则gi被安全消减。对于未被消减的gi中的候选推荐对象,使用q.kms(s)进行消减,下面详细介绍q.kms(s)的计算方法。需要说明的是,对于区域削减剩下的对象,是按照距离由近到远的原则考查的。图5为本申请一种推荐对象的确定方法中近似文本匹配的流程示意图。如图5所示,近似文本消减包括以下步骤:关键字映射步骤、关键字匹配步骤和完全关键字匹配步骤;关键字映射步骤:s401获取所述第一推荐集合的候选推荐对象;s402查询所述第一推荐集合的候选推荐对象的第二关键字;s403获取所述第一关键字和所述第一推荐集合的候选推荐对象的第二关键字的编辑距离,所述编辑距离为所述第二关键字转化为所述第一关键字的最小编辑操作的数目;s404获取所述编辑距离最小的候选推荐对象,记作第二推荐对象;对于用户q和候选推荐对象o的关键字映射<qi,oj’>,即q.km(o);其中,对于qi∈q.key,oj’是o包含的所有关键字中与qi的编辑距离最小的那一个,也即,近似关键字匹配步骤:s405如果所述第二推荐对象的编辑距离与最大串长的比值不大于文本距离阈值,则所述第二推荐对象满足关键字匹配,所述最大串长指所述第一关键字串长值和所述第二关键字串长值中较大串长值;对于q.km(o)中的关键字对<qi,oj’>,如果)不大于预设阈值ψ(ψ∈(0,1)),那么说<qi,oj‘>满足关键字匹配。s406所有满足关键字匹配条件的第一关键字和第二关键字组成关键字匹配集;q.km(o)中所有满足关键字匹配条件的关键字对<qi,oj′>组成一个关键字匹配集,即,q.kms(o)。s407完全关键字匹配步骤:根据所述关键字匹配集和所述关键字,得到完全关键字匹配集。对于一组对象s,如果o∈s的关键字匹配集q.kms(o)的并集包含每个查询关键字,而s的每个子集s’不满足此要求,即,∪o∈sq.kms(o)∩q.key=q.key且∪o∈s’q.kms(o)∩q.key≠q.key,则s与查询q是完全关键字匹配,∪o∈sq.kms(o)构成一个完全关键字匹配集,即q.ckms(s)。完全关键字匹配集其实是匹配上的查询关键字与第二关键字的集合,对象的关键字集中,跟查询关键字满足关键字匹配的关键字写入完全关键字匹配集。文本距离就是完全关键字匹配集中各关键字对的编辑距离的加权平均值,根据所述第一关键字、所述关键字匹配集以及所述完全关键字匹配集,得到文本距离。具体步骤如下:给定查询q的完全关键字匹配集q.ckms(s);对于每个关键字对<qi,oj’>∈q.ckms(s),计算每对qi和oj’之间的编辑距离之和;为了将计算到的编辑距离的总和归一化到范围[0,1],|qi|和|oj′|之间的较大者max{|qi|,|oj′|}也被考虑进来以定义文本距离dtexd(q,s)如下:s5根据目标位置和对象位置,消减所述第二推荐集合中不符合网络距离的候选推荐对象,得到第三推荐集合,所述网络距离是指连接所述目标位置与所述候选推荐对象的网络位置之间的最短路径的长度;通用树有效地支持交通网络中对象与查询点或对象对之间的交通网络距离计算。特别地,采用多级划分算法递归地将交通网络划分为大小相等的子图,同时最小化边界顶点(用实心矩形盒表示)的数量,并使用通用树保存划分结果。如图2所示,获得消减后的所述推荐对象的对象集{o1、o2、o5、o7、o8}。在gi中,可能包括多个候选推荐对象,即gi是候选推荐对象集合的子集,因此,在另外一些实施例中,根据网络距离进行消减gi,包括:给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ)和一个子图gi;如果dmin(q,gi)>cost(q,vc)×maxd,则gi被安全消减,其中,cost(q,vc)为当前最优结果集vc的代价,dmin(q,gi)为gi和q之间的最小网络距离。s6根据所述时间距离、所述文本距离、所述网络距离和权重系数得到代价函数,根据所述代价函数的数值对所述第三推荐集合中的候选推荐对象进行消减,得到代价最小的结果集;如图2所示,对剩下的o1、o2、o5、o7和o8,消减o1、o2和o5,对象集{o7,o8}作为查询q的最佳结果返回。在gi中,可能包括多个候选推荐对象,即gi是候选推荐对象集合的子集,因此,在另外一些实施例中,步骤包括:给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ)和一个子图gi,如果costl(q,gi)>cost(q,vc),则gi被安全剪枝,其中,vc是当前最好的结果集。其中cost是指代价函数,本申请提供的代价函数cost(q,s)是指:给定一个查询q和一组对象s,s和q满足完全关键字匹配和时间匹配,s的代价函数(记为cost(q,s))等于文本距离、时间距离、q与s之间的最大距离以及s中任意对象对之间的最大距离的线性组合:cost(q,s)=α×dtexd(q,s)+β×dtemd(q,s)+γ×dmaxo(q,s)+(1-(α+β+γ))×dmaxo(q,s)(4)其中,α、β、γ和maxd是系统用户可接受的最大距离。本申请通过上述方式将两个距离值归一化为范围[0,1],s中所有对象中到q的网络距离最大的对象o为查询距离支配者;将对象对<o1,o2>称为成对距离支配者,其中d(o1,o2)是s内任何对象对之间网络距离的最大者。在一些可行的实施例中,我们将s的代价定义如下:给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ);其中,q.loc是q的位置、q.key是一组查询关键字、q.t=(ts,te)是查询时间区间、q.ψ是文本距离阈值、q.κ是时间距离阈值。查询q的结果tacoskq(q),包含一个对象集s,s和q满足完全关键字匹配和时间匹配,即,且s的代价最小。为简化讨论,本文对上述四个分量给予同等的权重,即dtexd(q,s),dtemd(q,s),dmaxo(q,s),dmaxp(q,s)同等重要。所提出的算法仍然适用于变化的α,β和γ,其中α,β,γ,(α+β+γ)∈[0,1]。基于上述方法,本申请以实际应用场景为背景,作以下阐述。图2为本申请一种推荐对象的确定方法中交通网络的一种实施例的结构示意图。如图2所示,其中一个用户q(用三角形表示)和八个候选推荐对象o1到o8(用圆圈表示)分布在道路网络上。候选推荐对象的相应文本信息和时间信息如表1所示。假设用户发起一个查询q,查询关键字为“餐厅、剧院、停车场”,查询时间为“11:00-14:00”。首先,由于o3和o6的开放时间与q的查询时间不相交,因此对它们进行消减。接下来,o4也被消减,因为它不包含与任何查询关键字相似的关键字。然后,对剩下的o1、o2、o5、o7和o8进行进一步处理。最后,通过比较文本相似度、时间重叠率、候选推荐对象与查询q之间的网络距离、候选推荐对象之间的内部距离,对象集{o7,o8}作为查询q的最佳结果返回。表1图2中候选推荐对象的相关信息objectobject.docopentimelocationo1restaurant,mall9:00-12:00l1o2theater9:00-16:00l2o3theatre,parking16:00-20:00l3o4coffee9:00-15:00l4o5theatre,coffee9:00-15:00l5o6restaurant,parking16:00-20:00l6o7bread,parking8:00-22:00l7o8restaurant,theatre8:00-22:00l8上述实施例中,本申请提供的一种推荐对象的确定方法,存在以下现实问题:首先,查询用户和推荐对象分布在一个小型交通网络中,查询用户和推荐对象可能分布在一个大型交通网络中,如何有效地计算查询与对象或对象对之间的网络距离;其次,系统中可能存在数百万个推荐对象,需要考虑对象的大量关键字和时间信息。此外,考虑近似的关键字匹配而不是精确的关键字匹配,由于同时考虑了关键字相似度、时间相似度、查询和对象之间的距离以及对象对之间距离,因此所提出方法应足够有效以显著降低查询处理成本。为解决上述问题,本申请提供了一种应用于交通网络的tdag-tree,为了同时支持查询与对象间距离消减、对象对之间距离消减、近似关键字消减和时间消减,tdag-tree采用g-tree对交通网络进行划分,保留各交通网络区域(子图)的距离度量,便于查询与对象之间或对象对之间的网络距离计算。同时,对树中的每一个结点建立了一个ti-d-at文件来组织这个结点对应的子图上的对象的文本、时间等信息,在每个子图的推荐对象上构造文本时间索引,有效地组织对象的文本时间信息。为更加清楚地对本申请提供的应用于交通网络的tdag-tree进行阐述,首先对编辑距离计算和g-tree进行情境下的说明。n-gram是估计字符串之间编辑距离的常用技术。对于字符串s,n-gram可以通过将长度为n的窗口从字符串的开始滑动到字符串的结束来获得。例如,o3具有关键字“theatre”,而“theatre”的2-gram是{#t,th,he,ea,at,tr,re,e$}。衡量字符串之间相似度的基本思想是,字符串共享的n-gram越多,它们在编辑距离函数中的相似度值就越高。minhash方法可以用来估计集合的相似度。对于两个串sting1和string2,它们的编辑距离ded(string1,string2)可以定义为从string1转换为string2所需的最小编辑操作(即插入、删除或替换)的数目。g-树可用于支持交通网络的位置相关查询。交通网络的g-树是通过递归地将交通网络划分为多个子网来构造的,每个树结点对应一个子网。接下来,我们简要介绍g-tree。将交通网络建模为一个无向加权图g={v,e},其中v是交通网络上顶点的集合,e是交通网络上道路边的集合。利用图划分方法构造g树。图划分是影响g-tree性能的关键步骤。最优划分法不仅可以生成大小近似相等的子图,而且可以使边界顶点的个数最少。因此,采用了一个著名的启发式算法,即多级分区算法。图3a为本申请一种应用于如图2所示的交通网络的g-tree的一种实施例的结构示意图。如图3a所示,将图g标记为g-tree的根,然后分成大小相等的f个子图,g1、g2、…、gf,并令g成为这些子图的父结点。然后,对子图gi进行递归划分,重复这一步骤,直到每个子图所包含的顶点数不超过预设值为止。图3b为本申请一种应用于交通网络的tdag-tree索引中如图3a所示的g-tree的距离度量矩阵(dm)的示意图。如图3b所示,为加快最短路径的计算速度,g-tree保留了距离度量矩阵(dm):对于非叶结点,dm包含边界顶点-边界顶点之间的最短路径距离;对于叶结点,dm包含边界顶点-顶点之间的最短路径距离。一些单源最短路径算法,如dijkstra算法,可以用来计算这些最短路径。为了加速距离计算,采用了一种高效的自底向上方法。需要说明的是,一个结点,代表道路网路的一个区域,也就是一个子图。本申请提供的应用于交通网络的tdag-tree(即系统所使用的混合索引)是基于g-tree的一种新的混合索引tdag-tree。tdag-tree索引结构同时支持网络距离消减、时间消减和近似文本消减,有效地消减尽可能多的、与tacoskq查询无关的网络空间和对象。如图4a所示,本事实例中交通网络由一组顶点和边组成的加权图表示,此外,还保留了分布在交通网络各边上的一组对象和一组tacoskq查询。tdag-tree包括两个主要组件:交通网络的g-tree(如图4b所示)和树中每个结点的ti-d-at文件(如表2、表3和图4c所示)。结点(gi)分为叶结点(gi)和非叶结点(gi),其中,叶结点(gi)包括:距离矩阵(dm)、maxind(gi)、dia(gi)、ti部分、关键字签名(signature)和at部分;非叶结点(gi)包括:距离矩阵(dm)、maxind(gi)、dia(gi)、ti部分、关键字签名(signature)和指向(gi)的子图的指针。表2树结点gi的距离(d)部分g1g2g11g12g21g22maxlnd(gi)2118012512dia(gi)333420211921表3树结点gi的时间倒排(ti)文件g1.tig2.tig11.tig12.tig21.tig22.ti8:00-9:00g22o7,o89:00-10:00g11,g12g21,g22o1o2o4,o5o7,o810:00-11:00g11,g12g21,g22o1o2o4,o5o7,o811:00-12:00g11,g12g21,g22o1o2o4,o5o7,o812:00-13:00g12g21,g22o2o4,o5o7,o813:00-14:00g12g21,g22o2o4,o5o7,o814:00-15:00g12g21,g22o2o4,o5o7,o815:00-16:00g12g22o2o7,o816:00-17:00g12g22o3,o6o7,o817:00-18:00g12g22o3,o6o7,o818:00-19:00g12g22o3,o6o7,o819:00-20:00g12g22o3,o6o7,o820:00-21:00g22o7,o821:00-22:00g22o7,o8接下来,我们将详细讨论这两个组件。结合上述表2和表3,以及图4a至图4c,树结点中每个结点(子图)的ti-d-at文件包括以下几个部分:gi的距离度量,gi.dm,参见图3b;gi内任意对象对之间的最大距离(maxind(gi))和gi的直径(dia(gi)),其中dia(gi)是gi中任意两点之间的最大距离;gi的时间倒排文件(ti),可以方便地计算gi中对象的时间距离。特别地,我们把一天分成24个小时间隔。如果gi是一个叶结点,则记录每个小时间隔开放的对象列表。否则,对于每个小时间隔,将记录包含该时间段内开放的对象的子结点(子图)列表。例如,只有g22中o7和o8在上午8点到9点之间开放,因此g22.ti.<8:00-9:00>={o7,o8}和g2.ti.<8:00-9:00>={g22},因为g2包含g21和g22。其他结点在<8:00-9:00>的ti列表为空。注意,对于结点gi,如果多个连续的ti列表的内容相同,这些列表可以组合成一个列表。例如,图g1在<9:00-10:00>,<10:00-<11:00>和<12:00-12:00>的ti列表均为{g11,g12},因此这三个列表可以合并,即g1.ti.<9:00-12:00>={g11,g12}。这样可以大大节省保存ti文件所需的空间。结点gi的关键字签名,gi.signature;指向gi的子图的指针,若gi是非叶结点;gi的at部分,用于方便gi中对象的文本距离计算,若gi是叶结点。图4c为本申请一种应用于图4b所示的tdag-tree中结点的at部件的示意图。如图4c所示的at部件,g12中有三个对象o2,o3,o6,它们的关键字是“coffee”,“parking”,“theater”和“theatre”。然后将这四个关键字划分为三个簇,其参考关键字分别为“coffee”、“parking”和“theater”。假设d=7,“coffee”、“theater”、“theatre”、“parking”的参照键值为分别是0、7、9和14。其中,w1表示restaurant;w2表示theater;w2'表示theatre;w3表示parking;rc1表示restaurant;rc2表示theater;rc3表示parking。如果在查询处理过程中直接使用wagner-fisher等算法来计算编辑距离,会带来难以承受的时间成本。为此,对于每个叶子图gi,我们预先计算其中对象的关键字之间的编辑距离,并构造at部件,对gi中包含的对象的关键字的编辑距离进行索引,以加快文本距离的计算。首先,我们使用k-means聚类算法、根据关键字之间的编辑距离对gi中的关键字进行划分,得到几个簇cj(0≤j≤m)及其质心(称为参照关键字)。通过这种方式,我们可以最小化每个簇中关键字之间编辑距离的数学期望。对簇cj中每个关键字我们基于关键字与其参照关键字之间的编辑距离计算得一个参照键值即其中d为gi中所有簇cj中,其参照关键字与属于cj的关键字之间的最大编辑距离的最大者,m为gi中的簇数。最后,对gi中每个对象,根据其关键字和相应的参照键值在b+树中索引。为了进一步方便查询处理过程中的文本距离计算,对gi中的每个簇cj中的关键字,我们还保留了最小的编辑距离和最大编辑距离此外,为了有效地减少大量不合格的推荐对象,从而提高查询处理效率,本申请提出了基于通用树tdag-tree的消减方法。然后,我们讨论如何结合时间、文本和空间因素来进一步消减不相关的子图。对于子图gi,我们计算gi的下限代价(costl(q,gi)),如下所示:如果gi没有被上述网络距离消减步骤、近似文本消减步骤和时间消减步骤消减,我们通过假设来减少costl(q,gi)的值。为了计算我们假设gi以外的其他结果对象o’与查询q是完全时间匹配的,即o’.t∩q.t==q.t,则为计算dmaxo(q,gi),如果q不属于gi,则用q与gi的边界顶点之间的最短网络距离除以maxd;否则dmaxo(q,gi)=0。另外,设dmaxp(q,gi)=0。最后,可由公式4计算costl(q,gi)。给定一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ)和一个子图gi,如果costl(q,gi)>cost(q,vc),则gi被安全消减,其中,vc是当前最好的结果集。接下来,我们讨论基于tdag-tree的tacoskq查询处理算法,称为tdagimp。它的输入包括一个tdag-tree索引tdagt,一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ),以及一个变量curbcost,该curbcost被初始化为4以保持当前最佳结果集的最小代价,输出一个较优的近似结果集appset2。为了简化讨论,前面对代价函数的所有四个组成部分给予同等的权重。4代表四个组成部分均取最大距离1,因为四个距离都已归一化到范围[0,1]。基于上述的tdagtree索引,交通网络中的tacoskq是np-完备的。因此,精确算法的性能在运行时间和i/o成本方面可能不是很好。因此,本申请提出了两种基于tdag-tree的近似解来支持交通网络上的tacoskq查询处理。首先介绍一种基本算法tdagb,它逐步访问最近的子图,检索最相关的对象,获取一个对象集appset。appset与查询q满足完全关键字匹配和时间匹配,且成本相对较低。tdagb算法的具体步骤见算法1。首先,将最小堆hg初始化为用于组织待访问的结点(子图)。此外,一个集合appset用于保存查询结果对象,一个集合keymset用于保存尚未匹配的查询关键字,它被初始化为q.key。特别是,hg堆是一个有序的结构,costl(q,pnode)是堆中的结点(子图)pnode的键值。tdagb首先定位q所在的叶结点(子图)gq。如果q与gq满足时间匹配且q.key.signature∩gq.则考虑gq中每个满足条件的对象o如下:1)对于每个关键字对<qi,oj>∈q.kms(o),如果qi∈keymset,意味着qi目前为止尚未被匹配,则将qi从keymset中移除,并将变量mark设为true(6-8行);2)如果mark=true,那么o匹配至少一个查询关键字,将o插入appset(9-10行);3)如果keymset为空,表示所有关键字都已经匹配完毕,则返回apprest及其代价,结束查询的处理(12行)。令pnode指向leaf(q),令costlb等于curbcost(第13行),然后以自底向上的方式访问tdagt(15-24行)。如果hg为空,调用算法2中所示的adjustment函数,将pnode移动到它的父结点(16行)。接下来,从hg堆中弹出一个元组(c,cost)。注意,(c,cost)是hg的头元素,hg按其元素的代价值(或代价值的下限)排序。如果cost即头元素c的代价(下限代价)大于costlb,那么查询答案可能存在于pnode的父结点中,因此调用adjustment函数将pnode移动到其父结点(第19行)。否则(cost<=costlb),存在两种情况:1)c是非叶结点,则对于c的每个未访问子图s,如果(则将s和costl(q,s)一起入堆hg;2)c是一个叶子子图,重复第6-12行,处理c的每个对象o。adjustment函数的具体步骤见算法2。它首先将pnode移动到它的父结点(第2行)。然后,对pnode的每个未访问的子结点s,如果则将s和costl(q,s)一起入堆hg。算法1:tdagbalgorithm输入:tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ),tdagt,curbcost;输出:结果集appset及其代价;具体步骤如下:算法2:adjustment函数(pn,costlb,hg)具体步骤如下:本申请还提供了基于tdag-tree的改进近似解,虽然tdagb算法可以节省由于底层交通网络规模大或合格对象分布稀少而造成的网络扩展的巨大成本;而且可以利用tdag-tree对大量不合格区域和不合格对象进行消减,进一步加速查询的处理。然而,tdagb返回一个具有较松散的近似边界的近似解,因为tdagb没考虑结果对象的内部邻近性。为此,在tdagb的基础上,提出了一种改进的方法tdagimp,其伪代码见算法3。它的输入包括一个tdag-tree索引tdagt,一个tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ),以及一个变量curbcost,该curbcost被初始化为4以保持当前最佳结果集的最小代价,输出一个较优的近似结果集appset2。tdagimp首先调用tdagb算法获得原始结果集appset2及其代价cost(q,appset2)(第1行)。设oe为appset2中离q最远的对象,keye为oe专门贡献的关键字集,即那么每个满足条件(的对象o按d(q,o)的升序考察。对于每一个被选中的合格对象o,通过一个新的查询qn调用tdagb,该查询qn的查询位置为o.loc,查询关键字集为q.key,然后返回结果集vn及其代价cost(q,vn)。如果cost(q,vn)<cost(q,appset2),则(appset2,cost(q,appset2))被替换为(vn,cost(q,vn))。在探寻了所有符合条件的对象之后,tdagimp终止并返回代价较低、较优的结果集appset2。算法3.tdagimp算法输入:tacoskq查询q=(q.loc,q.key,q.t,q.ψ,q.κ),tdagt,curbcost;输出:结果集appset2及其代价;下面介绍关于tdagb代价和tdagimp代价的证明,tdagb是一个单独的算法,算法返回的结果集的代价不大于q.ψ+q.κ+3×cost(q,optset);tdaimp在tdagb基础上,通过用一些特殊的点多次调用tdagb算法,达到提高精度的效果,tdaimp算法返回的结果集的代价不大于q.ψ+q.κ+2×cost(q,optset)。引理1由tdagb算法返回的结果集cost(q,appset)不大于q.ψ+q.κ+3×cost(q,optset),其中optset是最优结果集。证明:令o∈appset是距离q最远的那个结果对象,也即,对于任意两个对象o1和o2∈appset,根据距离三角形不等式有d(o1,o2)≤d(q,o1)+d(q,o2),因此,d(o1,o2)≤d(q,o)+d(q,o)=2×d(q,o),也即,根据tacoskq查询的定义,对于任意结果对象o∈appset,q和o之间的时间距离不大于q.κ,q.kms(o)中关键字对之间的文本距离不大于q.ψ。因此,q和appset2之间的时间距离和文本距离分别不大于q.κ和q.ψ。因此,另一方面,我们有因为o是包含与q.key中最后一个查询关键字匹配的关键字的、离q最近的对象。因此,cost(q,appset)≤q.ψ+q.κ+cost(q,optset)+2×cost(q,optset)=q.ψ+q.+3×cost(q,optset)引理2tdagimp算法返回的结果集的代价cost(q,appset2)不大于q.ψ+q.κ+2×cost(q,optset),其中optset是最优结果集。证明:gao等人[1]研究了交通网络中的coskq查询,该查询考虑的是精确关键字匹配,而不是近似关键字匹配,且忽略了查询与对象之间的时间匹配。在[1]中,作者首先采用了一种路网扩展方法(neb)来探索一组对象,这些对象集中对象覆盖了查询关键字集,因此可以将该对象集作为基本结果集返回。接下来,他们提出了一个叫做inb的方法,递归地调用用一些特殊位置和原始查询关键字作为输入参数的neb方法来获得更好的近似结果集。该结果集的代价在[1]中已被证明为最优结果集代价的两倍,即cost(q,vinb)≤2×cost(q,voptset)。这里的代价包括查询q与结果对象之间的最大距离以及任意一对结果对象之间的最大距离。tdagimp与inb的主要区别在于:1)我们考虑了q与对象之间的时间匹配和近似文本匹配;2)提出了tdag-tree和各种剪枝技术来加速交通网络距离、文本距离和时间距离的计算。这里,optset是查询q的最佳结果集,appset2是tdagimp返回的结果集。先通过假设dtexd(q,s)和dtemd(q,s)等于0来先松弛cost(q,optset),则有cost(q,optset)=dmaxo(q,optset)+dmaxp(q,optset)。由于tdagimp在探索结果集的方式上与inb相似,因此tdagimp的距离代价也是最优结果集的两倍,即,dmaxo(q,appset2)+dmaxp(q,appset2)=2×(dmaxo(q,optset)+dmaxp(q,optset))。类似引理1,对于任何结果对象o∈appset2,q和o之间的时间距离不大于q.κ,q.kms(o)中关键字对之间的文本距离不大于q.ψ。因此,q和appset2之间的时间距离和文本距离分别不大于q.κ和q.ψ。因此有,cost(q,appset2)=dtexd(q,appset2)+dtemd(q,appset2)+dmaxo(q,appset2)+dmaxp(q,appset2)≤q.ψ+q.κ+2×(dmaxo(q,optset)+dmaxp(q,optset))≤q.ψ+q.κ+2×cost(q,optset)[1]y.gao,j.zhao,b.zheng,andg.chen.efficientcollectivespatialkeywordqueryprocessingonroadnetworks.ieeetransactionsonintelligenttransportationsystems,17(2):469-480,2016.本申请提供的实施例之间的相似部分相互参见即可,以上提供的具体实施方式只是本申请总的构思下的几个示例,并不构成本申请保护范围的限定。对于本领域的技术人员而言,在不付出创造性劳动的前提下依据本申请方案所扩展出的任何其他实施方式都属于本申请的保护范围。当前第1页12
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1