CN112231591B - 考虑社交网络用户群紧密度的信息推荐方法及系统 - Google Patents
考虑社交网络用户群紧密度的信息推荐方法及系统 Download PDFInfo
- Publication number
- CN112231591B CN112231591B CN202011230261.4A CN202011230261A CN112231591B CN 112231591 B CN112231591 B CN 112231591B CN 202011230261 A CN202011230261 A CN 202011230261A CN 112231591 B CN112231591 B CN 112231591B
- Authority
- CN
- China
- Prior art keywords
- vertex
- source point
- shortest distance
- distance
- point
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 66
- 230000003993 interaction Effects 0.000 claims abstract description 8
- 230000015654 memory Effects 0.000 claims description 22
- 238000004590 computer program Methods 0.000 claims description 11
- 238000004364 calculation method Methods 0.000 claims description 6
- 238000010586 diagram Methods 0.000 claims description 4
- 230000008569 process Effects 0.000 description 20
- 238000004422 calculation algorithm Methods 0.000 description 3
- 230000008859 change Effects 0.000 description 2
- 230000007547 defect Effects 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000013499 data model Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000006872 improvement Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000005065 mining Methods 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9536—Search customisation based on social or collaborative filtering
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/90—Details of database functions independent of the retrieved data types
- G06F16/95—Retrieval from the web
- G06F16/953—Querying, e.g. by the use of web search engines
- G06F16/9535—Search customisation based on user profiles and personalisation
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Databases & Information Systems (AREA)
- Theoretical Computer Science (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了考虑社交网络用户群紧密度的信息推荐方法及系统,获取社交网络中待分析用户群中的所有用户;根据待分析用户群中的所有用户,构建图结构;将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;否则,不进行信息推荐。
Description
技术领域
本申请涉及社交网络挖掘技术领域,特别是涉及考虑社交网络用户群紧密度的信息推荐方法及系统。
背景技术
本部分的陈述仅仅是提到了与本申请相关的背景技术,并不必然构成现有技术。
基于图的多点之间最短距离计算问题是指给定一个有向或无向非负加权图G,在该图G上选择任意多个点的集合S,计算集合S中任意两点在图G上的最短距离。两点之间的最短距离是指这两点之间的最短路线上所有边的权重之和。现实中,若干应用的数据模型都可以抽象为有向图或者无向图。社交网络可以抽象为图结构,每个用户看作图上的一个顶点,用户之间的好友或者关注关系则被是为相应顶点的边,用户之间的互动次数则可以抽象为边的权重。在实际应用中,查询图上多点对之间的最短距离是一个基础性问题,可以作为一个算法模块应用到多个领域。
在对社交网络的一组用户关系的密切程度进行分析时,往往需要了解指定的这组用户中两两用户之间关系的密切程度,而用户关系的密切程度可以表示为社交网络中用户之间的最短距离。
在给定的图G上计算顶点集合V中任意两个顶点之间最短距离时,目前的方法普遍采用迪杰斯特拉算法,依次以集合V中每个顶点为起点,对图G进行遍历,直至找到该点到其他顶点的最短距离,这类方法存在以下不足:
(1)如何快速计算出多节点复杂社交网络环境下,指定一组用户节点中任意两个用户节点之间的最短距离,然后将用户节点之间的最短距离加权求和,得到该组用户的关系紧密度。
(2)整个计算过程是顺序执行,当集合V中顶点数目较多时,耗时巨大。
(3)在以集合S中每个顶点为起点进行图的遍历时,存在大量的重复计算,难以实现已有计算结果的共享利用。
(4)虽然某些已有工作采用双向宽度优先遍历策略计算两点之间的最短路线,但是需要维护大量路线且宽度优先遍历策略的搜索范围过大,导致查询效率不高。
(5)现有技术中信息推荐的过程中,没有考虑用户群关系紧密度,对于关系不够紧密的群体内的用户相互之间推荐信息或产品是没有意义和价值的,甚至会浪费商家的成本。
综上所述,现有技术中如何设计一种高效并行计算策略以提高极大图上多点之间最短距离的计算效率,尚缺乏有效的解决方案。
发明内容
为了解决现有技术的不足,本申请提供了考虑社交网络用户群紧密度的信息推荐方法;
第一方面,本申请提供了考虑社交网络用户群紧密度的信息推荐方法;
考虑社交网络用户群紧密度的信息推荐方法,包括:
获取社交网络中待分析用户群中的所有用户;
根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;
将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
第二方面,本申请提供了考虑社交网络用户群紧密度的信息推荐系统;
考虑社交网络用户群紧密度的信息推荐系统,包括:
获取模块,其被配置为:获取社交网络中待分析用户群中的所有用户;
图结构构件模块,其被配置为:根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
查询模块,其被配置为:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;
推荐模块,其被配置为:将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
第三方面,本申请还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述第一方面所述的方法。
第四方面,本申请还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成第一方面所述的方法。
第五方面,本申请还提供了一种计算机程序(产品),包括计算机程序,所述计算机程序当在一个或多个处理器上运行的时候用于实现前述第一方面任意一项的方法。
与现有技术相比,本申请的有益效果是:
快速计算出社交网络复杂环境下,指定一组用户节点中任意两个用户节点之间的最短距离,然后将任意两个用户之间的最短距离进行加权求和,从而计算得到指定用户群的关系紧密度。针对关系紧密度大于设定阈值的指定用户群,对群内的用户进行彼此之间的信息推荐。针对关系紧密度小于等于设定阈值的指定用户群,对群内的用户不执行信息推荐。节省商家的成本,也提升用户的体验。
本发明附加方面的优点将在下面的描述中部分给出,部分将从下面的描述中变得明显,或通过本发明的实践了解到。
附图说明
构成本申请的一部分的说明书附图用来提供对本申请的进一步理解,本申请的示意性实施例及其说明用于解释本申请,并不构成对本申请的不当限定。
图1为图G的一个实例(v1和v10分别是两个源点);
图2为初始化时每个源点分别对应的最小堆以及当前“理论可到达最短距离”;
图3为初始化时每个源点到图G中其它各个顶点的距离;
图4、图6、图8、图10、图12、图14、图16分别为搜索算子每执行第一步,每个源点分别对应的最小堆以及当前“理论可到达最短距离”;
图5、图7、图9、图11、图13、图15、图17分别为搜索算子每执行第一步,每个源点到图G中其它各个顶点的距离。
具体实施方式
应该指出,以下详细说明都是示例性的,旨在对本申请提供进一步的说明。除非另有指明,本文使用的所有技术和科学术语具有与本申请所属技术领域的普通技术人员通常理解的相同含义。
需要注意的是,这里所使用的术语仅是为了描述具体实施方式,而非意图限制根据本申请的示例性实施方式。如在这里所使用的,除非上下文另外明确指出,否则单数形式也意图包括复数形式,此外,还应当理解的是,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
实施例一
本实施例提供了考虑社交网络用户群紧密度的信息推荐方法;
考虑社交网络用户群紧密度的信息推荐方法,包括:
S101:获取社交网络中待分析用户群中的所有用户;
S102:根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
S103:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;
S104:将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
应理解的,所述用户关系矩阵中,如果两个用户之间存在好友关系或关注关系,则两个用户之间的数值为1,否则为0。
作为一个或多个实施例,所述S103:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;具体步骤包括:
S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子vi;
S1032:搜索算子vi初始化源点vi到图结构G中其它所有顶点的距离,源点vi到任意顶点vl的距离记作Dist(vi,vl);
S1033:搜索算子vi以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi);
S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离;
S1035:搜索算子vi计算得到源点vi至顶点集合V中其它所有顶点之间的最短距离后,终止遍历;
S1036:当顶点集合V中任意顶点vx的搜索算子rx均终止遍历后,结束;输出顶点集合中任意两个顶点之间的最短距离。
进一步地,S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子ri;具体实现方式为:
S10311:为搜索算子vi创建最小堆最小堆/>用于存放与源点vi的最短距离已经确定的顶点;最小堆/>根据每个顶点到源点的最短距离,确定每个顶点在最小堆中的位置;最小堆/>初始化时仅包含源点vi;
S10312:为搜索算子ri创建最小堆最小堆/>用于存放与源点的最短距离还未确定但到源点的距离为非无穷大的顶点;最小堆/>根据每个顶点到源点的当前距离确定每个顶点在最小堆中的位置,最小堆/>初始化为源点vi的邻接点集合。
进一步地,S1032:搜索算子vi初始化源点vi到图结构G中其它所有顶点的距离,源点vi到任意顶点vl的距离记作Dist(vi,vl);具体实现方式为:
S10321:搜索算子ri将源点vi到自身的距离置为0,并将vi插入到最小堆
S10322:搜索算子vi将源点vi到其邻接顶点vh的距离置为边ei,h的权重,并将vh插入到最小堆
S10323:搜索算子vi将源点vi到顶点vy的距离置为无穷大,记为其中,顶点vy是指图结构G中除了源点vi自身与其邻接顶点之外的其它顶点。
进一步地,S1033:搜索算子vi以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi);具体实现方式为:
S10331:从最小堆中计算源点vi的临界顶点vb;其中,临界顶点vb是指最小堆中与源点vi距离最小且至少存在一个未处理的邻接点的顶点;
S10332:将临界顶点vb到源点vi的最短距离置为源点vi的理论可到达最短距离HDist(vi)。
进一步地,所述S10331:从最小堆中计算源点vi的临界顶点vb;具体实现方式包括:
S103311:搜索算子ri取最小堆中堆顶的顶点vf,此时,源点vi与vf的当前距离等于vi与vf之间的最短距离。搜索算子ri将顶点vf添加至最小堆/>
S103312:更新源点vi到顶点vf的每个邻接点vg的距离。
S103313:遍历最小堆如果/>中某个顶点的所有邻接点均属于/>则将该顶点标记为“已处理”;如果/>中某个顶点存在至少一个邻接点/>则将该顶点标记为“未处理”;
S103314:遍历最小堆第一个被访问的状态为“未处理”顶点即为源点vi的临界顶点vb;
S103315:重复S103311-S103314,不断更新源点vi的临界顶点vb。
进一步地,所述S103312的具体步骤为:
S1033121:当Dist(vi,vg)=∞时,令Dist(vi,vg)=Dist(vi,vf)+Dist(vf,vg),将顶点vg插入最小堆
S1033122:当Dist(vi,vg)≠∞时,如果Dist(vi,vg)>Dist(vi,vf)+Dist(vf,vg),则Dist(vi,vg)=Dist(vi,vf)+Dist(vf,vg),从最小堆删除顶点vg,并根据更新后的Dist(vi,vg)将顶点vg重新插入最小堆/>
进一步地,所述S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离;具体实现方式为:
S10341:搜索算子vi和rj,分别以源点vi和vj遍历图G并不断计算和更新源点vi的“理论可到达最短距离”HDist(vi)和源点vj的“理论可到达最短距离”HDist(vj);
S10342:当搜索算子vi计算得到顶点vc与源点vi的最短距离,且搜索算子rj也计算得到顶点vc与源点vj的最短距离时,则产生一条vi和vj的新路线pk={vi,…,vc,…,vj},Dist(pk)表示路线pk的距离。
S10343:假设vi和vj之间当前已找到的最短路线为ps,Dist(ps)表示路线ps的最短距离;如果Dist(pk)<Dist(ps),则令ps=Pk;
S10344:比较Dist(ps)与源点vi和vj的“理论可到达最短距离”之和(HDist(vi)+HDist(vj));如果Dist(ps)<(HDist(vi)+HDist(vj)),则Dist(ps)即为vi和vj之间的最短距离;
S10345:重复步骤S10341-S10344,直至满足S10344的约定条件。
进一步地,S1035:搜索算子ri计算得到源点vi至顶点集合V中其它所有顶点之间的最短距离后,终止遍历;具体实现方式为:
S10351:搜索算子vi依据S1034计算得到源点vi到源点vj(vj∈V)的最短距离后,将vj添加至集合Ri;
S10352:当集合Ri等于集合V,表示搜索算子ri已计算得到源点vi到集合V中所有顶点的最短距离,搜索算子ri停止遍历。
本申请的一种典型的实施方式中,以图1所示图G以及V={v1,v10}为例,反向并行计算图G中顶点v1和v10之间的最短距离的方法,包括:
步骤(1)将顶点v1和v10视为源点,为其分别创建搜索算子r1和r10;
步骤(2)搜索算子r1和r10分别初始化源点v1和v10到图G中其它所有顶点的距离;
步骤(3)搜索算子r1和r10分别以源点v1和v10为起点对图G进行遍历,计算并更新源点v1和v10的“理论可到达最短距离”;
步骤(4)搜索算子r1和r10根据各自源点的“理论可到达最短距离”并行计算源点v1和v10之间的最短距离;
步骤(5)搜索算子r1和r10计算得到源点v1至v10的最短距离后,终止遍历;
示例性的,所述步骤(1)为集合V中的顶点v1至v10分别创建搜索算子r1和r10的方式为:
步骤(1.1)为搜索算子r1创建最小堆用于存放与源点v1的最短距离已经确定的顶点。最小堆/>根据每个顶点到源点的最短距离确定其在最小堆中的位置。最小堆/>初始化仅包含源点v1。同理,为搜索算子r10创建最小堆/>初始化的/>和/>如图2所示;
步骤(1.2)为搜索算子r1创建最小堆用于存放与源点的最短距离还未确定但到源点的距离为非无穷大的顶点。最小堆/>根据每个顶点到源点的当前距离确定其在最小堆中的位置。最小堆/>初始化为源点v1的邻接点集合。同理,为搜索算子r10创建最小堆初始化的/>和/>如图2所示。
示例性的,以搜索算子r1为例,所述步骤(2)搜索算子r1初始化源点v1到图G中其它顶点的距离的步骤为:
步骤(2.1)搜索算子r1将源点v1到自身的距离置为0,并将v1插入到最小堆
步骤(2.2)搜索算子r1将源点v1到其邻接点v2和v3的距离置为边e1,2和e1,3的权重,并将v2和v3插入到最小堆
步骤(2.3)搜索算子r1将源点v1到除自身和其邻接点的其它顶点的距离置为无穷大,记为∞。源点v1到图中所有顶点的距离如图3所示。
示例性的,所述步骤(3)搜索算子r1以源点v1为起点对图G进行遍历,计算并更新源点v1的“理论可到达距离”(HDist(v1))的步骤为:
步骤(3.1)从最小堆中计算源点v1的边界顶点vb。这里,边界顶点vb是指最小堆中与源点v1距离最小且至少存在一个未处理的邻接点的顶点;
步骤(3.2)将边界顶点vb到源点v1的最短距离置为源点v1的“理论可到达最短距离”(HDist(v1))。
示例性的,所述步骤(3.1)计算源点v1的边界顶点vb的步骤为:
步骤(3.1.1)搜索算子r1取最小堆中堆顶的顶点vf,此时,源点v1与vf的当前距离等于v1与vf之间的最短距离。搜索算子r1将顶点vf添加至最小堆/>
步骤(3.1.2)更新源点v1到顶点vf的每个邻接点vg的距离;
示例性的,所述步骤(3.1.2)的具体步骤为:
步骤(3.1.2.1)当Dist(v1,vg)=∞时,令Dist(v1,vg)=Dist(v1,vf)+Dist(vf,vg),将顶点vg插入最小堆;
步骤(3.1.2.2)当Dist(v1,vg)≠∞时,如果Dist(v1,vg)>Dist(v1,vf)+Dist(vf,vg),则Dist(v1,vg)=Dist(v1,vf)+Dist(vf,vg),从最小堆删除顶点vg,并根据更新后的Dist(v1,vg)将顶点vg重新插入最小堆/>
步骤(3.1.3)遍历最小堆如果/>中某个顶点的所有邻接点均属于/>则将该顶点标记为“已处理”;如果/>中某个顶点存在至少一个邻接点/>则将该顶点标记为“未处理”。
步骤(3.1.4)遍历最小堆,第一个被访问的状态为“未处理”顶点即为源点v1的临界顶点vb;
步骤(3.1.5)重复步骤(3.1.1)-(3.1.4),不断更新源点v1的临界顶点vb。
如图2所示,初始化时,中堆顶的顶点为v3,v3的邻接点为v5和v11。搜索算子r1根据所述步骤(3.1)和(3.2)对顶点为v3进行处理后,最小堆/>和/>如图4所示。此时,由于源点仍有邻接点v2属于/>所以v1和v3的状态均为“未处理”,那么v1的边界点为其自身,HDist(v1)=0。
图4、图6、图8、图10、图12、图14分别给出了搜索算子r1依次处理v2、v5、v4、v7、v11、v6时最小堆和/>的状态变化以及源点v1的“理论可到达最短距离”(HDist(v1))的更新。同时,也给出了搜索算子r10依次处理v9、v8、v7、v11、v6、v5、v4时最小堆/>和/>的状态变化以及源点v10的“理论可到达最短距离”(HDist(v10))的更新。
示例性的,所述步骤(4)搜索算子r1和r10根据各自源点的“理论可到达最短距离”并行计算v1和v10之间的最短距离的步骤为:
步骤(4.1)搜索算子r1和r10根据步骤(3)所述,分别以源点v1和v10遍历图G并不断计算和更新源点v1的“理论可到达最短距离”(HDist(v1))和源点v10的“理论可到达最短距离”(HDist(v10));
步骤(4.2)当搜索算子r1计算得到顶点vc与源点v1的最短距离,且搜索算子r10也计算得到顶点vc与源点v10的最短距离时,则产生一条v1和v10的新路线pk={v1,…,vc,…,v10},Dist(pk)表示路线pk的距离。
步骤(4.3)假设v1和v10之间当前已找到的最短路线为ps,Dist(ps)表示路线ps的最短距离。如果Dist(pk)<Dist(ps),则令ps=pk;
步骤(4.4)比较Dist(ps)与源点v1和v10的“理论可到达最短距离”之和(HDist(v1)+HDist(v10))。如果Dist(ps)<(HDist(v1)+HDist(v10)),则Dist(ps)即为v1和v10之间的最短距离;
步骤(4.5)重复步骤4.1-4.4,直至满足步骤(4.4)的约定条件。
如图1-图17所示,当搜索算子r1计算得到v1至v7的最短距离时,产生一条v1和v10的路线p1={v1,v3,v5,v7,v9,v10},Dist(p1)=16,pS=p1。
此时,HDist(v1)=2,HDist(v10)=8,由于2+8<16,继续遍历。
当搜索算子r1计算得到v1至v11的最短距离时,产生一条v1和v11的路线p2={v1,v3,v11,v9,v10},Dist(p2)=17,Dist(ps)<Dist(p2)。
此时,HDist(v1)=5,HDist(v10)=9,由于5+9<Dist(ps),继续遍历;
当搜索算子r1计算得到v1至v6的最短距离时,产生一条v1和v10的路线p3={v1,v2,v4,v6,v8,v10},Dist(p3)=19,Dist(ps)<Dist(p3)。
此时,HDist(v1)=8,HDist(v10)=9,9+8>Dist(ps),可得Dist(ps)=16为v1和v10之间的最短距离,搜索算子r1和r10停止遍历。
如图2和图3所示,初始化步骤;如图4和图5所示,搜索算子r1处理v3,搜索算子r10处理v9;如图6和图7所示,搜索算子r1处理v2,搜索算子r10处理v8;如图8和图9所示,搜索算子r1处理v5,搜索算子r10处理v7;如图10和图11所示,搜索算子r1处理v4,搜索算子r10处理v11;如图12和图13所示,搜索算子r1处理v7,搜索算子r10处理v6;如图14和图15所示,搜索算子r1处理v11,搜索算子r10处理v5;如图16和图17所示,搜索算子r1处理v6,搜索算子r10处理v4。
实施例二
本实施例提供了考虑社交网络用户群紧密度的信息推荐系统;
考虑社交网络用户群紧密度的信息推荐系统,包括:
获取模块,其被配置为:获取社交网络中待分析用户群中的所有用户;
图结构构件模块,其被配置为:根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
查询模块,其被配置为:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离;
推荐模块,其被配置为:将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
此处需要说明的是,上述获取模块、图结构构件模块、查询模块和推荐模块对应于实施例一中的步骤S101至S104,上述模块与对应的步骤所实现的示例和应用场景相同,但不限于上述实施例一所公开的内容。需要说明的是,上述模块作为系统的一部分可以在诸如一组计算机可执行指令的计算机系统中执行。
上述实施例中对各个实施例的描述各有侧重,某个实施例中没有详述的部分可以参见其他实施例的相关描述。
所提出的系统,可以通过其他的方式实现。例如以上所描述的系统实施例仅仅是示意性的,例如上述模块的划分,仅仅为一种逻辑功能划分,实际实现时,可以有另外的划分方式,例如多个模块可以结合或者可以集成到另外一个系统,或一些特征可以忽略,或不执行。
实施例三
本实施例还提供了一种电子设备,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述实施例一所述的方法。
应理解,本实施例中,处理器可以是中央处理单元CPU,处理器还可以是其他通用处理器、数字信号处理器DSP、专用集成电路ASIC,现成可编程门阵列FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。
存储器可以包括只读存储器和随机存取存储器,并向处理器提供指令和数据、存储器的一部分还可以包括非易失性随机存储器。例如,存储器还可以存储设备类型的信息。
在实现过程中,上述方法的各步骤可以通过处理器中的硬件的集成逻辑电路或者软件形式的指令完成。
实施例一中的方法可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器、闪存、只读存储器、可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器,处理器读取存储器中的信息,结合其硬件完成上述方法的步骤。为避免重复,这里不再详细描述。
本领域普通技术人员可以意识到,结合本实施例描述的各示例的单元及算法步骤,能够以电子硬件或者计算机软件和电子硬件的结合来实现。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
实施例四
本实施例还提供了一种计算机可读存储介质,用于存储计算机指令,所述计算机指令被处理器执行时,完成实施例一所述的方法。
以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (6)
1.考虑社交网络用户群紧密度的信息推荐方法,其特征是,包括:
S101:获取社交网络中待分析用户群中的所有用户;
S102:根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
S103:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离,具体包括:
S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子ri;
S1032:搜索算子ri初始化源点vi到图结构G中其它所有顶点的距离,源点vi到任意顶点vl的距离记作Dist(vi,vl);
S1033:搜索算子ri以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi);
S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离;
S1035:搜索算子ri计算得到源点vi至顶点集合V中其它所有顶点之间的最短距离后,终止遍历;
S1036:当顶点集合V中任意顶点vx的搜索算子rx均终止遍历后,结束;输出顶点集合中任意两个顶点之间的最短距离;
所述S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子ri,包括:
S10311:为搜索算子ri创建最小堆最小堆/>用于存放与源点vi的最短距离已经确定的顶点;最小堆/>根据每个顶点到源点的最短距离,确定每个顶点在最小堆中的位置;最小堆/>初始化时仅包含源点vi;
S10312:为搜索算子ri创建最小堆最小堆/>用于存放与源点的最短距离还未确定但到源点的距离为非无穷大的顶点;最小堆/>根据每个顶点到源点的当前距离确定每个顶点在最小堆中的位置,最小堆/>初始化为源点vi的邻接点集合;
所述S1033:搜索算子ri以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi),包括:
S10331:从最小堆中计算源点vi的临界顶点vb;其中,临界顶点vb是指最小堆/>中与源点vi距离最小且至少存在一个未处理的邻接点的顶点;
S10332:将临界顶点vb到源点vi的最短距离置为源点vi的理论可到达最短距离HDist(vi);
所述S10331:从最小堆中计算源点vi的临界顶点vb,包括:
S103311:搜索算子ri取最小堆中堆顶的顶点vf,此时,源点vi与vf的当前距离等于vi与vf之间的最短距离,搜索算子ri将顶点vf添加至最小堆/>
S103312:更新源点vi到顶点vf的每个邻接点vg的距离;
S103313:遍历最小堆如果/>中某个顶点的所有邻接点均属于/>则将该顶点标记为“已处理”;如果/>中某个顶点存在至少一个邻接点/>则将该顶点标记为“未处理”;
S103314:遍历最小堆第一个被访问的状态为“未处理”顶点即为源点vi的临界顶点vb;
S103315:重复S103311-S103314,不断更新源点vi的临界顶点vb;
所述S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离,包括:
S10341:搜索算子ri和rj,分别以源点vi和vj遍历图G并不断计算和更新源点vi的“理论可到达最短距离”HDist(vi)和源点vj的“理论可到达最短距离”HDist(vj);
S10342:当搜索算子ri计算得到顶点vc与源点vi的最短距离,且搜索算子rj也计算得到顶点vc与源点vj的最短距离时,则产生一条vi和vj的新路线pk={vi,…,vc,…,vj},Dist(pk)表示路线pk的距离;
S10343:假设vi和vj之间当前已找到的最短路线为ps,Dist(ps)表示路线ps的最短距离;如果Dist(pk)<Dist(ps),则令ps=pk;
S10344:比较Dist(ps)与源点vi和vj的“理论可到达最短距离”之和(HDist(vi)+HDist(vj));如果Dist(ps)<(HDist(vi)+HDist(vj)),则Dist(ps即为vi和vj之间的最短距离;
S10345:重复上述步骤,直至满足约定条件;
S104:将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
2.如权利要求1所述的方法,其特征是,搜索算子ri初始化源点vi到图结构G中其它所有顶点的距离,源点vi到任意顶点vl的距离记作Dist(vi,vl);具体实现方式为:
搜索算子ri将源点vi到自身的距离置为0,并将vi插入到最小堆
搜索算子ri将源点vi到其邻接顶点vh的距离置为边ei,h的权重,并将vh插入到最小堆
搜索算子ri将源点vi到顶点vy的距离置为无穷大,记为其中,顶点vy是指图结构G中除了源点vi自身与其邻接顶点之外的其它顶点。
3.如权利要求1所述的方法,其特征是,搜索算子ri计算得到源点vi至顶点集合V中其它所有顶点之间的最短距离后,终止遍历;具体实现方式为:
搜索算子ri依据计算得到源点vi到源点vj(vj∈V)的最短距离后,将vj添加至集合Ri;
当集合Ri等于集合V,表示搜索算子ri已计算得到源点vi到集合V中所有顶点的最短距离,搜索算子ri停止遍历。
4.考虑社交网络用户群紧密度的信息推荐系统,其特征是,包括:
获取模块,其被配置为:获取社交网络中待分析用户群中的所有用户;
图结构构件模块,其被配置为:根据待分析用户群中的所有用户,构建图结构;即,将每个用户看作图结构的一个顶点,如果用户之间存在好友关系或关注关系,则表示用户所对应的顶点之间存在对应连接的边,用户之间互动的次数看作边的权重;
查询模块,其被配置为:基于图结构,获取顶点集合,查询顶点集合中任意两个顶点之间的最短距离,具体包括:
S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子ri;
S1032:搜索算子ri初始化源点vi到图结构G中其它所有顶点的距离,源点vi到任意顶点vl的距离记作Dist(vi,vl);
S1033:搜索算子ri以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi);
S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离;
S1035:搜索算子ri计算得到源点vi至顶点集合V中其它所有顶点之间的最短距离后,终止遍历;
S1036:当顶点集合V中任意顶点vx的搜索算子rx均终止遍历后,结束;输出顶点集合中任意两个顶点之间的最短距离;
所述S1031:将顶点集合V中每个顶点vi视为源点,为其创建一个搜索算子ri,包括:
S10311:为搜索算子ri创建最小堆最小堆/>用于存放与源点vi的最短距离已经确定的顶点;最小堆/>根据每个顶点到源点的最短距离,确定每个顶点在最小堆中的位置;最小堆/>初始化时仅包含源点vi;
S10312:为搜索算子ri创建最小堆最小堆/>用于存放与源点的最短距离还未确定但到源点的距离为非无穷大的顶点;最小堆/>根据每个顶点到源点的当前距离确定每个顶点在最小堆中的位置,最小堆/>初始化为源点vi的邻接点集合;
所述S1033:搜索算子ri以源点vi为起点对图结构G进行遍历,计算并更新源点vi的理论可到达最短距离,源点vi的理论可到达最短距离记为HDist(vi),包括:
S10331:从最小堆中计算源点vi的临界顶点vb;其中,临界顶点vb是指最小堆/>中与源点vi距离最小且至少存在一个未处理的邻接点的顶点;
S10332:将临界顶点vb到源点vi的最短距离置为源点vi的理论可到达最短距离HDist(vi);
所述S10331:从最小堆中计算源点vi的临界顶点vb,包括:
S103311:搜索算子ri取最小堆中堆顶的顶点vf,此时,源点vi与vf的当前距离等于vi与vf之间的最短距离,搜索算子r将顶点vf添加至最小堆/>
S103312:更新源点vi到顶点vf的每个邻接点vg的距离;
S103313:遍历最小堆如果/>中某个顶点的所有邻接点均属于/>则将该顶点标记为“已处理”;如果/>中某个顶点存在至少一个邻接点/>则将该顶点标记为“未处理”;
S103314:遍历最小堆第一个被访问的状态为“未处理”顶点即为源点vi的临界顶点vb;
S103315:重复S103311-S103314,不断更新源点vi的临界顶点vb;
所述S1034:任意两个搜索算子ri和rj,根据各自源点的理论可到达最短距离并行计算源点vi和vj之间的最短距离,包括:
S10341:搜索算子ri和rj,分别以源点vi和vj遍历图G并不断计算和更新源点vi的“理论可到达最短距离”HDist(vi)和源点vj的“理论可到达最短距离”HDist*vj);
S10342:当搜索算子ri计算得到顶点vc与源点vi的最短距离,且搜索算子rj也计算得到顶点vc与源点vj的最短距离时,则产生一条vi和vj的新路线pk={vi,…,vc,…,vj},Dist(pk)表示路线pk的距离;
S10343:假设vi和vj之间当前已找到的最短路线为ps,Dist(ps)表示路线ps的最短距离;如果Dist(pk)<Dist(ps),则令ps=pk;
S10344:比较Dist(ps)与源点vi和vj的“理论可到达最短距离”之和(HDist(vi)+HDist(vj));如果Dist(ps)<(HDist(vi)+HDist(vj)),则Dist(ps即为vi和vj之间的最短距离;
S10345:重复上述步骤,直至满足约定条件;
推荐模块,其被配置为:将任意两个顶点之间的最短距离加权求和,得到待分析用户群的关系紧密度;
判断待分析用户群的关系紧密度是否大于设定阈值,如果是,则对待分析用户群中的每个用户进行信息推荐,即将待分析用户群中其他用户喜好的商品或服务推荐给当前用户;如果否,就不进行信息推荐。
5.一种电子设备,其特征是,包括:一个或多个处理器、一个或多个存储器、以及一个或多个计算机程序;其中,处理器与存储器连接,上述一个或多个计算机程序被存储在存储器中,当电子设备运行时,该处理器执行该存储器存储的一个或多个计算机程序,以使电子设备执行上述权利要求1-3任一项所述的方法。
6.一种计算机可读存储介质,其特征是,用于存储计算机指令,所述计算机指令被处理器执行时,完成权利要求1-3任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230261.4A CN112231591B (zh) | 2020-11-06 | 2020-11-06 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011230261.4A CN112231591B (zh) | 2020-11-06 | 2020-11-06 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN112231591A CN112231591A (zh) | 2021-01-15 |
CN112231591B true CN112231591B (zh) | 2024-02-09 |
Family
ID=74122545
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011230261.4A Active CN112231591B (zh) | 2020-11-06 | 2020-11-06 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN112231591B (zh) |
Families Citing this family (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112836078B (zh) * | 2021-02-20 | 2021-10-22 | 山东省计算中心(国家超级计算济南中心) | 一种图上最短路径安全查询方法、装置、系统及存储介质 |
CN113268583A (zh) * | 2021-07-20 | 2021-08-17 | 三诺生物传感股份有限公司 | 一种基于社区内容的知识推荐方法 |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149756A (zh) * | 2007-11-09 | 2008-03-26 | 清华大学 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
CN103138981A (zh) * | 2011-11-30 | 2013-06-05 | 中国移动通信集团公司 | 一种社交网络分析方法和装置 |
CN103379158A (zh) * | 2012-04-24 | 2013-10-30 | 中国移动通信集团公司 | 一种社交网络中推荐好友信息的方法及系统 |
CN110247805A (zh) * | 2019-06-24 | 2019-09-17 | 南瑞集团有限公司 | 一种基于k壳分解的识别传播关键节点的方法及装置 |
CN111274495A (zh) * | 2020-01-20 | 2020-06-12 | 平安科技(深圳)有限公司 | 用户关系强度的数据处理方法、装置、计算机设备及存储介质 |
CN111353107A (zh) * | 2020-03-26 | 2020-06-30 | 烟台大学 | 一种面向路网移动对象的连续k近邻查询方法及系统 |
CN111782963A (zh) * | 2020-06-15 | 2020-10-16 | 中国铁塔股份有限公司 | 一种基于sns的社交网络数据挖掘方法及系统、服务设备 |
-
2020
- 2020-11-06 CN CN202011230261.4A patent/CN112231591B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101149756A (zh) * | 2007-11-09 | 2008-03-26 | 清华大学 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
CN103138981A (zh) * | 2011-11-30 | 2013-06-05 | 中国移动通信集团公司 | 一种社交网络分析方法和装置 |
CN103379158A (zh) * | 2012-04-24 | 2013-10-30 | 中国移动通信集团公司 | 一种社交网络中推荐好友信息的方法及系统 |
CN110247805A (zh) * | 2019-06-24 | 2019-09-17 | 南瑞集团有限公司 | 一种基于k壳分解的识别传播关键节点的方法及装置 |
CN111274495A (zh) * | 2020-01-20 | 2020-06-12 | 平安科技(深圳)有限公司 | 用户关系强度的数据处理方法、装置、计算机设备及存储介质 |
CN111353107A (zh) * | 2020-03-26 | 2020-06-30 | 烟台大学 | 一种面向路网移动对象的连续k近邻查询方法及系统 |
CN111782963A (zh) * | 2020-06-15 | 2020-10-16 | 中国铁塔股份有限公司 | 一种基于sns的社交网络数据挖掘方法及系统、服务设备 |
Also Published As
Publication number | Publication date |
---|---|
CN112231591A (zh) | 2021-01-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Liu et al. | Finding top-k shortest paths with diversity | |
CN112231591B (zh) | 考虑社交网络用户群紧密度的信息推荐方法及系统 | |
Lera et al. | Lipschitz and Hölder global optimization using space-filling curves | |
Marble et al. | Asymptotically near-optimal is good enough for motion planning | |
Xuan et al. | Voronoi-based multi-level range search in mobile navigation | |
Goyal | A survey on travelling salesman problem | |
CN109086291B (zh) | 一种基于MapReduce的并行异常检测方法及系统 | |
Deng et al. | An efficient online direction-preserving compression approach for trajectory streaming data | |
Acar et al. | Dynamic well-spaced point sets | |
Choudhary et al. | Exactly sparse memory efficient SLAM using the multi-block alternating direction method of multipliers | |
Ouyang et al. | Hybrid particle swarm optimization algorithm for solving systems of nonlinear equations | |
Oh et al. | An efficient processing of range spatial keyword queries over moving objects | |
Rahmati et al. | Kinetic k-semi-Yao graph and its applications | |
CN113792170B (zh) | 图数据划分方法、装置和计算机设备 | |
CN111177190A (zh) | 数据处理方法、装置、电子设备及可读存储介质 | |
Rivara et al. | Multithread parallelization of lepp-bisection algorithms | |
Gayathri et al. | ex-FTCD: A novel mapreduce model for distributed multi source shortest path problem | |
Zhang et al. | Multi-Criteria Optimal Location Query with Overlapping Voronoi Diagrams. | |
Wei et al. | Runtime analysis comparison of two fitness functions on a memetic algorithm for the clique problem | |
Rahmati | Simple, faster kinetic data structures | |
Botzheim et al. | Path planning in probabilistic environment by bacterial memetic algorithm | |
Henne et al. | n-Level Hypergraph Partitioning | |
Rajendran et al. | Incremental MapReduce for K-medoids clustering of big time-series data | |
Heuer | Scalable High-Quality Graph and Hypergraph Partitioning | |
Lai et al. | Exploiting and evaluating MapReduce for large-scale graph mining |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |