社交网络分析(SNA)简介
A Brief Introduction to Social Network Analysis (SNA)
By Jackson@ML
1. 什么是社交网络?
1) 关系与网络。 人活在自然界,也活在社会之中。人有年龄,种族,宗教信仰,教育水平,家庭住址,以及社会地位和收入等标签,用以量化或者可能用来测量的指标。
人与人的相互关系,可以描述为个体(或节点),以及连接(或边缘)等要素。
2) 定量与定性。 什么样的量化标准来源于网络数据?何种定量和定性的结果需要测量?一个人融入社会的能力,也就是在社会网络中角色的可能性。
图1 来源于Internet
2. 有效途径
带着这些问题,可能需要构建多元化的回归模型,用来控制一些变量,并且链接其它影响结果的变量。这对于很多社交网络分析(SNA)的里程碑,是个行之有效的途径。
3. 链路分析
**链路分析(Link Analysis)与社交网络(Social Network)**呈现对等关系,但不完全相同。
人和人之间的关系,形成链路;很多人之间,形成复杂的链路,而他们之间也有核心点(核心人物),如下图:
图2 来源于Internet
4. Where’s George货币追踪
图3 来源于Internet
这是一张2021年系列的美国一美元纸币,由货币追踪项目“乔治在哪里”注册。
(为了防止人们不诚实地报告钞票,序列号已被屏蔽。右上角的遮挡线部分遮挡了英文文本“THIS IS A REGISTERED BILL”和钞票的序列号。)
但尽管这样,对这张美元钞票的追踪,令人揭开惊天大幕!
它可以在用户注册和标明地理位置后,精确测算出这张美钞曾经到过哪个村镇和地理位置。
于是,这激发了人们巨大的好奇心,越来越多的人上网注册自家使用过的钞票。
经过统计分析,研究者发现,绝大部份钞票,仅在离家不远的地方使用过;通过钞票运动轨迹还发现,其实大部分人并没有走得很远,或者跳出自己的圈子,到远处去工作生活。
绝大部分人的生活半径,也就在周围3至10公里范围内。
归结起来看,其实这就是传统空间地域的社会网络的流动。
5. 主要元素
社会网络分析主要针对的是两种要素,第一个是节点,第二个就是连接。社会网络就是节点之间的互动关系。
比起节点本身的属性和特点,节点之间关系更加重要。也要强调,社会网络对节点的影响。
图4 将人视为结构化对象(来源于Internet)
5. Org chart组织架构图
某IT公司组建团队,旨在面向客户服务,所有产品和资源导向客户;因此,组织架构图就从原始的一个经理领导所有人,变为较扁平、但责任明确的组织架构图(Organizational Chart,简称Org Chart),如下图所示:
图5 某项目团队组织架构图
项目团队按照合同范围,将任务分解到各个工作角色,然后由Project Manager(项目经理)统一负责;至于和其它项目团队合作,也可以输出架构类似但功能不同的团队组织架构。
6. 必备工具
如果根据组织架构图组织人力资源,来完成项目任务,或者达成公司既定目标,那么,需要准备完成这个架构图(网络图)的必要构建。因此,需要一些必备工具。
1) Python软件包
2) NetworkX第三方库
要想完成项目最初构建,需完成安装和导入,例如在macOS有以下步骤:
$ pip install networkx
$ python
>>> import networkx as net
>>> import matplotlib.pyplot as plot
>>> org_chart = net.read_pajek(“Project_OrgChart.net”)
>>> net.draw(org_chart)
之后,会生成正式的组织架构图;该组织架构图也就是一种非正式的社交网络图。
7. Graph理论
网络是互相连接并错综复杂的整体;社交网络体现这样的特性,广泛采用图形来表示,就像上面例子的链路分析图一样。
因此,要很好地表达网络,就需要图的概念和方法。图(Graph)理论就这样出台了。
1)什么是Graph?
Graph在英文中是“图”的含义。一个图,也是普遍的数学抽象。即便你从未遇到这样的数学概念,你也很有可能用它来工作。
例如,上面的项目组织架构图,必然涉及到项目计划;项目计划就是一个图。
生活中的电路图,也是一个图;软件项目中相互依赖的文件,也组成一个图。
2)关于社交网络
一个社交网络类俗于一句话的句子集合,它描述彼此关系,例如下面的句子:
Tom likes playing basketball. (汤姆喜欢打篮球)
Noun → Verb → Noun
上述的简单句子,作为社交网络分析的基本单元,称作“dyad(二分体)“。
每个dyad表明一个单一关系,即传统图理论中的一个边缘(Edge)。
很显然,句中的名词该关系(称作”vertices”,或者节点(nodes))中涉及到的人。
3) 回到nodes和edges
-
Nodes(节点)。在社交网络中,节点有一个类型。每个节点能代表一个人,一个组织,一份博客帖子,或者一个标签等等。
如果一个图仅包含同类型的节点,它称作单模式图;如果它包含了两种类型之间的关系,它称作双模图。 -
Edges(边缘)。对于前述的,描述社交网络的边缘(Edge),可以大胆假设:网络上所有边缘在分析中使用一个单一的一致的动词来描述.
例如:最大限度形成句子描述时出现的高中生的三角关系,如下所示:
Alice likes Bob very much.(爱丽丝非常喜欢鲍勃)
Bob and Carol study together.(鲍勃和卡罗尔一起学习)
Carol fights with Alice after school.(卡罗尔下课后跟爱丽丝打架)
这种语意之间的关系,在开发社交媒体应用程序时要重点考虑。这些关系涉及到的边缘(Edge)则可用一个数值来定义。
社会学家通常使用一个成为Likert的级别来区分喜欢程度。
对喜欢程度的描述,大致可以分为以下几个级别:
1) 不知道
2) 很不喜欢
3) 不喜欢
4) 既不喜欢也不讨厌
5) 喜欢
6) 非常喜欢
由此抽象出的边缘列表(Edge-lists)如下所示:
那么,如果用Python的数据类型表示,首选List,可将边缘表示如下:
$ edges = {‘A’: {‘B’: 2, ‘D’: 5, ‘E’: 5}, ‘B’: {‘A’: 2, ‘D’: 1}}
以此类推。
这样的临近列表,使用Python语言的dictionary(字典)类型来存储。当需要数据分析时,搜索很快捷,增加和删除节点或边缘都很容易。
社交网络分析将持续推出技术文章,研究SNA项目构建和发展。
敬请关注、收藏和点赞👍。
您的认可,我的动力!😃