详细描述
通常,此处所描述的一个或多个实现涉及基于位置历史确定用户相似性。将在以下段落中结合附图1-4更为详细地描述用于基于位置历史确定用户相似性的各种技术的一个或多个实现。
此处所描述的各种技术的实现可以用众多通用或专用计算系统环境或配置来操作。适用于此处所描述的各种技术的公知的计算系统、环境和/或配置的示例包括,但不限于,个人计算机、服务器计算机、手持式或膝上型设备、多处理器系统、基于微处理器的系统、机顶盒、可编程消费电子产品、网络PC、小型机、大型计算机、包括上述系统或设备中的任一个的分布式计算环境等。
此处所描述的各种技术可以在诸如程序模块等由计算机执行的计算机可执行指令的一般上下文中实现。一般而言,程序模块包括执行特定的任务或实现特定的抽象数据类型的例程、程序、对象、组件、数据结构等。此处所描述的各种技术还可在其中任务由通过例如硬连线链路、无线链路或其组合等通信网络链接的远程处理设备执行的分布式计算环境中实现。在分布式计算环境中,程序模块可以位于包括存储器存储设备在内的本地和远程计算机存储介质中。
图1示出其中可结合和实践此处所描述的各种技术的计算系统100的示意图。虽然计算系统100可以是如上所述的常规台式或服务器计算机,但可以使用其它计算机系统配置。
计算系统100可包括中央处理单元(CPU)21、系统存储器22和将包括系统存储器22在内的各种系统组件耦合到CPU 21的系统总线23。虽然图1中只示出了一个CPU,但应当理解,在一些实现中计算系统100可包括超过一个CPU。系统总线23可以是几种类型的总线结构中的任何一种,包括存储器总线或存储控制器、外围总线、以及使用各种总线体系结构中的任一种的局部总线。作为示例,而非限制,这样的体系结构包括工业标准体系结构(ISA)总线、微通道体系结构(MCA)总线、增强型ISA(EISA)总线、视频电子技术标准协会(VESA)局部总线和外围部件互连(PCI)总线(也称为小背板(Mezzanine)总线)。系统存储器22可包括只读存储器(ROM)24和随机访问存储器(RAM)25。基本输入/输出系统(“BIOS”)26可以被存储在ROM24中,它包含有助于例如在启动期间在计算机系统100内的各个元件之间传送信息的基本例程。
计算系统100还可包括用于对硬盘进行读写的硬盘驱动器27、用于对可移动磁盘29进行读写的磁盘驱动器28、以及用于对诸如CD-ROM或其它光介质等可移动光盘31进行读写的光盘驱动器30。硬盘驱动器27、磁盘驱动器28以及光盘驱动器30可分别通过硬盘驱动器接口32、磁盘驱动器接口33和光盘驱动器接口34连接至系统总线23。驱动器及其关联的计算机可读介质可以向计算系统100提供对计算机可读指令、数据结构、程序模块和其它数据的非易失性存储。
虽然此处将计算系统100描述为具有硬盘、可移动磁盘29和可移动光盘31,但本领域技术人员应当理解,计算系统100还可以包括可由计算机访问的其它类型的计算机可读介质。例如,这种计算机可读介质可包括计算机存储介质和通信介质。计算机存储介质可包括以用于存储诸如计算机可读指令、数据结构、程序模块或其它数据等信息的任何方法或技术实现的易失性和非易失性、以及可移动和不可移动介质。计算机存储介质还可包括,RAM、ROM、可擦可编程只读存储器(EPROM)、电可擦可编程只读存储器(EEPROM)、闪存或其它固态存储器技术、CD-ROM、数字多功能盘(DVD)或其它光盘存储、磁带盒、磁带、磁盘存储或其它磁性存储设备、或能用于存储所需信息且可以由计算系统100访问的任何其它介质。通信介质能以诸如载波或其它传输机制等已调制数据信号来体现计算机可读指令、数据结构、程序模块或其它数据,并且包括任何信息传递介质。术语“已调制数据信号”可指的是以在信号中编码信息的方式设定或更改其一个或多个特征的信号。作为示例而非限制,通信介质包括有线介质,诸如有线网络或直接线连接,以及无线介质,诸如声学、射频、红外线和其他无线介质。上述的任意组合也可以包含在计算机可读介质的范围内。
多个程序模块能存储在硬盘27、磁盘29、光盘31、ROM 24或RAM 25上,包括操作系统35、一个或多个应用程序36、位置相似性应用程序60、程序数据38和数据库系统55。操作系统35可以是能控制联网的个人或服务器计算机的操作的任何合适的操作系统,如Windows
XP、Mac OS
X、Unix变型(例如Linux
和BSD
)等。位置相似性应用程序60可作为能使用户基于两个或多个用户的位置历史以确定他们的相似性的应用程序。位置相似性应用程序60将参考图2-4在以下段落中更详细地描述。
用户可通过诸如键盘40和定点设备42等输入设备向计算系统100中输入命令和信息。其它输入设备可以包括话筒、操纵杆、游戏手柄、圆盘式卫星天线、扫描仪等等。这些和其它输入设备可通过耦合到系统总线23的串行端口接口46连接到CPU 21,但是可以通过诸如并行端口、游戏端口或通用串行总线(USB)等其它接口连接。全球定位系统(GPS)设备61可通过串行端口接口46连接到计算系统100。GPS设备61可包括关于用户已经途经的位置的位置数据。位置数据可上传至计算系统100,经由串行端口接口和系统总线23而至系统存储器22或硬盘驱动器27以供存储。监视器47或其它类型的显示设备也可经由接口,诸如视频适配器48,连接至系统总线23。除监视器47之外,计算系统100还可包括其它外围输出设备,如扬声器和打印机。
此外,计算系统100可以使用到一个或多个远程计算机的逻辑连接在联网环境中工作。逻辑连接可以是办公室、企业范围计算机网络、内联网和因特网中常见的任何连接,如局域网(LAN)51和广域网(WAN)52。
当在LAN联网环境中使用时,计算系统100可通过网络接口或适配器53连接到局域网51。当在WAN联网环境中使用时,计算系统100可包括调制解调器54、无线路由器或用于通过诸如因特网等广域网52来建立通信的其它装置。或为内置或为外置的调制解调器54可经由串行端口接口46连接到系统总线23。在联网环境中,就计算系统100所描绘的程序模块或各其部分可被储存在远程存储器存储设备中。能够理解,所示的网络连接是示例性的,并且可以使用在计算机之间建立通信链路的其他手段。
应该理解,此处描述的各种技术可以结合硬件、软件或两者的组合来实现。因此,各种技术或其某些方面或部分,可以采用包含在诸如软盘、CD-ROM、硬盘驱动器或任何其它机器可读存储介质等有形介质中的程序代码(即,指令)的形式,其中,当程序代码被加载至诸如计算机等机器并由其运行时,该机器成为用于实现该各种技术的装置。在程序代码在可编程计算机上执行的情况下,计算设备可包括处理器、该处理器可读的存储介质(包括易失性和非易失性的存储器和/或存储元件)、至少一个输入设备、以及至少一个输出设备。可以实现或利用此处所描述的各种技术的一个或多个程序可以使用应用程序编程接口(API)、可重用控件等。这样的程序可以用高级过程语言或面向对象编程语言来实现,以与计算机系统通信。然而,如果需要,程序可以用汇编语言或机器语言来实现。在任一情况下,语言都可以是编译的或解释的语言,并与硬件实现相结合。
图2示出根据此处所描述的各种技术的一个或多个实现的用于创建等级图以模拟一个或多个用户的位置历史的方法的流程图。以下方法200的描述是根据此处所描述的各种技术的一个或多个实现参考图1的计算系统100来作出的。此外,应当理解,尽管操作流程图指示了操作执行的特定次序,但在某些实现中,这些操作的特定部分可按照不同的次序执行。在一个实现中,用于创建等级图以模拟一个或多个用户的位置历史的过程可由位置相似性应用程序60来执行。
在步骤210,位置相似性应用程序60可从计算网络中的一个或多个用户处接收一个或多个GPS日志,所述GPS日志可存储于GPS设备61、系统存储器22、硬盘驱动器27、或相似性存储器存储设备。GPS日志可包括GPS位置信息,例如每个被用户所访问的位置的一对纬度和经度坐标,以及指示每个坐标对何时被访问的对应时间戳。
在步骤220,位置相似性应用程序60由从两个或多个用户的GPS日志编制(formulate)出GPS路径或第一位置历史。第一位置历史可描述用户已经途经的路径,并包括根据时间戳而按时间先后排列的纬度和经度坐标对的列表的显示。在一个实现中,位置相似性应用程序60可从用户的GPS日志中提取每个纬度和经度坐标对(GPS坐标)以及这些坐标对的时间戳。位置相似性应用程序60然后可将每个纬度和经度坐标对表示为图或地图上的一个节点。位置相似性应用程序60可以箭头连接图上的每个节点,从而箭头方向为从一个节点到用户所访问的下一节点。节点也可包括对应于坐标的时间戳。
在步骤230,位置相似性应用程序60可确定一个或多个GPS日志的停留点。停留点可表示在用户可能停留了超过特定时间间隔的地理区域的中心的虚拟位置。停留点的确定可依赖于距离阈值(D阈值)和时间阈值(T阈值)。在一个实现中,停留点可被认为是由一组节点所表征的虚拟位置,其中每个节点之间的距离可小于距离阈值,而所述组中第一节点和最后节点的时间间隔可大于时间阈值。在一个实现中,停留点可通过找出所述节点组的纬度坐标的平均值以及所述节点组的经度坐标的平均值来生成。停留点可被视为具有和所述节点组的纬度坐标平均值和经度坐标平均值相同的纬度坐标和经度坐标。
在一个实现中,每个停留点(Si)可被一组包括纬度坐标、经度坐标、到达时间、以及离开时间的数据所描述,或者S=[纬度坐标(Lat),经度坐标(Lngt),到达时间(arv),离开时间(dep)],其中
停留点纬度
停留点到达时间(arv)=pm.T
停留点离开时间(dep)=pn.T
此处,P可表示GPS点的集合P={p1,p2,…,pn},且每个GPS点pi∈P可包括一个纬度(pi.Lat)、一个经度(pi.Lngt)、和一个时间戳(pi.T)。
停留点到达和离开时间可表示用户到达和离开该停留点的时间。典型地,当个人保持静止的时间超过时间阈值时(例如,当个人进入了建筑物并丢失卫星信号一段时间直至返回户外),或当用户在特定的地理空间范围内徘徊的时间周期超过了时间阈值时(例如,当个人在户外旅行并被周围环境所吸引时),可获得停留点。
在步骤240,位置相似性应用程序60可用在步骤230所获得的停留点以编制第二位置历史。第二位置历史可包括用户可能访问超过一时间间隔的停留点的记录。在一个实现中,第二位置历史可包括可在步骤230所确定的停留点的序列。该第二位置历史可描述位置以及用户访问一个或多个位置的顺序。第二位置历史(LocH)可被定义为:
其中s
i∈S,并且Δt
i=s
i+1.arvT-s
i.levT
其中si可表示特定的停留点,而Δti可表示用户从一个停留点到下一个停留点所用的时间量。
在步骤250,位置相似性应用程序60可作为在步骤230所确定的所有停留点确定一个或多个群集。每个群集可包括一个或多个可密集地填充在一个地理区域内的停留点。在一个实现中,位置相似性应用程序60可收集存储在存储器中的每个GPS日志的所有停留点,并将该停留点的集合提供给基于密度的群集算法以基于数据集中的停留点的地理空间区域来创建一个或多个等级群集。
在一个实现中,第一群集可包括围绕一大集合区域的最大数量的停留点。第一群集可作为等级群集的最高层的部分。所述基于密度的群集算法可进一步在第一群集中定位一个或多个子群集。每个子群集可包括可作为第一群集的部分的一个或多个停留点;然而,可作为子群集的部分的停留点可包括比在第一群集中的停留点更为密集地填充的停留点。所述基于密度的群集算法可依靠一个或多个停留点的接近度来在群集中定位附加的子群集。每个子群集可表示其群集在等级群集中所在层的下方一层。在一个实现中,每个子群集可表示比其可作为其中部分的群集更小的地理区域。
在步骤260,位置相似性应用程序60可基于在步骤250所确定的群集和子群集编制等级框架。该等级框架F可被定义为在一个或多个层L上的群集C(以及子群集)的集合,从而F=(C,L),其中L={l1,l2,…,ln},其中cij表示在层li∈L上的停留点S的第j个群集,而Ci是层li上的群集的集合。在一个实现中,来自各个用户或GPS日志的停留点可被分配给一个或多个层L上的一个或多个群集C。
例如,停留点的第一群集可包括其内部的一个或多个子群集。此处,第一群集可被视为等级框架的顶(高)层,而第一群集内的各子群集可被视为在所共享的等级框架的同一层上,该层可作为等级框架的第一群集层下方的一层。从等级框架的顶部到底部,群集的集合范围减小,而集合区域的粒度可从粗略增加为细致。该框架的等级特征可用于以不同相似性等级来区分人。因此,共享等级框架的较低层上的类似第二位置历史的用户要比共享较高层上的第二位置历史的用户更为相关联。共享等级框架的示例被示于图3。
在步骤270,位置相似性应用程序60可基于每个用户的等级框架(F)和第二位置历史(LocH)以构建个人等级图(HG)。该个人等级图HG可包括描述根据用户的第二位置历史该用户已经途经的群集或子群集的一个或多个图。在一个实现中,位置相似性应用程序60可用等级框架的每个层交叉引用用户的第二位置历史。位置相似性应用程序60可将第二位置历史中的用户停留点映射至其在等级框架中的各层中的各自群集或子群集。群集或子群集然后可包括用户的停留点,而一个边可连接两个群集或子群集以表示用户可访问各个群集或子区级(地理区域)的顺序。个人等级图可包括一个或多个图,从而每个图对应等级框架的一个层。给定用户的第二位置历史和等级框架,该用户的等级图可被编制为一组图,其描述HG={Gi=(Ci,Ei),1<i≤|L|},其中每个层li ∈L,Gi∈HG,而一组顶点或群集ci以及边Ei可连接cij∈Ci。
图3示出了表示根据此处所描述的各种技术的一个或多个实现的用于创建等级图的过程300的示意图。以下过程300的描述是根据此处所描述的各种技术的一个或多个实现参考图1的计算系统100以及图2的方法200来作出的。应当理解,尽管过程300指示了操作执行的特定次序,但在某些实现中这些操作的特定部分可按照不同的次序执行。另外,过程300可对应图2中所例示的某些步骤。
在某些实现中,过程300可包括来自两个或更多个用户的两个或更多个GPS日志GL、一个或多个群集cij、一个或多个停留点S、一个等级框架F、一个或多个等级图HG、一个或多个第二位置历史、以及一个或多个层l。图3示出根据图2中所描述的方法200为两个用户所创建的等级框架和两个用户等级图HG。
参考步骤210,GPS日志GL可包括一个或多个用户的一个或多个GPS日志GL。在一个实现中,GPS日志GL可从GPS设备61处下载,并存储在可被计算系统100所访问的存储器存储设备中。
参考步骤230,位置相似性应用程序60可由GPS日志GL在一图上创建一个或多个节点以表示停留点S。如图3中所示,停留点S可由节点来表示。在一个实现中,位置相似性应用程序60可为每个用户的GPS日志GL确定停留点S。
参考步骤250,位置相似性应用程序60可用一基于密度的群集算法来确定一个或多个群集cij。位置相似性应用程序60可通过将一个或多个停留点包括在一个圆内来在图上指示群集cij。群集cij中的第j个变量可被编号以区分在共享等级框架F的特定层li上的各个不同群集,且第i个变量可对应于其中可放置群集cij的层li。在群集cij中,位置相似性应用程序60可找出一个或多个子群集c(i+1)j,其可包括比原群集cij中的停留点S的彼此距离更接近的一组停留点S。在群集cij中的每个子群集c(i+1)j可指示在共享等级框架F或等级图HG中的一个新级别或层li。每个子群集ci(j+1),如果其自身内部包括两个或多个子群集c(i+2)j,则其也可被视为群集c(i+1)j。例如,在过程300中,群集c1可表示群集cij的最大的地理区域(层li=1),因为其包括了来自每个GPS日志GL的所有停留点S。子群集c2可表示群集c1的子群集(层li=2)。子群集c3然后可表示子群集c2的子群集(层li=3)。群集cij的每个层可表示共享等级框架F中的一级或一层,或可表示可作为等级图HG的部分的独立图。层li可对应于停留点S的接近度,从而层1(c1)可对应较大的地理区域,而较低层(2+级)可对应逐渐更小的地理区域。
参考步骤260,位置相似性应用程序60可通过根据群集cij可对应的层来表示群集cij,从而编制共享等级框架F。例如,群集从c10可对应群集c1、群集c20和群集c21可对应群集c2,而群集c30、c31、c32、c33及c34可对应上述的群集c3。可在等级框架F的最低层li上的各个群集cij中表示停留点S。
参考步骤270,位置相似性应用程序60可为特定用户编制等级图HG。在一个实现中,位置相似性应用程序60可根据用户的GPS日志GL从等级框架F中提取用户的群集cij和停留点S。在等级框架F的不同层li上的每个群集cij可对应不同的图Gi。
在一个实现中,位置相似性应用程序60可由特定用户的GPS日志GL来确定第二位置历史LocH。例如,可通过将用户1的GPS日志GL1的停留点S组织为时间顺序并用指向箭头连接每个停留点来确定用户1的第二位置历史LocH1。然后可通过用将第二位置历史LocH1和等级框架F中的群集cij(其包括第二位置历史LocH1的停留点)相映射来确定等级图HG1。第二位置历史LocH1的停留点S部分可按照在等级框架F中列出的群集cij来分组。等级框架F的每个层li可对应等级图HG的一个图Gi。
图4示出根据此处所描述的各种技术的一个或多个实现的用于基于位置历史确定两个用户之间的用户相似性的方法400的流程图。以下方法400的描述是根据此处所描述的各种技术的一个或多个实现参考图1的计算系统100以及图3的过程300来作出的。此外,应当理解,尽管操作流程图指示了操作执行的特定次序,但在某些实现中,这些操作的特定部分可按照不同的次序执行。在一个实现中,可由位置相似性应用程序60来执行用于基于位置历史而确定用户相似性的方法。
在步骤410,位置相似性应用程序60可从两个用户(由相似性应用程序60来为其确定相似性)的等级图HG中的各图中提取一系列群集c
ij或子群集。在一个实现中,每个用户的等级图HG可提供用户的第二位置历史LocH的有效表示,其可暗示基于不同范围的地理空间的一系列用户移动行为。给定如图3中所示的两个用户(
u 1 和u
2)的HG
1和HG
2,位置相似性应用程序60可首先定位在每个层l
i∈L上被两个用户共享的的一个或多个相同图顶点
其中
然后,在各个层li∈L上,位置相似性应用程序60可基于相同图顶点
来为两个用户(u1和u2)编制位置历史序列。相同图顶点
可对应两个用户可共享的群集c
ij。
位置相似性应用程序60然后可为每个用户的等级图HG的每个图获得匹配图顶点
的群集c
ij。群集c
ij(及子群集)的序列可被组织为根据所有群集c
ij被各用户途经的时间顺序。群集c
ij可根据群集c
ij内的停留点S的时间戳以时间顺序组织成群集c
ij(或子群集)的序列。位置相似性应用程序60然后可计算按时间排序的每个群集c
ij对之间流逝的时间量,并为各用户在群集c
ij的序列中存储该信息例如,序列
可表示用户u
k在等级图HG
k的第i层上的序列,过渡时间Δt
i可表示在这些序列的连续项之间的时间间隔,而ΔS
ij可表示在群集c
ij内的停留点的数量。一个用户(u1和u2)的序列的示例列出如下:
此处,两个用户的序列变得可比较,因为可使用群集cij而非停留点S来表示序列中的项。
在步骤420,位置相似性应用程序60可将在步骤410获得的位置历史序列分割成若干子序列。在一个实现中,位置相似性应用程序60可将序列分割,因为长度过长的相似序列的数量可能难以定位,而较短长度的子序列提供了在两个用户之间定位相似性的更有效媒介。在一个实现中,如果序列
的连续群集c
ij之间的过渡时间Δt
i超过特定的时间周期t
p,例如24小时,则位置相似性应用程序60可将序列
分割成两个序列。在一个实现中,位置相似性应用程序60可继续分割用户的原始位置历史序列多次,直到每个更短长度的位置历史序列不包含连续群集c
ij之间的超过特定周期t
p的过渡时间。
在步骤430,位置相似性应用程序60可根据步骤420所划分的子序列找出两个用户之间的一个或多个相似子序列。在一个实现中,位置相似性应用程序60可作为可能具有相同时间间隔的相似子序列的一个或多个用户(u
p,u
p+1,u
p+2,…)找出相似子序列。例如,一对子序列
和
可包括:
其中
是一群集c
ij,
是层l
i上的用户u
p和u
q所共享的图顶点,m
i表示用户连续访问群集a
j的次数,而Δt
j代表用户从a
j行进到a
j+1的过渡时间。当,并且仅当子序列
和
满足以下条件时,位置相似性应用程序60可确定它们是相似的:
1.即在两个序列的相同位置的节点共享相同的群集ID;
2.
其中p是预定义的比率阈值,其可被称为时间约束。其表示两个用户在相同区域之间有类似的过渡时间。
如果两个条件都为真,则可按如下所列出的方式得到包含在
和
中的类似序列
在步骤440,位置相似性应用程序60可标识两个用户的相似子序列sseq,其具有最大数量的共同群集cij或子群集。具有最大数量的共同群集cij或子群集的两个用户的相似子序列sseq可被称为最大长度相似子序列。在一个实现中,在确定两个用户可能在两个子序列中共有的最大数量的群集cij或子群集时,位置相似性应用程序60可采用两个操作来确定最大长度相似子序列:子序列可扩展和子序列删减。在一个实现中,位置相似性应用程序60可首先标识两个用户的一个或多个子序列,其可包括被各用户以相同的时间顺序所途经的两个群集或子群集(1-长度相似子序列)。在扩展操作中,位置相似性应用程序60然后可将每个m-长度相似子序列扩展为(m+1)-长度相似子序列。然后,在删减操作中,位置相似性操作60可从扩展操作所生成的候选中选择最大长度相似子序列,并将其它相似子序列从可能最大长度相似子序列的列表中移除。该扩展和删减操作可交替且迭代地实施直至子序列中每个群集cij被扫描。
例如,位置相似性应用程序60开始可从在步骤420所获得的所有经分割子序列中找出1-长度的相似子序列。该1-长度相似子序列可包括被两个用户(u1和u2)连续访问的两个群集cij。在定位了一个或多个1-长度相似子序列后,位置相似性应用程序60可将该1-长度子序列添加到可能最大长度相似子序列的列表。使用所定位的1-长度子序列,位置相似性应用程序60然后可比较所定位的1-长度相似子序列的额外长度以确定一个2-长度相似子序列是否存在于该组1-长度相似子序列中(扩展操作)。如果在原始的1-长度相似子序列中找到了任何2-长度相似子序列,则位置相似性应用程序60可将1-长度相似子序列从其可能最大长度相似子序列的列表中移除(删减操作),并将该相似2-长度相似子序列添加到列表。位置相似性应用程序60然后可继续交替且迭代地执行扩展和删减操作,直至标识出最大长度相似子序列。
在步骤450,位置相似性应用程序60可确定停留点S或群集c
ij的热门性(popularity)。在一个实现中,位置相似性应用程序60可利用逆文档频率(IDF)方法来量化包含在相似子序列中的每个地理空间区域(停留点S或群集c
ij)的热门性。群集c
ij的IDF可被定义为
其中n
ij定义可能已访问群集c
ij的用户数量,U定义网络中的用户总数。为了使用IDF方法,位置相似性应用程序60可将每个群集c
ij看作一个文档,而已访问每个群集c
ij的用户可标识文档中的重要术语。如果已经访问一区域(群集c
ij)的用户数量非常大,该区域的
将变得非常小。每个位置的IDF值可被用于评估特定群集c
ij的重要性或权重。
例如,许多用户可访问包括中国长城的群集cij。然而,对于中国长城的访问可能不提供关于两个用户之间的位置相似性的有关数据,因为中国长城是非常热门的位置,许多带有大量位置历史或广泛兴趣的用户会访问它。中国长城的声望会吸引许多用户,因此,该区域可能不提供关于所述两个用户的相似性得分的有价值信息。然而,如果两个用户共享的位置历史包括一个或多个可能并不知名的位置,或不能被许多人访问的位置,则这两个用户可能共享了更多的相似兴趣。
在步骤460,位置相似性应用程序60可为可作为两个或多个用户的相似位置子序列sseq的部分的每个群集c
ij确定群集相似性得分ss
q。所述每个群集c
ij的群集相似性得分ss
q可包括两部分的相乘
,其中(min(m
p,m
q))可表示两个用户在相似位置子序列中连续访问群集c
ij的次数。另外,依赖于长度的因子β可被用于区分带有不同长度len的相似子序列的重要性,从而β=2
len-1。换言之,两个用户的位置历史之间匹配的相似位置子序列越长,则两个用户可能越相关,因此,可将更高的权重或高得分奖励给该相似子序列。
在步骤470,位置相似性应用程序60可为层l上的每个相似子序列sseq确定特定层上的各子序列的层相似性得分ssl。两个用户在层上的层相似性得分ssl可包括在特定层上的群集相似性等分ssq的总和。在一个实现中,依赖于层的因子α可被用于权重化在不同层上找到的相似子序列的重要性。例如,位置相似性应用程序60可使用α=2i-1。换言之,共享较低层(带有更精致的粒度)上地点的子序列的人可能比共享较高层(带有粗略的粒度)上地点的子序列的人更为相关。
在步骤480,位置相似性应用程序60可然后将每个层的层相似性得分ssl添加到个人等级图HG以确定用户的总体相似性得分ssp,q。
在步骤490,位置相似性应用程序60然后可归一化所计算的总体相似性得分ssp,q以向具有各种范围的GPS日志的用户提供清楚结果。在一个实现中,位置相似性应用程序60可将总体相似性分数ssp,q除以他们的数据集的范围的相乘(|Sp|×|Sp|)。在新的用户网络中,某些用户可比其它用户具有更多的提供给应用程序的GPS日志。考虑所提供的GPS信息量,相对于提供较少GPS日志的用户,位置相似性应用程序60更有可能找到被提供许多GPS日志的两个用户所访问的相似位置。若在两个用户的各自GPS日志中列出更多的位置,则该两个用户更有可能访问更多相似位置,不过,在两个用户之间的相似位置的增大的可能性可能不精确反映两个用户间的实际相似性。对数据归一化可允许每个用户被等同地评估,即使某些用户比其它用户提供了更多的GPS日志。如果位置相似性应用程序60不归一化数据,则将更多GPS日志提供给位置相似性应用程序60的用户可能被持续地推荐给其它人,即使他们可能并非最佳候选。
尽管用专门描述结构特征和/或方法动作的语言描述了主题,但是应当理解,在所附权利要求书中限定的主题并不一定局限于上述特定的特征或动作。更确切而言,上述具体特征和动作是作为实现权利要求的示例形式公开的。