社会网络分析:从图论到Python应用
社会网络分析是运用网络和图论研究社会结构的过程。本文介绍了数据科学家的社会网络理论,并简要介绍了图论和信息传播。它深入Python代码与NetworkX构建和暗示社会网络从真实的数据集。
(本文是Pycon 2019演讲的书面版本。您可以 观看视频 下面和 检查github代码存储库 )
网络理论
我们将首先简要介绍网络的基本组成部分:节点和边缘。
节点数 (一种, 乙 ,示例中的C,D,E)通常代表网络中的实体,并且可以保存自身属性(例如重量,尺寸,位置和任何其他属性)和基于网络的属性(例如 度 -邻居数或 簇 -节点所属的连接组件等)。
边缘 表示节点之间的连接,并且可能还具有属性(例如,表示连接强度的权重,在不对称关系的情况下的方向或时间(如果适用))。
这两个基本元素可以描述多种现象,例如 社会联系,虚拟路由网络,物理电力网络,道路网络,生物学关系网络 和许多其他关系。
现实世界的网络
现实世界的网络,尤其是社交网络具有独特的结构,通常与随机数学网络不同:
- 小世界 现象描述了一个真实的网络,在任何连接的网络成员之间通常具有非常短的路径(就跳数而言)。这适用于真实和虚拟的社交网络(六次握手理论),也适用于物理网络,例如机场或网络流量路由的电力。
- 无标度网络 与 幂律度分布的人口不对称,有几个高度连接的节点(例如社会影响力)和许多松散连接的节点。
集中措施
高度集中的节点在网络中起着关键作用,充当不同网络动态的集线器。但是,定义和重要性 中心性 可能因情况而异,并且可能涉及不同的集中度度量:
- 度 —节点的邻居数量
- EigenVector / PageRank -邻居的主动圈
- 亲密性 —与所有节点的紧密程度
- 中间性 —通过节点的短路径数量
在不同的情况下,例如Web排名(页面排名),关键点检测(介于中间),交通枢纽(接近)和其他应用程序中,不同的措施可能会有用。
建立网络
只要我们能够描述节点之间的关系,就可以从各种数据集中构建网络。在以下示例中,我们将构建并可视化 欧洲电视网2018年投票网络(基于官方数据) 与 蟒蛇 网络 包。
好 读取数据 从Excel文件到 大熊猫 数据框以获取投票的表格表示形式。由于每一行代表每个国家的所有选票,因此我们将 熔化 数据集,以确保每一行代表一个投票( 边缘 )(两个国家/地区之间) 节点 )。
然后,我们将 建立有向图 使用 网络 从边缘列表中我们获得了熊猫数据框。最后,我们将尝试通用方法 形象化 ,如以下代码所示:
可视化
不幸的是,内置的draw方法会导致一个非常不可理解的图形。该方法试图绘制一个高度连通的图形,但没有有用的“提示”,无法从数据中获得很多意义。我们将利用我们对实体的先验知识,通过划分和征服情节的不同视觉方面来增强人物形象:
- 职位- 每个国家都根据其地理位置进行分配
- 风格 -每个国家/地区均以其国旗和国旗颜色识别
- 尺寸 -节点和边的大小代表点的数量
最后,我们将 分部分绘制网络组件 :
新的数字更具可读性,为我们简要介绍了投票情况。作为一般说明,绘制网络通常很困难,并且需要在显示的数据量和传递的消息之间进行周密的折衷。(您可以尝试探索其他网络可视化工具,例如 杰斐 , 派维斯 要么 GraphChi )。
信息流
信息传播过程可能像疾病的病毒传播一样,跟随着从一个人跳到他的社交邻居的传染性动力学。通常使用两种流行的基本模型来描述该过程:
线性阈值 定义基于阈值的行为,其中影响是从节点的多个邻居累积的,只有当累积影响超过某个阈值时才激活。这种行为是电影推荐中的典型行为,在听到很多关于电影的推荐后,其中一位朋友的提示可能最终说服您去看电影。
在里面 独立的级联模型, 节点的每个活动邻居都有概率和独立的机会激活该节点。这类似于病毒传播,例如在Covid-19中,其中每个社交互动都可能触发感染。
信息流示例
为了说明信息传播过程,我们将使用 剑网风暴 ,根据《权力的游戏》显示人物。该网络是根据"冰与火之歌"中的共同出现而构建的。
依靠独立的级联模型,我们将尝试跟踪谣言传播的动态,这在该节目中很常见。
剧透警报! 假设 乔恩·雪诺 在这个过程的开始一无所知,而他的两个忠实朋友 布兰·史塔克 和 萨姆威尔·塔利 ,了解他的生活非常重要的秘密。让我们来看看谣言如何在 独立级联 模型:
谣言传到乔恩 t= 1 ,在以下时间范围内传播到他的邻居,并迅速在整个网络中传播,从而成为一种公共知识:
这种动力学高度依赖于模型参数,模型参数可以将扩散过程驱动为不同的模式。
影响力最大化
影响最大化问题 描述了一种营销(但不仅限于)设置,其中营销者的目标是选择网络中有限的一组节点( 播种 ),这样自然就会将影响分散到尽可能多的节点。例如,考虑邀请数量有限的有影响力的人参加著名的产品发布活动,以便将信息传播到他们的网络的其余部分。
可以使用多种技术来识别此类影响者,例如使用我们上面提到的集中度度量。这是最重要的节点 权力的游戏 网络,根据不同的措施:
正如我们所看到的,某些角色重新出现在不同措施的顶部,并且还因其在节目中的社会影响力而闻名。
通过模拟大多数中心节点的选择,我们观察到选择一个网络节点可以实现大约50%的网络覆盖率-这就是社会影响力可能如此重要。
另一方面 影响力最大化很难 。实际上,它被视为 NP-硬问题 。开发了许多启发式算法,以在有效的计算中找到最佳的种子集。尝试使用蛮力方法在我们的网络中找到最佳播种对,导致花费41分钟并达到了56%的覆盖率(通过选择 罗伯特·巴拉森 和 卡尔·德罗戈 )-使用集中式启发式方法很难实现的结果。
包起来
网络分析是针对各个领域的复杂而有用的工具,尤其是在快速增长的社交网络中。这种分析的应用包括 行销 一世 最大化影响,欺诈检测 要么 推荐系统 。可以将多种工具和技术应用于网络数据集,但需要根据问题和网络的独特属性进行明智选择。
有用的资源
代码和数据:
- 权力游戏数据集 @jeffreylancaster
- 网络教程 @MridulS
- 标记图片 @林森
- 欧洲电视网数据
文件:
- 时间很重要:通过预定播种来影响社交网络中的最大化— D. Goldenberg等。
- 积极的病毒营销:将持续的主动播种工作纳入扩散模型中-A. Sela等。
- 通过社交网络最大化影响力的传播-E. Tardos等。
- 社交网络中有效的影响力最大化— W. Chen等。
- 独立的级联和线性阈值模型-P. Shakarian等。
让我们保持联系!
向我提出以下问题和想法 邮件 要么 领英 。
对我在Booking.com上的工作感兴趣吗? 查看 我们的 Booking.com数据科学 博客。