POI推荐文献阅读笔记3: Predicting Human Mobility via Graph Convolutional Dual-attentive Networks

  • 1.摘要
  • 2.贡献
  • 3.模型分析
    • 3.1问题公式化
    • 3.2模块详情
      • 3.2.1时空嵌入模块
        • 时间戳嵌入
        • 位置嵌入
        • 全局嵌入
        • 轨迹位置编码
      • 3.2.2轨迹编码器--解码器模块
        • 编码器
        • 解码器
        • 目标函数
      • 3.2.3模型训练和优化
        • 训练阶段的三个训练技巧
    • 3.3 模型整体流程
  • 4.实验
    • 4.1数据集及评价指标
    • 4.2结果对比

1.摘要

人类移动性预测对于智能交通和个性化推荐系统等各种应用具有重要意义。尽管许多传统的基于模式的方法和基于深度模型的(比如循环神经网络)方法已经被开发出来用于该任务,但它们本质上并不能很好地处理轨迹数据的稀疏性和不准确性以及序列依赖的复杂高阶性质,而这些都是移动性预测中的典型挑战。针对上述问题,本文提出了一种新颖的图卷积双注意力网络( Graph Convolutional Dual-attentive Networks,GCDAN )框架,该框架由时空嵌入和轨迹编解码两个模块组成。第一个模块使用双向扩散图卷积来保持位置嵌入中的空间依赖性。第二个模块使用了基于序列到序列架构的双注意力机制,以有效地提取轨迹内的长序列依赖关系和不同轨迹之间的相关性,从而进行预测。在三个真实数据集上的大量实验表明,与最先进的baseline相比,GCDAN获得了显著的性能增益。

2.贡献

1、据我们所知,我们是最早引入图卷积和双注意力机制来处理轨迹数据的稀疏性和不准确性以及人类移动预测问题中的高阶序列性的。
2、我们提出了一个新的移动性预测框架GCDAN,它由两个模块组成。第一个模块通过同时保留轨迹的空间依赖性和时间特性来学习轨迹位置的稠密表示。在此基础上,第二个模块进一步采用了序列到序列的架构,该架构充分考虑了复杂的序列依赖和用户偏好,在历史轨迹的指导下预测下一个位置
3、我们在三个真实的数据集(包括两个常用的数据集和一个新收集的数据集)上进行了广泛的实验,以评估所提出的框架的有效性。结果表明,GCDAN始终优于最先进的baseline。此外,我们公开发布了收集的数据集,作为移动预测问题的新基准,该数据集记录了一个最大的校园无线网络中的用户移动轨迹。

3.模型分析

3.1问题公式化

定义1(时空点): L = { l 1 , . . . . . . , l ∣ L ∣ } L = \lbrace l_1,......,l_{|L|}\rbrace L={l1,......lL}定义为地点标识符的集合,那么对于一个时空点 p = ( l , t ) p=(l,t) p=(l,t)意思是一个用户到达在t时间到达l地点。
定义2(轨迹): U = { u 1 , . . . . . . , u ∣ U ∣ } U = \lbrace u_1,......,u_{|U|}\rbrace U={u1,......uU}定义为用户的集合。对于一个用户u∈U其一个按时间排序的时空点序列 T u = p u 1 p u 2 p u 3 . . . p u m T_u=p^1_{u}p^2_{u}p^3_{u}...p^m_{u} Tu=pu1pu2pu3...pum, p u i p^i_{u} pui表示在轨迹 T u T_u Tu的第i个时空点。当然每个用户不同的轨迹的长度可能是不同的。
对于一个用户u∈U, S u = { T u 1 , T u 2 , T u 3 . . . T u ∣ S u ∣ } S_u=\lbrace T^1_{u}, T^2_{u},T^3_{u}...T^{|S_u|}_{u}\rbrace Su={Tu1,Tu2,Tu3...TuSu}定义为其历史轨迹的集合,同时 T u ∼ = p u 1 p u 2 p u 3 . . . p u m {\overset{\thicksim}{{T}_{u}}}=p^1_{u}p^2_{u}p^3_{u}...p^m_{u} Tu=pu1pu2pu3...pum是其当前轨迹。基于此可以公式化地提出用户移动行为预测的问题:
对于任意的一个用户u,给定一个他的历史轨迹 S u S_u Su和当前轨迹 T u ∼ \overset{\thicksim}{{T}_{u}} Tu,目标是预测当前轨迹的下一个时空点比如 p u n + 1 p^{n+1}_u pun+1

3.2模块详情

整个模型结构图如下:

3.2.1时空嵌入模块

时间戳嵌入

时间戳对齐到了一个固定的时间间隔内,时间间隔可以为一天或者一周。然后将固定时间间隔离散化为 ρ \rho ρ个时隙,对于每个时间戳进一步映射到相应的时隙,并将其以one-hot形式表示,维度为 ρ \rho ρ,叫做 v t v_t vt
同时,使用了word2vec将 v t v_t vt转化为一个低维密集表示形式 h t h_t ht,方法是通过一个变换矩阵 Θ T ∈ R d 1 × ρ \Theta_T∈R^{d_1 ×\rho} ΘTRd1×ρ,即 h t = Θ T v t h_t=\Theta_Tv_t ht=ΘTvt

位置嵌入

引入了图卷积来捕获空间依赖关系并减轻定位的不准确性。令 G = ( L , E , W ) G=(L,E,W) G=(L,E,W)其中L在之前已经定义过,E是边的集合,W是对于一个位置对子比如 ( l i , l j ) (l_i,l_j) (li,lj)计算其出现在历史轨迹中的次数。 w i j w_{ij} wij如果大于0表示这俩点之间有边,否则等于0.计算方式如下图:

进一步将所有位置的one-hot表示形式定义为 V L V_L VL, H L = ( h l 1 , . . . , h l ∣ L ∣ ) H_L=(h_{l_1},...,h_{l_|L|}) HL=(hl1,...,hlL)是所有位置的稠密表示。

全局嵌入

对于一个时空点 p = ( l , t ) p=(l,t) p=(l,t),全局嵌入 h p = h t ∣ ∣ h l h_p=h_t||hl hp=ht∣∣hl,||的意思是concatenate,所以 h p h_p hp的维度是 d 1 + d 2 d_1+d_2 d1+d2

轨迹位置编码

T = p 1 p 2 . . . p m T=p^1p^2...p^m T=p1p2...pm表示为一个轨迹,那么对T中的m个时空点进行全局嵌入后的形式则表示为 H T = h p 1 , . . . , h p m H_T=h_{p^1},...,h_{p^m} HT=hp1,...,hpm,进一步构建了一个新的位置向量 p o s i pos_i posi,维度为 d 1 + d 2 d_1+d_2 d1+d2,其计算方式如下:

其中C是一个常数,决定位置编码的函数频率。最后对于T中的每一个时空点进行全局嵌入再加上这个新的位置向量就变成了 h p i = h p i + p o s i h_{p^i}=h_{p^i}+pos_i hpi=hpi+posi

3.2.2轨迹编码器–解码器模块

编码器


T = p 1 p 2 . . . p m T=p^1p^2...p^m T=p1p2...pm表示为一个轨迹,那么对T中的m个时空点进行全局嵌入后的形式则表示为 H T = h p 1 , . . . , h p m H_T=h_{p^1},...,h_{p^m} HT=hp1,...,hpm,然后进入编码器,即如上图所示。
轨迹中的顺序转移通常具有高阶性质,这意味着位置可能不依赖于相邻位置,而是依赖于轨迹序列中的一个较远的位置。因此,在编码器中设计了轨迹内注意力层,相比于RNN、LSTM等循环单元,能够更好地建模长距离依赖。
其计算过程是给定一个历史轨迹及其全局嵌入后的向量表示,对于每个时空点,intra-trajectory注意力层计算其和其他所有候选时空点之间的相似性,类似做softmax,但是对于两个时空点先经过一个函数f,这个f可以是点积也可是双线性函数等。最终得到每个时空点的上下文表示。计算方式如下图:

