社交网络挖掘
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 𝑣 (nodes adjacent to 𝑣 ) are themselves connected
相互性
相互性是传递性在 有向图 中的简化表示。例如,在微博上好友之间的相互关注,即,如果你是我的朋友,那么我也是你的朋友。
结构平衡与社会地位 Balance and Status
结构平衡
结构平衡理论由 Cartwright 和 Harary(1956) 在 Heider(1946) 提出的平衡理论基础上形成的;该理论认为,由于不平衡的三角关系是心理压力和心理失调的原因,人们在人际关系总试图让他们尽量少地出现,因此在显示社交网络中,不平衡三角关系要比平衡三角关系少。
社会地位
Status: how prestigious an individual is ranked within a society
既然社会地位是一个 rank,其满足不等关系的传递性。例如下面的左图即不符合社会地位理论,而右图则是符合的;另外,需要注意到,虽然这里都用符号图来进行表示,但要注意 Status 图和 Balance 图之间没有什么关系。
相似性 Similarity
网络节点相似性的度量有着重要的意义,
- 可以判定/预测结点间关联的重要程度
- 进行用户行为预测(第 9 章):电影票房/产品市场预测、精准营销、个性化推荐
- 用户类别判定:垃圾用户识别、潜在用户预测、用户影响力估计
Structural Equivalence
在结构等价性中,We look at the neighborhood shared by two nodes; The size of this shared neighborhood defines how similar two nodes are.
下面的几个指标直接利用了节点 i 和 j 之间的共同邻居,并用不同的方式进行了归一化处理
还有另外的出发点:我们计算两点之间的共同邻居的数量,与其在随机连接下的期望值之间的差距。图中共有 \(d_j\) 的节点为 j 的邻居,而对于任一个结点,其与 i 的邻居的概率为 \(d_i\over n\) ,于是两者的共同邻居的期望值为 \({d_id_j\over n}\) ;而实际 i 与 j 的邻居数为 \(|N(v_i)\cap N(v_j)|=\sum_kA_{i,k}A_{j,k}\) ,于是
可以看到将 i 和 j 的连接关系表示向量看成随机变量的形式,则上面的差值可以写成两个随机变量 Covariance 的形式,进一步作归一化处理,得到 Pearson correlation coefficient
Regular Equivalence
在规则等价性中,我们不再关注两节点的共同邻居数量,而关注的是 How neighborhoods themselves are similar。其显示的考量是,例如两个运动员之间可能并不认识,但事实上其存在着很高的相似性(社交圈子,相似的教练、队友、经理人、球迷),这可以体现在社会网络上。
其代表性的度量模型为 SimRank,基于邻居节点之间的相似度来递归定义两个节点的相似度;基于递归度量的代价比较高,可以做适当放宽。
然后我们设法将其写成矩阵形式。这里的想法很巧妙,将求两个节点的邻居之间相似度的计算转化为了节点 j 和节点 i 的邻居之间的相似度(这样的转换是否会有一定误差?),然后就可以写成下面的矩阵形式;进一步基于相似性的意义加上一个 Identity matrix,从而得到最终的表达式。
和之前在 Katz 中心性时的讨论一样,我们一般假定选取的 \(\alpha\) 要小于 A 的最大特征值的倒数,从而使得该矩阵可逆。
其他度量方式
课上还介绍了其他的一些度量方式,例如
- 基于结点间路径
- Katz 度量:参考路径长度,相似度与路径长度成反比
- Hitting/Commute Time:考虑一个节点随机游走到另一个节点的概率
- Rooted PageRank/Personalized PageRank
- 基于图/网络嵌入的向量表示
4-网络模型 Network Models
网络属性 Properties of Real-World Networks
这些介绍一些能在不同的网络中使用一致方法来计算的属性,包括
-
度分布
-
聚类系数:衡量网络的 传递性
-
平均路径长度:衡量节点之间信息传播路径的长度 可达性
度分布
来看一些现实生活中的客观现象
更为常见的表述的 帕累托法则(二八定律);更为精确的描述则是 Power-Law Degree Distribution 幂律分布 ;注意到这里归一化成了概率分布的形式,因此也称之为 Zipf 分布,来源于一个语言学家对于词汇使用频率的发现。
PPT 中介绍了 Zipf 分布的一些性质,在此略过。
补充:符合 Zipf 分布是 无标度网络 (scale-free network)的重要特征,即少数重要节点连接了很多的节点。在无标度网络中,数据存在着明显的 长尾现象。
聚类系数 Clustering Coefficient
平均路径长度 Average Path Length
随机图模型 Random Graphs
即图中任意两点之间的边的产生是随机的。
具体又可分为两类
- \(G(n,p)\) 模型,假设网络中有 n 个节点,对于所有可能的 \(\binom{n}{2}\) 边中,每一条边产生概率为 p
- \(G(n,m)\) 模型,固定图的边数为 m 从所有可能的边中随机选取 m 条
下面主要研究第一种情况,事实上当图较大的时候,我们可以选取 \(p={m\over \binom{n}{2}}\) ,两者是类似的。
我们可以证明以下的一些性质
- 在模型 \(G(n,p)\) 中,连接到一个节点的边的期望数为 \((n-1)p\) 条
- 整张图的期望边数为 \(\binom{n}{2}p\)
- 观察到 m 条边的概率为 \(P(|E|=m)=\binom{\binom{n}{2}}{m}p^m(1-p)^{\binom{n}{2}-m}\)
在随机图的演化过程中,有一个有趣的现象:当随机图的节点平均度数 \(c=1\) 时,会有大部分的结点被连接在一起,出现 大连通分支 giant component,这时候的图直径很大,平均路径长度较长。
称之为 相变点 Phase Transition: the point where diameter value starts to shrink in a random graph
度分布
对于一个随机图来说,其每一个节点的度数的分布显示服从二项分布 \(Binom(p, n-1)\) ;当 n 很大的时候,可以近似为泊松分布 \(Poisson(c), c=p(n-1)\) 。
因此,随机图的度分布满足平均值为 c 的泊松分布,有明显的 尺度特征,其产生的网络 不是无标度网络。
另外,基于近似的泊松分布,PPT 中给出了「第二相变点」,即 When the graph is connected there are no nodes with degree 0 ,这里的假定是 \(P(d_v=0)=e^{-c}\le {1\over n}\) ,则据此计算得到的 \(c=\ln n, p={1\over n-1}\ln n\)
聚类系数
- 对于随机图来说,每个结点的聚类系数为 p。
可以通过条件期望公式来说明:假定其中一个节点的度数为 d,则去聚类系数为
利用条件期望公式
- 类似的,随机图的全局聚类系数也为 p
平均路径长度
- 在随机图中,平均路径长度为 \(l\approx {\ln|V|\over \ln c}\)
随机图模拟现实网络的能力
- 度分布并不遵从幂律分布
- 聚类系数远低于真实网络
- 只有平均路径长度接近真实网络
小世界模型 Small-World Model
也叫做 Watts-Strogatz (WS) model,由此二人在 1998 的 Nature 上提出来
模型的想法起源于 规则网/规则格 ,每一个节点连接其相邻的 c 个邻居。
规则网具有 较长的平均路径长度和较大的聚类系数(均要高于真实网络)
-
规则网中任一结点的邻居节点之间连接数量为 \({3\over8} c(c-2)\) (分为左右两种情况)
-
因此,其聚类系数为 \({3(c-2)\over 4(c-1)}\approx {3\over4}\)
-
规则网的平均路径长度为 \(n\over 2c\)
对规则网采用 边重连 的方法,可以让规则网逐渐过渡到随机网络。即对规则网中每一条边以概率 p 重新连接(固定其中一个端点)。若 p=0 则为完全规则网络;若 p=1 则为完全随机网络。
我们关心的是,如何选择合适的 p,使得重连后的网络能够近似真实世界的网络性质。下图绘制了聚类系数和平均路径长度在不同 p 值情况下的变化
可以看到 L 的下降比较快,我们可以选择合适的区间作为「小世界」模型,使得即能保证 L 比较小,又能维持较大的聚类系数
优先链接模型 Preferential Attachment Model
Proposed by Albert-László Barabási and Réka Albert,因此也叫 BA 模型;其想法类似于经济学的 马太效应:新加入网络的节点倾向于链接网络中度数比较高的节点。其可以较好地反映现实网络中的度分布(幂律分布)。新节点连接已有网络中任一节点的概率为 \(d_j\over \sum_kd_k\) 。该模型有以下性质
- 度分布:\(P(d)={2m^2\over d^3}\)
- 聚类系数:\(C={m_0-1\over8}{(\ln t)^2\over t}\)
- 平均路径长度:\(l\sim {\ln|V|\over\ln(\ln|V|)}\)
PA 模型的构建详见相关材料,其中 m 为期望度数。
马太效应
下面简单介绍了马太效应。1968 年 Robert K. Merton 提出这一效应来概括一种社会心理现象:「相对于那些不知名的研究者,声名显赫的科学家通常得到更多的声望,即使他们的成就是相似的,同样地,在一个项目上,声誉通常给予那些已经出名的而研究者。」
名字起源于新约圣经「马太福音」第二十五章:「凡有的,还要加给他叫他多余;没有的,连他所有的也要夺过来。」
流行度的上升,在初始阶段是比较脆弱的;一旦一开始就被充分肯定,在富者越富 the Rich-Get-Richer Effects 的推动下,其流行度可能变得更高。
详见论文。
5-数据挖掘概论
两大派别
-
计算机科学家
-
- 认为机器学习是人工智能的一个重要分支,机器学习作为实现人工智能的一个重要途径
-
统计学家
-
- 往往认为机器学习就是统计学习,是统计学中偏向应用的一个分支,对统计学习之外的手段(基于代数的、逻辑的、几何的学习等)会比较排斥
三大流派
-
符号主义
-
- 又称逻辑主义、心理学派或计算机学,其原理主要为物理符号系统(即符号操作系统)假设和有限性原理。符号主义者最早在1956年首先提出了“人工智能”术语,又发展了启发式算法-专家系统-知识工程理论与技术,并在20世纪80年代取得很大发展,代表人物纽厄尔、西蒙等。
-
连接主义(联结主义)
-
- 又称为结构主义、仿生学派或生理学派,主要原理为神经网络及神经网络间的连接机制与学习算法。代表性成果是1943年由生理学家麦卡洛克和数理逻辑学家皮茨创立的脑模型,60-70年代出现的以感知机为代表的脑模型研究,1986年鲁梅哈特等人提出多层网络中的反向传播算法(BP)。
-
**行为主义 **
-
- 又称为进化主义或控制论学派,其原理为控制论即感知-动作型控制系统。控制论把神经网络系统的工作原理与信息理论、控制理论、逻辑以及计算机联系起来。
数据与特征
-
数据的结构与表示
-
- 非结构化数据:文档、图片、音频、视频
- 半结构化数据:HTML, HTML5, XML, RDF、图、树
- RDF(资源描述框架):SPO(subject,predicate,object)三元组,RDF 是知识图谱常用的存储格式
- 知识图谱:实体()、概念()
-
数据与特征
-
- 名词性/类别特征 nominal/categotical
- 序数特征 ordinal
- 间隔特征 interval
- 比例特征 ratio
例如,通过新浪微博一组用户的标签,找出他们的共同特征和个性标签挖掘,可以用 TF-IDF 框架。
数据预处理
- 数据聚合:将多个特征合并成单个特征
- 数据集成:将来自多个数据源的数据统一表示——同一属性被明明不同,书写习惯不同(姓名简写、时间表示)
- 数据离散化:连续数据转化成离散值
- 特征筛选:找出关键特征(如主成分分析),选取与模型目标(如分类)相关的特征
- 特征提取:将原来的特征集,以提高数据挖掘的性能,数据聚合可视为一种特征提取。
- 数据采样
- 大规模社交网络的用户采样:采样一个较小规模的网络G’来代表整个网络G
频繁模式/关联挖掘
频繁模式是频繁地出现在数据集中的模式(项集、子序列或是子结构);用 D 表示事务/交易集合,项可理解为一种商品,项集就是包干某种商品的集合。蕴含式 \(A⇒B\) 的支持度和置信度分别为
可以理解为,support 表示的是 AB 一起出现的次数,而 confidence 则表示 A 可以推导出 B 的可能性,即 A 相较于其与其他项的关联性来说,和 B 的关联性有多大。
显然,我们要找到频繁模式,就要求 1. 找到的项集必须是频繁的,即有支持度的要求;2. 找到的关联规则必须是强关联的,即有置信度的要求。此外,这样的规则可能有很多,我们希望找到比较大的项集,因此定义
- 闭项集:X,不存在 X 的超集 \(Y\sub Y\),使得 D 中 Y 的支持度与 X 相同,即 Y 的支持度要小于 X
- 最大频繁项集: X,这个是和「频繁」的概念联结起来的,即设定一个最小支持数 min_sup 不少于这个数的项集是「频繁的」,我们要找到最大的那个闭的频繁项集
下面是一个直观的找到频繁项集的算法 Apriori 算法
一图胜千言,先放一个具体的计算例子。前面两个初始化的步骤的频繁的;在每一轮中,从大小为 \(k-1\) 的项集 \(L_{k-1}\) 扩充到 \(k\) 的项集 \(L_k\)。以 \(k=3\) 为例,原本的是第二行最后的那张表 \(L_2\),通过其和自己连接产生新的候选项集 \(C_3\),然而考虑到扫描一次的代价可能比较高,我们希望事先剪枝,其利用的一个性质就是,对于一个大小为 \(k\) 的项集,若其是频繁的,则其所有的 \(k-1\) 子项集都是频繁的。于是,如蓝色方框所示,可以对连接的结果进行剪枝,最终得到 \(C_3\) ,然后进行计数,筛选得到 \(L_3\)。
这里还涉及到的一个步骤是如何进行连接,我们事先对所有的项进行排序,然后,考虑到我们要从大小为 \(k-1\) 的项集得到 \(k\) 项集,这就要求连接的两个项集他们差别的项数仅能为 1;另外,事实上可能产生 \(k\) 频繁项集的两个 \(k-1\) 项集,其前 \(k-2\) 项必然是完全相同的,还是之前的想法,\(k\) 项集其所有子项集必然是频繁的,我们这样连接的方式仅仅是一种简单地进行有效筛选的方案。
我们需要综合地来看连接步和剪枝步,他们合起来要做的,就是要从这些 \(k-1\) 项集出发,找到所有的 \(k\) 项集,要求满足其所有子项集均为频繁的(在之前得到的 \(k-1\) 项集中)。
分类
回到了经典的及其学习部分。下面讲了一下一些概念和比较
生成式模型与判别式模型
- 生成式模型 Generative ,会对 X 和 Y 的联合分布 \(P(X,Y)\) 建模,然后通过贝叶斯公式得到 \(P(Y_i|X)\),以选取最大概率的那个 \(Y_i\)。常见的有隐马尔科夫 HMM、朴素贝叶斯 NB、高斯混合模型 GMM、LDA 等。
- 判别式模型 Discriminative,直接对条件概率 \(P(Y_i|X)\) 建模。常见的有线性回归 LR、支持向量机 SVM、神经网络 NN 等。
决策树
朴素贝叶斯
k-最近邻
基于辅助社交的分类
核心思想是:社交网络中的用户行为会受到其邻居的影响,或因其有有邻居相似属性(兴趣、职业等),采取和邻居相同的行为或具有同类别的标签。
社会影响与同质性
该思想与推荐算法中基于用户的协同过滤思想一致。
这里的权重是 0-1 的。
回归
-
线性回归
\[Y=wx+\epsilon \] -
逻辑回归
\[P(Y=1|x)={1\over e^{-\beta x}+1} \]
模型评估
聚类
- K-means
- 层次聚类
对于聚类结果的评估来说,可由以下的准则
-
内聚性:组内的方差越小越好
-
离散性:我们希望得到的类之间有更大差异,这里用的一个指标是各个类中心的方差,越大越好
-
sihouette 指数:基本想法还是上面两个,希望组内尽可能靠近,组间尽可能差距大
6-社区挖掘
在这一章节中我们讨论
-
怎样发现社区?
-
社区怎样演化?如何研究社区演化?
-
如何评价发现的社区是否准确/合理?
Social Media Communities
定义
- 现实社会:具有共同经济、社会或政治兴趣/特点的个体组成的团体
- 虚拟社会:社交网站/媒体中由志趣相投的用户通过链接或交互关系组成的团体
相较于显式社区(有一个明确的边界,用户知道自己所述什么社区,社区有哪些人),隐式的社区可能包含了某些信息,其挖掘更具有意义和挑战性。
社区发现 Community detection
比较了社区发现和聚类:一个是基于 feature 的,一个则基于网络关系
总结如下
下面是几个基于群组 group 的社区发现算法。思想是:具有某种群组特点的子图是社区。群组的特点包括:平衡性、鲁棒性、模块化、高密度、层次化等。不难发现这些性质和基于成员 member 的社区发现,以及聚类等概念有着密切关联,以下就从这些角度分别讲一下这些算法。
均衡社区 Balanced Communities, Spectral Clustering 谱聚类
社区发现,可以被看成我们对节点进行分类/分割,也即,需要找到对图的分割,使得分割的代价最低。然而,简单定义的 cut 的代价会有一些问题,比如划分的社区不均衡,多把离群点分为单独的一类。
为实现均衡社区的发现,考虑根据所得到的社区的大小做惩罚,具体为下面的 Ratio cut, Normalized cut 的形式,两者实现的思想和效果是类似的。
下面通过矩阵表示的形式来计算一些 cut 的大小 \(c(P_i, \bar P_i)\) ,设 A 为网络表示矩阵,X 为社区关系矩阵,每一行表示某结点所在社区,每一列表示某个社区包含的成员。于是
其中, \(x_i\) 表示社区关系矩阵的第 i 行。我进一步记 \(y=x_i\) 最终写成了第二行的形式,观察该式,项 \(y_jy_kA_{jk}\)只有当结点 j 和 k 同属于社区 i,并且两者有边相连时才等于 1,因此此第 i 个对角元的含义是:the number of edges that are inside community i。
而根据我们定义的度矩阵 D,可以得到
也即,对于所有属于社区 i 的元素(\(y_j^2=1\)),求其度数和,所以此第 i 个对角元的含义是:the number of edges that are connected to members of community i。
两者相减,即为此分割的大小。
基于 cut 的大小,我们可以进一步得到比例割、归一化割的形式;因此,我们最终将此社区分割问题转化为一个求矩阵最小迹的问题
- 但这样的一个问题是 NP-hard 的,我们采用 spectral relaxation;利用谱聚类,我们可以通过计算拉普拉斯矩阵 L 的最小的前 k 个特征向量得到所需的 \(\hat X\) ;
- 但这样得到的结果中矩阵 X 中的元素并不是整数了;
- 为了从我们 \(\hat X\) 中恢复 X,我们可以在 \(\hat X\) 上做一遍 K-means 聚类。
emmm 到后面那部分其实有点不太理解,数学是硬伤 Orz(原 slides 中似乎给出了一些说明),下面给了一个例子,帮助直观理解
稳定社区 Robust Communities
这个和之前的团/簇的想法类似,即希望这个社区内部是紧密的:移除其中的边/结点,不会使得这个社区分成两部分。具体有
- K-vertex connected (k-connected) graph: 至少要移除 k 个节点才能 disconnect 这个图
- K-edge connected: 至少要移除 k 条边
例如,大小为 n 的完全图为 n-connected graph;一个 cycle 为 2-connected graph
模块化社区 Modular Communities
这里的考量是,假设我们固定了节点的度分布,考虑各个节点之间随机连接,那么这个大小的社区之内会有一个期望的边数;这是随机情况下,而现实中我们假定社区是高度结构化的 far from random,因此我们度量真实的边数与这一期望值的差距。
先考虑节点 \(v_i, v_j\) 之间的边数,对于节点 i 的一条边来说,其连接到 j 的概率为 \({d_j\over \sum_i d_i}={d_j\over 2m}\),于是总的期望边数为 \({d_id_j\over 2m}\) (分母上做了一些近似处理)。于是,对于一个分区 \(P_x\),我们可以定义其与「期望值」的距离 \(\sum_{i,j\in P_x}A_{ij}-{d_id_j\over 2m}\) 。整个划分 \(P=(P_1,...,P_k)\) 的距离就是 \(\sum_{x=1}^k\sum_{i,j\in P_x}A_{ij}-{d_id_j\over 2m}\) 。最后归一化处理,得到模块度 Modularity
同样,我们利用矩阵对上式进行表达,定义模块度矩阵
则
这里的形式和之前谱聚类的形式是一样的,不同之处在于这里要去最大的那些特征值;此外,在 Modularity 上,这前 k 个特征值必须是正数。
PPT 上还介绍了一些计算方法,Louvain Method
高密度社区 Dense Communities
我们利用一个子图与团 clique 的接近程度来定义其密度:
我们说一个子图 G 是 \(\gamma\)-dense (or quasi-clique) 的,若其满足 \(|E|\ge \gamma \binom{|V|}{2}\)。
这里简要介绍了定义,但没有细展开,相关的算法和寻找 clique 类似:
层次化社区Hierarchical Communities
感觉思想和聚类算法里面的层次聚类相似,也同样包括两种思路
- Divisive Hierarchical Clustering
- Agglomerative Hierarchical Clustering
课上介绍了 Newman 算法,是一种自顶向下的思路:从原本的图开始,计算每一条边的「边介数 edge betweenness」,移除其中最大的那些边;迭代下去。
这里的想法是,要找到那些最重要的边,定义边介数的定义为:最短路径经过该条边的节点对数量
社区演变 Community Evolution
社区演变的三种形式
- 分裂 Network Segmentation
- 致密化 Graph densification
- 缩径 Diameter shrinkage
其中第一点比较有意思:大规模网络随时间推移分解成三个部分:巨大结构(超大连通分支)、星状结构、单元素
此外,还有其他的演化路线
社区评价
另外一方面,我们需要对于所找到的社区进行评价,可以分成两类:是否有 Ground Truth。
在有 GT 的情况下,指标包括
- Precision and Recall, or F-Measure
- Purity
- Normalized Mutual Information 归一化互信息
注意到这里的各种指标的计算,以下面的例子来看,我们关注的是两两之间的关系。在一个类中:两个相同类别的节点对属于 TP,不同类别的节点对属于 FP;在两个类之间:不同类别的节点对属于 TN,相同类别的节点对属于 FN。
下面纯度的定义比较简单:即对于 GT 的每一个类来说,找到我们划分出来的社区中包含最多这个类的社区,累计这些数字。
这里涉及到 互信息 MI 的概念,参见 https://en.wikipedia.org/wiki/Mutual_information;简言之,互信息衡量的是两个随机变量之间的关联程度
从 KL 散度的定义式来看,即为联合分布相对于边际分布乘积的差异程度,这个值越高说明 \(X,Y\) 之间的关联性越大。(比相关系数(描述线性关系)更为普遍?)
这里是把 GT 和预测结果都看成是一个分布,计算其互信息,因此注意到 log 内的分子上会有一个 n;为了统一指标,采用 NMI,即除以 \(\sqrt{H(X)H(Y)}\)。
下面介绍了一些在没有 GT 下的指标
比较粗略地提了一些,一方面,可以借助社区成员的属性发现其相似度(发帖内容、个人描述、标签语义等);另一方面,基于聚类质量的评价指标。
7-社交网络的信息传播
信息扩散 Information diffusion: process by which a piece of information (knowledge) is spread and reaches individuals through interactions.
一个传播过程需要包括:Sender, Receiver, Medium 三个部分
计算传播学简介 Coumputational Communication
- 是计算社会学的重要分支,与计算新闻学、网络科学等密切相关,是典型的的较差学科研究
- 研究对象:关注人类传播行为的可计算基础
- 研究工具:以网络分析、文本挖掘、数据采集、数学建模等为主要分析工具来大规模地手机并分析人类传播行为数据
- 研究目标:挖掘人类传播行为背后的模式和法则,分析模式背后的生成机制与基本原理
- 应用场景:可悲广泛的应用于数据新闻、舆情监测、计算广告等场景
信息传播的测量维度
结点传播力测量
-
社交用户影响力的量化方法
- 激发回复:回复数量
- 激发对话:帖子所激发的他人的相互讨论
- 语义扩散:用户帖子中使用的词语被他人沿用
-
度中心性
-
特征向量中心性
-
PageRank 中心性
-
中间/中介中心性
-
权威性、中枢性
-
群体的相关度量
信息传播对于社交网络结构演化的作用
社会网络的信息传播模型 Information Diffusion
这里借用了 SMM 的 Silde 上的图
这里主要是从网络是否可见(explicit/observable)、信息的可获得性两个角度进行划分的,例如羊群效应是在网络可观测、可以得到 public information 的假设下的。
羊群效应 Herd Behavior
描述的是,个体观察所有其他人的行为后,采取与其一致的行为效应,即「随大流/跟风」。
传播实验需要的条件有
- 个体的选择决定需要遵从一定的顺序
- 个体是在掌握一定的信息后才做出决定
- 个体之间无法传递信息:一个人无法知道他人掌握的信息,但是可以通过观察他人的行为来推断他人掌握的信息
典型的例子包括:食客对餐馆的选择(实现看到 A 的评价更好,但实际到了的时候发现 A 没有人而 B 参观人很多);Milgram’s Experiment(街上静止抬头);Solomon Asch’s Experiment(1956 推断棒子的长度是 ABC 中哪一个)
介绍了一下羊群效应的贝叶斯建模,即一个 Urn 中放了一红二蓝或是一蓝二红三个球,依次抽取,结合之前的人的推测得到自己当前的推测;在这种情况下,若是前面两个人推测为蓝,那么从第三个人开始无论其抽到什么一个合理的结果都应该是蓝。
- Herding: we only have access to public information
- Herding may be intervened by releasing private information which was not accessible before
羊群效应出现的原因在于,每个人仅能得到他人的 public 信息,而其干预手段也是直观的:需要有人公开他的信息;一个经典的例子,就是皇帝的新衣中的孩子。
老师课上还讲了「沉默的螺旋」,描述的内容和羊群效应类似。
该词最早见于伊丽莎白·诺埃勒-诺依曼于1974年在《传播学刊》上发表的一篇论文《重归大众传播的强力观》,她在1980年《沉默的螺旋:舆论一我们的社会皮肤》一文中进一步发展了该理论,认为:
- 舆论的形成与大众传媒营造的意见气候有着直接的关系,大众传媒为公众营造了一个意见气候,而人们由于对于社会孤立的恐惧会采取集体趋同的行为,导致一方意见的越来越大声疾呼,另一方意见的越来越沉默的螺旋式过程。
- 意见领袖能够唤醒“沉默的螺旋”
- 意见领袖具有强大的网络互动能力和影响力,社交媒体中的大多数网民只是充当“狂欢”者,在与自己利益无关的议题讨论中以“围观者”的身份参与。意见领袖通过转发和评论,在庞大粉丝群中起到了示范作用,带动了“沉默的大多数”选择了集体发声,表达自己的意见与看法。粉丝在意见领袖的唤醒作用之下,不再是一群“乌合之众”,成为具有批判能力和思考能力的活跃群体。
信息级联 Information Cascade
An information cascade: a piece of information/decision cascaded among some users, where
-
individuals are connected by a network and
-
individuals are only observing decisions of their immediate neighbors (friends).
定义:信息或决策在一群个体中扩散的过程,例如在社会网络中,个体经常转发(或采取相同决策)邻近好友的发布内容。
类似于人际传播,存在一个「网络」上。在之前的「羊群效应」的例子中,我们假想了一个全局的「公告板」,而现实中每个人不可能共享一个消息源,而是呈现出一个较大的松散的网络形态。这种情况下更类似信息级联,其传播实验需要条件:
- 个体存在于一个社会网络中;
- 个体只能观察到邻近好友的决策行为(可获得的信息比羊群效应少)
PPT 上给的经典例子是 1996/1997 年的 Hotmail,其获得用户增长,原因在于,By inserting the tagline "Get your free e-mail at Hotmail" at the bottom of every e-mail sent out by its users.
下面介绍了几个模型
独立级联模型 Independent Cascade Model (ICM)
想象一个社交网络,每个节点仅有 active/inactive 两种状态,有一个信息源(初始集合),收到信息的邻居以一定的概率成为 active 的,即再次传播该信息,这一概率是随机的。
- 也正因此,称之为 Senter-centric model,以此区别于线性阈值模型,其为 receiver-centric 的
线性阈值模型 Linear Threshold Model (LTM)
上面的模型对于接收者的建模有点粗糙了,这里对于 receiver 有了更为细致的描述:其为每一个待激活的节点设定一个阈值 \(\theta_i\),若其接收到的周围 active 节点的信号超过了此阈值就会被激活;这里带来的一个好处就是可以建模不同邻居对它的影响,即适用于有向带权网络,另外为了简洁起见,我们对于每个节点的入度权重都做了归一化(即下面的第一个不等式)。
级联传播的平衡与颠覆
考虑上面的线性阈值模型,我们做一些简化处理:每个入度邻居的影响都是一样的,阈值也就是一样的,例如假定每个加点的激活原则是有超过 2/5 个邻居被激活。在这一假设下,我们容易观察到以下的现象:
- 一种网络的平衡往往会被一个级联传播颠覆,即该信息完全扩散到了整个网络中;
- 但有些网络中有维持稳定的平衡
我们关注的是,什么能够让级联停止?阻止完全级联的产生?为此,我们定义聚簇:
容易证明,若激活概率为 q,则该信息不会在一个密度大于 1-q 的聚簇中传播。
级联范围最大化
与之相关的一个问题是,初始是用最少的激活结点,达到最终是激活最多的结点。
其应用价值很广泛,如产品营销,用最低的广告代价/预算达到最大的广告效果。
我们形式化地定义该问题:给定一个参数 k(budget),找到一个初始集合 S,以最大化传播效果 \(f(S)\) 。
注意到这里的函数 f 是定义在一个集合上的,当然我们可以理解为是定义在一个维度为 N 的高维空间上的,其满足如下性质
其中,第三个性质,即「次模函数」,用一个经济学的概念来简单解释,就是「边际效益递减」。
对于该问题,不加证明地说明以下 facts
简言之,就是原问题已被证明为 NP-hard,而替代的方案是采取贪婪算法,每次加一个节点进去使得新的集合可以产生更好的效果。
最后,对信息级联的干预手段总结
- 限制信息(决策)发布者的出链
- 限制接收者的入链
- 降低网络节点(个体用户)的激活概率 \(p_{v,w}\)
- 网络中形成密度较高的聚簇
创新扩散 Diffusion of Innovations
创新扩散的理论试图回答 why and how innovations spread
下面介绍了几个理论。
Ryan and Gross studied the adoption of hybrid seed corn by farmers in Iowa. 新的杂交玉米有耐病虫、耐干旱等优良特性;但是也会有价格高、不能留种(仅能从 provider 中购买)的问题。
根据观察,区分了五类受众:创新者 innovator、早期采用者 early adopter、早期大众 early majority、晚期大众 late majority、落后者 laggard。
第二个理论是 Katz 的二级传播理论。
第三个是 Rogers 提出的创新扩散的过程说:分为了解、兴趣、评估、试验、采纳五个阶段。
接下来,是对于创新扩散的过程进行数学建模,核心公式是下面的这条
其中 \(i(t)\) 衡量的是 t 时刻的扩散因子, \(A(t)\) 是 t 时刻的采纳人数。根据扩散因子的形式不同,可以细化为三种模型。emmm 下面经过积分可得 \(A(t)\) 的具体形式,不给我的微积分只是都还给高数老师了……
流行病模型 Epidemics
和创新扩散理论一样,流行病模型建模的也是一个隐式网络,或者说我们关心的是整体上的传播趋势和人群感染速率,而不是观察具体的传播路径。
一般来说流行病的研究方法包括
-
接触网络 Using Contact Network:通过观察宿主如何接触来涉及描述流行病在人群网络中发生的方法
-
全混合 Fully-mixed Method:只分析传染者感染、恢复的速度而不考虑接触网络的相关信息,这是下面的模型所研究的(我们无法得到接触网络,无法了解感染机制)。
根据不同的假设,可以分为下面的四种模型
考虑总人数为 N。在 SI 模型中,仅有 susceptible 和 infected 两类,对于每一个 I 来说,其接触的人数为 \(\beta N\),于是会感染 \(\beta S\),于是在这一轮次的总感染人数为 \(\beta IS\) ,用箭头的方式来写,则乘子为 \(\beta I\)。显然满足等式 \(S(t)+I(t)=N\),根据微分式 \({dS\over st}=-\beta IS\) 可积分得到最终结果。
在 SIR 模型中加入了 recover,并假设感染恢复后不再易感,建立三变量微分方程。
SIS 模型假设患者恢复后仍然易感;SIRS 则假设一部分康复后易感一部分保持免疫,满足微分式 \({dR\over dt}=\gamma I-\lambda R\)
最后介绍了一些干预手段,不过偏向实证,不再赘述。
8-影响力和同质性 Influence and Homophily
我们观察到,在社交网络中连接的个体通常更加相似。
三种原因:影响力、同质性、混杂/混淆
- 其中,影响力是 connection 造成了 similarity
- 同质性是 similarity 造成了 connection
- 混杂则可以看成是环境因素,对于 similarity 和 connection 都有影响
在这一节中,我们研究:
- how can we measure assortativity 同配性 ?
- Measure influence or homophily?
- model influence or homophily?
- Distinguish between the two?
度量同配性
符号属性 Nominal Attributes
相同属性的节点之间有更大的概率相连
考虑到符号属性的不均衡性,考虑采用 assortativity significance,即实际上同配的边的比例如期望的随机连接的边的比率
进一步作归一化处理
下面是对于模块度的矩阵表示的推导,课件上写得很完整直接搬过来~
序数属性 Ordinal Attributes
不同于之前的每一个节点是符号属性,这里的节点属性为 Ordinal 的,这时我们用「相关系数」来衡量模块度。
具体来说,对于排列好的所有的边,我们把出节点和入节点组合起来分别写为 \(X_L, X_R\) ,然后计算它们之间的相关系数——相关系数越高,说明属性值越高的节点,越倾向于和其他属性值高的节点连接。
另外,注意到对于无向边来说, \(X_L, X_R\) 都含有 2m 个属性值,只是其排列不同,因此 \(EX_L=EX_R, \sigma(X_L)=\sigma(X_R)\) 。
先来算 Covariance
归一化即得到 Person correlation
影响力 Influence
定义:在没有明显的强制措施和直接命令的情况下影响他人的行为或能力。
度量影响力
进一步,我们需要度量影响力
这里给出了一个度量 Blog 影响力的方式,根据入链、出链、长度、评论数四个指标,反映出四种因素,主要最下面的那条式子,而其中如何结合入链和出链,又定义了一个「影响力传播值」Influence Flow: Influence flow describes a measure that accounts for inlinks (recognition) and out-links (novelty). 不太理解这里「新颖性」的度量,引用了很多重量级的博客,同样可能有很高的创新度吧?
我们可以构建不同的指标来度量影响力,从而给每一个用户(如 Twitter)进行排名,对于不同的排名,利用 Spearman 系数比较两者的相关性。
影响力建模
可以分为两个部分
- 显示网络影响力建模:参考第 7 节中线性阈值模型等
- 隐式网络影响力建模:我们不知道网络结构,不知道谁影响了谁,只能对于某个用户的影响力随着时间的变化建模(和激活时刻有关)。把每个用户的效应综合起来就得到最终的模型,线性影响力模型 LIM,不过公式没咋看明白。
同质性 Homophily
度量同质性
简单看网络的同配性系数随着时间的变化情况
同质性建模
书上说用的是类似独立级联模型 ICM 的 variation,但似乎和 ICM 的区别还挺大的?而且这个建模好没意义……
区分影响力和同质性 Distinguishing Influence and Homophily
我们需要度量一个同配网络中是影响力还是同质性起到了重要作用,用一些统计方法来 test,以下都假设我们可以得到网络的几个 temporal shapshot
Shuffle Test 洗牌测试 (Influence)
注意到,如果是用之前的基于网络结构中心性之类的方式来定义影响力,那么这样的度量肯定是 静态的;而我们试图基于网络的 时序特征 来进行分析,所以这里关注的是信息的传播,或者说网络上的节点 active/inactive 比例随时间变化的情况。
回过头来理解究竟什么是 影响力?它和同质性的区别在于,其使得网络上节点的属性发生了变化,这里的属性我们很难得到社会学意义上的那种人际关系,比较简单的是看这种 active/inactive 关系。而洗牌测试的思想,就是如果是影响力起到了作用,那么已经起影响作用的节点一定要比被影响的节点在时间上提前被激活;因此,网络 snapshot 的 timestamp 是有意义的,我们调换时间片,观察这种是否会对一些指标发生影响。
初步看下来是这样的,但还是有些难以理解:这里对于影响力的度量,还是采用了 active/inactive 的方式,在我看来更类似于信息的传播,这样的话直观来说网络上的变化肯定是在时序上有意义的,那么这样的测试如何进行(例如,打乱 timestemp 后这里的 \(p(a)\) 怎么计算?)
具体来说,对于一个节点受影响概率的建模采用了 Logistics 回归,并利用 ML 进行参数估计。
边反向测试 The Edge-reversal Test (Influence)
Randomization Test (Influence/Homophily)
这个还是比较容易理解的:既然我们有网络的时序变化记录,那么希望能根据这一变化直接进行度量。变化包括两方面
- 网络结构的变化:对应于同质性
- 节点属性的变化:对应于影响力
那么我们可以分别固定其中的一个变量(网络结构或节点属性),看在下一时刻同配性度量的变化影响,得出是否存在同质性或影响力。下式中,\(A(G_t, X_t)\) 表示利用时刻 t 的网络 G 和时刻 t 的属性 X 计算出来的同配性系数。
下面给出了具体的对于影响力的测试算法,这里进行了属性的随机化操作,重复了 n 次,从而得到了测试的 significance level
对于同质性的测量是类似的,不过这里随机化的是图的结构。
9-用户行为分析 Behavior Analytics
目标是:To analyze, model, and predict individual and collective behavior
个体行为分析
对于一个用户行为分析,我们需要:可观测的行为、一些特征、发现他们之间的相关性、以及如何度量这些模型。
原 PPT 上介绍了一下格兰杰因果检验,没学过时间序列不太了解 Orz
个体行为建模
个体行为预测
上面的三种个体行为分类,其实都可以看作是一个 链路预测问题。
大体上可以分为两类:一类基于两个节点之前的相似性,一类基于两个节点之间的路径特征。
Node Neighborhood-Based Methods
可以根据 node 之间的相似性来度量,下面枚举了一些结构等价性(基于邻居节点的关系)的度量指标
Path-Based Measures
这里给出了一些思路:一是考虑两个节点之间的路径长度,按照路径的长度指数衰减;二是考虑随机游走,计算从一个节点随机游走到另一个节点的概率
机器学习方法
当然,连接预测的问题等价于一个二分类问题,可以采用一些经典的分类模型:决策树、KNN、贝叶斯、SVM、NN……
群体行为 Collective Behavior 分析
群体⾏为是指⼀个群体中的个体表现出相似的⾏为⽅式,这 种相似⾏为可以是计划并协调好的,也可以是⾃发形成的。通常将群体分成多个个体,对这些个体单独分析后,将分析结果汇聚成⼀个群体的⾏为结果
例如,社交媒体上的群体迁移⾏为 Users migrate
-
网站迁移:在t1时刻,某⽤户同时是网站1和网站2的成员,但在t2>t1时刻,该 ⽤户只是网站2的成员,则说明该⽤户从网站1迁移到了网站2
-
注意⼒迁移:在t1时刻,某⽤户同时是网站1和网站2的成员,且都属于活跃状态, 但在t2>t1时刻,该⽤户仅在网站2保持活跃,则说明该⽤户的注意 ⼒从网站1迁移到了网址2
注意⼒迁移⽐网站迁移更容易观测到
迁移行为的特征
- 活跃度越高的用户迁移概率越小
- 社交圈越大的用户迁移概率越小
- 等级 Rank 越高的用户迁移概率越小
群体⾏为模型
-
线性/逻辑回归模型
-
网络模型
-
⼩世界模型
-
侧重表达较⼩的平均最短路径
-
优先链接模型
-
侧重表达幂律分布
用户画像
用户画像过程
1、确定画像的⽤户对象和目标
- 给谁画像?画什么像?为什么画像?期望画像的结果/⺫标是什么?
2、收集画像数据
-
网络⾏为数据:活跃⼈数、⻚⾯浏览量、⻚⾯停留时间、访问时⻓、 社交数据等
-
⽤户偏好数据:浏览/收藏的内容、点评内容、品牌偏好等
-
⽤户交易数据:订单量、订单价、回头率、流失率等
3、⽤户建模
- 对上阶段收集到的数据进⾏处理,⽤统计模型等机器学习⽅法产⽣ ⽤户的画像标签,以备后续的应⽤使⽤
用户画像的应用价值
-
精准营销:通过画像将⽤户群体切割成更细的粒度,辅以短信、推 送、邮件、活动等⼿段,驱以关怀、挽回、激励等策略,以提⾼营 销业绩
-
客户关系管理(CRM):精准的⽤户画像为设计有效的企业与客 户互动策略提供科学指导,能有效提⾼⽤户黏度和企业品牌⼒
-
数据应⽤:⽤户画像是很多数据产品的基础,如推荐系统、⼲告系 统,精准的⼲告投放基于⼀系列⼈⼝统计相关的标签,性别、年龄、 学历、兴趣偏好、⼿机等
-
⽤户分析:早期,产品经理通过⽤户调研和访谈的形式了解⽤户各 种属性特征,在产品⽤户量扩⼤后,应以⽤户画像配合传统的⽤户 研究,以进⾏深⼊、精准的统计与分析
-
数据挖掘:⽤户画像可以理解为业务层⾯的数据仓库,各类标签是 多维分析的天然要素,分析系统的数据查询平台要和这些数据打通
用户标签的一般来源
-
⽤户⾃⼰打的标签
- ⽆论是⽤户给⾃⼰打的标签(如新浪微博标签)还是⽤户对各类网络 资源(新闻、电影、⾳乐等)打的标签
-
利⽤⽤户注册数据
- 网站或App⼀般都需要新注册⽤户填⼀些个⼈基本信息,甚⾄选择⼀ 些个⼈偏好标签,这些是基本画像标签的来源
-
利⽤⽤户社交网络数据
- 所在社交群的名称、类型,借⽤好友的特征标签等
-
利⽤⽤户发⾔数据
- 关于⽤户对新闻的评论、对购买商品/服务的评论等⽂字内容,都可 从中抽取关键词(例如⽤TF-IDF)作为标签
-
利⽤⽤户网络“消费”的物品
-
⽤户看过的电影所属的类型、演员、导演、国别等
-
⽤户点赞过的图⽚标签(如Flickr这样的图⽚社区都提供了图⽚标注 服务)
-
⽤户听过/下载过的歌曲类型、演唱者、作者、语⾔等
-
⽤户购买过的商品(⼿机、Pad等)品牌、国别等
-
⽤户经常浏览网站的类型、主题等
-
⽤户的POI/LBS所属的类型、⻛格等
-
⽤户玩过的游戏类型,所扮演⾓⾊类型等
-
用户/项目标签画像的挑战
-
标签缺失
- 很多⽤户出于隐私保护的考虑不使⽤标签
-
标签不准、不细
-
“宝强”“宝宝”是指王宝强?
-
“球迷”有⾜够的个性刻画能⼒么?
-
-
标签不完整
- “埃航”“失事⻜机”能否补充“波⾳”“737MAX”?
-
标签语义失配
- “旅游”与“摄影”,“复旦”与“交⼤”能否做到语义关联?
10-博弈论
复杂社会系统(网络结构)中连通性的含义体现在 两⽅⾯
- 网络结构:通过个体(结点)之间的联系(边)来体现, 包括社会关系、相互协作与交互等等
- 个体之间的相互依存:任何⼈的⾏为结果⾄少潜在地依赖 于其他⼈的联合⾏为,亦可看作是 ⾏为层次的关联性
后面这一点是博弈论的研究内容,因此课程这一部分介绍了一些博弈论。
博弈策略
- 博弈论的基本要素
1、存在不少于两⼈的博弈参与⼈ 参与⼈
2、每个参与⼈都有⼀组⾏为决策的备选项 策略集
3、每种⾏为决策都会让参与⼈得到⼀个收益(回报),该收益也受其他参与⼈的决策影响,每个参与⼈都倾向于获得更⼤的收益 回报
-
博弈论⼯具就是⽤来推理参与⼈如何进⾏⾏为决策
-
⼀般⽽⾔,⼀个参与⼈都会在预测其他参与⼈的⾏ 为决策后才做出使⾃⼰收益最⼤的⾏为决策
下面介绍了两点经典的案例:其一为囚徒困境;其二很类似,「复习-报告」博弈,即你和搭档都可以选择准备考试/Pre,若不论对方选择什么,你选择考试总是一个较优的策略,那么最终的结果两个人都会准备考试,而这样可能并非一个最佳的结果。
这里的核心问题和囚徒困境一样,双方无法交流/达成共识,因此在个体的私利之下很难建立合作。
下面形式化的介绍一些概念
设 S 和 T 表示两个人的策略,\(P_1(S,T), P_2(S,T)\) 分别表示两人在策略组 \((S,T)\) 时的收益
-
若对于 2 的策略 T,1 选择策略 S 取得的收益达到最大,则称其为 最佳应对
\[P_1(S,T)\ge P_1(S',T) \] -
1 的最佳应对可能不止一个,若上面的不等式严格成立,则称策略 S 为 严格最佳应对
-
参与⼈1的 占优策略 是指该策略对参与⼈2的每⼀项策略都是最佳应对
-
参与⼈1的 严格占优策略 是指该策略对参与⼈2的每⼀项策略都是严格 最佳应对
严格占优策略最多只有⼀个,⽽占优策略可能会有多个。如果⼀个参与 ⼈存在严格占优策略,则很容易预测其⾏为决策
纳什均衡
定义:假定参与⼈1选择策略S,参与⼈2选择 策略T,若S是T的最佳应对,同时T也是S的最 佳应对,则称策略组(S,T)是⼀个纳什均衡
⾯对纳什均衡,任何参与⼈都没有动⼒选择 其他策略
如果每个参与⼈都相信对⽅在博弈中实际会 采取构成纳什均衡的某个策略,则他/她就有 动机采⽤能达成这个纳什均衡的相应策略
上面是一个简单化的例子,即仅存在一个纳什均衡;而当存在多个均衡策略的情况下,就涉及到 协调博弈
-
聚点理论focal point
-
学者谢林指出,当出现多重均衡时,如果还有某种⾃然原因使 得参与⼈倾向于选择其中某个均衡策略时,就能解决决策困惑
-
⽰例:⼀条没有划线的较窄的道路上有两辆⻋相向⽽⾏,到底是 ⾛左边还是⾛右边才能避免碰撞呢?
-
如果是两个中国⼈开⻋会避免碰撞么?
-
如果是⼀个中国⼈,⼀个⽇本⼈呢?
-
总结一下,上面区分了几种不同的存在多重均衡的情况
- 将两个人的选择相同的情况理解成「合作」,而相反则是「不合作」,不合作的收益为 0,这就存在两个均衡点。若两个均衡点中,其一对于双方都是好的,则为 聚点相同;若两人的 习惯偏好 不同,则演变为所谓 性别战
- 两种策略之间存在着差异,其中一个策略有着较高的风险(对应于高收益),与上面不同的是,这里若是「不合作」选择第风险的一方仍然可以得到一定的回报而选择高风险则略的一方则一无所获;观察上面的收益矩阵,其与囚徒困境不一样的地方在于其不存在严格占优策略,双方并没有陷入那样的困境中;然而在这种 猎⿅博弈 的场景下,双方还是因为担忧对方所选的策略而更倾向于选择风险低的那个决策,即成为 懦夫博弈
- 资源总量是有限的,因此只能进行分配,而这里有趣的一点在于,双方均选择鹰派策略的话,收益均为 0,而一方鹰派一方鸽派,双方都会有一定的收益;这里的困境在于,当一方选择鹰派策略的情况下,另一方的 最佳应对 是选择鸽派(不然是一无所获),感觉像是面对流氓的无可奈何;这被称为 鹰鸽博弈
混合策略
-
对于不存在纳什均衡的博弈,在参与⼈的策略集中 引⼊随机性,可以更准确地预测其决策⾏为
-
纳什的研究结果认为:当参与⼈的策略选择中引⼊ 随机性后,博弈总会存在均衡
-
攻防博弈
-
攻击⽅有A与B两种攻击策略,防守⽅对应有防守A与B两 种策略
-
如果防守⽅的策略正好对应攻击⽅的策略,则防守⽅获得 较⾼收益;没有对应上,则攻击⽅获得较⾼收益
-
看一个例子:两人各一枚硬币,若相同则 1 获胜,若相反则 2 获胜;这里,参与人的总收益为 0,是 零和博弈 ;这个时候,明显不存在纳什均衡。
-
收益矩阵表明,任何参与⼈知道了对⽅策略后都会做出相应 举措来使⾃⼰收益成为+1,两⼈不可能达成⼀致
-
因此,参与⼈都希望能迷惑对⼿,使其难以预测⾃⼰的⾏为
- 现实案例:诺曼底登陆
如果每个参与⼈不是选择纯策略H或T,⽽是选择⼀个出⽰H 的概率(引⼊随机性),⼜会产⽣怎样的博弈?
-
假设参与⼈1选择H策略的概率为p,则其选择T的概率为1-p
-
同理,假设参与⼈2选择H策略的概率为q,其选择T的概率为 1-q
-
两个参与⼈的策略表⽰变成了选择概率p与q,涉及H与T的混 合,因此称为 混合策略
-
在此设定下,即便某个参与⼈选择了某种纯粹策略H或T,其 收益仍然是随机的
-
假设参与⼈1选择H,则其收益期望是
-1q+1(1-q)=1-2q
-
假设参与⼈1选择T,则其收益期望是
1q+(-1)(1-q)=2q-1
-
-
混合策略博弈中,能否产⽣纳什均衡?怎样才能产⽣纳什均 衡?
-
若1-2q≠2q-1,则参与⼈1要么选择H要么选择T(回到了 纯策略博弈), 此时不会有纳什均衡。
-
只有1-2q=2q-1,即q=1/2时,才会产⽣纳什均衡
-
当q=1/2时,参与⼈1选择H或T的收益都没有区别,即占不到便宜
该结论解释了为什么博弈的⼀⽅希望通过随机化⾃⼰的⾏为来让 其⽆法准确判断⾃⼰的⾏为,使得对⽅对两个策略的取舍⽆差异, 从⽽不让对⽅占便宜
-
现实时间中的混合策略博弈案例
-
猜拳是⽯头、剪⼑还是布?
-
发球到对⽅哪个区域?
-
打牌时出什么牌?
-
11-推荐系统 Recommendation in Social Media
If interested, see two recent conference tutorials
-
SIGKDD2014, Recommendation in Social Media
-
RecSys2014, Personalized Location Recommendation
推荐系统简介
推荐算法的本质是通过⼀定的⽅式将⽤户和物品联系起来,⼀个推荐算法可以理解为学习如下的函数
或者是
推荐系统的挑战
-
冷启动(cold-start)
- 新加⼊系统的⽤户和物品没有历史信息(如购买、评价记录),因此很 难推断⽤户的喜好,或者物品(项目)会被哪些⼈喜欢
-
数据稀疏
- 系统整体缺乏充⾜的历史信息,⽽不仅是缺少某(⼏)个⽤户的历史信息; 例如,如果系统中只有少数⽤户有很多评分记录,⼤多数⽤户只有很少 的评分记录,则系统⾯临数据稀疏问题
-
网络攻击
- 例如⿊客伪造评分记录
-
隐私保护
- ⽤户个⼈的信息被系统知道得越多,推荐就越准确,但这和个⼈隐私保 护⽭盾
-
解释说明
- 系统缺少向客户解释推荐某些物品的原因
经典推荐算法
基于内容的推荐 content-based
例如,在豆瓣电影中,已有对于每部电影的标签,而我们可以基于用户的历史记录得到用户的个性化标签,从而基于用户和电影之间的相似度做推荐。
协同过滤(collaborative filtering)
Collaborative filtering: the process of selecting information or patterns using techniques involving collaboration among multiple agents, viewpoints, data sources, etc.
Advantage: we don’t need to have additional information about the users or content of the items. Users’ rating or purchase history is the only information that is needed to work
更为著名的应该是协同过滤,其可以分为
- 基于记忆 Memory-based : Recommendation is directly based on previous ratings in the stored matrix that describes user-item relations
- 基于用户:基于⽤户的历史评分记录 来刻画⽤户间的相似性,相似⽤户对某 项⺫的评分可以作为⺫标⽤户对该项项的评分依据
- 基于项目:基于项目历史的被评分记 录来刻画项目间的相似性,目标⽤户对相似项目的评分可以作为目标⽤户对本项目的评分依据
- 基于模型:学习出能刻画⽤户评分⾏为的模型 Assumes that an underlying model (hypothesis) governs how users rate items.
Item-based CF
基于 memory 的协同过滤比较简单:比如对于一个用户 u 来说,我们希望预测其对于项目 i 的打分;那么我们可以考虑和这个用户最相近的若干用户,计算这些用户对于项目 i 的打分,具体公式如下:
Model-Based Collaborative Filtering
在基于 memory 的 CF 中,We predict the missing ratings based on similarities between users or items,可以说是 model-free 的;自然,在基于 model 的 CF 中,We assume that an underlying model governs how users rate
因此,我们需要基于历史数据(评分矩阵)训练这一模型,一个比较常见的方式是 SVD 分解。下面先介绍一些数理基础
想法就是对于已有的评分矩阵 X,不考虑其稀疏性,我们希望通过,我们希望得到该矩阵的一个低秩近似;想法类似于 SVD 分解,考虑到算法复杂度,更常用的可能是矩阵分解 MF 的算法,得到 loss 的形式化表述(一般还要加上一个正则项),并利用 GD 算法近似求解。
课上还介绍了另一种基于矩阵分解的模型:贝叶斯个性化排序 BPR,和上述矩阵分析的不同在于目标函数上的区别。具体见相关材料
群体推荐
有时候我们需要对一个群体进行推荐:例如和朋友一起看的电影、家庭的旅游地点、同事聚餐的餐厅等。想法自然是从个体的满意程度(评分)出发进行综合,可以有一下的几种考量
社会化推荐 Recommendation Using Social Context
包括三种面向
-
Recommendation Using Social Context Alone:仅仅利用网络信息,参见第 9 章中个体行为分析,即链路预测/推荐
-
Extending Classical Methods 使⽤评分记录和社会信息:采用公式
\[r_{u,i}=\sum_{v\in N(u)}w_{u,v}r_{v,i} \]与基于用户的 CF 相比,区别只是将用社交关系来刻画两个用户之间的相似程度。
-
Recommendation Constrained by Social Context 使用社会信息限制推荐:
\[r_{u,i}=\bar r_{u}+{\sum_{v\in N(u)\cap F(u)}sim(u,v)(r_{v,i}-\bar r_{v})\over\sum_{v\in N(u)\cap F(u)}sim(u,v)} \]其中 \(F(u)\) 表示与 u 评分记录相近的用户,即这里协同过滤要求从评分相近的用户中,基于社交网络删选出那些邻居用户,以此来估计 u 对于 i 的评分。
基于知识的推荐
引入额外的知识
- 基于约束:设计人际交互界面,让用户输入或者选择其想要的物品属性,将其组成约束条件(规则集合),使得推荐变成一个从候选物品中选择满足约束条件集合的问题。例子如京东/淘宝的搜索
- 基于个案:先通过某种传统推荐算法产⽣⼀组推荐候选物品给⽤户,让⽤户从候选组中先选择⼀个相对满意的物品作为待推荐物品的参照,系统通过物品间的相似性计算找出其他与参照物品⾼度相似的候选物品,推送给⽤户让其再进⾏评价,通过多次与⽤户的迭代交互,最终产⽣⽤户最想要的物品。想法是根据反馈进行多次推荐?
上面的一些思路其实还是基于物品的标签属性,其面临一些问题
- 物品知识的获取:系统需要人工构建知识,对长尾实体的覆盖有限
- 用户知识的获取:系统需要用户输入信息,甚至要反复交互,体验感差
于是出现了基于 知识图谱 的推荐。形式化定义
算法分类:
- 显式画像:从知识图谱中直接找到的关联(例如两部电影 的共同属性)作为刻画两个物品相关性的依据
- 隐式画像:利⽤基于深度神经⺴络的嵌⼊embedding向 量来表⽰物品,物品间的相似度计算基于其对应嵌⼊向量 在向量空间中的距离
跨领域推荐
可解释推荐
推荐系统的可解释性很重要
推荐性能评价
-
离线实验
-
通过⽇志系统获得⽤户⾏为数据,产⽣统⼀数据(样本)集
-
将数据集分为训练集和测试集
-
⽤训练集训练出模型后在测试集上检验推荐效果
-
-
⽤户调查
- 为了获取⽤户真实的满意度
-
在线实验
-
将推荐系统(算法)上线做 AB测试,与其他算法进⾏⽐较
-
测试⽤户会被分组,体验不同的推荐算法
-
-
⼀个新的推荐算法最终上线,需要完成上述3步:
-
⽤离线实验证明其在离线指标上优于现有算法
-
通过⽤户调查确定⽤户对其满意度不低于现有算法
-
通过AB测试确定其在核⼼指标上优于现有算法
-
把推荐看成是不同的任务,可能有不同的指标
- Predictive accuracy - Metrics measure error rate
- Classification Accuracy: Precision and Recall
- Evaluating Ranking of Recommendation
12-应用案例
这一章介绍了一些应用案例,和课程 PJ 联系起来
Flickr社交网络分析
Cha M, Mislove A, Gummadi K P. A measurement-driven analysis of information propagation in the flickr social network. In WWW2009.
-
分析问题(目标)
-
How widely does information spread in the Flickr social network? Do popular pictures gather fans from different parts of the network or is their popularity limited to a certain region?
-
How quickly does information spread through the social network? How long after the upload of a photo do fans mark it as a favorite?
-
Does information in Flickr flow along its social network links? What fraction of a photo’s fans discovered the photo through a friend? How long does this process take? By what other mechanisms do fans discover their favorite photos?
-
-
爬取⽅式
- Start with a randomly selected Flickr user and followed all of the friends links in the forward direction in a breadth first search fashion.
- To capture the dynamics of friends’ relationships, visit all users in the previous day’s social network graph and recorded any newly created or removed friend links or users.
- Collect information on the favorite photos of the Flickr users.
-
分析结果:流⾏图⽚涨粉的⻓期趋势
- First, many photos do show an active rise in popularity during the first few days after they are uploaded.
- Second, after the first few (10-20) days, most pictures, enter a period of steady linear growth. The median growth rate does not show any sign of slowing down even after 1 or 2 years
- For a majority of pictures, over 40% of fans were acquired after the first 100 days. Conversely, our analysis suggests that Flickr users take a long period of time to find out about interesting pictures.
- A majority of the less-popular photos attract their limited fan population early on during their lifetime, and they become dormant after the first few months.
Twitter 社交网络分析
Kwak, H, et al. “What is Twitter, a Social Network or News Media?.” In Figure 1: Number of followings and followers WWW2010.
下面的两个案例主要给我们的 PJ 提供了一些思路
微博好友推荐
-
数据获取
-
利⽤微博提供的API或⾃⼰写爬⾍来获取
-
数据爬取策略
-
网络关系爬取:先选取种⼦⽤户结点,再⽤⼲度优先策略爬取邻 居结点(爬⼏之内的邻居结点?)
-
⽤户发⾔内容爬取
-
将目标⽤户的微博列表全都爬下来
-
通过关键词定位⼀些微博热帖,将其转发/回复的微博⽤户信息爬下 来,包括转发路径数
-
-
-
-
基于共现的tag embedding
-
利⽤word embedding模型(word2vec)为每个标签⽣成反映 标签共现特征的embedding向量
-
每个⽤户的表⽰向量可以⽤其所有tag embedding的加权均 值表⽰
-
没有标签的⽤户可以应⽤标签传播算法为其⽣成标签
-
基于⽤户表⽰向量产⽣推荐结果
-
两个⽤户的表⽰向量余弦距离⾮常接近的话就值得相互推荐为好友
-
两个⽤户的表⽰向量前后串联,每⼀维作为分类模型的特征套上经 典分类模型来产⽣预测结果(逻辑回归或SVM),即预测两⼈之间 是否应该存在⼀条好友链接
-
两个⽤户的表⽰向量灌⼊深度神经网络产⽣预测结果
-
-
-
样本获取
-
正负样本⽐例设置
-
对于测试集中的⼀个⽤户,选取其多少(⽐例)的微博好 友作为未知待测的正样本,剩下的则作为已知的好友关系?
-
-
实验评测
-
对于⼀个推荐问题,应该以⼀个⽤户为单位,基于推荐给 该⽤户的所有好友真假来计算推荐性能得分,最后取全体 测试⽤户的得分均值
-
有多少条推荐记录的测试⽤户才考虑?
-
对于⼀个⼆分类问题(预测链接存在or不存在),则可以 采⽤相关的⼆分类预测指标,则基于所有⽤户对(“⽤户 -项目”对)的真假来计算总体性能分数
-
⾖瓣电影推荐
-
数据获取
-
利⽤网站提供的API或者公开的知识图谱
-
⾃⼰写爬⾍
-
数据爬取策略
-
从⽤户出发:通过某种原则选择种⼦⽤户,将这些⽤户评论(评分) 过的电影都爬下来
-
从电影出发:通过某种原则选择种⼦电影,将评论(评分)这些电影 的所有⽤户数据都爬下来
-
若不能爬取全集(代价太⼤),则需设定⼀个爬取范围(终⽌条件)
-
-
除了评论(评分),还有什么价值数据可以爬?
- ⽤户/电影标签、电影导演/演员/制⽚等信息、⽤户的关注列表…
-
-
-
推荐⽅法与特征提取
-
基于协同过滤
-
基于内容
-
混合⽅法
-
-
基于DNN嵌⼊内容特征与历史信息
-
如何提取⽂本语义(知识)信息?:CNN
-
如何集成历史观影记录⽣成⽤户偏好:RNN(LSTM, GRU)
-
-
再利⽤已知的评分记录来指导神经网络的学习
-
样本获取与⽣成
-
正负样本如何判定?什么是喜欢的电影?什么是不喜欢的电影?那没有评分过的电影 是喜欢还是不喜欢?
-
有多少条电影推荐记录的测试⽤户才考虑?
-
正负样本的⽐例怎样才合适?
-