用于基于轨迹的移动应用的框架的制作方法

文档序号:6351776阅读:240来源:国知局
专利名称:用于基于轨迹的移动应用的框架的制作方法
用于基于轨迹的移动应用的框架
背景技术
定向广告是用于提供广告的流行且高效的技术。定向广告的一种方法是基于公布的内容来定位广告。例如,专供音乐的商店可以在杂志中或在与音乐有关或已知是被购买音乐的人所访问的网页上显示它们的广告。定向广告的另一种技术是基于与用户相关联的位置来定位广告。用户的位置可以通过与该用户相关联的IP (因特网协议)地址、或者通过全球定位系统或与该用户相关联的其他知晓位置的技术来确定。例如,当蜂窝电话确定其用户在咖啡店附近时,该蜂窝电话的用户可以接收该咖啡店的广告。然而,基于用户当前位置的定向广告可能不是特别地有效,因为该用户的当前位置可能不是该用户真实偏好的准确标识符。继续上面的示例,该用户可能不喜欢咖啡,或者该用户可能在他通常不想喝咖啡的时候位于咖啡店附近。

发明内容
诸如蜂窝电话的移动设备监视用户随时间的位置。将被监视的位置组织成轨迹,该轨迹描述了用户在一时间段内经过的路径或路线。轨迹服务器收集并存储与该用户相关联的轨迹、以及与其他用户相关联的轨迹。轨迹服务器可以分析被存储的轨迹以标识相似的轨迹和标识彼此具有相似轨迹的用户。轨迹服务器还可以支持应用编程接口,该应用编程接口允许开发者创建使用轨迹的应用。这种应用的示例可包括(例如,基于用户的通勤信息)向用户推荐合乘安排的应用,(例如,基于用户朋友的轨迹)向用户推荐采取的行道或踪迹的应用,以及(例如,基于用户的轨迹)提供定向广告或商业推荐的应用。在一个实现中,计算设备标识与第一用户相关联的轨迹。每个轨迹可包括位置标识符。该计算设备对经标识的轨迹聚类以生成该第一用户的合成轨迹。该计算设备标识与该合成轨迹相似的至少一个轨迹。该至少一个轨迹可以与除第一用户以外的用户相关联。该计算设备通过网络提供关于与合成轨迹相似的经标识的至少一个轨迹的信息。实现可包括以下特征中的某些或全部。每个轨迹可以表示一通勤信息。经标识的至少一个轨迹可以具有相关联的广告,并且提供关于与合成轨迹相似的至少一个轨迹的信息可包括向第一用户提供该相关联广告中的一个或多个。聚类可以是k_均值聚类。可以标识与至少一个经标识的轨迹相关联的企业,并且提供关于与合成轨迹相似的至少一个经标识轨迹的信息可包括向第一用户提供经标识的企业中的一个或多个。每个轨迹可具有相关联的元数据,并且提供关于与合成轨迹相似的至少一个轨迹的信息可包括提供与至少一个轨迹相关联的元数据。标识与合成轨迹相似的至少一个轨迹可包括定义合成轨迹的每个位置标识符周围的区域,从多个轨迹中选择与除第一用户以外的用户相关联的一轨迹,确定位于已定义区域之一内的所选择轨迹的位置标识符的百分比,以及如果该百分比大于阈值百分比则将所选择的轨迹标识为相似的轨迹。已定义的区域可以是圆形,并且定义每个位置标识符周围的区域可包括,对于合成轨迹的每个位置标识符,确定该位置标识符与前一个位置标识符之间的距离,基于所确定的距离来确定已定义区域的半径,以及定义该位置标识符周围的具有所确定半径的区域。标识与合成轨迹相似的至少一个轨迹可包括定义通过合成轨迹的各位置标识符的一路径,从多个轨迹中选择与除第一用户以外的用户相关联的一轨迹,确定位于已定义路径内的所选择轨迹的位置标识符的百分比,以及如果该百分比大于阈值百分比则将所选择的轨迹标识为相似的轨迹。该路径可在合成轨迹的每个位置标识符处具有相关联的宽度,并且定义通过合成轨迹的各位置标识符的路径可包括,对于合成轨迹的每个位置标识符,确定该位置标识符与前一个位置标识符之间的距离,以及基于所确定的距离来确定该路径在该位置标识符处的宽度。基于所确定的距离来确定该路径在该位置标识符处的宽度可包括将该宽度确定为等于所确定的距离。在一实现中,计算设备通过网络从第一用户接收查询。该计算设备标识响应于该查询的一个或多个轨迹。每个轨迹可包括位置标识符,并且可表示除该第一用户以外的一用户所采取的路线。该计算设备通过网络向第一用户呈现所标识的轨迹中的至少一个。
实现可包括以下特征中的某些或全部。第一用户可具有相关联的位置标识符,并且标识响应于查询的一个或多个轨迹可包括标识具有一位置标识符的一个或多个轨迹,该位置标识符标识了在地理上位于与第一用户相关联的位置标识符所标识的位置附近的位置。查询可具有相关联的时间标识符,且每个轨迹可具有相关联的时间标识符,标识响应于该查询的一个或多个轨迹可包括标识具有相关联的时间标识符的一个或多个轨迹,该相关联的时间标识符接近于与该查询相关联的时间标识符。每个轨迹可具有相关联的元数据,并且标识响应于该查询的一个或多个轨迹可包括标识具有与该查询相匹配的元数据的一个或多个轨迹。提供本发明内容以便以简化的形式介绍将在以下具体实施方式
中进一步描述的一些概念。本发明内容并不旨在标识出所要求保护的主题的关键特征或必要特征,也不旨在用于限定所要求保护的主题的范围。附图简述当结合附图进行阅读时,可以更好地理解以上概述以及以下对说明性实施例的详细说明。出于说明各实施例的目的,在附图中示出各实施例的示例性构造;然而,各实施例不局限于所公开的具体方法和手段。在附图中图I是用于生成和使用轨迹的示例环境的图示;图2是示例轨迹服务器的实现的框图;图3是两个示例轨迹的图示;图4是使用已定义区域来确定相似轨迹的示例过程的图示;图5是使用路径来确定相似轨迹的示例过程的图示;图6是使用聚类来标识相似轨迹并提供关于该相似轨迹的信息的实现的操作流程;图7是使用已定义区域来标识相似轨迹的方法的实现的操作流程;图8是使用路径来标识相似轨迹的方法的实现的操作流程;图9是响应于查询来标识一个或多个轨迹的方法的实现的操作流程;