至此历史轨迹部分进入解码器。
当前轨迹生成其全局嵌入表示后直接进入解码器部分。

解码器

分别看下历史轨迹和当前轨迹在解码器里的过程。
当前轨迹:其全局嵌入进来后也是经过intra-trajectory注意力层计算其和其他所有候选时空点之间的相似性,只不过这个操作只对轨迹T的最后一个时空点 p n p^n pn进行,从而产生 c p n ∼ \overset{\thicksim}{{c}_{p^n}} cpn
同时对解码器过来的历史轨迹上下文表示进行了一个readout操作,其本质是对每一条历史轨迹的中的 c p j c_{p^j} cpj做了求和平均产生 x x x。原因是不同的历史轨迹可以显示不同的时空行为模式,当其作用在 c p n ∼ \overset{\thicksim}{{c}_{p^n}} cpn上可能产生不同的效果。
产生 x x x后,当前轨迹的 x x x表示形式为 x ∼ \overset{\thicksim}{{x}} x,进行类似softmax的操作。
最后的结果 v p n v_{p^n} vpn是对一条历史轨迹所有的 c p j c_{p^j} cpjc p n ∼ \overset{\thicksim}{{c}_{p^n}} cpn。做 s i m p ( ) sim_{p}() simp()× c p j c_{p^j} cpj求和后,乘上其与 x ∼ \overset{\thicksim}{{x}} x做的 s i m t ( ) sim_{t}() simt()结果。历史轨迹的条数为 ∣ S ∣ |S| S,对每一条历史轨迹做同样的操作。对应的模型图部分和具体计算如下图所示。


之后得到的 v p n v_{p^n} vpn再经过全连接层以及softmax输出最终的预测。

目标函数

总体上来说移动预测问题可以看作是一个多分类问题,因此最后将 v p n v_{p^n} vpn转化为 L L L中所有可能位置的概率分布。其计算方式如下:

训练模型使用的交叉熵损失函数如下:

其中 y ^ u i {\hat{y}}_u^i y^ui代表用户u通过(9)得到的预测分布, y u i y_u^i yui代表用户u当前轨迹中下一个位置的one-hot真实值分布。为了避免过拟合将 L 2 L_2 L2正则化作用在所有参数上,最终的loss如下:

L

POI推荐文献阅读笔记3:Predicting Human Mobility via Graph Convolutional Dual-attentive Networks相关推荐

  1. 【文献阅读笔记】KAM Theory Meets Statistical Learning Theory: Hamiltonian Neural Networks with Non-Zero Trai

    文章发表于[2022]AAAI Technical Track on Machine Learning I 文章目录 文章目的 一.主要内容: 1.用统计学习理论证明哈密顿神经网络的训练模型是原系统的 ...

  2. 文档资源推荐 研究生如何做文献阅读笔记(强力推荐!!!)

    转自:http://www.soudoc.com/bbs/viewthread.php?tid=9056542&extra=&page=1 研究生如何做文献阅读笔记? 说实在的,我自己 ...

  3. 【知识图谱】本周文献阅读笔记(4)——周三 2023.1.11:英文)基于动态知识图谱的虚假评论检测 + 基于知识图谱的推荐系统研究综述 + 基于知识图谱的推荐算法研究综述+新一代知识图谱关键技术

    声明:仅学习使用~ 对于各文献,目前仅是泛读形式,摘出我认为重要的点,并非按照原目录进行简单罗列! 另:鉴于阅读paper数目稍多,对paper内提到的多数模型暂未细致思考分析.目的是总结整理关于KG ...

  4. 【知识图谱】本周文献阅读笔记(3)——周二 2023.1.10:英文)知识图谱补全研究综述 + 网络安全知识图谱研究综述 + 知识图谱嵌入模型中的损失函数 + 图神经网络应用于知识图谱推理的研究综述

    声明:仅学习使用~ 对于各文献,目前仅是泛读形式,摘出我认为重要的点,并非按照原目录进行简单罗列! 另:鉴于阅读paper数目稍多,对paper内提到的多数模型暂未细致思考分析.目的是总结整理关于KG ...

  5. 文献阅读笔记-CSC-数据集-A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check

    A Hybrid Approach to Automatic Corpus Generation for Chinese Spelling Check 文献阅读笔记 论文相关信息: EMNLP-201 ...

  6. 研究生如何做文献阅读笔记

    ** 研究生如何做文献阅读笔记 ** 研究生如何做文献阅读笔记? 说实在的,我自己也不是很会读书.读书的速度也不快,只是喜欢读书罢了.阅读文献,对于开题期间的研究生和写论文期间的研究生是很重要的功课, ...

  7. 网约车需求预测文献阅读笔记(一)《基于图卷积的出发地—目的地矩阵预测:旅客需求建模的新视角》

    文献阅读笔记:<基于图卷积的出发地-目的地矩阵预测:旅客需求建模的新视角> 摘要 现有研究不足 研究挑战(难点) 本文的贡献 准备工作 定义1:格子 定义2:时间片 定义3:OD矩阵 模型 ...

  8. 文献阅读笔记:Smart Homes that Monitor Breathing and Heart Rate

    文献阅读笔记:Smart Homes that Monitor Breathing and Heart Rate Fadel Adib Hongzi Mao Zachary Kabelac Dina ...

  9. 《基于区块链技术的虚假新闻检测方法》文献阅读笔记+总结

    <基于区块链技术的虚假新闻检测方法>文献阅读笔记+总结 关键词:区块链.智能合约.虚假新闻.新闻网站.博弈论 来源 题目 时间 作者 中国学术期刊网络版 <基于区块链技术的虚假新闻检 ...

最新文章

  1. Codeforces 352B - Jeff and Periods
  2. linux c/c++ 原子操作库 atomic atomic_flag 简介
  3. Ninja Blocks物联网平台简介
  4. 数组 边界 检查的几种实现方法
  5. P5459-[BJOI2016]回转寿司【树状数组】
  6. poj2393 其它贪心 挑战程序设计竞赛
  7. 移动端设备常用尺寸笔记
  8. 使用Schedule来实现动态的定时任务
  9. 轴固定位置_何为轴?来看看你对轴了解了么
  10. c++求两点的距离利用友元_用c++定义两个坐标点,计算两点间距离;进而计算线段的面积...
  11. NetBeans Weekly News 刊号 # 152 - Jun 15, 2011
  12. matlab中符号检验,配对符号秩和检验,配对资料的符号检验,符号
  13. 谷歌开发者被封 账号中的钱_Google GMC又被封?解锁谷歌广告账号运营新姿势
  14. 如何评价『黑客与画家』
  15. 仙剑奇侠传亿仙java_《仙剑奇侠传-忆仙》图文攻略之三
  16. 1024程序员节 技术对抗赛 算法与安全答题 标准答案
  17. 为什么对渣土车的监控和管理如此重要
  18. 电脑连不上网,显示网络连接配置异常
  19. k8s之ReplicaSet
  20. MIMIC-IV- v2.0带着随访数据来啦

热门文章

  1. linux取本机ip命令,linux 单独取出本机IP地址
  2. Python3使用pandas读取excel文件并用列表输出
  3. 团战可以输、提莫必须死 Time Limit: 1000 ms Memory Limit: 65536 KiB
  4. 编程c语言庄子天下篇,庄子天下篇.doc
  5. 当Ubuntu遇上Gigabyte技嘉主板
  6. 论文投稿指南——什么是SCI,SSCI ,CSSCI
  7. Vista下的UAC功能
  8. Star-Transformer
  9. nxp电源管理芯片:电源管理芯片与笔记本电源运用技巧
  10. 欧美金曲 100首页歌曲