
写在前面啃完第三章的移动定位技术我带着原来定位这么复杂的感慨翻开了第四章。结果发现第三章只是个开始——定位只是拿到了位置数据而第四章才是真正的重头戏怎么从这一堆经纬度里挖掘出人的行为规律。你想想如果你手里有一个城市所有人的位置数据你能干什么是不是感觉能做的事情太多了从预测交通拥堵到追踪疫情传播从城市规划到个性化推荐全都离不开轨迹挖掘。所以这一章既是理论核心也是实践指南。说实话这一章读下来最大的感受是人和粒子的移动真的不一样。随机游走模型里那个傻乎乎的粒子跟每天通勤打工人完全不是一个物种 下面慢慢聊。一、开篇轨迹数据长啥样第四章一上来就给你看了一个轨迹数据的例子表4-1长这样trajIDobjectIDdatetimelongitudelatitudespeed012024-06-0116:01:46109.76357640.6909050.0112024-06-0116:02:45109.76386140.6906947.4一目了然——轨迹本质上就是时间戳坐标的序列。但问题来了原始数据这么粗糙你怎么从中提取出有意义的信息比如这人的活动范围有多大他常去哪儿他的移动有规律吗这就需要一系列特征度量指标来帮忙。二、特征度量指标定量描述你在干啥这里书上介绍了好多指标我把它们归纳成四类2.1 时空相关指标这部分包含了距离、速度、加速度等基础指标。但让我印象最深的不是欧氏距离也不是曼哈顿距离——而是哈弗辛距离Haversine distance。书上说地球是个球面你在球面上算距离不能直接勾股定理。哈弗辛距离就是算球面上两点最短距离的公式。但我注意到一个小细节书上说对于TB级数据来说这个计算量太大所以小范围内可以在公里级把地球近似看作平面直接用勾股定理内心OS搞科学计算真的处处都是精度和性能的trade-off这种在xxx条件下可以近似的表述在论文里太常见了以后写文章也得学着这么严谨。2.2 活动频度指标这部分讲了两个指标访问频度和日活动模式。日活动模式这块有个案例挺有意思的——书里引用了Song et al.2010发表在Science上的工作分析手机用户的日活动模式。他们发现平均有70%的时间用户实际位置和ta最常去的位置重合夜间这个比例能到90%。我当时看到这个数据就人类移动的可预测性竟然这么高这意味着你根本不需要知道这个人是谁光靠历史轨迹就能以70%的准确率猜出ta现在在哪。这背后涉及到的隐私问题……emmm细思极恐。2.3 出行范围指标这一节我最喜欢的是活动半径radius of gyration这个概念。它不是简单的最大距离而是所有轨迹点相对于质心的均方根距离——有点类似于统计物理里的回转半径。公式长这样rg1N∑i1N∥pi−pc∥2 r_g \sqrt{\frac{1}{N}\sum_{i1}^N \|p_i - p_c\|^2}rgN1i1∑N∥pi−pc∥2书里还引用了Lu et al.2012对海地地震后安置人口的分析发现随着时间推移安置人口的活动半径会逐渐增大——这个发现其实很有社会学意义人们到了新地方一开始只敢在家附近活动熟悉环境后才慢慢扩大活动范围。2.4 复杂性度量指标这里是熵的专场随机熵、真实熵、时间无关熵。简单说熵类型含义数值关系随机熵SrandS^{rand}Srand完全随机情况下的最大不确定性最大时间无关熵SuncS^{unc}Sunc只考虑空间分布的概率居中真实熵SactualS^{actual}Sactual考虑时间顺序的实际情况最小对于同一个人的轨迹有Sactual≤Sunc≤SrandS^{actual} \leq S^{unc} \leq S^{rand}Sactual≤Sunc≤Srand。书上还提到可以用Fano不等式来估计可预测性的上限——这个真的是很漂亮的理论把热力学中的熵概念平移到了人类行为分析中。个人吐槽读到这里我专门去查了Fano不等式的原始论文发现它最初是通信领域的理论用来研究信息传输的极限。没想到半个多世纪后被用来研究人的移动这跨学科也太狠了三、个体出行机制模型从随机粒子到打工人这是第四章最大的亮点章节也是我觉得写得最精彩的部分。它按照历史发展脉络把从简到繁的各种移动模型串了起来。3.1 随机游走Random Walk所有模型的祖宗。布朗运动的数学化版本。每一步向左或向右的概率相等结果就是期望位置永远在原点MSD均方位移随时间线性增长→ 正常扩散公式⟨x2(n)⟩nΔx2\langle x^2(n) \rangle n\Delta x^2⟨x2(n)⟩nΔx2我的评价这个模型太简单了现实中谁会像个醉酒粒子一样乱走啊 但它作为baseline和数学基础的价值是巨大的——后面所有模型都是在它的基础上做加法。3.2 列维飞行Lévy Flight这是随机游走的升级版每次移动的距离不再固定而是服从幂律分布f(Δx)∼∣Δx∣−(1α)f(\Delta x) \sim |\Delta x|^{-(1\alpha)}f(Δx)∼∣Δx∣−(1α)也就是说大部分时间在小范围活动偶尔来个长距离跳跃。书里举了一个特别有趣的例子Brockmann2006跟踪了美国46万多张美元钞票的流动轨迹——因为钞票是被人带走的所以钞票的轨迹≈人的运动轨迹。结果发现10~3500km范围内步长分布确实服从幂律分布。另一个例子是人的阅读行为也具有列维飞行的特点——你以为你是在逐行阅读实际上你时不时就会跳段或者直接翻到结尾。看到这里我蚌埠住了这不就是我自己吗3.3 连续时间随机游走CTRW这个模型引入了一个新变量等待时间。之前的模型都假设每次移动的时间间隔固定但CTRW认为等待时间也服从某个分布。根据等待时间和移动距离选的不同分布可以出现三种扩散行为等待时间分布长尾 移动距离正态 →欠扩散(MSD ~tαt^\alphatα,α1\alpha1α1)两者都选正态/泊松 →正常扩散(MSD ~ttt)等待时间泊松 移动距离列维 →超扩散(MSD发散)读到这里我的感悟CTRW模型真的挺万能的通过调两个分布函数就能模拟各种扩散行为。但这恰恰也是它的缺点——参数太多、调参空间太大泛化能力不一定好。3.4 探索与偏好返回模型EPR这是本节的重点戏。前面的模型都是基于随机过程的但人的移动不是完全随机的——人有探索新地方和回到熟悉的地方两种倾向。EPR模型的关键公式探索新地点的概率PnewρS−γP_{new} \rho S^{-\gamma}PnewρS−γ回到旧地点的概率Pprev1−ρS−γP_{prev} 1 - \rho S^{-\gamma}Pprev1−ρS−γ其中SSS是已访问过的地点数量γ\gammaγ是参数。可以看到随着去过的地点越来越多探索新地方的意愿会下降——这也是人类行为的真实写照去过的越多越不想去新的这个模型能很好地复现访问地点数量随时间幂律增长地点被访问频率符合Zipf定律MSD先对数增长后趋于稳定但书里也承认了它的局限性EPR模型对短期访问序列的预测不佳因为它没考虑人类行为的周期性特征。3.5 周期性随机游走PRW这个模型简单粗暴地描述了打工人的一天家→工作→休闲购物→家。每个人的活动范围落在一个椭圆内椭圆焦点是家和公司。这个发现不仅从居民出行日志中得到了验证也被私家车GPS数据所证实。读到这里我真的被逗笑了——原来院士级别的论文最终解释的就是社畜每天三点一线这么朴素的道理 但笑完之后仔细想这恰恰说明物理学家用数学模型精确刻画了一个社会常识这才是科学的价值所在。3.6 交通系统层次性模型HTSPRW只能解释城市内的移动那城市间的移动呢HTS模型提出了一个优雅的假设交通网络是分层的。大城市第一层全连接中小城市第n层连接到距离最近的第n-1层城市。个体在这个层次网络上随机游走选择高层的概率更大对应现实中出行偏好走高速公路、坐高铁去枢纽城市这样就能复现城市间长距离移动的幂律分布。我的评价这个模型太优雅了不需要预设步长分布只要一个层次交通网络一个简单规则就能涌现出复杂的城市间移动模式。这就是复杂系统的魅力吧。四、群体出行机制模型从个体到群体如果说前面是从微观视角看个体那这节就是拉远镜头看整体人口流动。4.1 引力模型这个模型名字就很物理两个城市之间的人口流量跟两个城市的人口乘积成正比跟距离成反比。TijC(mimj)αf(dij)βT_{ij} C\frac{(m_i m_j)^\alpha}{f(d_{ij})^\beta}TijCf(dij)β(mimj)α但书里也指出了它的硬伤参数需要调、缺乏理论推导、没有考虑周围区域的影响。特别是举了个例子——美国Utah州的Davis县到Washington县的流量比Alabama州Madison县到Houston县的流量大一个数量级尽管人口规模和距离都相似。原因是Utah那边周围人口密度低人们被迫走更远找工作。读完这段我tm彻底理解了为什么引力模型不是万能的4.2 辐射模型这是对引力模型的重要改进。核心思想人口流动不仅取决于起点和终点还取决于两者之间路过的那些地方的人口密度。这个模型的好处是没有可调参数只需要人口分布数据在没有历史交通数据的地区也能用。它假设人们会选择一个收益大于起点、且距离最近的地方作为目的地。但局限在于低估长距离出行——在城市尺度上表现不太好因为城市里的交通系统让人可以轻松进行长距离移动去寻找机会。4.3 人口权重机会模型PWO这是国内学者闫小勇提出的模型专门用来解决辐射模型在城市尺度上的不足。核心假设每个地点的机会数与该地人口成正比候选目的地的范围是整个城市目的地的吸引力与到达该目的地之间的总人口成反比书里用北京、深圳、阿比让科特迪瓦首都、芝加哥四个城市的数据验证了PWO模型在预测长距离出行方面明显优于辐射模型。看到国内学者的工作被写进教科书我还是有点小骄傲的4.4 容器模型Container Model这是2020年发表在Nature上的工作Alessandretti et al.可以说是最新的进展。核心思想物理空间是分层的——社区→城市→城市群→地区。每个人的移动本质上是在这些层级之间跳转。模型通过层级距离来判断从位置j到k要经过哪些层级然后在各层级中选择具体位置。书上还给了一个算一算的例子位置a德雅路→开福区→长沙市→湖南省位置b东风路→开福区→长沙市→湖南省位置c余杭塘路→西湖区→杭州市→浙江省a和b的层级距离1只在街道层级不同a和c的层级距离4从省层级就不同了这么一算真的特别直观4.5 频率-距离模型这个也是Nature上的工作Schläpfer et al., 2021发现了一个特别简洁的定律任何位置i的访客数量与该位置到访客居住地的距离r和访问频率f的乘积的平方成反比。ρi(r,f)∝μi(rf)η\rho_i(r,f) \propto \frac{\mu_i}{(rf)^\eta}ρi(r,f)∝(rf)ημi其中η≈2\eta \approx 2η≈2。这个模型在波士顿、新加坡、达喀尔等多个城市都得到了验证说明这是一个普适的规律。读到这里我的最大感受从1846年引力模型到2021年频率-距离模型人类移动规律的研究走过了将近200年的历程最终得到了一个如此简洁优美的公式。科学的美感大概就是这样吧。五、Scikit-mobility终于到实操了最后这一节是本书的实操亮点。Scikit-mobility是一个专门为移动数据分析设计的Python库用了一个Geolife数据集182名用户在北京的GPS轨迹2007~2012年数据量有298.7MB。书里给了完整的代码示例从数据导入.plt文件转TrajDataFrame到特征计算直线距离、路径距离、活动半径、各种熵都配了代码和输出结果。我直接复制跑了一遍效果如下# 直线距离 ≈ 14.94 km# 路径距离 ≈ 14.94 km这俩一样说明这段轨迹还挺直# 活动半径 ≈ 1.35 km# 随机熵 ≈ 9.78# 真实熵 ≈ 9.54# 时间无关熵 ≈ 9.77注意看真实熵 时间无关熵这说明考虑时间顺序后不确定性下降了——因为人的移动确实有时间上的规律性。我的评价Scikit-mobility的API设计真的很友好很像Scikit-learn的风格。但有一点不太满意——书上只演示了个体指标的计算没有展示群体分析和模型预测的实操代码。如果能把EPR模型、PWO模型的拟合代码也加上那就更完美了。不过也可能是因为这些模型的实现比较复杂超出了教材的范围。六、读完的一些碎碎念从简单到复杂的模型演进是理解世界的过程。从傻乎乎的随机游走到优雅的容器模型每个模型都在前人的基础上加了一点点人的因素最终逼近真实的人类行为。这个过程让我对建模这件事有了更深的理解——好的模型不是越复杂越好而是刚刚好抓住了问题的核心矛盾。跨学科的魅力真的绝了。统计物理随机游走、MSD、扩散理论 信息论熵、Fano不等式 社会学推拉理论 城市科学层次交通系统 计算机科学Scikit-mobility——一条轨迹数据居然连接了这么多学科的知识。所以搞研究真的不能只盯着自己那一亩三分地啊数据驱动让理论模型更有说服力。早期的引力模型只有寥寥几个数据点而现在的频率-距离模型用了约十亿条位置记录。量变引起质变随着移动数据的爆炸式增长我们对人类行为的理解也会越来越精准。关于可预测性和隐私的思考又来了。70%的日常位置可预测性意味着什么你的手机运营商知道你每周几点出门、几点回家、周末爱去哪玩。看了这一章我对手机权限管理更谨慎了……七、给同样在入门的小伙伴的建议赶紧去装Scikit-mobilitypip install scikit-mobility然后拿Geolife数据集跑一遍书上的代码。实际跑出来的结果比只看公式直观一百倍。理解模型发展的叙事线随机游走→列维飞行→CTRW→EPR→PRW→HTS这条线背后是从随机到随机周期性再到随机周期性层次性的递进。把握住这个脉络就不会觉得模型太多记不住。❓带着问题读会更好比如人的移动和物理粒子的布朗运动到底差在哪→EPR模型告诉你差在探索返回机制。有这种对比思维知识体系会搭得更扎实。和第三章呼应着看第三章讲定位怎么拿数据第四章讲挖掘怎么分析数据其实是一体两面。建议两章一起复盘效果加倍。评分⭐⭐⭐⭐⭐满星读完感觉对人类行为有了全新的理解而且代码实操真的很加分下一章预告第五章应该是移动网络建模了据说要讲社交网络、传播动力学这些东西。如果还是这个水平的话我可能会给这本书写个系列读书笔记 先立个flag——希望第五章能把图神经网络在移动网络中的应用讲清楚这对我后面做研究很有用。