图10是根据本系统的一种实现的计算系统环境的框图。
具体实施例方式图I是用于生成和使用轨迹的示例环境100的图示。在某些实现中,轨迹可以是位置标识符以及时间标识符的集合,该时间标识符指示其间确定位置标识符中的某些或全部的时间。轨迹还可以与用户相关联。该轨迹可以声称表示相关联的用户采取的路径或路线。在某些实现中,使用全球定位系统(GPS)的移动设备110收集组成该轨迹的位置标识符。如上所述,环境100可包括移动设备110。移动设备110可包括多种移动计算机设备,包括但不限于蜂窝电话、个人数字助理、视频游戏设备、音频和视频播放器、手表、道尔芯片、膝上型计算机、或任何其他类型的计算机设备。移动设备110可以是在用户旅行时可随身携带的任何计算机设备。因此,移动设备110可以是用户随身携带的蜂窝电话、或安装在用户驾驶的车中的计算机。示例计算设备可包括例如图10中所示的计算设备1000。 如图I所示,移动设备110包括定位器112。该定位器112可以是该移动设备110的组件,其确定该移动设备110的位置。在某些实现中,定位器112可以是GPS设备。还可使用其他类型的设备。例如,定位器112可以使用蜂窝电话信号信息(例如,与蜂窝塔的距离)或Wi-Fi信号信息(例如,与具有已知位置的Wi-Fi热点的距离)来确定移动设备110的位置。在某些实现中,定位器112可以不在移动设备110处被定位,而可以在外部实体(例如,电话公司、蜂窝电话运营商等)处被定位,该外部实体可以跟踪移动设备110的位置。可使用用于确定位置的任何系统、方法或技术。在某些实现中,定位器112可以周期性地确定移动设备110的位置。定位器112可确定位置的速率或频率可以依赖于移动设备110的类型、或定位器112通过其确定移动设备110的位置的方法而变化。定位器112可在本地轨迹存储114中存储位置的标识符。定位器112可以存储位置的标识符、以及确定位置的每个标识符时的时间的时间标识符。在某些实现中,位置的标识符和时间标识符可以被一起分组并被存储为轨迹。如上所述,轨迹可以是表示移动设备110所采取的路径的一组位置的标识符。轨迹可具有经标识的开始和结束位置。轨迹的开始和结束位置可由移动设备110的用户来确定、或由移动设备110基于各检测到的移动设备110移动之间的时间流逝来自动地确定。例如,如果移动设备110在一小时内尚未从所标识的位置移动,则可以确定轨迹的结束。如将进一步描述的,轨迹的起始和结束位置还可由例如轨迹应用118a或轨迹服务器142来确定。环境100还可包括固定设备130。固定设备130可与移动设备110相类似,但是可能缺少或可能无法访问定位器112。用户可在固定设备130使用应用,该应用使用轨迹信息来查看和组织与用户相关联的轨迹、查看与其他用户相关联的轨迹、并执行各种与轨迹有关的功能。例如,可使用包括图10中所示的计算设备1000的多种计算设备来实现固定设备 130。移动设备110还可包括轨迹客户端116a。轨迹客户端116a可以控制定位器112的操作和本地存储114,与在移动设备110上执行的轨迹应用118a进行接口,并通过网络120连接到服务器设备140和/或固定设备130。网络120可以是包括公共交换电话网络(PSTN)、蜂窝式电话网络和分组交换网络(例如,因特网)的各种网络类型。固定设备130可类似地包括轨迹客户端116b。轨迹客户端116b可通过网络120与在固定设备130上执行的轨迹应用118b进行接口。轨迹客户端116a可通过应用编程接口(API)与轨迹应用118a进行接口。轨迹应用118a可包含轨迹并使用该API来执行轨迹操作。轨迹应用118a的示例可包括基于一用户的轨迹和其他用户的轨迹来向该用户推荐轨迹的应用,通过标识位于与用户相关联的轨迹附近的商店来向用户推荐商店的应用,基于与用户相关联的轨迹来向用户推荐合乘的应用,提供驾驶方向的应用,以及提供广告的应用。可以使用其它类型的应用。通过使用带有轨迹客户端116a的API,多种应用118a可以执行轨迹操作。轨迹操作的示例可包括查询、聚类和比较轨迹。轨迹客户端116b和轨迹应用118b可执行与固定设备130有关的类似的功能和操作。
轨迹客户端116a和116b可与在服务器设备140上执行的轨迹服务器应用142进行通信。例如,可在诸如图10中所示的计算设备1000的多种计算设备上实现服务器设备140。如下面将进一步描述的,轨迹服务器应用142可为轨迹客户端116a和116b执行多种服务和与轨迹相关的计算。由于移动设备110可能具有有限的存储和处理能力,因此可能期望在服务器设备140上执行这种计算。然而,可存在移动设备110可执行服务器设备140的功能中的某些或全部的实现。另外,构想了多个移动设备可按照对等或其它类型的分布式计算布置一起执行服务器设备140的功能轨迹服务器142可从轨迹客户端116a接收一个或多个轨迹。轨迹客户端116a可以周期性地上传在移动设备110确定的轨迹。在某些实现中,轨迹可具有相关联的元数据。该元数据可以是用户生成的、或可以是自动地生成的。例如,元数据可包括轨迹的用户所生成的描述,诸如“观光”或“好的购物”。元数据还可包括由用户生成的图像或照片、由用户生成的视频、和/或例如广告。用户可使用例如轨迹应用118a或118b来生成元数据。在某些实现中,轨迹服务器142可以从移动设备110接收位置标识符和时间标识符,而不是轨迹。在这些实现中,轨迹服务器142可从接收到的位置和时间标识符生成轨迹。与上面描述移动设备110类似地,轨迹服务器142可通过用时间上相关的位置标识符来分组位置标识符,从位置标识符生成轨迹。在某些实现中,轨迹应用118a可以控制定位器112,并确定组成轨迹的特定的位置标识符。例如,涉及帮助用户合乘的轨迹应用118a可以仅在上午和下午在典型的通勤时间期间激活定位器112,并且可基于用户在那些时间段期间的行程来确定轨迹的起始和结束。类似地,涉及跑步(例如,慢跑)的应用118a可基于指示用户正在跑步的用户输入或当移动设备110检测到用户有可能正在跑步时,指定轨迹的开始和结束。轨迹服务器142可将轨迹存储到全局轨迹存储144中。在某些实现中,轨迹在全局轨迹存储中的入口可包括与该轨迹相关联的每个位置和时间标识符。在某些实现中,轨迹应用116a和118a的用户还可将元数据与他们的轨迹相关联。元数据可包括多种数据和数据类型。例如,用户可以将评论、视频、链接、声音、描述、备注、或任何其他类型的数据与轨迹相关联。另外,轨迹应用118a和118b可将其自身的应用专用元数据与轨迹相关联。元数据还可以与构成轨迹的位置标识符而非整个轨迹相关联。元数据可同轨迹一起被存储在全局轨迹存储144中。如将参考下面例如图2进一步描述的,轨迹服务器142可为轨迹客户端116a和116b提供各种服务和操作。在某些实现中,轨迹服务器142可以接收并响应来自轨迹客户端116a和116b的查询。例如,轨迹客户端116a和116b可以请求具有特定元数据或属于特定用户的轨迹的标识符。另外,轨迹服务器142可以确定一个轨迹是否与另一个轨迹相似,或者可以标识与轨迹客户端116a和116b所指定的轨迹相似的全部轨迹。轨迹服务器142可以提供其他服务,诸如提供定位到轨迹的广告、或标识轨迹附近或邻近的企业。另外,轨迹服务器142可以控制或实施对轨迹数据的隐私设置。例如,用户可以指定哪些用户能够查看他们的轨迹,并将轨迹标记为私有的。轨迹服务器142可在响应查询时考虑这些隐私设置。另外,用户或应用可以指定用于查询的一个或多个约束。约束可以控制响应于查询而被返回的轨迹。例如,约束可以指定轨迹的类别,轨迹是参考轨迹的子集或超集、或各轨迹具有共同的开始或结束位置标识符。还可以使用其它约束。图2是示例轨迹服务器142的实现的框图。如所示的,在一个实现中,轨迹服务器142包括若干组件,包括查询引擎210、广告引擎240、聚类引擎250和比较引擎260。然而,轨迹服务器142可以支持那些所示的更多或更少的组件。轨迹服务器142还可访问数据,包括也在图I中示出的全局轨迹存储144、广告数据245和用户兴趣数据255。 聚类引擎250可以使用与用户相关联的两个或更多个轨迹来生成“合成轨迹”。例如,为了基于用户相关联的轨迹来比较这些用户,比较与用户相关联的全部轨迹可能是困难的。类似地,用户通常重复地采取同一路线或路径,导致全局轨迹存储144中存储的冗余路径。因此,出于比较和避免全局存储144中的冗余数据的目的,可以为一个或多个用户生成合成轨迹。在某些实现中,可以通过使用聚类算法或其他技术(诸如,k-均值和k_中值聚类)对与每个轨迹相关联的位置标识符进行聚类,来生成合成轨迹。然而,可以使用其它聚类或取平均技术。例如,聚类引擎250可将用户的合成轨迹存储到全局轨迹存储144中。经聚类的轨迹可以是特定时间段的与用户相关联的某些或全部轨迹的聚类。例如,为了确定表示用户去上班的上午通勤的轨迹,聚类引擎250可用上午7点到上午9点之间的时间标识符来生成用户轨迹的聚类轨迹。在某些实现中,轨迹服务器142可将相似的轨迹聚类到群中。参考比较引擎260来讨论用于标识相似轨迹的示例方法。比较引擎260可以比较两个或更多个轨迹,并确定两个轨迹是否是相似的轨迹。例如,轨迹应用118a可确定具有相似轨迹的用户,以便作出关于对用户的合乘安排的推荐。为了执行这种推荐,轨迹应用118a或118b可以经由轨迹客户端116a或116b请求轨迹服务器142标识具有相似轨迹的用户或者比较两个或更多个经标识的轨迹。在某些实现中,比较引擎260可以返回指示两个轨迹是否相似的二元值(例如,0或I)。在其他实现中,比较引擎260可以返回指示两个轨迹之间的相似度的百分比或分数。构成相似轨迹的内容可依赖于轨迹应用118a和118b的需求或其他方面而变化。例如,对于某些应用,可以仅将共享终点和/或起点的轨迹认为是相似的。其他应用可以仅要求两个轨迹中的一个是另一个的子集。例如,涉及合乘的轨迹应用118a可仅要求较小的轨迹是较大轨迹的子集,使得至少一个用户能够驾驶搭载另一个用户。因此,轨迹客户端116a和116b展示给轨迹应用118a和118b的API可以支持多种自变量,该自变量允许应用指定他们的相似意味着什么、以及基于应用的需求他们想如何得到他们的结果。在某些实现中,比较引擎260可以通过定义与第一轨迹相关联的每个经标识位置周围的区域(诸如圆圈)来比较轨迹。比较引擎260随后可以确定与落入已定义区域内的第二轨迹相关联的经标识位置的百分比、或数量。如果来自第二轨迹的足够多的经标识位置落入已定义区域以内,则第一和第二轨迹可以是相似的轨迹。需要落入已定义区域以内的经标识位置的特定阈值百分比或数量可由应用、管理员、或其他用户来确定,并且可依赖于轨迹应用118a或118b所需要的准确程度。可以类似地选择或确定已定义区域的大小或半径。在某些实现中,每个已定义区域的大小可依赖于轨迹中当前经标识位置与前一个经标识位置之间的距离量或是该距离量的函数,而不是同一大小。由于移动设备110(诸如GPS)中不同类型的定位器112的频率和性能以及蜂窝位置的变化,每个轨迹可具有可变量的经标识位置。这可能导致位于已定义区域以外的相似轨迹的位置标识符,其中两个轨迹在位置标识符密度中有差别。为了说明这一点,可以基于当前位置标识符与前一个位置标识符之间的距离量,对当前位置标识符周围的已定义区域的大小进行调整。具体而言,已定义区域的大小可以随着当前位置标识符与前一个位置标识符之间的距离增长而增长。

例如,考虑图3中所示的样本轨迹300a和300b。轨迹300a包括位置标识符301a-309a。轨迹300b包括位置标识符301b_309b。图4是使用已定义区域来确定相似轨迹的示例过程的图示,例如,使用具有静态或固定大小的已定义区域来比较轨迹300a和轨迹300b。更具体地,已在位置标识符30la、303a、305a、307a和309a周围定义了固定半径r的圆。这些圆在图4中分别被示为圆401、403、405、407和409。虽然已定义区域被示为圆,但它仅出于说明性目的。任何类型的形状或边界可用于已定义区域。例如,实现可使用矩形,而非圆形。如图4所示,轨迹300b的位置标识符中的两个位于已定义区域以内。位置标识符307b和位置标识符309b分别位于圆407和409内。如果例如5中有2个位于相似度阈值以下,则比较引擎260可以确定轨迹300a和300b不是相似的(即,不相似)。在其他实现中,比较引擎260可通过定义通过第一轨迹的经标识位置的宽度为w的路径、并确定第二轨迹的经标识位置位于已定义路径内的百分比来比较第一和第二轨迹。与使用上面描述的已定义区域的方法类似地,所选择的w的大小以及阈值可以确定相似度比较的准确性,并且可以由例如轨迹应用118a或118b来指定。在某些实现中,w的大小可以基于当前位置标识符与前一个位置标识符之间的距离而变化,而不是固定的宽度W。为了说明路径中的曲线,w的值可被设置为大约是例如当前位置标识符与前一个位置标识符之间的距离。还可使用其他方法来确定W的大小。例如,重新考虑图3中所示的样本轨迹。如图5所示,定义通过轨迹300a的固定宽度w的路径501。轨迹300b的位置标识符中的两个(即,307b和309b)位于已定义路径501的内部。重新假设5中有2个位于相似度阈值以下,则比较引擎240可以确定轨迹300a和300b不是相似的。轨迹服务器142还可包括查询引擎210。查询引擎210可经由轨迹客户端116a和116b分别从移动设备110和固定设备130接收查询。查询引擎210可以标识来自全局轨迹存储144的一个或多个轨迹,并且可呈现经标识的一个或多个轨迹、或例如与经标识的一个或多个轨迹有关的信息,诸如元数据。在一实现中,可被查询引擎210接收的查询可以包含标识相似轨迹或确定第一轨迹是否与第二轨迹相似的请求。可将这些类型的查询提供给比较引擎260以供处理。查询引擎210可以接收比较的结果,或可以接收与该请求匹配的一个或多个轨迹的标识符。查询引擎210可将该结果和/或标识符返回给发出请求的用户。查询引擎210可以接收的另一种类型的请求是标识与用户指定的关键词或约束相匹配的一个或多个轨迹。例如,用户可以请求查看与在其区域附近徒步旅行相关联的轨迹。因此,查询引擎210可以从全局轨迹存储144搜索具有标记或包括徒步旅行的相关联元数据的轨迹。例如,用户可已经使用轨迹应用118a或118b中的一个将徒步旅行添加到与轨迹相关联的元数据。另外,查询引擎210还可以通过仅从全局轨迹存储144搜索具有用户附近或与用户相关联的轨迹附近的经标识位置的轨迹,来细化搜索。在某些实现中,查询引擎210还可搜索或访问用户兴趣数据255。用户兴趣数据255可包括与来自全局轨迹存储144的轨迹相关联的用户的入口。用户兴趣数据255可包括描述用户的兴趣和/或特征的数据。用户兴趣数据255可以是用户生成的,或者可以是基于由用户向查询引擎210提交的、或由该用户是其朋友或与之相关联的其他用户提交的查询来自动地生成的。在某些实现中,可以从一个或多个社交联网应用中提取用户兴趣数 据255。例如,用户兴趣数据255可包括信息,诸如,描述用户的人口统计信息(例如,婚姻状况、家乡、职业、年龄、居住地等)、品位(例如,爱好、喜欢的电影、喜欢的电视节目等)、和朋友(例如,一用户与其是朋友或与其连接的其他用户的标识符)的信息。查询引擎210可以履行来自用户兴趣数据255的查询。例如,用户可以提交询问一个或多个轨迹的查询,该一个或多个轨迹表示由他们朋友中的一个或多个所提交的轨迹。查询引擎210随后可从全局轨迹存储144检索一个或多个合成轨迹,该一个或多个合成轨迹与由用户兴趣数据255标识的是该用户的朋友的用户相关联。用户还可提交对来自具有(例如,由用户兴趣数据255所表明的)相似的兴趣、品位、或职业的用户的轨迹的查询,轨迹服务器142还可包括广告引擎240。广告引擎240可以从广告数据245中标识相关的广告。在某些实现中,广告引擎240可以响应于查询引擎210接收到的请求来标识相关的广告。可基于关键词来标识相关的广告。例如,用户可通过提交“旅行者”查询来提交对与旅行有关的轨迹的查询。广告引擎240随后可以标识与旅行有关的一个或多个广告或来自广告商的广告,该广告商已经付费或将要付费使他们的广告用于关键词“旅行”的显示。广告引擎240所标识的广告中的一个或多个可以与查询引擎210所生成的结果可被一起返回,在此可由例如轨迹应用116a或116b来显示它们。在某些实现中,广告引擎240可以基于一个或多个轨迹从广告中标识一个或多个广告。例如,广告商可能想要在用户查看具有位于特定餐馆的特定距离以内的位置标识符的轨迹时,向该用户定位对该餐馆的广告。因此,当查询引擎210返回这个轨迹时,广告引擎240可使得对应的广告也被返回。在某些实现中,广告引擎240还可基于与轨迹相关联的时间指示符来标识广告。例如,广告引擎240可以基于用户轨迹来标识用户在每个工作日下午3点左右前往特定的咖啡店。因此,认识到该用户可能在那个时间对咖啡感兴趣,广告引擎240可在下午3点左右向该用户显示广告或推荐具有竞争性的咖啡店。在某些实现中,广告引擎240可以基于用户兴趣数据255来标识一个或多个广告240。例如,广告商可能希望将广告显示给其相关联的用户兴趣数据255表明对食物感兴趣的用户。广告引擎240还可基于查询数据、轨迹、时间指示符、和用户兴趣数据255的组合来标识广告。例如,广告商可以指定将对餐馆的广告显示给用户,该用户的用户兴趣数据表明对食物感兴趣并且基于用户在用餐时间期间的位置,他通常在外用餐。图6是使用聚类来标识相似轨迹并提供关于该相似轨迹的信息的方法600的实现的操作流程。方法600可由例如轨迹服务器142来执行。标识与第一用户相关联的多个轨迹(601)。轨迹服务器142可以使用与该第一用户相关联的用户标识符从全局轨迹存储144中标识轨迹。在某些实现中,与该第一用户相关联的经标识的多个轨迹还可以与经标识的时间或时间段相关联。例如,经标识的轨迹可以是与该第一用户相关联的发生在星期六晚上11点到凌晨2点之间、或发生在工作日上午8点到10点之间的轨迹。另外,元数据或标记可用于标识多个轨迹。例如,经标识的轨迹可以是与“夜生活”或“通勤”标记相关联的轨迹。对经标识的多个轨迹进行聚类以生成该第一用户的合成轨迹(603)。经标识的轨迹可由例如轨迹服务器142的聚类引擎250来聚类。在某些实现中,可以使用k-均值或 k_中值聚类对轨迹进行聚类。也可以使用用于聚类的其他方法。通过对用户轨迹进行聚类,可以使基于轨迹的用户之间的比较更为容易,因为可以使用单个合成轨迹,而非若干可能的冗余轨迹。标识与该合成轨迹相似的至少一个轨迹(605)。该至少一个相似的轨迹可由例如轨迹服务器142的比较引擎260来标识。还参考图7和8描述了用于标识相似轨迹的一些示例方法。可以提供与相似轨迹有关的信息(607)。该信息可由轨迹服务器142的查询引擎210和/或广告引擎240来提供。在某些实现中,该信息可以是至少一个轨迹的标识符。在其他实现中,该信息可以是与轨迹相关联的元数据中的某些或全部,诸如,与该轨迹相关联的用户、或与该轨迹相关联的标记。该信息还可以是例如与至少一个轨迹相关联的一个或多个广告、或位于至少一个轨迹附近的企业的标识符。图7是使用已定义区域来标识相似轨迹的方法700的实现的操作流程。方法700可由例如轨迹服务器142的比较引擎260来实现。在与第一用户相关联的合成轨迹的每个位置标识符周围定义一区域(701)。该区域可由轨迹服务器142的比较引擎260来定义。在某些实现中,已定义的区域可以是圆;然而,可以使用其他形状。每个已定义区域的大小可以是固定的,或者另选地,每个已定义区域的大小可基于其包围的位置标识符与前一个位置标识符之间的距离而改变。例如,在已定义区域是圆的实现中,每个已定义区域的半径可以随着轨迹中一位置标识符与前一个位置标识符之间距离的增长而增长。从与除第一用户以外的用户相关联的多个轨迹中选择一轨迹(703)。比较引擎260可以从全局轨迹存储144中选择该轨迹,以供与第一用户的合成轨迹进行比较。或者,该轨迹可已经被例如查询引擎210和/或轨迹应用118a或118b指定。确定所选择轨迹的位于已定义区域之一以内的位置标识符的百分比(705)。该确定可由比较引擎260作出。可将该百分比与一阈值进行比较。在一实现中,确定该百分比是否大于阈值百分比(707)。该确定可由比较引擎260作出。如果确定该百分比大于阈值百分比,则所选择的轨迹可被标识为相似的轨迹(709)。否则,所选择的轨迹被标识为不是相似的(即,不相似)(711)。或者,比较引擎260可以生成描述各轨迹之间的相似程度的分数或百分比。图8是使用路径来标识相似轨迹的方法800的实现的操作流程。方法800可由例如轨迹服务器142的比较引擎260来实现。定义通过与第一用户相关联的合成轨迹的每个位置标识符的一路径(801)。该路径可由轨迹服务器142的比较引擎260来定义。在某些实现中,该路径通过每个位置标识符的宽度可以是固定的或是常数。在其他实现中,该路径在每个位置标识符处的宽度可以变化。例如,轨迹在每个位置标识符处的宽度可以与该位置标识符与前一个位置标识符之间的距离成比例地改变。在某些实现中,该宽度可被设置为大约是该位置标识符与前一个位置标识符之间的距离,但是可以使用其他大小,诸如该距离的一半或例如该距离的两倍。从与除第一用户以外的用户相关联的多个轨迹中选择轨迹(803)。比较引擎260可以从全局轨迹存储144中选择该轨迹,以供与第一用户的合成轨迹进行比较。或者,该轨 迹可已经被例如查询引擎210和/或轨迹应用118a或118b指定。确定所选择轨迹的位于该路径以内的位置标识符的百分比(805)。该确定可由比较引擎260作出。可将该百分比与一阈值进行比较。在一实现中,确定该百分比是否大于阈值百分比(807)。该确定可由比较引擎260作出。如果确定该百分比大于阈值百分比,则所选择的轨迹可被标识为相似的轨迹(809)。否则,所选择的轨迹被标识为不是相似的(811)。或者,比较引擎260可以生成描述各轨迹之间的相似程度的分数或百分比。图9是响应于查询来标识一个或多个轨迹的方法900的实现的操作流程。方法900可由例如轨迹服务器142的查询引擎210来实现。从第一用户接收查询(901)。可在轨迹服务器142的查询引擎210从用户接收该查询。该查询可包括描述第一用户在查找什么的一个或多个项。例如,该查询可以是标识与经标识的轨迹相类似的一个或多个轨迹的请求。该查询可包括一个或多个关键词,并且可以是标识一个或多个轨迹或与匹配关键词的轨迹相关联的用户的请求。在某些实现中,该查询还可包括描述查询的时间约束的时间标识符。例如,第一用户可以请求与关键词“午餐”相关联并与上午11点到下午2点之间的时间相关联的轨迹。标识响应于该查询的一个或多个轨迹(903)。查询引擎210可从例如全局轨迹存储144的轨迹中标识该轨迹。在某些实现中,通过匹配一个或多个关键词或与该查询相关联的时间标识符来标识一个或多个轨迹。另外,没有轨迹响应于该查询时,可以标识无轨迹。在其他实现中,可使用与第一用户相关联的位置标识符来进一步标识一个或多个轨迹。例如,第一用户可以位于华盛顿州雷蒙德市。查询引擎210可以标识在华盛顿州雷蒙德市中或其附近的轨迹,或更具体地,第一用户在雷蒙德市的实际位置。向第一用户呈现经标识的轨迹中的至少一个(905)。该经标识的轨迹中的至少一个可由轨迹服务器142的查询引擎210来呈现。可将该轨迹呈现给例如与发起查询的第一用户相关联的轨迹应用118a或118b。图10示出了在其中可实现各示例实施例和各方面的示例性计算环境。计算系统环境只是合适的计算环境的一个示例,并非旨在对使用范围或功能提出任何限制。可以使用多种其它通用或专用计算系统环境或配置。可适合使用的公知的计算系统、环境和/或配置的示例包括但不限于个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、网络个人计算机(PC)、微型计算机、大型计算机、嵌入式系统、包括任何以上系统或设备的分布式计算环境等。可以使用诸如程序模块等可由计算机执行的计算机可执行指令。一般而言,程序模块包括执行特定任务或实现特定抽象数据类型的例程、程序、对象、组件、数据结构等。也可使用其中任务由通过通信网络或其他数据传输介质链接的远程处理设备执行的分布式计算环境。在分布式计算环境中,程序模块和其他数据可以位于包括存储器存储设备的本地和远程计算机存储介质中。参考图10,用于实现此处所描述的各方面的示例性系统包括计算设备,诸如计算设备1000。在其最基本的配置中,计算设备1000通常包括至少一个处理单元1002和存储器1004。取决于计算设备的确切配置和类型,存储器1004可以是易失性的(如随机存取存储器(RAM))、非易失性的(诸如只读存储器(ROM)、闪存等)或两者的某种组合。该最基本配置在图10中由虚线1006来示出。 计算设备1000可以具有附加特征或功能。例如,计算设备1000还可包含附加存储(可移动和/或不可移动),包括但不限于磁盘、光盘或磁带。这样的附加存储在图10中由可移动存储1008和不可移动存储1010示出。计算设备1000通常包括各种计算机可读介质。计算机可读介质可以是可由设备1000访问的任何可用介质,并且包括易失性和非易失性介质、可移动和不可移动介质。计算机存储介质包括以用于存储诸如计算机可读指令、数据结构、程序模块或其他数据之类的信息的任何方法或技术实现的易失性和非易失性、可移动和不可移动介质。存储器1004、可移动存储1008和不可移动存储1010都是计算机存储介质的示例。计算机存储介质包括但不限于,RAM、ROM、电可擦除可编程只读存储器(EEPR0M)、闪存或其它存储器技术、CD-ROM、数字多功能盘(DVD)或其它光存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或可用于存储所需信息且可以由计算设备1000访问的任何其它介质。任何这样的计算机存储介质都可以是计算设备1000的一部分。计算设备1000可包含允许该设备与其它设备通信的通信连接1012。计算设备1000也可包括输入设备1014,如键盘、鼠标、笔、语音输入设备、触摸输入设备等等。也可包括输出设备1016,如显示器、扬声器、打印机等等。所有这些设备在本领域是众知的并且不必在此详细讨论。应该理解,此处描述的各种技术可以结合硬件或软件,或在适当时结合两者的组合来实现。因此,当前公开的主题的方法和装置或其特定方面或部分可采取包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(S卩,指令)的形式,其中当程序代码被加载到诸如计算机等机器内并由其执行时,该机器成为用于实现当前所公开的主题的装置。尽管示例性实现可涉及在一个或多个独立计算机系统的上下文中利用当前所公开的主题的各方面,但本主题不受此限制,而是可以结合任何计算环境,诸如网络或分布式计算环境来实现。此外,当前所公开的主题的各方面可在多个处理芯片或设备中或跨多个处理芯片或设备实现,且存储可类似地跨多个设备来实现。这些设备可能包括例如个人计算机、网络服务器、以及手持式设备。尽管用结构特征和/或方法动作专用的语言描述了本主题,但可以理解,所附权利要求书中定义的主题不必限于上述具体特征或动作。更确切而言,上述具体特征和动作 是作为实现权利要求的示例形式公开的。
权利要求
1.ー种方法,包括 存储多个轨迹,其中每个轨迹包括多个位置标识符和时间标识符, 通过网络在计算设备处从用户接收查询; 由所述计算设备标识响应于所述查询的一个或多个轨迹;以及 通过所述网络向所述用户呈现经标识的轨迹中的至少ー个。
2.如权利要求I的方法,其特征在于,所指定的位置标识符被指定为所述轨迹的起始和每个轨迹的结束。
3.如权利要求I的方法,其特征在于,轨迹包括轨迹位置标识符的开始和轨迹位置标识符的结束。
4.如权利要求I的方法,其特征在于,轨迹具有与其相关联的元数据。
5.如权利要求I的方法,其特征在于,位置标识符具有与其相关联的元数据。
6.如权利要求I所述的方法,其特征在于,还包括将轨迹聚类为多个类别。
7.ー种方法,包括 通过网络在计算机设备处接收第一轨迹和约束; 通过所述网络标识响应于所述约束并且与所述计算机设备处的所述第一轨迹不同的第二轨迹;以及 确定所述第一和所述第二轨迹之间的相似度。
8.如权利要求7的方法,其特征在于,所述约束是以下之一所述第一轨迹是所述第二轨迹的子集或超集,所述第一轨迹与所述第二轨迹具有相同的起始位置标识符,或者所述第一轨迹与所述第二轨迹具有相同的结束位置标识符。
9.如权利要求7的方法,其特征在于,每个轨迹包括多个位置标识符,并且确定所述第一和所述第二轨迹之间的所述相似度包括 定义所述第一轨迹的每个位置标识符周围的区域;以及 确定所述第二轨迹的位于已定义区域之一以内的位置标识符的百分比。
10.如权利要求9的方法,其特征在于,所述已定义区域是圆,并且定义每个位置标识符周围的区域包括,对于所述第一轨迹的每个位置标识符 确定所述位置标识符与前ー个位置标识符之间的距离; 基于所确定的距离来确定已定义区域的半径;以及 定义具有所确定的半径的所述位置标识符周围的区域。
11.如权利要求9的方法,其特征在于,所述已定义区域是矩形,并且定义每个位置标识符周围的区域包括,对于所述第一轨迹的每个位置标识符 确定所述位置标识符与前ー个位置标识符之间的距离;以及 基于所确定的距离来确定在所述位置标识符处的所述矩形的宽度。
12.如权利要求11的方法,其特征在于,所述宽度是基于所确定的距离的函数。
13.—种系统,包括 存储多个轨迹的至少ー个服务器设备,每个轨迹包括多个位置标识符并与用户相关联;以及 执行应用的客户端设备,其中所述应用 基于所述客户端设备的ー个或多个位置来记录与所述用户相关联的ー个或多个轨迹; 向所述至少一个服务器设备提供ー个或多个轨迹以供存储;以及 通过应用编程接ロ在已存储的多个轨迹上执行ー个或多个轨迹操作。
14.如权利要求13所述的系统,其特征在于,所述轨迹操作包括查询、聚类、和比较轨迹。
15.如权利要求13所述的系统,其特征在于,所述应用或服务器基于所述客户端设备是固定的的时间量、或者基于其他应用专用标准来确定所生成的轨迹的开始和结束。
全文摘要
计算设备标识与第一用户相关联的轨迹。每个轨迹可包括位置标识符。该计算设备对经标识的轨迹聚类以生成该第一用户的合成轨迹。该计算设备标识与该合成轨迹相似的至少一个轨迹。该至少一个轨迹可以与除第一用户以外的用户相关联。该计算设备通过网络提供关于与合成轨迹相似的经标识的至少一个轨迹的信息。
文档编号G06Q30/02GK102696049SQ201080060703
公开日2012年9月26日 申请日期2010年12月31日 优先权日2010年1月7日
发明者C·A·特克卡瑟, D·B·特里, G·阿南塔纳拉亚南, I·莫霍梅德, M·哈里德森 申请人:微软公司
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1