一种针对GIS数据的建模方法技术领域
本申请涉及轨迹数据的应用领域,尤其是一种针对GIS数据的建模方法。
背景技术
近年来,随着搭载GIS传感器的智能设备在日常生活中的普及,对轨迹数据的研究
也越来越火热。其中,轨迹相似度作为地理推荐、行程预测等基础应用的基本指标,其计算
方法是完成基于位置的服务的基本技术。
但是,现在技术中,轨迹相似度的计算方法大都只是粗粒度地计算轨迹间的形状
相似度,很少将轨迹上附着的语义信息考虑在内。
发明内容
本申请提供一种针对GIS数据的建模方法,解决现有技术中,计算轨迹相似度未考
虑语义信息的问题。
一种针对GIS数据的建模方法,包括以下步骤:
获取GIS数据,从GIS数据中检测出带有语义信息的逗留点;
建立包含带有语义信息逗留点的路网集合GST(VVST,EEST,其中,V为节点的集合,
E为边的集合,VST为逗留点组成的节点集合,EST为两个逗留点连成的边以及一个逗留点与
其他节点连成的边的集合,路网集合GST中包含语义轨迹a和语义轨迹b;
计算语义轨迹a和语义轨迹b中边的公共区间长度|sim(ea,i,eb,j)|,其中,ea,i表示
语义轨迹a中的第i条边,e,表示语义轨迹b中的第j条边;
将语义轨迹a和语义轨迹b中每一对边的公共区间的长度相加,得到:
S i m ( STN a , STN b ) = Σ i = 1 n Σ j = 1 m | s i m ( e a , i , e b , j ) | max { | S a | , | S b | } ; ]]>
其中,STNa表示语义轨迹a,STN表示语义轨迹b,|Sa|为语义轨迹a中逗留点的总长
度,|Sb|为语义轨迹b中逗留点的总长度;
计算语义轨迹a和语义轨迹b中基于逗留点的两条边的相似度Sims
基于语义轨迹a和语义轨迹b中不同边之间的距离,计算基于距离的正则化相似度
Sim
计算语义轨迹a和语义轨迹b中两条边之间的相似度:
simw(ea,i,eb,j)=βsimd(ea,i,eb,j)+(1-β)sims(ea,i,eb,j);
其中,0≤β≤1是权重系数;
再计算语义轨迹a和语义轨迹b的第一相似度为:
将语义轨迹b的时间线在每一步中平移Δt,再计算平移后语义轨迹a和语义轨迹b
的第二相似度:
Sim W , r ( STN a , STN b ) = Δ T - r × Δ t Δ T Sim W ( STN a , STN b r ) ; ]]>
其中,ΔT=max(|ea,1.tin-eb,m.tout|,|eb,1.tin-ea,n.tout|),n为语义轨迹a中边
的总数,m为语义轨迹b中边的总数,ea,1.tin为经过边ea,开始节点的时间戳,eb,1.tin为经过
边e,开始节点的时间戳,eb,m.tout为经过边eb,m结束节点的时间戳,ea,n.tout为经过边ea,n
结束节点的时间戳,在第r步平移了r×Δt的时间线标记为
根据第一相似度和第二相似度,得到轨迹a和轨迹b的最大加权相似度:
本申请的有益效果是,由于本申请建立包含带有语义信息逗留点的路网集合,计
算语义轨迹a和语义轨迹b中边的公共区间长度、基于逗留点的两条边的相似度和基于距离
的正则化相似度,再计算语义轨迹a和语义轨迹b中两条边之间的相似度,根据边之间的相
似度,计算语义轨迹a和语义轨迹b的第一相似度和第二相似度,最终得到轨迹a和轨迹b的
最大加权相似度。因此,本申请在计算轨迹间的相似度时,使用了语义信息,使计算结果更
精准。
附图说明
图1为实施例1中某种路网的示意图;
图2为实施例1中某种路网轨迹的形状示意图;
图3为实施例1中某种标记了逗留点的路网示意图;
图4为图3中语义轨迹所对应的时间线示意图;
图5为实施例1中语义轨迹a和语义轨迹b相对比的示意图。
具体实施方式
下面通过具体实施方式结合附图对本发明作进一步详细说明。
实施例1:
一种针对GIS数据的建模方法,包括以下步骤:
S101:获取GIS数据,从GIS数据中检测出带有语义信息的逗留点。
GIS即地理信息系统,可通过GIS定位技术获取用户的GIS数据,例如微信的位置服
务等,可用k-means聚类方法从GIS数据中检测出带有语义信息的逗留点,一个逗留点是指
一个移动的实体在某个地理范围内停留了一定时间的地方,语义信息包含时间和位置坐标
等信息。
S102:建立包含带有语义信息逗留点的路网集合GST(VVST,EEST,其中,V为节点的
集合,E为边的集合,VST为逗留点组成的节点集合,EST为两个逗留点连成的边以及一个逗留
点与其他节点连成的边的集合,路网集合GST中包含语义轨迹a和语义轨迹b。
如图1所示,路网中包括了节点v1、v2、v3、v4、v5和v6,每个节点表示道路交叉口,
节点之间的连线为边,一个边表示一个路段,而语义轨迹由一系列带有语义信息的逗留点
组成。图2示出了路网中轨迹的示意图,其中的箭头表示移动方向,从图中可看出,该语义轨
迹为v1->v3->v5->v4->v2。
为了将语义信息附着在轨迹信息上,我们将检测到的逗留点作为新节点添加进路
网中,形成最终的路网集合GST(VVST,EEST。每个逗留点都需要标注两个时间戳:到达时间
和离开时间,因此,需要定义最终的语义轨迹:PST
其中,v为逗留点或节点,n
为逗留点和节点的数目,tin为到达时间,tout为离开时间。图3中,υ1,υ3,υ5,υ4,υ2∈V为节
点,υ7,υ8,υ9,υ10∈VST为逗留点。
将PST表示成一条由逗留点和道路交叉口组成的时间线。图4表示了图3中语义轨迹
所对应的时间线,时间线是由一系列连续的长方格组成的,每一个长方格都代表了一段路
程的行驶时间。长方格的长度就代表了从一个道路交叉口到下一个交叉口的行驶时间长
度。图4中共有五个长方格(v1,v3),(v3,v5),(v5,v4),(v4,v2),而t1,t4,t5,t10,t13分别
代表移动实体经过v1,v3,v5,v4,v2时的时间戳。同时,还标记了语义轨迹上的逗留点,图中
的斜线部分表示移动实体在逗留点的逗留时间,斜线部分的起点表示到达逗留点的时间
tin,斜线部分的终点表示离开逗留点的时间tout。图4中的四个斜线部分分别表示图3中语
义轨迹的四个逗留点v7,v8,v9,v10,其逗留时间分别是(t2,t3),(t6,t7),(t8,t9),(t11,
t12)。
S103:计算语义轨迹a和语义轨迹b中边的公共区间长度|sim(ea,i,eb,j)|,其中,
ea,i表示语义轨迹a中的第i条边,e,表示语义轨迹b中的第j条边。
语义轨迹a和语义轨迹b为待研究对象,后文中,使用STNa表示语义轨迹a,STN表示
语义轨迹b。公共区间是指不同移动实体在同一时间间隔内所共现的相同或相近的逗留点,
其中,相近的逗留点是指逗留点之间的距离小于一定的罚值。语义轨迹a和语义轨迹b中边
的公共区间即语义轨迹a任意一边和语义轨迹b任意一边中相同或相近的逗留点。
S104:将语义轨迹a和语义轨迹b中每一对边的公共区间的长度相加,得到:
S i m ( STN a , STN b ) = Σ i = 1 n Σ j = 1 m | s i m ( e a , i , e b , j ) | max { | S a | , | S b | } ; ]]>
其中,|Sa|为语义轨迹a中逗留点的总长度,|Sb|为语义轨迹b中逗留点的总长度。
式中,分子是所有逗留点的公共区间的总长度,分母是两条轨迹中逗留点总长度的最大者。
如果公共区间的长度等于最大者的长度,则相似度为1;如果没有公共区间,则其相似度是
0。
这里需要说明的是,在计算公共区间之前,必然要先找出语义轨迹a和语义轨迹b
之间的公共区间。通过以下步骤过逐步过滤出不相同的公共区间:(1)首先检查两条语义轨
迹是否存在交叠的行驶时间;(2)如果行驶时间存在交叠,再检查它们是否隶属于同一条
边;(3)如果两条轨迹隶属于同一条边且行驶时间存在交叠,再检查同一条边上是否存在逗
留时间交叠的逗留点;(4)最后检查逗留时间交叠的逗留点是否相同或相近。
如图5所示,具体解释上述的四个步骤。图中为语义轨迹a和语义轨迹b。显然,语义
轨迹a和语义轨迹b共享了很长一段时间的行驶时间。然后,检查它们是否隶属于同一条边。
图中,语义轨迹a的(v1,v2)和语义轨迹b的(v10,v3)并不属于同一条边,它们之间不存在公
共区间。语义轨迹a和语义轨迹b的第二部分都是(v3,v4),且它们分别有三个和两个逗留
点。因为v7和v12之间的距离小于θ,它们之间存在公共区间;同理v7,v13之间也存在公共区
间。尽管v8和v14之间的行驶时间存在交叠,但是它们之间的距离大于阀值θ,所以不存在公
共区间。
S105:计算语义轨迹a和语义轨迹b中基于逗留点的两条边的相似度Sims
因为建模时在时间维度上的严格约束,会有很多轨迹间的相似度为零。比如,即便
两条语义轨迹的形状和逗留点完全相同,但是两条轨迹在时间维度上没有任何重合的话,
则两条轨迹的相似度仍然为0。然而这种度量并不能确切地表征轨迹间的相似度。
因此,可以平移轨迹的时间线。两条语义轨迹在平移前可能不存在公共区间,但平
移后的则可共享一段公共区间。然而,平移会导致轨迹间相似度失真。所以,我们会以时间
线移动的距离为权重,对公共区间的计算施加干预。即把逗留点的公共区间和逗留点语义
标签都纳入考量。
S105:基于语义轨迹a和语义轨迹b中不同边之间的距离,计算基于距离的正则化
相似度Sim
在衡量两条边的相似度时,为了避免将路网中两条非常相近的边,因为没有公共
区间而得出其相似度为0的结论,需要考量路网中不同边之间的距离。因此,计算基于距离
的正则化相似度。
S106:计算语义轨迹a和语义轨迹b中两条边之间的相似度:
simw(ea,i,eb,j)=βsimd(ea,i,eb,j)+(1-β)sims(ea,i,eb,j);
其中,0≤β≤1是权重系数。
综合步骤S104和步骤S105中的计算结果,最终得到两条边的相似度。
S106:再计算语义轨迹a和语义轨迹b的第一相似度为:
S107:将语义轨迹b的时间线在每一步中平移Δt,再计算平移后语义轨迹a和语义
轨迹b的第二相似度:
Sim W , r ( STN a , STN b ) = Δ T - r × Δ t Δ T Sim W ( STN a , STN b r ) ; ]]>
其中,ΔT=max(|ea,1.tin-eb,m.tout|,|eb,1.tin-ea,n.tout|),n为语义轨迹a中边
的总数,m为语义轨迹b中边的总数,ea,1.tin为经过边ea,开始节点的时间戳,eb,1.tin为经
过边e,开始节点的时间戳,eb,m.tout为经过边eb,m结束节点的时间戳,ea,n.tout为经过边
ea,n结束节点的时间戳,在第r步平移了r×Δt的时间线标记为
上文的步骤S105提到,在比较不同轨迹的时间线时,会平移时间线,假设我们在每
一步平移STN的时间线的距离都是Δt,则在第r步平移了r×Δt的时间线标记为
在此基础上,计算得到语义轨迹a和语义轨迹b的第二相似度。
S108:根据第一相似度和第二相似度,得到轨迹a和轨迹b的最大加权相似度:
实施例2:
在实施例1的基础上,语义轨迹a和语义轨迹b中边的公共区间长度|sim(ea,i,eb,j)
|的计算式为:
| s i m ( e a , i , e b , j ) | = Σ k = 1 c o u n t ( S a , i ) Σ l = 1 c o u n t ( S b , j ) | s a , k ∩ s b , j | ; ]]>语义轨迹a和语义
轨迹b中基于逗留点的两条边的相似度Sims的计算式为:
该式包含了逗留点的公共区间和逗留点语义标签,其第一部分计算了公共区间占
逗留点最大长度的比值,第二部分计算了两个语义标签集合的相似度。
语义轨迹a和语义轨迹b中基于距离的正则化相似度Sim的计算式为:
sim d ( e a , i , e b , j ) = max ( | | STN a | | , | | STN b | | ) - D i s t ( e a , i , e b , j ) max { | | STN a | | , | | STN b | | } ; ]]>
需要说的是,计算基于距离的正则化相似度,需要ea,i和e,之间的距离Dist(ea,i,
eb,j)满足如下条件:
|Dist(ea,i,eb,j)≤max{||STNa||,||STNb||}。
上述几个式子中,sa,k为语义轨迹a中的第k个逗留点,sb,l为语义轨迹b中的第l个
逗留点,countSa,i|Sa,i|,countS,|S,|,LSa,i和LS,分别是Sa,i和S,上所有逗留点的语义
标签集合,0≤α≤1是权重参数。
实施例3:
在实施例1或实施例2的基础上,在计算语义轨迹a和语义轨迹b中边的公共区间长
度|sim(ea,i,eb,j)|之前,还包括:
判断是否满足如下条件:
其中,1≤k≤count(Sa,i),1≤l≤count(Sb,j);
若满足,则存在公共区间;若不满足,公共区间的长度为0。
即判断语义轨迹a和语义轨迹b中的边是否存在公共区间,当其满足上述条件时,
说明存在公共区间;若不满足,公共区间的长度为0。只有当公共区间存在时,方可实现后续
的计算。
进一步的,通过对比顶点,检查两条边之间是否存在公共区间。假设STNa包含n条
边,ea,i是其第i条边;假设STN包含m条边,e,其第j条边,可得:
其中1≤i≤n,1≤j≤m,ea,i≠eb,j表示ea,i和e,不是同一条边。|ea,i.tin是经过ea,i
开始节点时的时间戳,ea,i.tout是经过ea,i结束节点时的时间戳。
进一步的,假设STNa包含g个逗留点,|sa,k∈VST是其中的第k个逗留点;STN包含h个
逗留点,sb,l∈VST是其中的第l个逗留点.可得:
即,当满足上式时,说明两个逗留点之间存在公共区间。
其中1≤k≤g,1≤l≤h,sa,k.tin是sa,的到达时间戳,sa,k.tout是sa,的离开时间
戳,dist(sa,k,sb,l)是sa,ands,.之间的欧氏距离。
以上内容是结合具体的实施方式对本发明所作的进一步详细说明,不能认定本发
明的具体实施只局限于这些说明。对于本发明所属技术领域的普通技术人员来说,在不脱
离本发明构思的前提下,还可以做出若干简单推演或替换。