一种基于社交网络分析用户社交关系的轻量级方法与流程

发布时间:2025-11-22 13:57


1.本发明属于数据处理领域,具体涉及一种基于社交网络分析用户社交关系的轻量级方法。

背景技术:

2.随着移动互联网的普及,在世界范围内已衍生出多个十亿级用户的社交网络平台。以新浪微博为例,截至2021年四季度末,月活跃用户达到5.73亿,同比增长10%,预估总用户量已经超过十亿。随着用户对互联网的依赖性逐步提高,社交网络关系成为现代社交关系的重要组成部分。分析用户在社交网络的亲密关系对于案件分析、社群研究、用户分析等应用场景均有重要价值。
3.常见的网络化分析主要围绕节点和边两种数据类型,在数据量不断增加时,传统的关系型和对象型数据库由于索引结构和检索方式的限制,难以支持以节点为中心的检索需求。图数据库逐步成为了当今最常见的数据存储和检索引擎,解决了部分社交网络分析的需求。
4.图数据库虽具备图论分析的优势,但规模庞大的社交网络平台具有用户多、数据量大、网络复杂的特点,涉及的边往往突破千亿级别,极复杂的数据和网络结构使得在查询某用户节点的常见业务场景下也存在不少难点,比较有代表性的有:1、构建支持海量数据的图数据库成本较高通过图数据库分析海量社交网络关系的硬件要求和资源消耗非常巨大。以开源图数据库nebulagraph为例,对存储十亿级节点(用户)和千亿级边(关系)来进行预估,仅以3节点3副本、属性平均1kb、64mb块缓存来进行计算,所需硬件资源为硬盘空间:点和边的总数*属性的平均字节大小* 7.5 *120%~= 838pb,内存空间:点和边的总数* rocksdb实例数*默认实例配置*120% ~= 1788gb。另外,由于常规图数据库的大量调优基于硬盘寻道和读写能力,一般需使用ssd作为磁盘存储,而不使用hdd、raid,同时禁止使用nas、san、hdfs和ceph等远端或虚拟磁盘。除了硬件成本高,维护如此大规模的服务器集群所带来的的运维成本也非常高昂,这使得使用图数据库分析社交网络关系的成本进一步提升。
5.2、数据写入速度随数据量增大易陷入瓶颈大型社交网络平台每日消息具备流式、数据量大、数据稀疏的特点。每条信息可能包含多种关系类型,每种关系至少包含两点一边,每个节点均具备在数据库已存在和未存在两种状态。除了单节点的写入判断复杂耗时外,还需要关注在分布式架构中多节点数据不一致的问题。尤其在图数据库已有亿级以上节点时,海量更新操作在写入速度上形成瓶颈,从而无法保证数据更新的时效性,产生数据更新不及时的问题。
6.3、结果集去重准确率和效率难以保证图数据库一般采取dfs策略进行k邻查询穷举n步内所有路径和节点,但dfs策略会导致以下问题:(1)节点存在海量n步可达节点时,检索效率大幅下降;(2)结果无法区分穷举深度,导致检索边的数量会多于实际数量。对于问题(2),部分图数据库也开放了结果去
重功能。但会导致每个结果同时存储正向+反向数据,导致空间和时间复杂度大幅提升。以neo4j处理十万级为例,最终结果的检索时间在应用优化下仍呈现50%以上的增长。
7.4、消息文本内容难以留存图数据库主要存储节点和边的属性信息,无法广泛存储海量的社交网络平台的消息文本内容。使用图数据库时,用户必须进行以下艰难取舍:要么放弃存储原始文本内容导致丢失语义信息,要么通过额外大幅增加成本的方式使用文本搜索引擎(如solr、elasticsearch)或列式数据库(如clickhouse、hbase)等保证原始文本内容的存储和检索能力。

技术实现要素:

8.本发明的目的在于克服上述现有技术中存在的不足,采用新的数据存储结构及数据更新方式,采用区别于图数据库的查询后计算方式,充分考虑空间复杂度、时间复杂度、读写效率及业务可扩展性,可在准确性不变的前提下降低资源消耗,并提高可扩展性和可解释性,可在仅消耗轻量资源的情况下对十亿级用户规模社交网络的目标用户之间的社交关系进行分析,使得相关部门和机构能够在社交网络平台上有效监控特定目标和群体。
9.为实现上述发明目的,本发明提供一种基于社交网络分析用户社交关系的轻量级方法,包括如下步骤:(1)采集或接入目标社交网络平台社交消息数据,将该消息数据批量推送至数据流管道;(2)基于消息文本内容,提炼关系类型的识别规则,在数据流管道中对消息进行关系类型的模式识别;(3)基于关系类型和消息内容,在数据流管道中分析消息主客体关系,形成主动/被动关系;对于关系属性,分别在主客体数据结构中记录或更新与关系另一方的主动/被动关系类型及对应频次;对于文本内容,进行分词并以倒排索引的方式存储文本内容;(4)查询时,根据目标用户的关系属性,依据过滤条件,同时取出符合条件的所有主动/被动关系属性和文本内容;根据关系属性,生成以目标用户为核心的关系网络有向图;(5)根据关系网络有向图,计算目标用户关系网络中各节点topn亲密关系用户,并返回所有相关联的文本内容;其中,步骤(1)-(3)为离线数据处理,步骤(4)-(5)为在线实时查询。
10.进一步地,所述步骤(1)的实现方式包括以下子步骤:(11)构建低延时分布式消息引擎;(12)数据采集或接入实时数据,本发明场景已有实时数据,使用kafka进行实时数据接收;(13)对格式和数据完备性做校验,过滤错误数据;(14)使用lz4压缩算法对数据进行压缩,减少网络i/0传输量;(15)通过tcp协议流式推送消息数据至分布式消息队列。
11.进一步地,所述子步骤(11)中,使用zookeeper/kafka作为分布式消息引擎。
12.进一步地,所述步骤(2)的实现方式包括以下子步骤,(21)根据业务需要收集已有的关系类型表现于文本内容的规则并配置;(22)根据已有规则,编写和编译正则表达式进行模式识别;(23)未被规则识别到的消息文本内容,视为不包含关系属性,过滤此类消息并不再进入下一步。
13.进一步地,子步骤(21)所述关系类型至少包括关注、提及、评论、点赞和转发。
14.进一步地,所述步骤(3)的实现方式包括以下子步骤:(31)分析主客体关系,主体用户具有对客体用户的主动关系,反之亦然,表现为,a) 关注关系中,关注用户属于主体,被关注用户属于客体;b)提及关系中,消息发起用户属于主体,被提及用户属于客体;c)评
论关系中,评论用户属于主体,被评论用户属于客体;d)点赞关系中,点赞用户属于主体,被点赞用户属于客体;e)转发关系中,转发用户属于主体,被转发用户属于客体;(32)构建支持分布式、倒排索引和incr增量更新的数据库,用于同时存储关系数据和消息文本内容数据;incr增量更新方式可有效避免大规模写入场景时易发生的并发锁问题,在多副本冲突时也可直接使用最大值的方式快速得到正确数据;(33)将主体用户的唯一标识符记为u1,将客体用户的唯一标识符记为u2,将关系分析结果只不过一次主被动关系转换为主体对客体的频次数据,记为u1-》u2: 1,将u2: 1以incr增量更新的方式更新至u1用户数据中;其中,用户的唯一标识符同时也作为数据库的主键索引,以在查询和写入时提供最大效率;(34)基于已有开源数据设计词典和停用词,并将社交网络平台特定的常用词、常用表情编码及当前流行网络语添加进词典;(35)以正向迭代最细粒度切分算法结合词袋和停用词对消息文本内容进行分词,并写入支持倒排索引的数据库结构中,以索引结构替代文本内容存储,节约磁盘空间。
15.进一步地,所述子步骤(32)中使用elasticsearch文本搜索引擎7.16.2版本。
16.进一步地,所述子步骤(35)中,扩展基于文本内容分析其他词语属性并入库,包括基于敏感词的敏感用户业务。
17.进一步地,所述步骤(4)的实现方式包括以下子步骤:(41)查询任一用户时,基于用户的唯一标识符,在数据库中找到目标数据,获取所有曾发起主动关系的其他用户唯一标识符和文本内容;(42)基于其他用户唯一标识符,在去重操作后,批量筛选和目标用户有关系的关联用户数据,并过滤其他用户数据中与目标用户不相关的数据内容;其中,当批量筛选关联用户时,由于数据库基于索引查询目标,并且可以过滤关联用户中不含目标用户的非双向关系,因此保障了数据库在关联用户范围较大时的检索效率;(43)取出目标和关联数据后,基于数据内容生成以目标用户为核心的单层关系有向图,并与相关联消息文本内容一同返回计算;其中,以主体关系进行过滤时,能有效避免目标用户关联到存在海量边的用户节点(网络红人等),减少不必要的计算开销;(44)如需去除多个目标用户,重复以上步骤。
18.进一步地,所述步骤(5)的实现方式包括以下子步骤:(51)视用户为点,关系为边,定义不同关系类型下的计算方式;支持算子包括:关系类型加权权重、双方关系频次及最后消息时间,可扩展算子为:触发关键词、熵值、文本内容语义情感和其他可基于nlp分析的数值类算子;(52)根据定制公式的计算结果,累加不同关系边的亲密度,生成用户间关系;(53)逆序用户间亲密度,汇总消息文本内容返回给使用方,实现社交网络平台目标亲密用户的查询。
19.与现有技术相比,本发明的有益效果为:1.以对象型数据库替换了图数据库,以32+4字节的可复用存储结构替代了千亿级以上边的存储,至少节约95%以上的存储消耗、80%以上的内存消耗和40%以上的cpu消耗。
20.2.基于关系类型字段枚举,实现主动/被动关系的数据隔离,将主动、被动关系分别以不同的枚举字段(例如object/subject)存储,是一种以空间换时间的做法,以简单的结构替代了图数据库的复杂多维结构,降低了图形式的存储纬度,避免了关联到海量边节点的用户,减少了检索开销。以int的方式记录关系频次,并通过数据库普遍支持的高性能incr方式进行自增更新,大幅提升了更新效率。
21.3.通过查询时构建小型关系网络有向图的方式,提高了业务扩展能力和数据可解释性,避开常见dfs策略计算k邻的穷举算量大和结果过滤不准确的难题。
22.4.通过倒排索引的方式,以索引结果替代文本内容,大幅降低了存储成本,并提供了文本存储和检索的能力,保留和提供更多可分析能力。
附图说明
23.图1为本发明一个实施例的流程图;图2为本发明一个实施例中离线数据处理的流程图;图3为本发明一个实施例中在线实时查询的流程图。
具体实施方式
24.下面结合附图和具体实施例,对本发明的技术方案做进一步说明。
25.如图1-图3所示,本发明基于社交网络分析用户社交关系的轻量级方法的一个实施例,包括如下步骤:(1)采集或接入目标社交网络平台社交消息数据,将该消息数据批量推送至数据流管道;(2)基于消息文本内容,提炼关系类型的识别规则,在数据流管道中对消息进行关系类型的模式识别;(3)基于关系类型和消息内容,在数据流管道中分析消息主客体关系,形成主动/被动关系;对于关系属性,分别在主客体数据结构中记录或更新与关系另一方的主动/被动关系类型及对应频次;对于文本内容,进行分词并以倒排索引的方式存储文本内容;(4)查询时,根据目标用户的关系属性,依据过滤条件,同时取出符合条件的所有主动/被动关系属性和文本内容;根据关系属性,生成以目标用户为核心的关系网络有向图;(5)根据关系网络有向图,计算目标用户关系网络中各节点topn亲密关系用户,并返回所有相关联的文本内容;其中,步骤(1)-(3)为离线数据处理,步骤(4)-(5)为在线实时查询。
26.在一个实施例中,所述步骤(1)的实现方式包括以下子步骤:(11)构建低延时分布式消息引擎;(12)数据采集或接入实时数据,本发明场景已有实时数据,使用kafka进行实时数据接收;(13)对格式和数据完备性做校验,过滤错误数据;(14)使用lz4压缩算法对数据进行压缩,减少网络i/0传输量;(15)通过tcp协议流式推送消息数据至分布式消息队列。
27.在一个实施例中,所述子步骤(11)中,使用zookeeper/kafka作为分布式消息引擎,并进行了调优,可以根据实际需要进行横向扩容,亦可使用其他分布式消息引擎作为替代。
28.在一个实施例中,所述步骤(2)的实现方式包括以下子步骤,(21)根据业务需要收集已有的关系类型表现于文本内容的规则并配置;也可以定制其他关系类型进行分析;(22)根据已有规则,编写和编译正则表达式进行模式识别;(23)未被规则识别到的消息文本内容,视为不包含关系属性,过滤此类消息并不再进入下一步。
29.在一个实施例中,子步骤(21)所述关系类型至少包括关注、提及、评论、点赞和转发。
30.在一个实施例中,所述步骤(3)的实现方式包括以下子步骤:(31)分析主客体关系,主体用户具有对客体用户的主动关系,反之亦然,表现为,a)关注关系中,关注用户属于主体,被关注用户属于客体;b)提及关系中,消息发起用户属于主体,被提及用户属于客体;
c)评论关系中,评论用户属于主体,被评论用户属于客体;d)点赞关系中,点赞用户属于主体,被点赞用户属于客体;e)转发关系中,转发用户属于主体,被转发用户属于客体;(32)构建支持分布式、倒排索引和incr增量更新的数据库,用于同时存储关系数据和消息文本内容数据;incr增量更新方式可有效避免大规模写入场景时易发生的并发锁问题,在多副本冲突时也可直接使用最大值的方式快速得到正确数据;(33)将主体用户的唯一标识符记为u1,将客体用户的唯一标识符记为u2,将关系分析结果只不过一次主被动关系转换为主体对客体的频次数据,记为u1-》u2: 1,将u2: 1以incr增量更新的方式更新至u1用户数据中;其中,用户的唯一标识符同时也作为数据库的主键索引,以在查询和写入时提供最大效率;数据可合并多条后进行批量更新,实现更高的写入效率;(34)基于已有开源数据设计词典和停用词,并将社交网络平台特定的常用词、常用表情编码及当前流行网络语添加进词典;(35)以正向迭代最细粒度切分算法结合词袋和停用词对消息文本内容进行分词,并写入支持倒排索引的数据库结构中,以索引结构替代文本内容存储,节约磁盘空间。
31.在一个实施例中,所述子步骤(32)中使用elasticsearch文本搜索引擎7.16.2版本,可同时支持以上需求,并在集群下对存储、读写等性能有着较好的横向扩容能力。
32.在一个实施例中,所述子步骤(35)中,可扩展基于文本内容分析其他词语属性并入库,包括基于敏感词的敏感用户业务。还可针对不同社交网络平台、语言,针对实际需求,可以改进其他分词方法、方式进行分词。
33.在一个实施例中,所述步骤(4)的实现方式包括以下子步骤:(41)查询任一用户时,基于用户的唯一标识符,在数据库中找到目标数据,获取所有曾发起主动关系的其他用户唯一标识符和文本内容;(42)基于其他用户唯一标识符,在去重操作后,批量筛选和目标用户有关系的关联用户数据,并过滤其他用户数据中与目标用户不相关的数据内容;其中,当批量筛选关联用户时,由于数据库基于索引查询目标,并且可以过滤关联用户中不含目标用户的非双向关系,因此保障了数据库在关联用户范围较大时的检索效率;可定义额外的筛选条件,降低数据结构大小,提升查询效率;(43)取出目标和关联数据后,基于数据内容生成以目标用户为核心的单层关系有向图,并与相关联消息文本内容一同返回计算;其中,以主体关系进行过滤时,能有效避免目标用户关联到存在海量边的用户节点(网络红人等),减少不必要的计算开销;(44)如需去除多个目标用户,重复以上步骤。
34.在一个实施例中,所述步骤(5)的实现方式包括以下子步骤:(51)视用户为点,关系为边,定义不同关系类型下的计算方式;支持算子包括:关系类型加权权重、双方关系频次及最后消息时间,可扩展算子为:触发关键词、熵值、文本内容语义情感和其他可基于nlp分析的数值类算子;(52)根据定制公式的计算结果,累加不同关系边的亲密度,生成用户间关系;(53)逆序用户间亲密度,汇总消息文本内容返回给使用方,实现社交网络平台目标亲密用户的查询。
35.最后应当说明的是:以上实施例仅用以说明本发明的技术方案而非对其限制,尽管参照上述实施例对本发明进行了详细的说明,所属领域的普通技术人员应当理解:依然可以对本发明的具体实施方式进行修改或者等同替换,而未脱离本发明精神和范围的任何修改或者等同替换,其均应涵盖在本发明的权利要求保护范围之内。

网址:一种基于社交网络分析用户社交关系的轻量级方法与流程 https://m.mxgxt.com/news/view/1889019

相关内容

基于微博的社交网络用户关系分析.docx
基于多个社交网络的用户关系分析
社交网络分析的方法与应用
基于新浪微博的社交网络用户关系分析
社会网络分析报告——基于社交媒体数据的用户关系网络描述.docx
社交网络数据分析报告用户活跃度和社交互动分析
基于Python的社交网络分析与图论算法实践
社交网络用户画像分析报告
社交网络分析2(下):社交网络情感分析的方法、挑战与前沿技术
社群发现的社交网络分析与社交网络可视化工具1.背景介绍 社群发现是一种对社交网络进行分析的方法,用于发现网络中的社群结构

随便看看