CN113177854A - 社区划分方法及系统、电子设备及存储介质 - Google Patents
社区划分方法及系统、电子设备及存储介质 Download PDFInfo
- Publication number
- CN113177854A CN113177854A CN202110443401.4A CN202110443401A CN113177854A CN 113177854 A CN113177854 A CN 113177854A CN 202110443401 A CN202110443401 A CN 202110443401A CN 113177854 A CN113177854 A CN 113177854A
- Authority
- CN
- China
- Prior art keywords
- community
- community division
- social relationship
- user ids
- iteration
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 48
- 238000000638 solvent extraction Methods 0.000 claims description 26
- 238000004590 computer program Methods 0.000 claims description 7
- 238000004364 calculation method Methods 0.000 description 15
- 230000000694 effects Effects 0.000 description 11
- 238000012545 processing Methods 0.000 description 11
- 238000010586 diagram Methods 0.000 description 7
- 230000003993 interaction Effects 0.000 description 6
- 238000005192 partition Methods 0.000 description 4
- 238000007781 pre-processing Methods 0.000 description 4
- 238000005065 mining Methods 0.000 description 3
- 230000004308 accommodation Effects 0.000 description 2
- 238000004458 analytical method Methods 0.000 description 2
- 230000009977 dual effect Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000005259 measurement Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000005457 optimization Methods 0.000 description 2
- 230000011218 segmentation Effects 0.000 description 2
- 238000003491 array Methods 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 238000004891 communication Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/01—Social networking
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q30/00—Commerce
- G06Q30/02—Marketing; Price estimation or determination; Fundraising
- G06Q30/0201—Market modelling; Market analysis; Collecting market data
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06Q—INFORMATION AND COMMUNICATION TECHNOLOGY [ICT] SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES; SYSTEMS OR METHODS SPECIALLY ADAPTED FOR ADMINISTRATIVE, COMMERCIAL, FINANCIAL, MANAGERIAL OR SUPERVISORY PURPOSES, NOT OTHERWISE PROVIDED FOR
- G06Q50/00—Information and communication technology [ICT] specially adapted for implementation of business processes of specific business sectors, e.g. utilities or tourism
- G06Q50/10—Services
- G06Q50/14—Travel agencies
Landscapes
- Business, Economics & Management (AREA)
- Engineering & Computer Science (AREA)
- Strategic Management (AREA)
- Development Economics (AREA)
- Accounting & Taxation (AREA)
- Finance (AREA)
- Economics (AREA)
- Entrepreneurship & Innovation (AREA)
- General Physics & Mathematics (AREA)
- Marketing (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Business, Economics & Management (AREA)
- General Health & Medical Sciences (AREA)
- Tourism & Hospitality (AREA)
- Primary Health Care (AREA)
- Data Mining & Analysis (AREA)
- Human Resources & Organizations (AREA)
- Health & Medical Sciences (AREA)
- Computing Systems (AREA)
- Game Theory and Decision Science (AREA)
- Management, Administration, Business Operations System, And Electronic Commerce (AREA)
Abstract
本发明提供一种社区划分方法及系统、电子设备及存储介质,社区划分方法包括:获取社交关系边数据,社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,关系权重用于表征两个用户ID之间的关系亲密度;基于社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,社区划分结果包括至少两个用户ID及每个用户ID所对应的社区;若社区划分结果达到预设条件,则停止社区划分迭代。本发明通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性。
Description
技术领域
本发明涉及计算机技术领域,尤其涉及一种社区划分方法及系统、电子设备及存储介质。
背景技术
随着互联网/大数据的蓬勃发展,对数据价值挖掘的持续深入,企业对用户的认知由只关注其个体独立性,逐渐开始关注其社会属性,试图通过其社会属性挖掘更多的价值。社会属性中,很重要的一部分就是人和人之间的社交关系网络,我们称为社交网络。
就OTA(Online Travel Agency,在线旅游)行业而言,通过社交网络体系的建立,可以更全面地了解用户,发掘更多的潜在用户,并以社交网络数据为切入点在数据运营、市场营销、广告投放等诸多场景发挥其价值。
社交网络本身是由用户之间关系组合而成的。由各种渠道采集到的用户关系数据,其数据量动辄上亿,直接对这些关系数据进行分析和使用,技术复杂度和计算成本均非常高。因此,我们需要从海量关系数据中,将关系紧密的用户划分到同一社交圈中(我们称为社区),即将用户的社交关系简化在一个小范围的社区内,从而方便对用户的社交关系进行分析。
发明内容
本发明要解决的技术问题是为了克服现有技术中社交网络社区划分结果的准确性偏低、生成速度较慢,导致性能偏低的缺陷,提供一种社区划分方法及系统、电子设备及存储介质。
本发明是通过下述技术方案来解决上述技术问题:
本发明提供一种社区划分方法,所述社区划分方法包括:
获取社交关系边数据,所述社交关系边数据包括至少两个用户ID(标识)以及两两用户ID之间的关系权重,所述关系权重用于表征两个所述用户ID之间的关系亲密度;
基于所述社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,所述社区划分结果包括所述至少两个用户ID及每个所述用户ID所对应的社区;
若所述社区划分结果达到预设条件,则停止社区划分迭代。
较佳地,所述社区划分结果还包括每一社区内两两用户ID之间的关系权重;
所述社区划分方法还包括:
对于每一社区,基于所述社区内两两用户ID之间的关系权重计算所述社区内的用户ID在所述社区内的影响力值。
较佳地,所述预设条件包括每个社区内的用户ID数均不大于第一阈值;和/或,
所述预设条件包括社区划分迭代的次数大于等于第二阈值。
较佳地,对所述社区划分结果中用户ID数大于第一阈值的社区进行社区划分迭代。
较佳地,所述社区划分方法还包括以下步骤:
基于所述社交关系边数据生成社交关系图,所述社交关系图包括若干节点和社交关系边,所述社交关系边用于连接两个节点以表征所述两个节点之间存在社交关系;
在每一轮社区划分迭代中,如果所述社区划分结果中存在社区内的用户ID数不大于第一阈值,则将所述社交关系图中的所有第一节点替换为一个第二节点,其中,所述第一节点用于表征所述社区内的用户ID,所述第二节点用于表征所述社区;
所述预设条件包括每一轮社区划分迭代中减少的所述社交关系边的总数小于等于第三阈值。
本发明还提供一种社区划分系统,所述社区划分系统包括:社交关系边获取模块和社区划分迭代模块;
所述社交关系边获取模块用于获取社交关系边数据,所述社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,所述关系权重用于表征两个所述用户ID之间的关系亲密度;
所述社区划分迭代模块用于基于所述社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,所述社区划分结果包括所述至少两个用户ID及每个所述用户ID所对应的社区;
所述社区划分迭代模块还用于在所述社区划分结果达到预设条件时,停止社区划分迭代。
较佳地,所述社区划分结果还包括每一社区内两两用户ID之间的关系权重;
所述社区划分系统还包括:影响力计算模块;
所述影响力计算模块用于对于每一社区,基于所述社区内两两用户ID之间的关系权重计算所述社区内的用户ID在所述社区内的影响力值。
较佳地,所述预设条件包括每个社区内的用户ID数均不大于第一阈值;和/或,
所述预设条件包括社区划分迭代的次数大于等于第二阈值。
较佳地,所述社区划分迭代模块具体用于对所述社区划分结果中用户ID数大于第一阈值的社区进行社区划分迭代。
较佳地,所述社区划分系统还包括:社交关系图生成模块;
所述社交关系图生成模块用于基于所述社交关系边数据生成社交关系图,所述社交关系图包括若干节点和社交关系边,所述社交关系边用于连接两个节点以表征所述两个节点之间存在社交关系;
所述社交关系图生成模块还用于在每一轮社区划分迭代中,如果所述社区划分结果中存在社区内的用户ID数不大于第一阈值,则将所述社交关系图中的所有第一节点替换为一个第二节点,其中,所述第一节点用于表征所述社区内的用户ID,所述第二节点用于表征所述社区;
所述预设条件包括每一轮社区划分迭代中减少的所述社交关系边的总数小于等于第三阈值。
本发明还提供一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现前述的社区划分方法。
本发明还提供一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现前述的社区划分方法的步骤。
本发明的积极进步效果在于:本发明将获取的社交关系边数据输入至社区划分算法进行社区划分,通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性。
附图说明
图1为本发明的实施例1的社区划分方法的流程图。
图2为本发明的实施例1的社区划分方法的一具体实施方式的流程图。
图3为本发明的实施例1的社区划分方法中的社交关系图。
图4为本发明的实施例1的社区划分方法中的节点替换后的社交关系图。
图5为本发明的实施例2的社区划分系统的模块示意图。
图6为本发明的实施例3的电子设备的结构示意图。
具体实施方式
下面通过实施例的方式进一步说明本发明,但并不因此将本发明限制在所述的实施例范围之中。
实施例1
本实施例提供一种社区划分方法。参照图1,社区划分方法包括:
S11、获取社交关系边数据,社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,关系权重用于表征两个用户ID之间的关系亲密度。
其中,社交关系边数据可以是将获取的原始的社交网络数据进行预处理得到。可以通过多种途径获取原始的社交网络数据,例如:
1)社交圈的互动的次数<UserID1,UserID 2,次数>,表示UserID1(即用户ID)与UserID2之间的互动操作(无向)或UserID1对于UserID2的互动操作(有向),互动操作包括但不限于分享、转发、点赞、砍价,比如UserID1与UserID2彼此之间的点赞以及UserID1对UserID2的点赞。
2)订单关联的数量<UserID1,UserID 2的电话号码,订单数量>,表示UserID 2为UserID 1下的行程或住宿等订单的数量,电话号码与UserID 2存在确定的对应关系,可以通过查找对应的数据库获得UserID 2,从而将数据转化为<UserID1,UserID 2,订单数量>。
进行预处理后得到的社交关系边数据的具有统一的格式,该格式可以是<UserID1,UserID 2,UserID1与UserID 2之间的关系权重>。
S12、基于社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,社区划分结果包括至少两个用户ID及每个用户ID所对应的社区。
其中,社区发现算法可以为GN(凝聚型的社区结构发现算法)算法、LPA(标签传播算法)算法或SLPA(扩展的标签传播算法)算法,优选为Louvain算法。Louvain算法是一种基于多层次优化模块度(Modularity)的算法,它相比于GN算法、LPA算法或SLPA算法,准确性更高,处理速度更快,性能更好。
以下以一个简单的示例1来说明Louvain算法的一种实施方式。
示例1中共有6个用户对应的UserID,在无向的情况下,社交关系边数据如表1所示:
表1
两个用户ID中的一个 | 两个用户ID中的另一个 | 关系权重 |
UserID1 | UserID2 | 5 |
UserID1 | UserID3 | 4 |
UserID1 | UserID5 | 1 |
UserID2 | UserID3 | 2 |
UserID3 | UserID4 | 7 |
UserID4 | UserID6 | 3 |
UserID5 | UserID6 | 8 |
其中,没有列出的两个用户ID组合即表示两个用户ID之间的关系权重为0,即没有社交关系,例如:上表没有列出UserID1和UserID4的组合,表示UserID1和UserID4之间的关系权重为0。
以i和j分别表示这6个用户ID中的一个,i和j均为1-6的正整数,例如:i=1时i表示UserID1,i=6时i表示UserID6。以Aij表示i和j之间的关系权重,如果i=j,则Aij=0。
计算得到m=30。
以ki表示i与其他用户ID的关系权重之和,以kj表示j与其他用户ID的关系权重之和,以Qij表示i到j的最大模块度增益。
Qij=Aij-ki*kj/m。
计算得到,Q12=5-10*7/30=2.667,Q13=4-10*13/30=-0.333,Q15=1-10*9/30=-2,Q23=2-7*13/30=-1.033,Q34=7-13*10/30=2.667,Q46=3-10*11/30=-0.667,Q56=8-9*11/30=4.7。
Qij小于0则不进行社区划分,Qij大于0则取最大的模块度增益对应的用户ID进行合并。那么,UserID1和UserID2合并,UserID3和UserID4合并,UserID5和UserID6合并,即,UserID1和UserID2划入一个社区(假设社区A),UserID3和UserID4划入一个社区(假设社区B),UserID5和UserID6划入一个社区(假设社区C)。合并之后,权重总和m应进行更新,即减掉彼此合并的用户ID之间的权重,此例中,权重总和m更新为10,即30-5-7-8=10。
示例1为一轮社区划分迭代中根据Louvain算法进行的计算。下一轮社区划分迭代与此类似,不再赘述。
S13、若社区划分结果达到预设条件,则停止社区划分迭代。
本实施例将获取的社交关系边数据输入至社区划分算法进行社区划分,通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性。
具体实施时,社区划分结果还包括每一社区内两两用户ID之间的关系权重。
在步骤S13之后,社区划分方法还包括:
S14、对于每一社区,基于社区内两两用户ID之间的关系权重计算社区内的用户ID在社区内的影响力值。
其中,社区内的用户ID在社区内的影响力值是对应的用户在社区中的关键指标。影响力值越大,表征对应的用户在社区内有着越大的影响力,是用户的社区影响力的衡量指标。基于影响力值,可以继续输出用户在社区内的影响力排名以及分位值的前百分比,以满足更进一步的分析需求,将复杂的用户的社交关系,转换为可量化的影响力指标,使得数据直接应用于实际业务场景。
本实施例通过计算社区内的用户ID在社区内的影响力值,了解用户ID在所属社区内的影响力大小,将复杂的用户的社交关系,转换为可量化的影响力指标,使得数据直接应用于实际业务场景。
在具体实施的一个例子中,预设条件包括预设条件1,即每个社区内的用户ID数均不大于第一阈值。预设条件1达到,则停止社区划分迭代。
其中,第一阈值为正整数。第一阈值表征社区划分后的社区内最大人数的期望值,即预期的社区规模。如果第一阈值设置太大会导致社区划分的效果不好,社区划分结果不能精确反映人群的社交关系紧密度;如果第一阈值设置太小会导致社区划分结果不能正确地反映人群的稳定社交关系。
在具体实施中,可以根据需要设置第一阈值。优选地,可以将第一阈值设为500。
在具体实施的一个例子中,预设条件包括预设条件2,即社区划分迭代的次数大于等于第二阈值。预设条件2达到,则停止社区划分迭代。
其中,第二阈值为正整数。社区划分迭代的次数大于等于第二阈值,表征社区划分迭代达到了一定次数,如果继续迭代下去需要花费很多时间,迭代的效率不高,为了避免迭代一直不收敛,导致计算时间过长,因此需要及时停止社区划分迭代。可以根据需要设置第二阈值。
在具体实施的一个例子中,预设条件包括预设条件1和预设条件2。预设条件1和预设条件2中有一个达到,则停止社区划分迭代。
具体实施时,对社区划分结果中用户ID数大于第一阈值的社区进行社区划分迭代。
本实施例为避免社区规模过大,对规模超过指定阈值的社区继续使用社区发现算法(例如Louvain算法)进行进一步的社区拆分,直到社区规模在第一阈值的范围之内。
具体实施时,在步骤S12中,参照图2,社区划分方法还包括以下步骤:
S121、基于社交关系边数据生成社交关系图,社交关系图包括若干节点和社交关系边,社交关系边用于连接两个节点以表征两个节点之间存在社交关系。
以本实施例中的示例1中的数据为例,生成的社交关系图如图3所示,圆圈表示节点,节点内的数字表示对应的用户ID,例如节点内的数字1表征UserID1。两个节点之间的连线为社交关系边,社交关系边旁边标注的数字为两个节点对应的用户ID之间的关系权重,例如:节点1和节点2之间的连线标注数字5,表征UserID1和UserID2之间的关系权重为5。
S122、在每一轮社区划分迭代中,如果社区划分结果中存在社区内的用户ID数不大于第一阈值,则将社交关系图中的所有第一节点替换为一个第二节点,其中,第一节点用于表征社区内的用户ID,第二节点用于表征社区。
其中,以本实施例中的示例1中的数据为例,将图3中圆圈表示的第一节点替换为第二节点之后的效果如图4所示。具体地,图3中的第一节点1用于表征UserID1,第一节点2用于表征UserID2…,以此类推,第一节点6用于表征UserID6,根据示例1中的计算结果,UserID1和UserID2划入一个社区(假设社区A),UserID3和UserID4划入一个社区(假设社区B),UserID5和UserID6划入一个社区(假设社区C),图4中的第二节点A用于表征社区A,第二节点B用于表征社区B,第二节点C用于表征社区C。
在具体实施的一个例子中,预设条件包括预设条件3,即每一轮社区划分迭代中减少的社交关系边的总数小于等于第三阈值。预设条件3达到,则停止社区划分迭代。
第三阈值为正整数。每一轮社区划分迭代中减少的社交关系边的总数小于等于第三阈值,表征在该轮社区划分迭代中社区划分的效果不好,不能划分出相当数量的新社区,为了避免迭代一直不收敛,导致计算时间过长,因此需要及时停止社区划分迭代。可以根据需要设置第三阈值。
在具体实施的一个例子中,预设条件包括预设条件1和预设条件3。预设条件1和预设条件3中有一个达到,则停止社区划分迭代。
在具体实施的一个例子中,预设条件包括预设条件2和预设条件3。预设条件2和预设条件3中有一个达到,则停止社区划分迭代。
预设条件可以包括预设条件1-3。只要预设条件1-3中有一个达到,则停止社区划分迭代。例如,第一阈值为500,预设条件2先达到,即使预设条件1没有达到,即还有人数大于500的社区存在,即使预设条件3没有达到,即在该轮社区划分迭代中社区划分的效果好,能够划分出相当数量的新社区,也要停止社区划分迭代,社区划分结果可以表示划分后的社区包括人数大于500的社区和人数不大于500的社区。
由于社交网络数据量动辄上亿起,而且会不断增加,而社交关系边数据可以根据社交网络数据得到,为了实现本实施例中基于海量的社交关系边数据进行的社区划分迭代,可以采用Spark(一种专为大规模数据处理而设计的快速通用的计算引擎)引擎,通过SparkSQL(Spark整体架构用来处理结构化数据的模块)+GraphX(一种分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口)的分布式机制实现海量社交网络数据的处理。
本实施例将获取的社交关系边数据输入至社区划分算法进行社区划分,通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,输出了社区划分结果,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性、提高了划分速度,优化了性能,兼顾了社区划分的效果和效率的双重提升。
实施例2
本实施例提供一种社区划分系统。参照图3,社区划分系统包括:社交关系边获取模块101和社区划分迭代模块102。
社交关系边获取模块101用于获取社交关系边数据,社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,关系权重用于表征两个用户ID之间的关系亲密度。
其中,社交关系边数据可以是将获取的原始的社交网络数据进行预处理得到。可以通过多种途径获取原始的社交网络数据,例如:
1)社交圈的互动的次数<UserID1,UserID 2,次数>,表示UserID1(即用户ID)与UserID2之间的互动操作(无向)或UserID1对于UserID2的互动操作(有向),互动操作包括但不限于分享、转发、点赞、砍价,比如UserID1与UserID2彼此之间的点赞以及UserID1对UserID2的点赞。
2)订单关联的数量<UserID1,UserID 2的电话号码,订单数量>,表示UserID 2为UserID 1下的行程或住宿等订单的数量,电话号码与UserID 2存在确定的对应关系,可以通过查找对应的数据库获得UserID 2,从而将数据转化为<UserID1,UserID 2,订单数量>。
进行预处理后得到的社交关系边数据的具有统一的格式,该格式可以是<UserID1,UserID 2,UserID1与UserID 2之间的关系权重>。
社区划分迭代模块102用于基于社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,社区划分结果包括至少两个用户ID及每个用户ID所对应的社区。
其中,社区发现算法可以为GN算法、LPA算法或SLPA算法,优选为Louvain算法。Louvain算法是一种基于多层次优化模块度(Modularity)的算法,它相比于GN算法、LPA算法或SLPA算法,准确性更高,处理速度更快,性能更好。
以下以一个简单的示例1来说明Louvain算法的一种实施方式。
示例1中共有6个用户对应的UserID,在无向的情况下,社交关系边数据如表2所示:
表2
两个用户ID中的一个 | 两个用户ID中的另一个 | 关系权重 |
UserID1 | UserID2 | 5 |
UserID1 | UserID3 | 4 |
UserID1 | UserID5 | 1 |
UserID2 | UserID3 | 2 |
UserID3 | UserID4 | 7 |
UserID4 | UserID6 | 3 |
UserID5 | UserID6 | 8 |
其中,没有列出的两个用户ID组合即表示两个用户ID之间的关系权重为0,即没有社交关系,例如:上表没有列出UserID1和UserID4的组合,表示UserID1和UserID4之间的关系权重为0。
以i和j分别表示这6个用户ID中的一个,i和j均为1-6的正整数,例如:i=1时i表示UserID1,i=6时i表示UserID6。以Aij表示i和j之间的关系权重,如果i=j,则Aij=0。
计算得到m=30。
以ki表示i与其他用户ID的关系权重之和,以kj表示j与其他用户ID的关系权重之和,以Qij表示i到j的最大模块度增益。
Qij=Aij-ki*kj/m。
计算得到,Q12=5-10*7/30=2.667,Q13=4-10*13/30=-0.333,Q15=1-10*9/30=-2,Q23=2-7*13/30=-1.033,Q34=7-13*10/30=2.667,Q46=3-10*11/30=-0.667,Q56=8-9*11/30=4.7。
Qij小于0则不进行社区划分,Qij大于0则取最大的模块度增益对应的用户ID进行合并。那么,UserID1和UserID2合并,UserID3和UserID4合并,UserID5和UserID6合并,即,UserID1和UserID2划入一个社区(假设社区A),UserID3和UserID4划入一个社区(假设社区B),UserID5和UserID6划入一个社区(假设社区C)。合并之后,权重总和m应进行更新,即减掉彼此合并的用户ID之间的权重,此例中,权重总和m更新为10,即30-5-7-8=10。
示例1为一轮社区划分迭代中根据Louvain算法进行的计算。下一轮社区划分迭代与此类似,不再赘述。
社区划分迭代模块102还用于在社区划分结果达到预设条件时,停止社区划分迭代。
本实施例将获取的社交关系边数据输入至社区划分算法进行社区划分,通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性。
具体实施时,社区划分结果还包括每一社区内两两用户ID之间的关系权重。
社区划分系统还包括:影响力计算模块103。
影响力计算模块103用于对于每一社区,基于社区内两两用户ID之间的关系权重计算社区内的用户ID在社区内的影响力值。
其中,社区内的用户ID在社区内的影响力值是对应的用户在社区中的关键指标。影响力值越大,表征对应的用户在社区内有着越大的影响力,是用户的社区影响力的衡量指标。基于影响力值,可以继续输出用户在社区内的影响力排名以及分位值的前百分比,以满足更进一步的分析需求,将复杂的用户的社交关系,转换为可量化的影响力指标,使得数据直接应用于实际业务场景。
本实施例通过计算社区内的用户ID在社区内的影响力值,了解用户ID在所属社区内的影响力大小,将复杂的用户的社交关系,转换为可量化的影响力指标,使得数据直接应用于实际业务场景。
在具体实施的一个例子中,预设条件包括预设条件1,即每个社区内的用户ID数均不大于第一阈值。预设条件1达到,则停止社区划分迭代。
其中,第一阈值为正整数。第一阈值表征社区划分后的社区内最大人数的期望值,即预期的社区规模。如果第一阈值设置太大会导致社区划分的效果不好,社区划分结果不能精确反映人群的社交关系紧密度;如果第一阈值设置太小会导致社区划分结果不能正确地反映人群的稳定社交关系。
在具体实施中,可以根据需要设置第一阈值。优选地,可以将第一阈值设为500。
在具体实施的一个例子中,预设条件包括预设条件2,即社区划分迭代的次数大于等于第二阈值。预设条件2达到,则停止社区划分迭代。
其中,第二阈值为正整数。社区划分迭代的次数大于等于第二阈值,表征社区划分迭代达到了一定次数,如果继续迭代下去需要花费很多时间,迭代的效率不高,为了避免迭代一直不收敛,导致计算时间过长,因此需要及时停止社区划分迭代。可以根据需要设置第二阈值。
在具体实施的一个例子中,预设条件包括预设条件1和预设条件2。预设条件1和预设条件2中有一个达到,则停止社区划分迭代。
具体实施时,社区划分迭代模块102具体用于对社区划分结果中用户ID数大于第一阈值的社区进行社区划分迭代。
本实施例为避免社区规模过大,对规模超过指定阈值的社区继续使用社区发现算法(例如Louvain算法)进行进一步的社区拆分,直到社区规模在第一阈值的范围之内。
具体实施时,社区划分系统还包括:社交关系图生成模块104。
社交关系图生成模块104用于基于社交关系边数据生成社交关系图,社交关系图包括若干节点和社交关系边,社交关系边用于连接两个节点以表征两个节点之间存在社交关系。
以本实施例中的示例1中的数据为例,生成的社交关系图与实施例1中的图3一样。圆圈表示节点,节点内的数字表示对应的用户ID,例如节点内的数字1表征UserID1。两个节点之间的连线为社交关系边,社交关系边旁边标注的数字为两个节点对应的用户ID之间的关系权重,例如:节点1和节点2之间的连线标注数字5,表征UserID1和UserID2之间的关系权重为5。
社交关系图生成模块104还用于在每一轮社区划分迭代中,如果社区划分结果中存在社区内的用户ID数不大于第一阈值,则将社交关系图中的所有第一节点替换为一个第二节点,其中,第一节点用于表征社区内的用户ID,第二节点用于表征社区。
其中,以本实施例中的示例1中的数据为例,将图3中圆圈表示的第一节点替换为第二节点之后的效果与实施例1中的图4一样。具体地,图3中的第一节点1用于表征UserID1,第一节点2用于表征UserID2…,以此类推,第一节点6用于表征UserID6,根据示例1中的计算结果,UserID1和UserID2划入一个社区(假设社区A),UserID3和UserID4划入一个社区(假设社区B),UserID5和UserID6划入一个社区(假设社区C),图4中的第二节点A用于表征社区A,第二节点B用于表征社区B,第二节点C用于表征社区C。
在具体实施的一个例子中,预设条件包括预设条件3,即每一轮社区划分迭代中减少的社交关系边的总数小于等于第三阈值。预设条件3达到,则停止社区划分迭代。
第三阈值为正整数。每一轮社区划分迭代中减少的社交关系边的总数小于等于第三阈值,表征在该轮社区划分迭代中社区划分的效果不好,不能划分出相当数量的新社区,为了避免迭代一直不收敛,导致计算时间过长,因此需要及时停止社区划分迭代。可以根据需要设置第三阈值。
在具体实施的一个例子中,预设条件包括预设条件1和预设条件3。预设条件1和预设条件3中有一个达到,则停止社区划分迭代。
在具体实施的一个例子中,预设条件包括预设条件2和预设条件3。预设条件2和预设条件3中有一个达到,则停止社区划分迭代。
预设条件可以包括预设条件1-3。只要预设条件1-3中有一个达到,则停止社区划分迭代。例如,第一阈值为500,预设条件2先达到,即使预设条件1没有达到,即还有人数大于500的社区存在,即使预设条件3没有达到,即在该轮社区划分迭代中社区划分的效果好,能够划分出相当数量的新社区,也要停止社区划分迭代,社区划分结果可以表示划分后的社区包括人数大于500的社区和人数不大于500的社区。
由于社交网络数据量动辄上亿起,而且会不断增加,而社交关系边数据可以根据社交网络数据得到,为了实现本实施例中基于海量的社交关系边数据进行的社区划分迭代,可以采用Spark(一种专为大规模数据处理而设计的快速通用的计算引擎)引擎,通过SparkSQL(Spark整体架构用来处理结构化数据的模块)+GraphX(一种分布式图处理框架,它是基于Spark平台提供对图计算和图挖掘简洁易用的而丰富的接口)的分布式机制实现海量社交网络数据的处理。
本实施例将获取的社交关系边数据输入至社区划分算法进行社区划分,通过社区划分结果达到预设条件来结束社区划分迭代,实现了将每个用户划分到对应的社区,输出了社区划分结果,通过使用预设条件配合社区划分算法进行社区划分,提高了社区划分结果的准确性、提高了划分速度,优化了性能,兼顾了社区划分的效果和效率的双重提升。
实施例3
图6为本发明实施例3提供的一种电子设备的结构示意图。所述电子设备包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,所述处理器执行所述程序时实现实施例1中的社区划分方法。图6显示的电子设备30仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
电子设备30可以以通用计算设备的形式表现,例如其可以为服务器设备。电子设备30的组件可以包括但不限于:上述至少一个处理器31、上述至少一个存储器32、连接不同系统组件(包括存储器32和处理器31)的总线33。
总线33包括数据总线、地址总线和控制总线。
存储器32可以包括易失性存储器,例如随机存取存储器(RAM)321和/或高速缓存存储器322,还可以进一步包括只读存储器(ROM)323。
存储器32还可以包括具有一组(至少一个)程序模块324的程序/实用工具325,这样的程序模块324包括但不限于:操作系统、一个或者多个应用程序、其它程序模块以及程序数据,这些示例中的每一个或某种组合中可能包括网络环境的实现。
处理器31通过运行存储在存储器32中的计算机程序,从而执行各种功能应用以及数据处理,例如本发明实施例1中的社区划分方法。
电子设备30也可以与一个或多个外部设备34(例如键盘、指向设备等)通信。这种通信可以通过输入/输出(I/O)接口35进行。并且,模型生成的设备30还可以通过网络适配器36与一个或者多个网络(例如局域网(LAN),广域网(WAN)和/或公共网络,例如因特网)通信。如图所示,网络适配器36通过总线33与模型生成的设备30的其它模块通信。应当明白,尽管图中未示出,可以结合模型生成的设备30使用其它硬件和/或软件模块,包括但不限于:微代码、设备驱动器、冗余处理器、外部磁盘驱动阵列、RAID(磁盘阵列)系统、磁带驱动器以及数据备份存储系统等。
应当注意,尽管在上文详细描述中提及了电子设备的若干单元/模块或子单元/模块,但是这种划分仅仅是示例性的并非强制性的。实际上,根据本发明的实施方式,上文描述的两个或更多单元/模块的特征和功能可以在一个单元/模块中具体化。反之,上文描述的一个单元/模块的特征和功能可以进一步划分为由多个单元/模块来具体化。
实施例4
本实施例提供了一种计算机可读存储介质,其上存储有计算机程序,所述程序被处理器执行时实现实施例1中的社区划分方法的步骤。
其中,可读存储介质可以采用的更具体可以包括但不限于:便携式盘、硬盘、随机存取存储器、只读存储器、可擦拭可编程只读存储器、光存储器件、磁存储器件或上述的任意合适的组合。
在可能的实施方式中,本发明还可以实现为一种程序产品的形式,其包括程序代码,当所述程序产品在终端设备上运行时,所述程序代码用于使所述终端设备执行实现实施例1中的社区划分方法的步骤。
其中,可以以一种或多种程序设计语言的任意组合来编写用于执行本发明的程序代码,所述程序代码可以完全地在用户设备上执行、部分地在用户设备上执行、作为一个独立的软件包执行、部分在用户设备上部分在远程设备上执行或完全在远程设备上执行。
虽然以上描述了本发明的具体实施方式,但是本领域的技术人员应当理解,这仅是举例说明,本发明的保护范围是由所附权利要求书限定的。本领域的技术人员在不背离本发明的原理和实质的前提下,可以对这些实施方式做出多种变更或修改,但这些变更和修改均落入本发明的保护范围。
Claims (10)
1.一种社区划分方法,其特征在于,所述社区划分方法包括:
获取社交关系边数据,所述社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,所述关系权重用于表征两个所述用户ID之间的关系亲密度;
基于所述社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,所述社区划分结果包括所述至少两个用户ID及每个所述用户ID所对应的社区;
若所述社区划分结果达到预设条件,则停止社区划分迭代。
2.如权利要求1所述的社区划分方法,其特征在于,所述社区划分结果还包括每一社区内两两用户ID之间的关系权重;
所述社区划分方法还包括:
对于每一社区,基于所述社区内两两用户ID之间的关系权重计算所述社区内的用户ID在所述社区内的影响力值。
3.如权利要求1所述的社区划分方法,其特征在于,所述预设条件包括每个社区内的用户ID数均不大于第一阈值;和/或,
所述预设条件包括社区划分迭代的次数大于等于第二阈值。
4.如权利要求1所述的社区划分方法,其特征在于,对所述社区划分结果中用户ID数大于第一阈值的社区进行社区划分迭代。
5.如权利要求1-4中任一项所述的社区划分方法,其特征在于,所述社区划分方法还包括以下步骤:
基于所述社交关系边数据生成社交关系图,所述社交关系图包括若干节点和社交关系边,所述社交关系边用于连接两个节点以表征所述两个节点之间存在社交关系;
在每一轮社区划分迭代中,如果所述社区划分结果中存在社区内的用户ID数不大于第一阈值,则将所述社交关系图中的所有第一节点替换为一个第二节点,其中,所述第一节点用于表征所述社区内的用户ID,所述第二节点用于表征所述社区;
所述预设条件包括每一轮社区划分迭代中减少的所述社交关系边的总数小于等于第三阈值。
6.一种社区划分系统,其特征在于,所述社区划分系统包括:社交关系边获取模块和社区划分迭代模块;
所述社交关系边获取模块用于获取社交关系边数据,所述社交关系边数据包括至少两个用户ID以及两两用户ID之间的关系权重,所述关系权重用于表征两个所述用户ID之间的关系亲密度;
所述社区划分迭代模块用于基于所述社交关系边数据使用社区发现算法进行社区划分迭代,得到社区划分结果,所述社区划分结果包括所述至少两个用户ID及每个所述用户ID所对应的社区;
所述社区划分迭代模块还用于在所述社区划分结果达到预设条件时,停止社区划分迭代。
7.如权利要求6所述的社区划分系统,其特征在于,所述预设条件包括每个社区内的用户ID数均不大于第一阈值;和/或,
所述预设条件包括社区划分迭代的次数大于等于第二阈值。
8.如权利要求6-7中任一项所述的社区划分系统,其特征在于,所述社区划分系统还包括:社交关系图生成模块;
所述社交关系图生成模块用于基于所述社交关系边数据生成社交关系图,所述社交关系图包括若干节点和社交关系边,所述社交关系边用于连接两个节点以表征所述两个节点之间存在社交关系;
所述社交关系图生成模块还用于在每一轮社区划分迭代中,如果所述社区划分结果中存在社区内的用户ID数不大于第一阈值,则将所述社交关系图中的所有第一节点替换为一个第二节点,其中,所述第一节点用于表征所述社区内的用户ID,所述第二节点用于表征所述社区;
所述预设条件包括每一轮社区划分迭代中减少的所述社交关系边的总数小于等于第三阈值。
9.一种电子设备,包括存储器、处理器及存储在存储器上并可在处理器上运行的计算机程序,其特征在于,所述处理器执行所述程序时实现权利要求1-5中任意一项所述的社区划分方法。
10.一种计算机可读存储介质,其上存储有计算机程序,其特征在于,所述程序被处理器执行时实现权利要求1-5中任意一项所述的社区划分方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110443401.4A CN113177854A (zh) | 2021-04-23 | 2021-04-23 | 社区划分方法及系统、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110443401.4A CN113177854A (zh) | 2021-04-23 | 2021-04-23 | 社区划分方法及系统、电子设备及存储介质 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN113177854A true CN113177854A (zh) | 2021-07-27 |
Family
ID=76924493
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110443401.4A Pending CN113177854A (zh) | 2021-04-23 | 2021-04-23 | 社区划分方法及系统、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113177854A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077280A (zh) * | 2013-03-25 | 2014-10-01 | 中兴通讯股份有限公司 | 社区发现并行化方法和系统、主节点和运算节点设备 |
CN107529656A (zh) * | 2016-06-22 | 2018-01-02 | 腾讯科技(深圳)有限公司 | 一种社交网络社区的划分方法及服务器 |
CN108648094A (zh) * | 2018-05-08 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 一种社区发现方法、装置以及设备 |
CN110503568A (zh) * | 2019-08-19 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 一种社区划分方法、系统及设备 |
CN110825883A (zh) * | 2019-10-30 | 2020-02-21 | 杭州叙简科技股份有限公司 | 一种基于知识图谱的混合式团伙发现方法 |
CN110956553A (zh) * | 2019-12-16 | 2020-04-03 | 电子科技大学 | 基于社交网络节点双标签传播算法的社区结构划分方法 |
CN111581530A (zh) * | 2020-05-07 | 2020-08-25 | 北京互金新融科技有限公司 | 社团划分方法和装置 |
-
2021
- 2021-04-23 CN CN202110443401.4A patent/CN113177854A/zh active Pending
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104077280A (zh) * | 2013-03-25 | 2014-10-01 | 中兴通讯股份有限公司 | 社区发现并行化方法和系统、主节点和运算节点设备 |
CN107529656A (zh) * | 2016-06-22 | 2018-01-02 | 腾讯科技(深圳)有限公司 | 一种社交网络社区的划分方法及服务器 |
CN108648094A (zh) * | 2018-05-08 | 2018-10-12 | 阿里巴巴集团控股有限公司 | 一种社区发现方法、装置以及设备 |
CN110503568A (zh) * | 2019-08-19 | 2019-11-26 | 阿里巴巴集团控股有限公司 | 一种社区划分方法、系统及设备 |
CN110825883A (zh) * | 2019-10-30 | 2020-02-21 | 杭州叙简科技股份有限公司 | 一种基于知识图谱的混合式团伙发现方法 |
CN110956553A (zh) * | 2019-12-16 | 2020-04-03 | 电子科技大学 | 基于社交网络节点双标签传播算法的社区结构划分方法 |
CN111581530A (zh) * | 2020-05-07 | 2020-08-25 | 北京互金新融科技有限公司 | 社团划分方法和装置 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN111709527A (zh) | 运维知识图谱库的建立方法、装置、设备及存储介质 | |
KR101238600B1 (ko) | 쿼리 최적화에 의해 할당의 성능을 향상시키기 위한 컴퓨터구현 방법, 다차원 데이터 공간에서 할당을 수행하기 위한시스템, 및 컴퓨터 판독 가능 매체 | |
Arpón et al. | Scenario reduction for stochastic programs with conditional value-at-risk | |
US20160378809A1 (en) | Massive time series correlation similarity computation | |
Chebbi et al. | Big data: Concepts, challenges and applications | |
CN104809244B (zh) | 一种大数据环境下的数据挖掘方法和装置 | |
Hariharakrishnan et al. | Survey of pre-processing techniques for mining big data | |
CN113760891B (zh) | 一种数据表的生成方法、装置、设备和存储介质 | |
CN111512283B (zh) | 数据库中的基数估算 | |
Ismail et al. | Big Data prediction framework for weather Temperature based on MapReduce algorithm | |
Satish et al. | Big data processing with harnessing hadoop-MapReduce for optimizing analytical workloads | |
Akthar et al. | MapReduce model of improved k-means clustering algorithm using hadoop mapReduce | |
CN116881430A (zh) | 一种产业链识别方法、装置、电子设备及可读存储介质 | |
Akthar et al. | Clustering on big data using Hadoop MapReduce | |
US10657145B2 (en) | Clustering facets on a two-dimensional facet cube for text mining | |
CN108334532B (zh) | 一种基于Spark的Eclat并行化方法、系统及装置 | |
Zhou et al. | Image space accelerating algorithm for solving a class of multiplicative programming problems | |
CN113177854A (zh) | 社区划分方法及系统、电子设备及存储介质 | |
CN114443783B (zh) | 一种供应链数据分析和增强处理方法及装置 | |
CN114519071A (zh) | 规则匹配模型的生成方法、匹配方法、系统、设备和介质 | |
CN114282121A (zh) | 业务节点推荐方法、系统、设备及存储介质 | |
CN113591943A (zh) | 对新增渠道的用户进行快速认证方法、装置和电子设备 | |
Anusha et al. | Comparative evaluation of big data frameworks on batch processing | |
CN112750047A (zh) | 行为关系信息提取方法及装置、存储介质、电子设备 | |
Rajendran et al. | Incremental MapReduce for K-medoids clustering of big time-series data |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |