- 文献综述(或调研报告):
网络是连接成对的顶点所构成的图形,在很多学科中,如数学、物理和社会科学等,都涉及到用网络理论和图论来解决复杂系统的问题。社交网络则是社会群体中的个体及个体之间的联系构成的网络,个体之间的联系有些十分密切,有些则十分稀疏,那些关系较为密切的个体便自发的形成了具有现实意义的社区,人们可以针对这些社区进行精准营销,敏感组织的发现等活动,社交网络的社区发现具有很高的理论意义和社会价值。
社区发现其实简单来讲就是根据一定的规则将一个给定网络中的节点进行聚类的过程。社区发现技术并非新的知识领域,已有一系列较为成熟的研究成果。已有的社区发现算法根据研究对象的特征可分为静态社区发现和动态社区发现。大部分经典的社区发现算法都是基于静态行为,将社交媒体用户转化为无权的网络图进行研究[1]。
一、静态社区发现方法
基于静态行为的社区发现方法根据社区发现结果进行区分可分为无重叠社区发现方法和重叠社区发现方法。
1、无重叠社区发现方法
无重叠的社区发现,从结果来看,网络中的每个节点都属于一个社区,不存在任何节点同时属于两个或两个以上社区的情况。早期的社区发现大多是无重叠的社区,本文的研究也是基于静态行为进行无重叠的社区发现。下面对几类有代表性的方法进行综述。a.Kernighan-Lin算法[2]。它是社区发现在经典图论中的解决方法的经典代表。是由Kernighan和Lin在1970年提出的一种基于贪婪算法原理将网络划分为两个已知大小社区的二分法。基本思想是首先将网络中的节点随机划分为两个大小已知的子集,其中一个子集中的每一个节点与另一个子集中所有节点组成节点对,并交换最大增益所对应的节点对,直到所有节点都至少交换过一次为止。KL算法的时间复杂度为O(n2),不适用于大规模网络,而且在缺少先验知识的前提下,初始划分状态难以确定。b.GN算法[3]。GN算法属于层级聚类方法——通过计算网络中节点的相似度来划分社区的方法。它由Girvan 和 Newman提出,是层级聚类方法中分裂算法的经典代表。基本思想是初始状态整个网络是一个社区,计算节点的相似度,相似度较低的节点划分为不同的社区。GN算法的时间复杂度为O(m2n),同样适用于小规模的网络。c.Newman快速算法[4]。相对于GN算法,Newman快速算法是层级聚类方法中凝聚算法的典型代表,他是基于全局相似度的一种方法。基本思想是初始状态整个网络是一个社区,相似度较高的节点划分到一个社区,采用的是贪婪算法思想,两个节点或社区进行合并时,选择当前模块度增量最大的两个节点或社区进行合并。该算法的时间复杂度为O(mn n2),可以用于规模较大的网络。
以上几种算法都是无重叠社区发现算法的经典代表,当然还有从不同角度解决社区发现问题的方法,如标签传播方法一种基于局部相似度的凝聚方法;谱聚类算法在社区发现算法中也占据重要地位,Perona和 Freeman在1998年提出了PF算法[5],利用相似矩阵的最大特征值所对应的特征向量进行聚类,这种方法能够在任意结构的空间上聚类并收敛于全局最优解,但是计算复杂度也非常高。
2、重叠社区发现方法
传统的社区发现结果往往是若干个完全分离的社区,但这通常并不满足实际情况。现实生活中,个体通常扮演着多重的角色,可以同时划分到不同的社区中,这就促进了重叠社区发现方法的出现最为经典的重叠社区发现方法是Palla[6]等人提出的重叠社区的极大团过滤社区发现方法(Clique Percolation Method,CPM)。主要思想是认为社区有多个相邻的K极大团组成的社区核心,相邻的K极大团拥有K-1个节点,属于不同社区的K极大团可能拥有共同节点,从而发现重叠的社区结构。这种方法能够反映实际情况,在真实的网络中表现较好,但是需要事先确定K值,在先验知识较少的实际问题中较难解决。
二、动态社区发现方法
以上是毕业论文文献综述,课题毕业论文、任务书、外文翻译、程序设计、图纸设计等资料可联系客服协助查找。