缘起

一直都对复杂网络非常感兴趣,同时关注一些社会学和历史研究方面,我发现事实上可以用幂律表达的东西除了马太效应这种老掉牙的现象之外还可以更多。

那么在幂律背后到底是什么呢?

如果把幂律当成一个结果而不是一个原因,那它背后一定还有更加深层次的东西。假期读了一本书,书名是《规模》,引发了很多思考,特别是关于三维世界是如何被万物填充的。

如果世界是同质的,那么填充的行为将会是同质的,好吧,我认为这就是背后的原因。

周末写一篇短文,以记之。

首先,我们从幂律成因开始。

幂律成因的一个推导过程

如果你有好奇心,想知道幂律是怎么推导出来的,可能你会在网上搜一些现成的资料来看,然而很多推导步骤让人看了几行就望而却步了,大段大段的迭代,毫无美感。

当然,大段大段整理数学式子是一种必备的数学工程化能力,但对于外行却真的没有可观赏性。

这里我将介绍一种基于 中心场近似(Mean Field Approximations) 的思想,通过 解微分方程 的方式导出幂律的巧妙方法。


幂律的成因目前是众说纷纭,没有定律,我这里是基于其中的 优先依附(Preferential Attachment) 这一说法来推导的。

“依附” 指的是连接一条边。所谓的优先依附,白话说来就是,新加入的网络节点并非个体独立的来做判断要依附到哪个节点,而是先看看已经接入网络的其它节点是如何依附的,然后再稍微加入些自己的判断,决定依附哪个节点。

以DiD_iDi​表示与节点iii连接的边的数量,即节点iii的Degree,那么网络中现有节点kkk的被依附权重则为:

Wk=DkΣj=1NDjW_k=\dfrac{D_k}{\displaystyle \Sigma_{j=1}^{N}D_j}Wk​=Σj=1N​Dj​Dk​​

即WkW_kWk​越大,新节点依附接入节点kkk的概率就越大。

为了可以利用微积分这个强大的工具化简推导过程,从而避开繁复冗余的迭代,我们对节点接入的过程做如下模型:

  • 节点单独接入:网络中的节点是一个一个独立接入的,接入后便不再变化。
  • 中心场近似:跟踪单独节点的接入过程,而不是跟踪网络中的每一个节点的现状。
  • 微分化:将节点接入事件置于一个连续的时间段,观测节点接入事件随着时间的变化。

有了上述的模型,便可以展开推导了。

假设每一个新节点加入均接入111个旧节点新增111条边,那么在时间ttt,便会加入t×1t\times 1t×1个节点加入t×1t\times 1t×1条边,这个时候,整个网络的所有节点的Degree总和即为:

Σj=1NDj=t×1×2\displaystyle \Sigma_{j=1}^{N}D_j=t\times 1\times 2Σj=1N​Dj​=t×1×2 【因为一条边新增2个Degree】

现在做另一个假设,这个假设十分重要且精彩,它将引出一个简单的微分方程:

  • 假设节点编号iii随着时间ttt等值单调递增,即时间ttt刻接入节点iii,且每一个时间ttt仅仅加入一个新节点。
    在该假设下,节点iii的Degree成了时间的函数:Di(t)D_i(t)Di​(t)

现在我们知道,在时间t(t>i)t(t>i)t(t>i)刻,节点iii已经进入了网络,那么新节点j(j>i)j(j>i)j(j>i)依附于节点iii的概率为:

Pj−>i=Di(t)2×tP_{j->i}=\dfrac{D_i(t)}{2\times t}Pj−>i​=2×tDi​(t)​ 【其中,t>i,j>it>i,j>it>i,j>i】

考虑另一方面, 节点iii的Degree的变化率,其实就是新增节点依附于它的概率与新增节点对旧节点新增Degree的乘积, 即:

dDi(t)dt=1×Di(t)t×2\dfrac{dD_i(t)}{dt}=1\times \dfrac{D_i(t)}{t\times 2}dtdDi​(t)​=1×t×2Di​(t)​【式子1】

解上述微分方程,我们有:

Di(t)=(C×t)12D_i(t)=(C\times t)^{\frac{1}{2}}Di​(t)=(C×t)21​【式子2】

此时我们需要求出CCC.

考虑到初始条件,节点iii在时间ttt加入,它自己的Degree为111,即Di(i)=1D_i(i)=1Di​(i)=1,带入式子2,有:

C=1iC=\dfrac{1}{i}C=i1​

所以:

