基于马尔可夫链的社交影响力排序

一种基于马尔可夫链的大数据排序系统方法

摘要

本文提出了一种基于马尔可夫链的大数据排序系统方法。首先,我们构建一个转移矩阵,用于存储大规模网络中每一对相关节点之间的计算得分。然后,我们计算该转移矩阵对应的马尔可夫链的平稳分布,并对结果进行排序,以确定网络中最有影响力的用户。我们在neo4j平台上实现了该算法,并使用一些样本数据集进行了测试。实验结果表明,所提出的方法在挖掘大型社交网络中有影响力节点方面具有良好的前景。

关键词 — Big数据;马尔可夫链;社交网络;图数据库; neo4j;Cypher查询语言

I. 引言

如今,我们正处在大数据时代,每天都会产生大量的数据(数据量),这些数据包含结构化和非结构化数据的混合(多样性),通常以接近实时的速度到达(高速性),且来源可能不确定(真实性)。这四个V特征刻画了大数据,并使我们能够以前所未有的方式应对新型问题并获得新的洞察。

最近,与大数据相关的最热门话题无疑是:社交网络。社交网络通常可以用由数十亿个顶点、边以及丰富元数据构成的复杂而庞大的图来描述。如今,当我们听到社交网络这一术语时,会立即联想到Facebook、Twitter或 Line等社交媒体。但从另一个角度来看,如果我们考虑线下情况,就会发现这些虚拟网络主要代表了将我们与家人、朋友、同事、邻居等联系起来的真实世界社会关系。因此,分析这类网络对于理解某些社会生活现象具有重要意义。

这一主题为我们如何应对大数据带来了令人兴奋的新机遇。这正是它近年来受到大量关注的原因。

在这方面最具影响力的著作之一,发表于[1],专注于识别网络中的Top-K社区,这些社区能够以高影响力值向整个网络发送消息,并影响大量不同的社区。而其他一些研究则将注意力放在识别有影响力用户而非社区上,并发现入度分数较高的用户通常在新信息传播方面具有较大影响力,正如[2]所指出的。在用于评估影响力的方法中,我们发现了PageRank算法或其变体[3]。

为了专注于理解社交网络数据,我们将放宽对问题的定义,关注局部属性,即仅通过查看一个节点及其邻居来识别网络中的影响力节点或最相关的用户。然后在未来我们将扩展我们的算法以发现网络中的有影响力的社区。

II. 提出的方法

在本节中,我们将简要介绍图数据库,因为我们将在此基础上构建算法,该算法将在本节的后续部分进行介绍。

A. 预备知识

  • 图数据模型是由节点以及连接它们的关系组成的集合。图将实体表示为节点,并将这些实体与世界关联的方式表示为边(关系)[4]。
  • 图数据库是一种操作型数据库管理系统,具有创建、读取、更新和删除(CRUD)方法,使用包含节点、边和属性的图数据结构来支持语义查询,以表示和存储数据[4]。
  • 例如,Twitter的数据可以很容易地表示为一个图。图1展示了我们使用neo4j创建的一个小型Twitter用户社交图谱(有关neo4j的更多信息请参见实现部分)。
  • 图1所示的图包含两种类型的节点:用户和消息,以及三种类型的关系:发推(TWEET)、转推(RETWEET)和关注(FOLLOWS),这些关系将节点相互连接形成图:具体来说,用户1(User1)关注用户2(User2),而用户2反过来也关注用户1;用户2和用户3同样互相关注,用户3和用户1也互相关注。

示意图0

B. 影响力定义

