文|金诚 腾讯游戏数据挖掘应用中心研究员
去日本奈良旅游,不得不提的是“东大寺”。千百年来,东大寺经历了无数的腥风血雨,曾多次在战火或天灾中遭受重创,却每每在数百年中又得到重大翻修重整,因而屹立至今,成为既存在于史书中又存在现实中的文化遗产之一,可以让今人设身处地的一睹千年前古人的劳动和智慧。
值得一提的是,在日本各地建立国分寺和国分尼寺的做法,被认为是效仿中国隋唐时代在各地兴建的国立寺院。例如武则天时期著名的大云寺,以为国祈福。而在武则天时期曾经遍布全国的大云寺,因为权力交接、天灾人祸,遭受了近乎全面的毁灭……
历史上耗时数十年、数代人参与的大型工程还很多,例如埃及金字塔、中国的万里长城、铁路修建、电力铺设等等。而小到一个家族的兴衰,大到一个大型的企业组织、一个城市、一个王朝的变迁,亦蕴含着一些人群汇聚的独特魅力。
是什么样的魔力将原本独立自由的个体汇集起来,形成一个个的小组、团队直至大型的组织?汇聚而成的团体,又将如何进一步经营壮大,寻求在团队凝聚力、成员活跃度、协同作战能力等方面寻求突破?
社团、群体的延续性、可持续性的问题,本身既抽象又开放,在时间和空间的长河中普遍存在,也许根本不存在完美的解答。
在这篇文章里,我们试图将社交关系构成的网络结构从纷繁复杂的具体场景、细节条件中剥离出来,单单从个体间连接的类型这一角度,对整个网络的持久活跃能力给出了一个回答——即便对于同样的一群个体,具有明确的个体属性(例如,个体的流行度popularity,可理解为个体成为大V用户的内因,潜力值)和个体间的相似性(例如兴趣爱好、观点论调、行为习惯,个体信息上的同质程度,如:喜欢同一个话题、同一个东西、同一个人、生活环境类似、地理位置类似等等),并且他们具有一样的网络拓扑结构,由于连接类型上的属性差异,由这群个体形成的社交圈子也可能在维持用户活跃度上具有截然不同的能力。并且,以个体间的相似度为基础,适当偏向高流行度个体的网络增长的方式,可以让网络达到极高的持久活跃能力。
(注:在这里,我们假定用户的吸引力主要来自于两个方面,一个是用户本身的流行度,成为大V的潜质;一个是用户和其他用户之间的相似度,二者的共同作用,决定了用户之间连接关系的形成。实际上,流行度也可以不局限在个人的层面,也可以是一个社会热点问题、一条热点新闻、一个爆款视频、一篇10万+的文章、一个营销策划的方案,这些都是个体内在的流行度带来的显性的外在结果。)
这一回应距离“正确答案”、“标准答案”可能谬以千里,但不妨作为一块上好的砖块抛出,希望可以吸引、甚至激发大片美玉的出现。
问题的抽象
影响一个社交群体活跃程度的内部因素非常之多,每个不起眼的因素都可能对社交网络中的局部乃至整体带来潜移默化、甚至突发强烈的作用;更不用提难以捉摸的外部环境影响。于是,本文尝试将这个问题向某个方面逐渐化简、抽象。
图1 运营用户生命周期的示意图
抛开外部环境的影响,也抛开具体场景细节的考量,一个长远运营的社区可能会经历以下的周期:从吸引不同个体加入进来,到用户对社区的熟悉、活跃、沉淀,到用户稳定留存下来,再到用户对社区逐渐失去兴趣,再到用户淡出社区。
社交网络用户活跃的问题可以被抽象提炼成一个纯粹由节点(node)和边(edge)构成的社交关系图上的问题。进一步的,社交关系中节点与连边的数目和状态一直处于一种动态变化中;社交网络整体活跃程度的问题也转化成——如何让网络中的大量节点维持更长期的活跃?这一问题对复杂网络的理论研究以及社交群体实际的运营而言,无疑是一件有趣且有意义的事。
问题的进一步思考:
当我们将这个问题抽象化简之后,那么一连串的问题又双叒叕来了:
1.人们的社交关系如何抽象刻画?
2.节点的活跃状态如何刻画?
3.连边的形成、断开、重连等如何刻画?
4.这个社交网络上面各种状态的变化如何刻画?
……
还有最要命的,如此抽象化了的模型已经跟现实世界半毛钱关系都没有了,那这个抽象模型的存在还有什么意义呢?在简化抽象结果上得出来的结论,可能对现实世界而言然并卵。
是的,这么讲没毛病。就像在电子游戏里地球上存在过的某个生命体,对于现实世界里地球上几十亿年的演化而言,好像也没什么卵用。不过至少,在抽象后虚拟的时空里,这些抽象模型里可能蕴含着这个虚拟世界里的运行法则。而这些虚拟的时空,可以看做高维的现实在某种低维时空下的一个投影。
注:关于社交网络生成过程的模型抽象,本身非常有趣也很神奇,不过这并不是本文想要探讨的重点。有额外兴趣的朋友可以移步腾讯研究院之前的发文《社交网络中的幂律分布:为什么有的人微信好友5000而你只有500?》。那篇文章没有提供一个完美解答,但可以让你有更进一步的了解。
先前学界的工作通常在预先生成或给定的网络结构上考虑个体的持久活跃问题;然而,社交网络的发展,是网络在增长的同时伴随着已加入个体的活跃状态的级联反应(cascading effect,可以理解为连锁反应,连带作用)。
图3 (a) 网络中节点由少变多、连边也由少变多,可以有微量的边减少之类的;(b) 一个社交群体因为个别节点的不活跃而死寂
真实的社交网络具备一些特征,每个特征都可能影响到个体的活跃度。接下来,我们就对网络增长的过程(多样的网络增长模式),节点活跃状态改变的过程(社交网络中个体的活跃状态也具有级联反应)还有二者的协同(社交网络的增长+节点活跃状态的联动 → 一个网络结构与节点状态协同演化的过程),做一个简单介绍。
多样的网络增长模式
社交网络怎样由小长大?它们的增长模式是复杂多变的。
例如早期新浪微博的策略是绑大V,邀请各路明星名人加入微博,然后这些名人带动粉丝加入,这是一种个体流行度优先(popularity-first)的增长模式。还有一些网上的兴趣社区,是用户根据兴趣爱好联系起来,这类网络的增长模式是个体间相似度优先(similarity-first)。
此外,人人网或称校内网抓住的是高三毕业大一新生的需求,学生需要跟高中同学保持联系,同时在大学结交新朋友,还有用户是想看同年级中的美女帅哥、学霸、社交达人等,这里糅合了同学关系、熟人关系、线下朋友关系等等多重关系的作用;与之类似,微信也是糅合了QQ好友、通讯录好友等线上好友、线下熟人等等关系的作用。
还有一些不太成功的社交网站,没有明确的增长方式,可看做是自由生长、放养型的维护方式,也可以理解成一种没有人为干预的自组织的增长方式。
正如上文中提到的,对于个体间的社交吸引力,虽然我们提炼出了个体的流行度(popularity)、个体间的相似度(similarity)这样简单纯粹的元素,但是对于其他一些复杂的线下关系、熟人关系、通讯录关系,在本文中并没有提炼出一些明确的、可以刻画的属性。而且,即便是流行度、相似度在不同的具体场景下,也存在不同性质、不同维度的具体体现。
个体本身的属性差异,以及个体之间链接类型的差异使得即便是相同的网络结构、相同的一群个体,在不同的网络增长模式下,依然可能带来不同的网络持久性。
社交网络中个体的活跃状态也具有级联反应
在高压电网中级联失效(cascading failure)、连锁反应是一个常见的事故,当电力系统满载或者轻微过载时,某个节点的错误有可能导致大范围电力系统的瘫痪,一夜回到解放前。这一现象至今非常普遍,06年欧洲大断电和12年印度大断电波及几百万、几亿人口的生活。
又如,在生态系统中,食物网的持久性体现在初始物种在受到干扰之后存活下来的比例。一个营养学物种的消亡有可能威胁食物网的平衡;更别提各国政府不约而同闻之色变的物种入侵问题。
类似的,在社交网络中,维持个体的活跃度是促进整个社区稳定、发展、繁荣的关键一步。一些关键人物的状态改变,也可能导致整个社交圈子的性质发生变化,例如:小到一个家庭里某个家人的健康与疾患,大到公司、国家领导人的交接。
这些来自不同领域的高压电网、食物网、社交网络,在网络结构上形成的“连锁反应”、“级联效应”,都可以抽象成一个几何图形上的结构和状态变化。在图论中,k-core 与 k-core 分解的概念就被用来理解网络结构对级联反应的作用。
什么是core的概念?一个网络拓扑结构中,节点的重要性是可以排序、打分的。按照不同的指标、不同的角度,都可以给出一套给节点打分排序的方法。Core的概念认为一些节点在构成该网络结构时位于更高的“内核之中”,具有更高的core值;越是处于核心的节点,对于网络结构的稳定、网络上的传播等等,可能比其他节点扮演更加重要的角色。
这里需注意的是,节点的“重要性”可以体现在很多层面上。例如:节点的度数可以衡量节点的潜在影响力、可触达的用户数量,是最为常用的衡量指标之一。拥有大量粉丝的大V用户被认为具有更大的影响力和号召力。在营销学中,使用KOL(关键意见领袖Key Opinion Leader)的概念来分析诸如节点度数、core值等等不同指标下,衡量节点对营销内容的传播和扩散起到的作用。
当然,节点/连边的重要性还可以体现在关键的节点或者关键的边对于维持网络局部结构的稳定程度所起的作用等等其他方面上,并不局限于KOL和营销问题。
这里举一个实例:如下图,如果我们称一个子图(一个网络图的一部分称为子图)是3-core或者3-degeneracy,那么图中每个节点最少具有3个邻居是属于3-core 或更高层的core。
图4 一个典型的 k-core 分解示意图。对 k=3,3-core 这一层而言,每个节点至少有 3 个邻居也属于 3-core(或者更高层的 core)。K=1,2时也类似。计算core值时,从0-core, 1-core开始,像剥洋葱一样,一层一层将网络剥离成几个互不重叠的core层。
对3-core的计算过程依赖于先要获得0-core,1-core,2-core对应的节点,像剥洋葱一样,一层一层的拨开。0-core就是孤立的节点。1-core要求节点最少与1个不低于1-core的邻居相连,由此得到core值为1的节点集合,并将这些节点从原图中剥离开。
此时,原先度数为2的一些节点,也可能度数降为1了(因为邻居被剥离出去),这些节点也属于1-core,并被继续剥离。直到所有满足1-core条件的节点都被剥离殆尽,网络中只剩下高于1-core值的节点群体时,第一层的分解才算完成。由此,进入2-core分解的阶段,以此类推。
K-core 可以帮助人们理解图的稀疏程度、连接密度等[1];此外,core值越高的节点,在纯粹的拓扑结构上具有更加重要的连接地位。
K-core是建立在静态的网络拓扑结构上的一种结构指标。不过,k-core本身对于网络上节点动态传播能力也具有一定的衡量价值。在这里,受到k-core定义的启发,我们也可以引申出一个活跃邻居阈值的概念:当节点具有不少于c个活跃邻居时,节点可以继续保持活跃。
这里需要说明的是,对每个人来说,这个阈值很可能存在,但不一定是同一个。而且,很可能还跟软件应用本身的设计,或者非泛泛的邻居有关。
社交网络的增长+节点活跃状态的联动 → 一个网络结构与节点状态协同演化的过程
社交网络的增长大趋势,伴随着个体活跃状态的级联,这两个过程是协同发生的,不是相互孤立的。这一协同过程对网络持久活跃的影响,还缺乏探讨。
不同的社交网站具备不同的增长模式,这些多样的增长模式到底对网络中个体的持久活跃意味着什么?这个问题更深一层的是:不同的社交关系,不同的链接类型对网络持久性有什么样的影响?
考虑到通过获取各类社交网站长期的真实数据来促成这项研究有较大的实施难度。我们选择从网络建模仿真的角度来探讨这个问题,对前文提到的社交网络的增长过程与节点活跃状态的变化联动,分别建模并结合起来。这个工作建立在 Papadopoulos 的网络增长模型和受k-core启发的节点状态级联模型基础上。
Papadopoulos 的工作提供了一个迄今最为强大的网络增长模型[2]。先前网络的增长模型是以节点的流行度为核心,高流行度的节点更容易具备较高的连接度数(更广的人脉),而高度数的节点有更大概率优先与新加入的节点链接。
Papadopoulos 认为,节点之间的相似度也是吸引其他节点与之相连的因素。他们的模型将多种真实世界中的网络(技术网络、生物网络和社交网络)映射到由节点的流行度和相似度构成的极坐标中,并引入流行度和相似度所在双曲空间中的双曲距离作为优先链接的评判标准。
这项工作的意义是,这个改进的优先链接模型,不但可以复现先前优先链接模型实现的节点度数在统计学上的幂律分布(类似于经济学里的马太效应,度数高节点度数越来越高,度数低的节点度数很低而且数量众多);而且,由该模型生成的网络可以很好的模拟多种真实世界的网络在双曲距离上的链接概率。
注:读者如对Papadopoulos模型的深入理解感兴趣,可点击阅读原文参阅公众号文章《从社交网络到量子纠缠:我们如何理解空间?》
不过,Papadopoulos 的工作只考虑了网络的增长,不涉及节点状态动态改变的这些问题;此外,在其模型中,节点的流行度与节点加入网络的时间是绑定的,这与真实世界中多样的网络增长模式不符。
我们提出基于节点的流行度优先(popularity-first)、相似度优先(similarity-first)和随机加入(random)三种社交网络的增长模式,解绑了节点的流行度和加入时间,同时保留了基于双曲距离的优先链接机制[3]。然后,我们在增长网络基础上引入了级联过程,可以描述网络增长与节点状态级联的协同演化。
这里需说明的是,我们这里提出的随机增长是空白试验,完全不考虑节点的相关性,就随机的加入网络;这跟真实世界中一些自由增长的网络还是有点区别的。
图5 三种不同增长模式下社交网络演化过程示意。在极坐标系下,每个节点具有两个属性,极径r和极角θ。极径可看做节点的流行度的大小,极径越小,流行度越高;而两个节点的夹角代表它们的相似度。
流行度优先就是节点按照极径由小到大加入网络;相似度优先就是按照夹角的大小(例如从0度开始),由小到大加入网络;随机模式则是充分随意的加入节点。节点是否链接由双曲距离的大小等参数决定,节点再经过自发活跃度之后,由活跃邻居阈值决定是否继续活跃。
在考虑节点活跃状态的变化时。考虑到当新用户加入网络时,本身会具有一个自发活跃(spontaneous activity)的时期,这时个体对网络充满新鲜感,它的活跃主要依靠自身的好奇心和探索的需求驱动,不受其他用户的影响。当新鲜感过了之后,如果个体还有一定的活跃邻居,那个体还可以继续保持活跃,否则就会变成不活跃。
这个活跃邻居阈值(active neighbour threshold)可以追溯到上文提到的k-core。如果每个节点要具有3个活跃邻居才能保持活跃,那最终这些活跃节点构成的图可以看做是动态网络下的3-core 退化图。这里早期“新鲜感自驱动”和后期靠“活跃邻居维持”的考虑,从广义上讲对应社会心理学家常提到的“探索”与“习惯”。
图5是仿真模型基于三种网络增长模式的演化过程示意。节点都具有流行度以及与其他节点的相似度。即便是相同的一批节点,遵从相同的规则来建立链接和保持活跃,但是因为加入网络的顺序不同,网络增长的模式不同,最终网络中活跃节点的比重也会截然不同。
如图例中所言,针对五个节点的示意图,即便是相同的一批节点集合,节点之间基于相同的链接规则,节点的活跃状态也基于相同的规则,唯一改变了节点加入网络的顺序,同样会造成节点的链接类型、生成的网络结构不同,继而节点的活跃状态也呈现出明显的差异。
请注意,这里仅仅着眼于社交网络发展壮大的早期,尚没有触及其他阶段、其他因素的作用。并且,这种网络结构的差异、节点活跃状态的差异,并不是一次两次随机偶然的事件。当进行大量重复的仿真过程之后,一些明确的现象和规律已呼之欲出……
启示 & 展望
这篇科普文,主要围绕“社交网络如何从小长大,如何维持网络上用户的长期活跃”这些话题,从仿真建模的角度,对网络的增长和节点活跃状态联动的建模过程做了一个介绍,并进行了一个阶段性的探索。这一小探索已然表明:节点活跃程度的演化不仅取决于网络拓扑,而且与节点间的链接类型有关;节点间的链接类型又蕴含在网络的增长和节点活跃状态变化的协同过程之中。
依据这一模型[3],我们发现:即便是对于同样的一群个体,具有明确的个体流行度和个体间的相似度,由于连接类型的差异,这群个体形成的社交结构也可能具有截然不同的维持用户活跃的能力;并且,以个体间的相似度为基础,适当偏向高流行度个体的方式,可以让网络达到极高的持久活跃能力。
本文中考虑的节点的流行度、相似度,节点自发活跃等内容是对真实世界的抽象。在涉及具体的社区类产品的运营时,这些内容对运维策略和产品设计也有启发。因为作者目前对企业运营的具体实践认知不够,不敢妄加揣测,这里仅抛出来一些点,希望能给读者一点启发,可能业内专业人士能给出更好的解答。
[1] “Degeneracy (graph theory),” Wikipedia. 19-Sep-2018.