Di(t)=(ti)12D_i(t)=(\dfrac{t}{i})^{\frac{1}{2}}Di​(t)=(it​)21​ 【式子3】

式子3意味着,iii越小,其越早加入,其Degree越大,大到什么程度呢?和iii的−2-2−2次幂相关。

上面的推导过程,我实际上 丢失了一般性 ,数学上要讲 不失一般性。 所以就不能假设一个新节点加入只依附一个已知节点从而只产生一条边,而是应该说, 假设新节点iii加入,依附于mmm个节点,产生mmm条边。 如果这样,仿照上述的推导过程,最终的结论即:


Di(t)=m×(ti)12D_i(t)=m\times (\dfrac{t}{i})^{\frac{1}{2}}Di​(t)=m×(it​)21​ 【式子4】

OK,负数幂初见端倪,我们要用式子4来导出概率密度分布。

我们画出ttt时刻所有节点关于式子4的汇总图像。先体会一下胜者通吃先到先得,还是要借助Geogebra。

我们固定时间ttt并且设m=1m=1m=1,看一下某个时刻,节点iii和其Degree的关系:


从式子4,按照上图的理解,我们可以计算出 “Degree小于某个值ddd的节点的比例” ,解下面的不等式:

m×(ti)12<dm\times (\dfrac{t}{i})^{\frac{1}{2}}<dm×(it​)21​<d

可以得到:

i>t×m2d2i>t\times \dfrac{m^2}{d^2}i>t×d2m2​

由于新加入节点编号按照时间ttt编号,时间ttt刻的接入节点总量即ttt,于是就可以得到这部分Degree大于ddd的节点所占据总量的比例:

Ft(d)=t−t×m2d2t=1−(md)2F_t(d)=\dfrac{t-t\times \dfrac{m^2}{d^2}}{t}=1-(\dfrac{m}{d})^2Ft​(d)=tt−t×d2m2​​=1−(dm​)2

对其求导就是其概率分布:


ft(d)=(2m2)d−3f_t(d)=(2m^2)d^{-3}ft​(d)=(2m2)d−3

好了,这就是结果了,是不是很简单呢?

从最终的式子里,马太效应,胜者通吃,先到先得这些是显而易见的,我们不禁感叹,从一个简单的优先依附这个假设,通过数学推导,竟然能得到自然界的一个普遍的真理!

除了体会这些世人皆知的真理之外,我们还可以用式子去验证和预测一些网络动力学方面的特征,这里就不多说了。

当然了,本节所描述的仅仅是幂律成因的一种机制,在优先依附之外,还有很多别的机制,同样可以导出最终的幂律分布的结论。

这里推荐几个课程:

  1. https://www.coursera.org/lecture/social-economic-networks/3-1-growing-random-networks-A17VS
    我基本完全参考了这个课程里的方法。
  2. https://v.youku.com/v_show/id_XNDA2NjY2NjAzMg
    这节课是一场盛宴,一部电影的长度,能让你获取更多的思考。

现在让我们向外看。

幂律的成因只是一个结果(不然也不会那么多,任何普适原因都不会太多), 无论是什么具体的行为导致了自然界如此普遍的幂律,其背后都是在适配一个普适定律,即 尺度不变性!

OK,让我们继续。

尺度不变性和对数坐标

我们不该问幂律到底任何形成的,我们不该问富人为什么那么少,财富却那么多,我们不该总纠结于幂律的效果,无论是马太效应,还是80/20原则,都只是表象,在它们背后,一切都应该归结于尺度不变性!

以所有的正方体为例,每当其边长增加到2倍,那么其面积便增加22=42^2=422=4倍,其体积就会增加23=82^3=823=8倍,因此,所有的正方体中,其表面积和其体积的23\dfrac{2}{3}32​是成正比的:

S∝V23S \propto V^{\frac{2}{3}}S∝V32​

这又是一个幂律,但这和什么80/20原则没有任何关系。

仔细看上面的表达式,就会发现,我们可以从两个视角来看待所有正方体:

  • 把所有正方体的体积和表面积一起看,那就是幂律,即大量的体积被少量的面积占据。
  • 把所有正方体一个一个地看,所有的正方体都是自相似的,它们没有任何区别。

其中,上面的第二个视角更加具有普遍意义,而不是第一个视角。

Anyway,我们先看第一个视角,这个视角一方面是我们对资源分配不公平的抱怨,同时也是一种自我安慰,只有当我们去观察整体的时候,我们才会去说什么马太效应,我们试图去消除它,但这永远只是幻想。

