1-概论
从社会的角度去分析和理解个人的行为。
“人的本质并不是单个人所固有的抽象物。在 其现实性上,它是一切社会关系的总和”——马克思《关于费尔巴哈的提纲》
“社会不是由个人构成,而是表示这些个人彼 此发生的那些联系和关系的总和”—— 《马克思恩格斯全集》V.46, P.220, 人民出版社, 1979年
相关应用
- 精准营销:用户画像、个性化推荐、社会化营销
- 舆情管理:危机预警、观点挖掘、情感分析
- 分析预测:市场研判、新闻热点预测、用户行为画像与预测
- 刑侦反恐:潜在关系挖掘、犯罪社团挖掘
用的教材主要是《社会媒体挖掘》一书,英文版 PDF 和 Slides 见 http://dmml.asu.edu/smm/
主要内容包括
- 图论基础
- 网络度量:网络权威/中心用户查找
- 网络挖掘:小世界现象
- 数据挖掘:社区(团)挖掘
- 社交网络的信息传播:影响力最大化、热门话题预测
- 影响力和同质性
- 用户行为分析:网络学、社会学、经济学、博弈论
- 推荐系统
参考书目
• 《社会媒体挖掘》,Reza Zafarani等
• 《网络、群体与市场》,⼤卫·伊斯科,乔恩·克莱因伯格
• 《Pajek蜘蛛: 社会网络分析技术》,沃特·德·诺伊等
• 《社会网络分析:⽅法与应⽤》,沃瑟曼等
• 《在线社交网络分析》,⽅滨兴等
• 《社会网络分析法》,约翰·斯科特
• 《社交网站的数据挖掘与分析》,Russell
• 《Web数据挖掘》,Bing Liu
社交网络概述
由英国⽜津⼤学的⼈类学家罗宾·邓巴(Robin Dunbar)于2009年 提出:根据猿猴的智⼒与社交⺴⽹网络推断出:⼈类智⼒将允许⼈类拥有 稳定社交⺴⽹网络的⼈数是148⼈,四舍五⼊⼤约是150⼈。因此,150⼜ 称邓巴数字。
该定律指出:⼈的⼤脑新⽪层⼤⼩有限,提供的认知能⼒只能使⼀个 ⼈维持与⼤约150个⼈的稳定⼈际关系,这⼀数字是⼈们拥有的、与 ⾃⼰有私⼈关系的朋友数。也就是说,⼈们可能拥有150名好友,甚 ⾄更多社交⺴⽹网站的“好友”,但只维持好与现实⽣活中⼤约150个⼈ 的“内部圈⼦”。⽽“内部圈⼦”好友在此理论中指⼀年⾄少联系⼀ 次的⼈。
社会网络分析
为理解⼈类各种社交关系的形成、⾏为特点以及信息传播 的规律,采⽤相关的分析⽅法,涉及信息学、数学、社会 学、管理学、⼼理学等多学科的融合理论和⽅法
社会网络分析⽅法基于⼀个直觉性观念,即⾏动者嵌⼊在 其中的社会关系的模式对于他们的⾏动结果有重要的影响, 社会网络分析者则⼒求揭⽰不同类别的模式
社会网络分析的特点包括
-
源⾃于联系社会⾏动者关系基础之上的结构性思想
-
以系统的经验数据为基础
-
⾮常重视关系图形的绘制
-
依赖于数学或计算模型的使⽤
社会计算
2009年2⽉,美国哈佛⼤学⼤卫·拉泽(David Lazer)等15位美国学者 在《Science》上联合发表了⼀篇具有⾥程碑意义的⽂章 《Computational Social Science》
社会计算(Social Computing),⼜称计算社会学(Computational Social Science)。 ⼀般指社会⾏为和计算系统交叉融合⽽成的⼀个研究领域,研究如何利⽤计算 系统帮助⼈们进⾏沟通与协作,如何利⽤计算技术研究社会运⾏的规律与发展 趋势。
社会计算的研究目标
1)在深⼊理解当前社会问题动态性、快速性、开放性、 交互性、数据海量性和复杂性的基础上,为解决新兴社会 问题建⽴统⼀的社会科学基础模型和理论框架;
2)社会科学基础模型和理论“计算化”或建⽴其到计算 技术的映射机制,研究与社会相关应⽤中的建模与计算⽅ 法,⾃下⽽上地为解决新兴社会问题提供整套理论和技术 ⽀撑;
3)深化学科交叉研究,为⺴⽹网络化社会背景下的社会科学 研究提供实验⽅法;同时,以新兴问题促进相关研究领域 内涵和内容的延拓,推动基础理论和⽅法的创新和突破。
而社交网络挖掘是社会计算的研究内容的一部分。
社交网络挖掘
Social Media Mining is the process of representing, analyzing, and extracting meaningful patterns from social media data
社交网络挖掘的挑战:
-
大数据悖论
- 个体数据是往往是稀疏的,因此才需要汇聚群体/整体的⼤大数据
- 举例:社会推荐中的冷启动问题
- 个体⾏行为模式不能简单等同于整体,因此不能是个体的简单相加来代表整体,也不能整体的简单拆分来刻画个体
- 个体数据是往往是稀疏的,因此才需要汇聚群体/整体的⼤大数据
-
数据采集与获取:爬虫、API等需要掌握的重要技术⼿手段
-
数据清理与噪⾳音消除
- ⼤大数据可以允许个体数据的错误,但不等于不需要数据清理
- 消除噪⾳音个体trade-off 个体数据价值挖掘
-
性能/作⽤用评价
- ground truth(事实/标准答案)如何获取?
- 没有客观标准答案的如何评价?
- 数据挖掘出来的模式/结果能否解答“为什么”?
数据分析/挖掘的结果往往能较好地解释 what/where/when/how many/how often 但较难回答why
我们面对的是社会学的问题,我们⽤用交叉的思想去寻找解决方案,并利⽤数学和信息学的手段来解决它
2-图论基础
图是网络结构的数学模型
网络问题一般可以转化成一个图论的问题
- 微博信息传播网络:Given a piece of information, a network of individuals, and the cost to propagate information among any connected pair, find the minimum cost to disseminate the information to all individuals.
- 科尼斯堡问题:奇点的数目不是0个(起点即终点)就是2个(一个是起点,一个是终点)
- 欧拉环路:途经每条边恰好 一次,起点=终点
- 哈密顿回路(点之间只能遍历一次
- 四色猜想/问题(拓扑学topology 原意“地质学”)
图的基本结构
- 结点/节点 vertex/node:用户 user/actor、组织、网络、各类资源item/resource(商品、电影、音乐、论文)
- 边 edge:有向图,入度邻居 Nin,出度邻居 Nout
- 边的重数:具有相同始点和终点的边称为平⾏边,平⾏边的条数称为 边的重数
- 度 degree
- 度数为1的结点是悬挂结点,其关联的边是悬挂边
- 度数为0的结点是孤⽴点
- 度分布
- 图的密度:实际边数与理论上最⼤的边数之⽐
- 对无向图,\({L\over n(n-1)/2}\)
- 有向图,没有系数 2
一些简单的结论
- 无向图中,所有节点的度数之和是其图中边数的两倍
- 无向图中,度数为奇数的节点有偶数个
- 有向图中,所有节点的入度和等于出度和
图的表示
图的同构 graph isomorphism
- 如果图 G 中的结点集 V 与图 G’ 中的结点集 V’ 具有一一对应的关系,并且对应的边都具有相同的重数,则称 G 与 G’ 同构,记作 \(G\cong G\'\)。
- 因此,两图同构必须满足下列关系:节点数、边数相同、度数相同的节点相同。(必要非充分)
- 判断:双射函数
图的类型
-
零图 null graph:没有节点没有边
-
空图 empty graph:边集空,节点集可以非空——零图是空图
-
完全图 complete graph:任何节点之间有边
-
无向/有向/混合图
-
补图:由图G中的所有结点和构成完全图需添加的边所组成的图称为G的补 图,记作 \(\bar G\)
-
简单图:两节点间最多一条边
-
多重图 multigraph:可以多条边
-
带权图/赋权图
-
标号图:权重用+/-或0/1等二元表示
-
树与森林:
- 树是特殊的⽆无向图,没有回路
- 树的任意两点之间恰好有⼀一条路径
- 森林由多个互不相连的树组成
-
生成树 spanning tree
- 包含图中所有结点的树型子图
- 带权图中,权重最小的生成树为最小生成树(也可能多个)
-
斯坦纳树 steiner tree
- 对于带权图的一个结点子集 V’,包含这个子集中所有结点且权重之和最小的子树即斯坦纳树
- 与最小生成树的区别在于,由于关注的一个图的子集,也就意味着在所给定的节点之外利用额外的节点以减少网络的代价
-
正则图:所有结点的度数相同,k-正则图
-
二分图/二部图 bipartite graph
- 所有的结点分为两个集合,每条边的两个端点分别在这两个集合中,即同一集合的结点间没有边相连
- An affiliation network is a bipartite graph. If an individual is associated with an affiliation, an edge connects the corresponding nodes.
- 例如这样的隶属关系网络,还比如,推荐算法:找出连个兴趣相似的人,以购买的书的数量决定,在图中表现为(用户间)通路数量
-
多分图多部图 multipartite graph
用户-标签-电影(三类结点)
图的连通性
- 相邻节点 adjacent
- 一条边联结的两个点
- 相邻边 incident
- 无向图:具有相同端点
- 有向图:一条边终止结点必须是另一条便的开始结点,即两条边方向一致
-
路径 path
- 依次遍历相邻边产⽣的结点序列称为路径
- 简单路径 path:不包含重复节点(所以也没有重复边)的路径称之为简单路径(本课程重点)
- 起点和终点相同,但其他结点都不重复,且至少包含三条边的路径称之为回路/圈(cycle),即闭合 path
- 通路 walk: sequence of incident edges visited one after another
- 依次遍历相邻边产生的边序列称之为通路
- 开通路 open walk:起始结点不同于终止结点
- 闭通路 closed walk:起始结点和终止结点是同⼀个结点(圈)
- 通路长度 length of walk:通路中遍历的边数量
- 简单通路 trail:每条边只遍历一次的通路
- 环路 tour/circuit:闭合简单通路
哈密顿回路 Hamiltonian Cycle:遍历了图中所有结点的回路
欧拉环路 Eulerian Tour:图中所有边均只被遍历⼀次,Konigsberg bridges
- 连通性
- 图中任意两个结点间存在一条路径,则为连通图
- 有向图中,图中任何两个结点都有路径(不考虑沿边的方向前进),则为弱连通图
- 有向图中,考虑沿着边的方向前进,图中任何两个结点存在有向路径,则为强连通图
-
连通分支
- 若子图中任意两个结点间存在一条路径,则该子图为连通分支(连通分量)
- 有向图中,连通分支内任何两个结点u, v,无论是 u 到 v 还是 v 到 u,都存在有向路径连通,则为强连通分支
- 最短路径
- 连通图中任何两个结点之间长度最短的路径为最短路径,其长度为该两个结点间的最短距离
- 图中所有结点对的最短路径平均值为图的平均路径长度,或称之为特征路径长度
- 结点 v 的 n 阶邻居(n-hop neighbor)是指所有到 v 的最短路径不大于 n 的结点
- 直径
- 图中任何两个结点之间最短路径的最大值为图的直径(社交,聚拢程度)
- 直径只定义在连通图中
- 桥
- 移除某条边会导致图中连通分支增加,这样的边为桥
- 桥是超大连通分⽀形成的关键
图算法
- 随机游走:带权图上的
- 图/树遍历 Traversal:BFS、DFS
- 最短路径:Dijkstra 算法,针对非负带权图,建立一个优先队列
- 最小生成树:Prim 算法,从一个初始节点,每次在边缘中找最小的那条边
- 网络流算法:给定一个图 \(G(V,E,C)\) 其中 C 是每条边的容量 capacity,有向,要求从 \(s\) 到 \(t\) 的最大流,注意其需要满足,1. 网络上的流是有方向限制的;2. 对于每个节点的流量守恒。
- Ford-Fulkerson 算法
- 基本思想:寻找⼀条从源点到汇点的路径,使路径中的所有 边都有未使⽤的容量,使⽤该容量(路径上所有边中未使⽤ 的最⼩容量)去增加流,不断迭代直⾄没有其他路径可⽤。
- 核心就是定义一个残流网络:对于某一条边 \((u,v)\) 来说,若是还有剩余容量则画出 \((u,v)\) 边和剩余流量;若是有流经过此边则画反向的边 \((v,u)\) 权重是流过这条边的流量;注意后者是关键,对于正向流入此边的流来说,若是其他边满足条件,可以产生相反的流从而得到增量。
- 二分图的最大匹配
- ⽤⼆分图 G 表⽰⽤户和商品,以及他们之间的兴趣关系
- 匹配M是 G 中边集合 E 的⼀个⼦集, 使得 G 中每个结点⾄多出现在 M 的⼀条边上(即每个⽤户⾄多买⼀个 商品/每个商品⾄多卖给⼀个⽤户)
- 何以在二分图的前后分别加 \(s,t\) 利用最大流算法解决。
3-网络度量
我们需要从网络中找出核心的节点。
中心性度量
-
Degree centrality: ranks nodes with more connections higher in terms of centrality
-
有向图中,可以用
\(C_d(v_i)=d_i^{in}\) , prestige
\(C_d(v_i)=d_i^{out}\) , gregariousness
-
Normalized Degree Centrality:可以用理论最大度/图中最大度/图中度之和进行归一化
-
-
特征向量中心性
-
Eigenvector centrality generalizes degree centrality by incorporating the importance of the neighbors (undirected) 朋友多不一定重要,要有重要的朋友才是关键
-
计算公式
\[C_e(v_i)={1\over \lambda}\sum_{j=1}^nA_{j,i}C_e(v_j)\\ \lambda C_e=A\'C_e \]其中 A 为邻接矩阵,于是就变成了求特征向量的问题,其中 \(\lambda\) 为对应的特征值
每个节点的中心性应该都为正,而根据 Perron-Frobenius 定理,可以通过求 A 的最大特征值对应的特征向量得到
-
-
-
Katz Centrality
-
注意到上面的 Theo 中似乎要求是在连通图的情况下,所以特征向量中心性一般在无向图中较为稳定;而在有向图中,中心性将从有向边中流出,在一定情况下,例如图是 acyclic 的,则可能出现某一个节点有很多入边但是中心性为零的情况
-
在此基础上加了偏置项 \(\beta\)
\[C_{Kate}(v_i)=\alpha\sum_{j}A_{j,i}C_{Kate}(v_j)+\beta\\ C_{Kate}=\alpha A\'C_{Kate}+\beta\mathbf 1\\ C_{Kate}=\beta(\mathbf I-\alpha A\')^{-1}\mathbf1 \]其中第一行加了偏置项;整体写成第二行的形式;解析解是第三行的样子,注意到涉及到矩阵求逆,而我们知道当选取 \(\alpha={1\over\lambda}\) 时 \(det(I-\alpha A\')=0\) ,会出现问题,所以一般会取一个小一点的数值。
-
-
PageRank 中心性
-
想法是「权威的出边并不一定是权威」,因此对传递的权重进行衰减,于是有
\[C_p(v_i)=\alpha\sum_{j}A_{j,i}{C_p(v_j)\over d_j}+\beta\\ C_p=\alpha A\'D^{-1}C_p+\beta 1\\ C_p=\beta(I-\alpha A\'D^{-1})^{-1}1 \] -
类似的,若 \(\lambda\) 为 \(A\'D^{-1}\) 的最大特征值,我们要求 \(\alpha<{1\over\lambda}\)
-
当然,这和我们熟悉的 PageRank 公式不太一样,差别只是两个权重的形式,我们可以从随机浏览的角度来理解。
-
-
Betweenness Centrality 中间/中介中心性
- 从一个节点在网络上连接其他节点意义上的重要性
\[C_b(v_i)=\sum_{s\ne t\ne v_i}{\sigma_{st}(v_i)\over\sigma_{st}} \]其中分母是从 \(s\) 到 \(t\) 的最优最短路径,分子是这些路径中经过 \(v_i\) 的数量;这样定义的中心性可能对大于 1,因此需要进行归一化操作,最好情况下,对于所有的 \(s\) 和 \(t\) 来说分式均为 1,于是极大值为 \(2\binom{n-1}{2}=(n-1)(n-2)\) 除掉即可\[C_b^{norm}(v_i)={C_b(v_i)\over 2\binom{n-1}{2}} \]
- 从一个节点在网络上连接其他节点意义上的重要性
-
Closeness Centrality 接近中心性
-
想法是你距离其他节点有多远
-
因此,考虑公式
\[C_c(i)=1/({1\over n-1}\sum_{j\ne i}l_{i,j}) \]其中 \(l_{i,j}\) 为 i 到 j 的最短路径长度
-
接近中心性高的节点往往是社交网络信息传播的关键人物
-
群体中心性
基于上面的对于单个节点的中心性讨论,可以将这些概念拓展到一组结点的中心性度量
传递性与相互性 Transitivity and Reciprocity
传递性
传递性和相互性用于表示社交网络总个体间的连接行为。
其中,传递性的思想是:若 BC 两人拥有一个共同的朋友 A,则 BC 之间未来成为朋友的可能性也会提高,即,我朋友的朋友也是我的朋友(考虑现实场景下的情况,可以联系到社会学、经济学的各种理论)。从网络结构的角度来看,就是容易形成紧密连接的三角形,三元闭包。
三元闭包的数量体现了图的传递性强弱,通常用 聚类/聚集系数 cluster coefficient 来表示传递性。
以下定义 Global Cluster Coefficient: Count paths of length two and check whether the
third edge exists
这里关注的是 path,因此计算起来是有方向的,更为简单的计算方法是根据 三元组 Triple,即关注一组结点,没有方向,一个三角形中包含三个不同的 Triple
基于上面的思想,还可以定义 Local Clustering Coefficient: Computes how strongly neighbors of a node