2. 中山大学 广东省大数据分析与处理重点实验室, 广州 510006
2. Guangdong Key Laboratory of Big Data Analysis and Processing, Sun Yat-Sen University, Guangzhou 510006, China
路径搜索与人们的生活息息相关, 被广泛应用于智能导航、路径推荐、AR游戏等领域.一种人们熟知并常见的路径搜索场景是, 用户希望找到一条从当前所在地出发前往目的地的距离最短或花销最少的路径, 即最短路径.最近几年流行起来的基于位置的社交软件提供签到功能, 比如Foursquare和Gowalla, 用户可以在地图上标注自己访问过的兴趣点并留下对它们的评价.这些兴起的基于位置的服务(Location Based Services)[1]积累了很多用户签到数据, 通过对这些蕴含地点信息和路径信息的数据进行挖掘和分析, POI地图初现轮廓. POI地图最主要的特征是每个兴趣点都带有标签, 表明该兴趣点的所属类别.当兴趣点带有多个功能属性时, 就会标上多个标签.如一个大型的购物商场, 人们既能在此购物逛街, 又能进行看电影、溜冰的娱乐活动, 那么这个购物商场极有可能被标记为商场、电影院、溜冰场.
近十几年来, 专注于路径搜索问题的研究人员开始把关键字作为查询条件.一个新的研究问题是, 用户希望被推荐的路径不仅能够满足他的代价预算和空间约束, 还能最优地实现他对兴趣点特征的多样性要求.其实例化描述是, 一个第一次来到广州的游客, 计划上午9:00从入住的斯特威酒店出发, 前往广州白云国际机场搭乘下午17:00点的飞机.中间8个小时的时间, 他想去参观广州有名的博物馆、逛逛商业街, 或者游览风景区.在他心中, 相比于逛商业街, 他更愿意把时间花在博物馆和风景区上.根据以上描述可知, 用户偏好体现在用户只想访问博物馆、商业街、风景区这类兴趣点, 且对博物馆和风景区的游览兴致大于商业街.所以, 一条经过一个博物馆、一条商业街和一个风景区的路线对用户的吸引力比经过一个博物馆和两条商业街的路线要大.对于该场景, 文献[2]实现了一个路径搜索系统, 支持带用户偏好的路径查询.
许多研究工作致力于解决覆盖多关键字的最优路径查询. 2008年, 文献[3]提出了Optimal Sequenced Route(OSR)问题, 在TPQ问题[4]基础上加上关键字访问次序的约束.研究次序约束问题的还有[5-7].论文[8]针对KORS[7]算法基于邻边拓展的路径构建策略在大规模图以及多查询关键字下复杂度过高、可扩展性不足的缺陷, 提出基于关键词序列的路径构建方案. 2018年, 文献[9]研究top-k最优有序路径问题, 即查询从起点到终点按指定次序经过特定类型节点且代价最小的top-k路径.然而, 这些问题都没有考虑路径的约束条件, 如时间、距离等.支持多约束条件的路径查询工作有[10-12].其中, KOR问题[12]致力于查找约束条件下带查询关键字的近似最优解.文献[13]提出了查询带差异的top-k最短路径, 使得查出的所有路径之间相似度最低且路径代价之和最小.为了让求解的路径满足关键字多样性要求, 文献[14]指出需要使用子模函数对这个问题建模.虽然已有工作[15]研究带路径预算约束的子模函数优化问题, 但是它采用的递归贪婪算法只能找到近似解, 而且不适用于城市范围的路径规划.为了高效地找到一条最优路径, 文献[16]提出基于A*变体的路径搜索算法, 但是该研究的预算只考虑了路径的出行代价.根据实际应用场景, 在路径搜索当中同时考虑出行代价和兴趣点的停留代价更加合理.同样考虑用户偏好的有文献[17], 它从用户的轨迹数据里挖掘出用户的开车偏好, 如时间最短, 汽油最省或介于两者之间, 产生一个偏好向量, 据此向用户推荐个性化路线.
为了研究用户的个人倾向对路径推荐的影响, 本文把用户的类别偏好和权重偏好作为查询条件加入路径搜索问题的定义当中.另外, 大多数路径搜索问题的预算只考虑在兴趣点之间的路径代价, 而不考虑访问兴趣点产生的停留代价.为了让研究问题更加合理和通用, 本文考虑将路径的出行代价和兴趣点的停留代价记入预算当中.
概括起来, 本文的主要贡献有:
本文总共划分为5节, 第1节给出问题定义; 第2节提出两个索引方法; 第3节介绍本文提出的基于A*的路径搜索算法和剪枝策略; 第4节给出实验结果与分析; 第5节对全文进行总结.
1 问题定义 1.1 问题描述给出一个POI地图示例, 见图 1.地图上的每个节点
定义1.1POI地图 POI地图
定义1.2路径R 路线
$\begin{align} cost(R)=\sum\limits_{i=1}^{m-1}s(v_i )+\sum\limits_{i=1}^{m-1}T_{sm}(v_i, v_{i+1} ). \end{align} $ | (1) |
定义1.3(路径收益) 给定查询关键字集合
$\begin{align} Gain(R)=\sum\limits_{k_q\in K}\lambda_{k_q}cov_{k_q}(R). \end{align} $ | (2) |
其中,
$\begin{align} cov_{k_q} (R)= 1-\Pi_{v_i\in R}[1-SC_{kq} (v_i) ]. \end{align} $ | (3) |
定义1.4(最优路径搜索问题) 给定POI地图
$\begin{align} &R=argmax_R~ Gain(R), \nonumber\\ &{\mbox {满足}}~cost(R)\leqslant {\it\Delta}. \end{align} $ | (4) |
本文采用的收益函数公式(2)具有子模性质, 满足收益递减特性, 即对
下面用表 1总结与本文相关的符号说明.
在路径搜索过程中, 经常需要计算两个节点之间的最小代价.然而, 从POI地图里各兴趣点之间的邻接边构造出来的带权邻接矩阵, 只能反映相邻节点之间的路径代价, 不存在邻接边的两个节点在矩阵上的表示为无穷大, 即不可达.对POI地图
根据查询
关键字反向索引把每一个关键字
利用上一小节建立的两个索引, 根据查询
第一步, 检索候选节点.使用关键字反向索引, 依次检索集合
第二步, 检查候选节点.利用最小代价矩阵索引, 以
经过这两步操作, 得到最终的POI候选点集
例2.1 对图 1所示的POI地图给出查询
解决最优路径搜索问题的一个可行方法是做暴力搜索.暴力搜索是一种穷举方法, 枚举出所有从源点出发到达终点的小于预算的可行路径, 然后在可行路径中找出一条收益值最高的路径作为问题的最优解.虽然暴力搜索方法能保证找到一条最优路径, 但是它的计算量很大, 时间开销和空间开销让计算机难以负荷.为了避免枚举所有的候选路径, 本文提出一种A*算法的变体, 利用启发式信息和有效的剪枝策略减少路径的搜索空间.
从源点到终点的宽度优先搜索过程可以表示成一棵搜索树.当没有任何启发式信息的时候, 搜索只能按照层次遍历或深度遍历的方式进行.已知A*算法采用的知识启发式代价函数可以用来决定搜索进行的方向, 当路径扩展到节点
$\begin{align} f^n (R_{s\to t})= g^n(R_{s\to n} )+h^n (R_{n\to t}|R_{s\to n}). \end{align} $ | (5) |
这里的
路径标签 从起点
本文提出一种基于A*的路径搜索算法, 其伪代码如算法1所示.算法的处理逻辑是, 首先, 初始化一个最大优先队列Q用来存储当前等待扩展的路径标签, 最优路径
算法1 基于A*的路径搜索算法 |
输入:查询 |
输出:最优路径R |
1: 初始化一个最大优先队列Q; |
2: |
3: 创建路径标签 |
4: Q.enqueue |
5: |
6: { |
7: |
8: If |
9: Break; |
10: 从路径标签 |
11: 新的候选节点集CandiSet= |
12: For |
13: { |
14: 创建一条路径 |
15: |
16: |
17: If |
18: Continue; |
19: 计算路径收益 |
20: If |
21: { |
22: |
23: |
24: |
25: } |
26: If |
27: { |
28: |
29: |
30: } |
31: 估计收益上界 |
32: If |
33: { |
34: 创建路径标签 |
35: Q.enqueue( |
36: } |
37: } |
38: } |
39: return |
3.2 剪枝策略 3.2.1 基于代价的剪枝
设查询
定理3.1 定义1.4的一条可行路径包含路径
证 明 (1)首先证明定理的充分性.由已知条件, 问题定义的一条可行路径包含路径
(2) 其次证明定理的必要性.根据结论, 闭合路径
综上, 定理3.1得证.
算法1的伪代码描述用到了基于代价的剪枝:在为每一条开放路径扩展新的节点时, 如果要判断形成的新路径在未来能否扩展成一条可行路径, 可以通过检查它的闭合路径是否满足
令路径
当路径
$\begin{align} L_n=\{v_i|T_{sm}(v_n, v_i )+s(v_i )+ T_{sm}(v_i, v_t )+s(v_t )\leqslant\Delta'\}. \end{align} $ | (6) |
这里的节点
由于
$\begin{align} c(v_j )=s(v_j)+\dfrac{\min\{T_{sm}(v_i, v_j )+T_{sm}(v_j, v_k)\}}{2}, v_j\in L_n. \end{align} $ | (7) |
其中,
这样一来, 路径
$\begin{align} \max\Delta Gain(R'|R) {\mbox{满足}}~~\sum\limits_{v_i\in V_{R'}}c(v_i)\leqslant\Delta'-c(v_n). \end{align} $ | (8) |
由于所有节点的代价
定理3.2 对每一个兴趣点
$\begin{align} UP =\sum\limits_{j=1}^{l-1}\sigma_{i_j}+\lambda\sigma_{i_l}\geqslant \Delta Gain(R'|R). \end{align} $ | (9) |
证 明 文献[20]指出, 求受约束的子模最大化问题的解
以扩展的路径数作为算法的时间复杂度.设候选节点集
$\begin{align*} f(l)=\left\{\!\! \begin{array}{ll} n, & l=1, \\ \gamma\cdot f(l-1)\cdot(n-l+1), & l>1. \end{array}\right. \end{align*} $ |
第
本文的实验数据是两个真实的签到数据集, 其中Singapore(SG)来源于Foursquare软件在新加坡收集的数据, 数据产生的时间是从2010年8月到2011年7月[21]; Austin(AS)来源于Gowalla软件在奥斯汀收集的数据, 数据产生的时间是从2009年11月到2010年10月[22].
跟相关研究工作[12, 14, 16]的处理相同, 我们为一天之内被某用户连续访问的两个兴趣点建立一条无向边.那些孤立的没有边直接相连的兴趣点则从兴趣点集中去掉.这些信息可以通过对签到数据进行分析得来.对初始数据集进行[14]所述处理之后, 得到表 2所示的描述性统计信息.
实验环境为Ubuntu 18.04 LTS操作系统, 电脑配置为Intel E5-2609 v4 1.70 GHz, 15.40 GB内存, 编程语言为C++.
4.2 实验设置对比算法 本文以暴力算法BF作为基准方法, 与本文提出的基于A*的路径搜索算法进行实验比较.为了比较的公平, 将本文在第2节提出的索引方法应用到暴力算法中.由于Hongwei Liang和Ke Wang在SIGIR'18会议上提出的索引结构和PACER算法[14]也适用于求解本研究问题, 在实验部分加上与当前先进的PACER算法的比较.把它的目标函数改为采用本文的覆盖函数, 并且设置k=1, 求top-1的最优路径.因为[14]与本文算法求解的都是最优路径且实验数据集相同, 本实验结果可以说明算法的有效性.
评价指标 以运行时间、内存大小作为实验度量标准.每一组查询结束之后, 记录本组20个查询的平均值.当某个查询运行1 h后还没结束, 或者耗尽了计算机内存资源, 会被终止运行, 然后设置为查询失败, 不参与本次查询组的性能评估.
4.3 结果与分析 4.3.1 预算代价对算法性能的影响运行时间 SG数据集的实验结果如图 4(a)所示.随着预算时间的增加, 三个算法的性能开始下降, 但是本文的A*算法始终比BF快2到3倍.算法性能下降一方面是因为预算值的增大使得索引检索阶段留下的候选节点增多, 另一方面是路径扩展的深度会增长.在4
总的来说, A*算法的优势在于当预算时间取值为[4, 5, 6, 7]时, 它能成功执行所有查询并且它的查询性能是三个算法里最高的.随着预算代价的增加, A*算法和BF算法的性能差距越来越大.
搜索空间 SG数据集和AS数据集的搜索空间实验结果如图 5(a)、5(b)所示.各个算法的路径搜索空间随着时间的增加而增长, 其中BF算法的增长速度最快.在SG数据集上观察4
SG数据集和AS数据集的运行时间实验结果如图 6(a)、6(b)所示, 实验的预算时间取定为6 h.从图中可以看到, 随着关键字个数的增加, 三个算法的运行时间呈增长趋势. A*算法在SG数据集上大概1 s就能完成一个查询.在AS数据集上, A*的查询性能也很高, 运行时间平均不到2s.
实质上, 基于A*的最优路径搜索算法能支持的查询关键字的数量, 与最后查询算法处理的候选节点数量相关.若
在这里, 通过改变查询关键字
如果把关键字Park、Restaurant、Museum的偏好值调整为0.6、0.2、0.2, 那么新的查询
本文在构建的POI地图上进行基于用户偏好的最优路径搜索研究, 考虑在预算约束条件下, 关键字偏好和权重偏好对路径推荐的影响.为了找到一条满足多样性特征的路径, 本文将目标函数定义为具有子模性质的覆盖函数.在预处理阶段提出索引建立方法, 并在查询阶段利用索引结构过滤出候选节点集, 接着设计基于A*的路径搜索算法来做最优路径查询, 并利用几个有效的剪枝策略加快算法的执行速度.本文也通过设置多个实验测试A*算法的查询性能, 实验结果表明本文算法在一定的查询条件下具有优越性.
[1] |
JUNGLAS I A, WATSON R T. Location-based services[J]. Communications of The ACM, 2008, 51(3): 65-69. |
[2] |
JIANG Q, TENG W, LIU Y. ORSUP: Optimal route search with users' preferences[C]//MDM, 2019: 357-358.
|
[3] |
SHARIFZADEH M, KOLAHDOUZAN M R, SHAHABI C, et al. The optimal sequenced route query[J]. Very Large Data Bases, 2008, 17(4): 765-787. DOI:10.1007/s00778-006-0038-6 |
[4] |
LI F, CHENG D, HADJIELEFTHERIOU M, et al. On trip planning queries in spatial databases[C]//Proceedings of the 9th International Symposium on Spatial and Temporal Databases (SSTD'05), 2005: 273-290.
|
[5] |
CHEN H, KU W, SUN M, et al. The multi-rule partial sequenced route query[C]//Advances in Geographic Information Systems, 2008: 1-10.
|
[6] |
KANZA Y, LEVIN R, SAFRA E, et al. Interactive route search in the presence of order constraints[J]. Very Large Data Bases, 2010, 3(1): 117-128. |
[7] |
LI J, YANG Y D, MAMOULIS N, et al. Optimal route queries with arbitrary order constraints[J]. IEEE Transactions on Knowledge and Data Engineering, 2013, 25(5): 1097-1110. DOI:10.1109/TKDE.2012.36 |
[8] |
金鹏飞, 牛保宁, 张兴忠. 高效的多关键词匹配最优路径查询算法KSRG[J]. 计算机应用, 2017, 37(2): 352-359. |
[9] |
LIU H, JIN C, YANG B, et al. Finding Top-k Optimal Sequenced Routes[C]//International Conference on Data Engineering, 2018: 569-580.
|
[10] |
鲍金玲, 杨晓春. 一种支持约束关系的高效的行程规划算法[J]. 小型微型计算机系统, 2013, 34(12): 2702-2707. DOI:10.3969/j.issn.1000-1220.2013.12.009 |
[11] |
吴澎, 朱家明. 基于多目标规划和智能优化算法的旅游线路设计研究[J]. 数学的实践与认识, 2016, 46(15): 105-114. |
[12] |
CAO X, CHEN L, CONG G, et al. Keyword-aware optimal route search[J]. Very Large Data Bases, 2012, 5(11): 1136-1147. |
[13] |
LIU H, JIN C, YANG B, et al. Finding Top-k Shortest Paths with Diversity[J]. IEEE Transactions on Knowledge and Data Engineering, 2018, 30(3): 488-502. DOI:10.1109/TKDE.2017.2773492 |
[14] |
LIANG H, WANG K. Top-k Route Search through Submodularity Modeling of Recurrent POI Features[C]//International Acm Sigir Conference on Research and Development in Information Retrieval, 2018: 545-554.
|
[15] |
CHEKURI C S, PAL M. A recursive greedy algorithm for walks in directed graphs[C]//Foundations of Computer Science, 2005: 245-253.
|
[16] |
ZENG Y, CHEN X, CAO X, et al. Optimal route search with the coverage of users' preferences[C]//International Conference on Artificial Intelligence, 2015: 2118-2124.
|
[17] |
DAI J, YANG B, GUO C, et al. Personalized route recommendation using big trajectory data[C]//International Conference on Data Engineering, 2015: 543-554.
|
[18] |
ELARINI K, VEDA G, SHAHAF D, et al. Turning down the noise in the blogosphere[C]//Knowledge Discovery and Data Mining, 2009: 289-298.
|
[19] |
KEMPE D, KLEINBERG J M, TARDOS E, et al. Maximizing the spread of influence through a social network[C]//Knowledge Discovery and Data Mining, 2003: 137-146.
|
[20] |
LESKOVEC J, KRAUSE A, GUESTRIN C, et al. Cost-effective outbreak detection in networks[C]//Knowledge Discovery and Data Mining, 2007: 420-429.
|
[21] |
YUAN Q, CONG G, MA Z, et al. Time-aware point-of-interest recommendation[C]//International Acm Sigir Conference on Research and Development in Information Retrieval, 2013: 363-372.
|
[22] |
CHO E, MYERS S A, LESKOVEC J, et al. Friendship and mobility: user movement in location-based social networks[C]//Proceedings of the 17th ACM SIGKDD International Conference, 2011: 1082-1090.
|