所谓的公平,并不是要追求尺寸上的公平,而是要追求尺度上的公平,而在尺度上,我们已经公平了。

随便举几个例子,即使再差的班级,也会有学习好的学生,即便再好的班级,也会有学习差的学习,如果你画出所有班级的学习成绩分布,就会发现,单单从特定班级的成绩分布看,你是区分不出这是一个好班级还是差班级的。

同样的例子,宇宙星系和原子在某种意义上,也具有相同的尺度,就好像边长不相等的两个正方体一样。

我们生活在一个多维的时空中,所以可想而知,为了填充这个对于我们每个人每个生物都自相似的时空,我们都是不同大小的正方体,每个生物都有一个尺度相同只是尺寸不同的小宇宙。不光是生物,类似城市,公司这样的有机体,也同样具有尺度不变性的性质。

说白了,到底什么是尺度不变性?

设定两个依赖变化的量xxx和yyy,它们具备幂指数函数关系:

y=Cx−λy=Cx^{-\lambda}y=Cx−λ

我们一眼就能看出来,这是幂律,它是一条下凸的曲线,看着曲线如此不公平,我们会balabala说个不停,从《圣经.马太福音》到成功学。忘了这些社会学的东西吧!让我们往整体看。

现在,两边取下对数:

ln⁡y=ln⁡(Cx−λ)\ln y=\ln(Cx^{-\lambda})lny=ln(Cx−λ)

化简它:

ln⁡y=ln⁡C−λln⁡x\ln y=\ln C-\lambda \ln xlny=lnC−λlnx

我们进行坐标变换,设Y=ln⁡y,X=ln⁡xY=\ln y,X=\ln xY=lny,X=lnx,则有:

Y=ln⁡C−λXY=\ln C-\lambda XY=lnC−λX

这是什么?这是 直线! 那个下凸导致的不公平消失了!

直线的斜率永远不会变化,这是绝对的公平!无论你怎么截取,XXX轴和YYY轴的比例永远是等比例的!

也许,你会反驳说,谁让你变换坐标了啊!哈哈,事实上, 我们应该更加习惯对数坐标才对!

还记得你在第一次工作时第一次得到1000块钱是多么兴奋吗?现在再给你1000块钱还有那时候兴奋吗?

你的收入从1元到1000元带给你的兴奋程度应该和你的收入从1万元到1000万元带给你的兴奋程度相同,而不是从10万元到20万元。

我们更关注的是尺度,而不是尺寸。

那么,为什么y=Cx−λy=Cx^{-\lambda}y=Cx−λ中的−λ-\lambda−λ不是111,为什么这个幂指数不是111,原因很简单:

  • 我们表达的是独立量的单维度的增长,但是其效果却是多个维度共同增长的,所谓的自带多维度积累效应。

正如,我们在数学上描述正方体使用一维的边长,然而边长的增加带来的却是其体积在三维空间的膨胀。

假设世界是一维的,那么幂指数就是1了。

当你的收入从1元涨到1000元时,类似一个正方形的边长增加了10倍,然而正方形并非只有尺寸这一个维度,而是三维,在这单独的一个维度上10倍的增长,在其它维度上就会产生规模化积累效应,最终带来1000倍的整体提升。

我们应该是多维度等尺度膨胀的,但遗憾的是,大多数人做不到。所以即便给你每年普调4000块钱的额外薪水,你也再找不到最初拿到仅仅1000元的那种数钱的兴奋感觉了!

再一个例子,那就是银行的利息,也是等尺度的,这个就不细说了。

在等尺度的大盘下,稍微有一些约束,可能更有意思,详情参见我前几天写的另一篇文章:
https://blog.csdn.net/dog250/article/details/104729084
你会发现,猫咪整体上看起来像老虎,但是仔细看,又不像。

抛开应用科学和工程学这种经理负责的东西不谈,其实我们的社会,我们的心理( 韦伯/费希纳定律 ),我们的生物圈( 克莱伯定律 ),我们的宇宙,在数学上,真真切切更适合用对数坐标去描述!


浙江温州皮鞋湿,下雨进水不会胖。