根据《牛津英语词典》,影响力是“对某人或某事物的性格、发展或行为产生影响的能力,或这种影响本身”[5]。这是一个通用的定义,可应用于不同领域。社交网络中的影响力可能因网络性质的不同而有所差异,因此,建立一个适用于所有社交网络的通用影响力模型是一个具有挑战性的课题。因此,在所提出的方法中,我们将重点关注Twitter平台。此外,我们对影响力的分析将通过考虑用户发布的推文数量来衡量其在网络上传播信息的用户能力,以体现其活跃程度,并重点关注其消息获得的转推数量接收以评估他在网络用户中的兴趣程度。如果一个用户被不同用户立即转发的数量多于其他人,则意味着他影响了所有这些用户。因此,在所提出的方法中,发现网络上的有影响力用户更多地与推文和转发相关,而与其他任何特征无关。

C. 算法设计

给定一个与图1相似的图,我们试图识别该图上最有影响力的用户。假设我们有一组节点 $N={N_1,N_2,…,N_n}$,其中 $|N|=n$。我们的方法按以下步骤实现:

1) 统计每一对适用的用户 $N_i$ 和 $N_j$ 之间的路径总数,然后创建一个新的关系来保存结果(数值 $N_{ij}$ 将作为新关系的属性保存)。
请注意,一条路径包括用户 $N_i$ 和用户 $N_j$ 的发推,以及他们发布的推文之间的转发关系。

2) 为每个节点计算 $\sum N_{ij}$。

3) 通过计算分数 = $N_{ij}/\sum N_{ij}$ 为每个关系设置新属性。

4) 根据之前计算的分数构建转移矩阵。例如,对应于图1中图的转移矩阵如下所示:

5) 然后我们计算具有转移矩阵P的马尔可夫链的平稳分布矩阵,该矩阵可定义为一个向量,使得 $\pi P = \pi$。求解这一系列方程后,我们得到:
$$
[\pi_1\ \pi_2\ \pi_3] = \left[\frac{5}{12}\ \frac{1}{3}\ \frac{1}{4}\right]
$$

6) 最后一步,我们将所有 $\pi_i$ 值按降序排序,排名第一的即为我们在网络中最具影响力的。对于前面的例子,结果表明用户1具有最高得分,因此它是网络中最具影响力的用户。
$$
\pi_1 = \frac{5}{12}
$$

III. EXPERIMENTAL RESULTS

A. 实现

我们提供了图2中所示代码工作流程的实现。所提出的方法使用 neo4j 作为图数据库,并以 Cypher 作为查询语言,同时广泛使用 R 语言和 RStudio 这一集成开发环境(IDE)。通常,数据库只能进行部分分析计算,其余的分析计算必须在数据库外部完成(在本例中为 R 语言)。然而,在我们的程序中,我们尝试从邻接矩阵到转移矩阵的整个过程都使用 neo4j,以测试其性能。R 语言仅在算法的第 5 步用于求解方程组时与 neo4j 进行连接。

示意图1

B. 结果

为了测试我们的算法,我们首先使用图1中的小型网络来展示我们的思路,并验证所提出方法的有效性。当然,真实的图比该网络大数亿倍。因此,我们使用了[6]中提供的真实推特数据集,在 neo4j 上评估我们算法的性能。测试涉及该数据集中包含 1647 个节点和 833 次转推实例的子集。通过构建马尔可夫链转移矩阵并推导出平稳概率分布,我们可以从所使用的推特数据集中提取出最有影响力的少数用户。

我们的实验结果表明,在将图规模扩展到数千个节点时,neo4j 表现出良好的性能。此外,neo4j 提供了一个不错的功能,使我们能够可视化结果。在未来的工作中,我们希望通过使用 Twitter API 和 Facebook API 分别从 Twitter 和 Facebook 提取数据,来评估我们的算法以及 neo4j 在包含数十万个节点的更大规模数据上的性能。我们还将考虑选择与特定事件或主题相关的推文/帖子,以比较此类用例中结果的准确性。

四、结论

本研究提出了一种在大规模网络中对有影响力实体进行排序的方法。该研究对于希望了解其社交网络中关键用户是谁的社交网络所有者,以及希望知道谁是值得关注对象的社交网络用户都具有重要意义。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值