幂律成因的推导过程以及尺度不变性相关推荐

  1. 第10章* 网络 幂律分布

    幂律是说节点具有的连线数和这样的节点数目乘积是一个定值,也就是几何平均(对各变量值的连乘积开项数次方根)是定值. 例:有10000个连线的大节点有10个,有1000个连线的中节点有100个,100个连 ...

  2. matlab 直方图 肥尾,概率分布细谈:厚尾、长尾、幂律、指数

    在人类行为.社交网络等社会学数据分析中,厚尾分布频繁出现.在这篇文章中,我将梳理这些常见概念的关系. 厚尾分布是什么? 厚尾分布指"尾部"比指数分布"厚重"的分 ...

  3. 可推导出幂律分布的模型的文献小结

    可推导出幂律分布的模型的文献小结 看了一些paper后,一直想写一个关于幂律分布的文献综述,但近年来研究复杂系统,特别是复杂网络的文献增长迅速,而只要是涉及复杂网络的,基本上都谈到了类幂律分布,因此, ...

  4. 2018-4-2 幂律分布函数

    材料来源 幂律分布 - CSDN博客 https://blog.csdn.net/Together_CZ/article/details/71403073?locationNum=6&fps= ...

  5. 【转载】关于幂律分布的一个笔记

    关于幂律分布的一个笔记 原文转自:http://blog.sina.com.cn/s/blog_55954cfb0100ps89.html 0:题外话或补记 最早知道二八法则,还是一本介绍犹太民族杰出 ...

  6. 关于幂律分布的一个笔记_哈克_新浪博客

    关于幂律分布的一个笔记_哈克_新浪博客 关于幂律分布的一个笔记     (2011-03-02 18:12:27)     转载▼     标签:     幂律     二八法则     杂谈     ...

  7. Power law and Power law distribution(幂律和幂律分布)

    原文:<Power-law distribution in empirical data> 1. Introduction 有些分布可以很好的描述,比如成年男性的身高,某物体的重量等,它们 ...

  8. 可以度量金融泡沫的对数周期幂律

    可以度量金融泡沫的对数周期幂律,香吗? 发现金融泡沫并预测到其何时破裂是很多从事金融行业的人的梦想.如今中国股市也成为了热门的话题,然而,资本狂欢之后是股灾,多少人因此从千万富翁炒股变成百万富翁,预测 ...

  9. 利用 Logarithmic Binning (Log-Binning)方法绘制幂律分布(Power-law Distributions)曲线

    文章目录 1. 度分布绘制的几种方法 2. Log-Binning 注意事项 3. 取平均值过程的改进 1. 度分布绘制的几种方法 复杂网络节点的度分布是分析网络属性的一个组成部分.该过程从获得 Nk ...

最新文章

  1. 注意 汇编源程序中,数据不能以字母开头,所以要在数据前面加上0
  2. 0 到 1 的过往,1 到 10 的未来 | 智源两周年,开启新篇章
  3. 数据库迁移用到的命令
  4. tensorflow2调用huggingface transformer预训练模型
  5. 删除安装的mysql数据库文件_安装/删除MySQL数据库
  6. SpringCloud工作笔记060---SpringBoot中使用WebSocket实现即时通讯_实现呼叫中心业务封装
  7. Ant之build.xml详解
  8. PyGame:Python 游戏编程入门-1
  9. SoapUI接口测试——关联——参数化
  10. STM8L101+si4463低功耗和自动唤醒配置
  11. 【AI视野·今日CV 计算机视觉论文速览 第167期】Mon, 11 Nov 2019
  12. APARNET阿帕网
  13. Android游戏开发+实战开发教程视频
  14. 54元阿里云上建站详细步骤
  15. 【requests库】爬取Pixiv日榜图片 并保存到本地
  16. Skyline WEB端开发3——添加一个弹框
  17. 【路径规划-TSP问题】基于粒子群结合蚁群算法求解旅行商问题附matlab代码
  18. php右小角弹出框,js右下角弹出提示框示例代码
  19. 微信小商店快递单怎么一键打印;具体操作流程是什么?丨国仁猫哥
  20. MATLAB安装优化工具包OPTI Toolbox

热门文章

  1. 读书笔记《能力陷阱》第四章:试着朝更多不同的方向发展自己
  2. Bluemix平台打造DC/OS云计算平台(一)
  3. Spark MLlib矩阵分解源码分析
  4. 高边坡监测主要监测的内容
  5. 自定义UTI注册自己的APP
  6. 显著性目标检测SOD论文大盘点
  7. 分布式框架-设置jenkins自动化构建重启项目
  8. ubuntu解决微信无法输入中文
  9. 东京・京都“APARTMENT HOTEL MIMARU”首次导入运用智能音箱和聊天机器人的IT服务
  10. 第一次考CSP(第27次CCF计算机软件能力认证)