CN102722566A - 社交网络中潜在好友查询方法 - Google Patents

社交网络中潜在好友查询方法 Download PDF

Info

Publication number
CN102722566A
CN102722566A CN201210179600XA CN201210179600A CN102722566A CN 102722566 A CN102722566 A CN 102722566A CN 201210179600X A CN201210179600X A CN 201210179600XA CN 201210179600 A CN201210179600 A CN 201210179600A CN 102722566 A CN102722566 A CN 102722566A
Authority
CN
China
Prior art keywords
user
node
matrix
path
character string
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.)
Granted
Application number
CN201210179600XA
Other languages
English (en)
Other versions
CN102722566B (zh
Inventor
田秀霞
宋羊力
王晓玲
周傲英
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shanghai University of Electric Power
Original Assignee
Shanghai University of Electric Power
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shanghai University of Electric Power filed Critical Shanghai University of Electric Power
Priority to CN201210179600.XA priority Critical patent/CN102722566B/zh
Publication of CN102722566A publication Critical patent/CN102722566A/zh
Application granted granted Critical
Publication of CN102722566B publication Critical patent/CN102722566B/zh
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明涉及一种社交网络中潜在好友查询方法,首先建立社交网络图,然后将前
Figure 465420DEST_PATH_IMAGE002
条最优路径查询算法和基于扩展LCS的字符串比较有效融合的方法相结合实现对社交网络中用户潜在好友进行快速查询,使得社交网络更加有效地服务于不同网络用户,如推荐商业潜在客户或用户潜在好友。不仅可以支持社交网络拓扑结构中存在好友的有效查询,更能够支持为指定用户找出其潜在好友或为无直接连接用户推荐潜在好友,很好地弥补了之前查询方法中,只能查询存在好友方法的缺点。

Description

社交网络中潜在好友查询方法
技术领域
本发明涉及一种数据库技术,特别涉及一种社交网络中潜在好友查询方法。
背景技术
随着在线社交网络(Online Social Networks,简称ONSs),如国际上的Facebook、MySpace、YouTube以及国内的开心网、人人网等,的日益普及应用,越来越多的用户加入了至少一个社交网络,而且越来越多的电子商务也日益依赖社交网络进行用户之间的交流联系(淘宝阿里旺旺)。不过,虽然越来越多的用户开始通过社交网络与世界各地的用户进行交流,但是大多数仅仅局限于好友之间的互动交流,如何通过社交网络寻找潜在好友,如商业团体寻找潜在合作伙伴或潜在客户,进而扩大业务或交际范围则是当前商业团体、用户对社交网络发展的迫切需求。
之前对社交网络中用户好友的查询方法基本上是通过抓取指定用户所有链接用户信息,并按照和指定用户的路径距离存放在数据库中,然后根据指定用户的爱好对用户的信息进行分类实现好友查询,也就是只能根据指定特征实现好友查询,并没有关注即使一个用户不具有和指定用户共同的兴趣设置,但是从路径连接分析上可能成为其潜在好友,如在保护用户隐私的匿名网络上查找潜在好友;另一方面,已提出的对路径距离的计算主要采用单源Dijkstra算法计算社交网络中一个用户到指定用户的路径距离,主要特点就是以一个用户为中心,向其它结点扩展,直到遇到终止结点为止。虽然可以得到最优解,但是由于需要遍历计算的结点太多,导致效率不高,而且在查询多用户时需要改变源结点,从而导致某些结点的重复遍历。综上所述,为了使得社交网络更好地服务于用户,有必要设计一种社交网络中潜在好友快速有效的查询方法,并利用查询结果有效地为用户推荐其可能的潜在好友。
发明内容
本发明是针对社交网络的问题,提出了一种社交网络中潜在好友查询方法,将前                                               
Figure 201210179600X100002DEST_PATH_IMAGE002
条最优路径查询和基于扩展LCS的字符串比较有效融合的方法实现对社交网络中用户潜在好友进行快速查询,使得社交网络更加有效地服务于不同网络用户,如推荐商业潜在客户或用户潜在好友。
本发明的技术方案为:一种社交网络中潜在好友查询方法,包括如下具体步骤:
1)建立社交网络图将各个用户的信息建模成图
Figure 201210179600X100002DEST_PATH_IMAGE004
的结点,其中
Figure 201210179600X100002DEST_PATH_IMAGE006
是图中结点的集合,
Figure 201210179600X100002DEST_PATH_IMAGE008
是图中无向边的集合,表示两个用户之间的直接连接,用户邻接关系矩阵
Figure 201210179600X100002DEST_PATH_IMAGE010
中对应用户之间的连接关系,有连接关系相应的单元设置为
Figure 201210179600X100002DEST_PATH_IMAGE012
,否则设置为
Figure 201210179600X100002DEST_PATH_IMAGE014
2)在社交网络图的基础上,进行前K条最优路径查询算法:
第一步:根据用户社交网络图找到一条指定结点间的最短路径,首先利用路径关系矩阵
Figure 201210179600X100002DEST_PATH_IMAGE016
辅助存储两个结点之间最短路径的途经结点,
Figure 427046DEST_PATH_IMAGE016
初始设置为空,以用户邻接关系矩阵
Figure 713671DEST_PATH_IMAGE010
为基础,将任意一个用户结点C插入到另外两个用户结点A和B之间,检查是否为最短路径,即是否满足
Figure 201210179600X100002DEST_PATH_IMAGE018
,如果这样的结点存在,则将结点存储在路径关系矩阵
Figure 201210179600X100002DEST_PATH_IMAGE020
Figure 201210179600X100002DEST_PATH_IMAGE022
中,直到所有结点全部被遍历则循环结束;
第二步:根据启发式的剪枝策略得到指定结点间前K条最优最短路径,存储在路径用户矩阵PUA中,具体方法步骤:
A:结点之间的边删除:将两用户邻近关系之间的权值设置为
Figure 650534DEST_PATH_IMAGE014
,设置一个大小为2的一维字符串数组
Figure 201210179600X100002DEST_PATH_IMAGE024
临时存储此两用户的两个结点的信息,同时更新用户邻接关系矩阵
Figure 745004DEST_PATH_IMAGE010
B:再次执行第一步指定结点间的最短路径,并将获取的路径结点序列保存在路径用户矩阵
Figure 201210179600X100002DEST_PATH_IMAGE026
为起始地址的二维数组中,
Figure 219848DEST_PATH_IMAGE022
C:从临时一维字符串数组
Figure 247847DEST_PATH_IMAGE024
中获取步骤A中选择的两个结点的信息,并将连接边的权值恢复为
Figure 242479DEST_PATH_IMAGE012
,同时更新用户邻接关系矩阵
Figure 432152DEST_PATH_IMAGE010
D:针对最短路径中的各个相邻结点进行同样的删除、查询与恢复操作,直到所有的前
Figure 394291DEST_PATH_IMAGE002
条最优路径全部找到;
3)基于ELCS的潜在好友发现:首先通过前
Figure 773451DEST_PATH_IMAGE002
条最短路径查询前
Figure 75120DEST_PATH_IMAGE002
条最短路径,将每条最短路径构造成一个字符串数组作为求解公共子序列的一条母串,然后其中选其中两组前
Figure 498011DEST_PATH_IMAGE002
条最短路径中取出两条母串,执行
Figure DEST_PATH_IMAGE028
算法,进行字串比较,并将比较结果记录在公共子项序列矩阵
Figure DEST_PATH_IMAGE030
中,最后通过
Figure 698179DEST_PATH_IMAGE030
查询出两组最短路径
Figure DEST_PATH_IMAGE032
中存在的潜在好友。
所述步骤3)中的算法包括两部分:
第一部分:将字符比较扩展到字符串比较,将其中一组用户字符串数组
Figure DEST_PATH_IMAGE034
作为基准项,获取其长度length,构造一个
Figure 201210179600X100002DEST_PATH_IMAGE036
大小的数组空间,将另外一组用户字符串数组
Figure 201210179600X100002DEST_PATH_IMAGE038
作为比较项,
Figure 201210179600X100002DEST_PATH_IMAGE040
,且
Figure 201210179600X100002DEST_PATH_IMAGE042
,对基准项的每一项字符串进行比较,并逐次刷新数组内容,如果发现相同的字符串则引入标记变量
Figure 201210179600X100002DEST_PATH_IMAGE044
以斜向增加方式进行数组内容更新,反之则顺向地映射为临近的最大值,直到对基准项中的所有字符串元素遍历完毕;
第二部分:字符串匹配的标记方法改进,在字符串比较过程中,引入两个标记变量来标记矩阵中值最大元素的位置,在矩阵生成的过程中来判断当前生成元素的值是不是最大的,据此来改变标记变量的值,最后在矩阵生成的同时,最长公共子序列的位置和长度也可以同步计算出来。
所述两条最短路径中字符串比较的具体步骤如下:
A:假设从前
Figure 201210179600X100002DEST_PATH_IMAGE046
条最优最短路径查询算法获得的所有字符串中任取两个字符串为
Figure 201210179600X100002DEST_PATH_IMAGE048
Figure 201210179600X100002DEST_PATH_IMAGE050
Figure 201210179600X100002DEST_PATH_IMAGE052
Figure 201210179600X100002DEST_PATH_IMAGE054
的长度,
Figure 201210179600X100002DEST_PATH_IMAGE056
Figure 201210179600X100002DEST_PATH_IMAGE058
的长度,
Figure 201210179600X100002DEST_PATH_IMAGE060
Figure 201210179600X100002DEST_PATH_IMAGE062
初始化为0,设置
Figure 201210179600X100002DEST_PATH_IMAGE064
等于0,等于0;
B:如果
Figure 329548DEST_PATH_IMAGE064
大于
Figure 188919DEST_PATH_IMAGE056
,则设置
Figure 797755DEST_PATH_IMAGE066
等于0和
Figure 201210179600X100002DEST_PATH_IMAGE068
等于1,跳转至步骤6,否则跳转到步骤C;
C:如果大于
Figure 857295DEST_PATH_IMAGE056
,则跳转到步骤B,且
Figure 825251DEST_PATH_IMAGE064
等于
Figure 201210179600X100002DEST_PATH_IMAGE070
,否则跳转到步骤D;
D:如果
Figure 201210179600X100002DEST_PATH_IMAGE072
,则
Figure 201210179600X100002DEST_PATH_IMAGE074
Figure 201210179600X100002DEST_PATH_IMAGE076
,且
Figure 201210179600X100002DEST_PATH_IMAGE078
Figure 201210179600X100002DEST_PATH_IMAGE080
,跳转到步骤C,反之跳转到步骤E;
E:设置
Figure 201210179600X100002DEST_PATH_IMAGE082
,而且
Figure 672116DEST_PATH_IMAGE078
,跳转到步骤C;
F:如果则算法模块结束,否则跳转到步骤G;
G:如果
Figure 201210179600X100002DEST_PATH_IMAGE086
,则输出
Figure 201210179600X100002DEST_PATH_IMAGE090
而且
Figure 770331DEST_PATH_IMAGE080
跳转到步骤F,否则
Figure 971505DEST_PATH_IMAGE080
,跳转到步骤F。
本发明的有益效果在于:本发明社交网络中潜在好友查询方法,不仅可以支持社交网络拓扑结构中存在好友的有效查询,更能够支持为指定用户找出其潜在好友或为无直接连接用户推荐潜在好友,很好地弥补了之前查询方法中,只能查询存在好友方法的缺点。
附图说明
图1为本发明用户社交网络图;
图2为本发明第一次调用多结点路径算法得到路径图;
图3为本发明通过剪枝策略获得前
Figure 554933DEST_PATH_IMAGE002
条最优最短路径图;
图4为本发明前条最优路径查询算法流程图;
图5为本发明基于ELCS的潜在好友发现算法流程图;
图6为本发明公共子项矩阵图;
图7为本发明路径关系矩阵图;
图8为本发明路径用户矩阵
Figure 45771DEST_PATH_IMAGE032
图;
图9为本发明顺序表中潜在好友图。
具体实施方式
本发明首次将前
Figure 912227DEST_PATH_IMAGE002
条最优路径查询和基于扩展LCS的字符串比较有效融合的方法实现对社交网络中用户潜在好友进行快速查询,使得社交网络更加有效地服务于不同网络用户,如推荐商业潜在客户或用户潜在好友。
一、基本概念和定义:
1、社交网络:
本发明中,社交网络被定义为一个图
Figure DEST_PATH_IMAGE092
,其中
Figure 814324DEST_PATH_IMAGE006
是图中结点的集合,包含一个样本社交网络中用户的集合,
Figure DEST_PATH_IMAGE094
,其中结点
Figure DEST_PATH_IMAGE096
表示一个用户,
Figure 105104DEST_PATH_IMAGE008
是图中无向边的集合,是无序积
Figure DEST_PATH_IMAGE098
的多重子集,
Figure DEST_PATH_IMAGE100
Figure DEST_PATH_IMAGE102
Figure DEST_PATH_IMAGE104
表示同一条边,表示两个用户之间的直接连接。
2、最短路径:
Figure DEST_PATH_IMAGE106
中从
Figure DEST_PATH_IMAGE108
的路径是一系列边
Figure DEST_PATH_IMAGE112
Figure DEST_PATH_IMAGE116
,…
Figure DEST_PATH_IMAGE118
,可以表示成结点序列
Figure DEST_PATH_IMAGE120
,其中当某一路径长度或权值之和为最小时则称为
Figure 896080DEST_PATH_IMAGE108
Figure 815495DEST_PATH_IMAGE110
的最短路径。两个结点之间的路径长度是两个结点之间边的个数之和,权值之和指的是每条边被赋予一定的权值之和(如两个结点用户之间的亲密程度值,即按和指定结点用户的关系划分亲密程度等级值,如家庭成员的亲密程度值为5,知心朋友为4,陌生人为0等)。
3、用户属性集合:
图中的结点集合
Figure 385147DEST_PATH_IMAGE006
对应一个用户集合
Figure DEST_PATH_IMAGE122
,每个用户
Figure DEST_PATH_IMAGE124
可以用属性集合
Figure DEST_PATH_IMAGE126
表示,每个结点都拥有一个关键字
Figure DEST_PATH_IMAGE130
,用于标识相应于结点
Figure 725124DEST_PATH_IMAGE096
的用户
Figure DEST_PATH_IMAGE132
,为了避免构建的社交网络图占用大量空间,可以在结点
Figure 832757DEST_PATH_IMAGE128
中只保留关键字
Figure DEST_PATH_IMAGE134
,并将剩下的结点属性以
Figure 38086DEST_PATH_IMAGE130
为主关键字存放在相应的数据库表中进行维护和管理,在需要的时候再按照标准的SQL接口进行查询,以减少内存消耗。
4、用户邻接关系矩阵
Figure 586879DEST_PATH_IMAGE010
用于存储用户与用户之间的连接关系,为了减少存储空间,利用布尔类型的true/false(1/0)表示两个用户之间是否存在连接,如图1 中的Jim与Samantha无直接连接关系则
Figure DEST_PATH_IMAGE136
为false(0),否则为true(1)。
5、路径关系矩阵
Figure 550287DEST_PATH_IMAGE016
用于存储两个用户结点之间的相关路径结点,是整个算法中的关键存储矩阵。为了使得查询结果更加符合用户实际需求,我们需要得到前条最优路径,因此我们将
Figure 891587DEST_PATH_IMAGE016
设置为三维数组,第一维表示第条路径,后面两个维度分别表示起始用户结点和终止用户结点。我们的算法通过递归调用手段,进行途中结点的遍历与查询,如针对图1中所示的用户社交网络,我们可以通过前
Figure 357203DEST_PATH_IMAGE002
条最优路径查询算法得到图7所示的路径关系矩阵。为了避免存储空间耗费,在实际运算过程中我们在该路径关系矩阵中只存储实际用户的关键字,而不存储其姓名及其他相关属性信息,如用户
Figure DEST_PATH_IMAGE140
的信息
Figure DEST_PATH_IMAGE142
,用户
Figure DEST_PATH_IMAGE144
的信息
Figure DEST_PATH_IMAGE146
,……,用户
Figure DEST_PATH_IMAGE148
的信息
Figure DEST_PATH_IMAGE150
等,仅将其关键字
Figure DEST_PATH_IMAGE152
存储在矩阵
Figure 993645DEST_PATH_IMAGE016
中,这样我们通过
Figure 730656DEST_PATH_IMAGE016
查找Jim到Samantha的路径,得到的路径结点序列为0到13的关键字序列。
6、路径用户矩阵
用于临时存储两个用户结点之间的前
Figure 496935DEST_PATH_IMAGE002
条最优路径中结点的信息。通过递归调用逐步得到两个用户结点最优路径中其他用户结点信息,并依次记录获得一组以用户姓名为主的路径信息。将
Figure 535298DEST_PATH_IMAGE032
设置为二维数组,第一维表示第条最优路径,第二维则表示当前前
Figure 532521DEST_PATH_IMAGE002
条最优路径下的结点组。如求
Figure 867688DEST_PATH_IMAGE140
Figure DEST_PATH_IMAGE154
之间的路径数据,如图8所示路径用户矩阵图,得到的路径用户矩阵的第
Figure DEST_PATH_IMAGE156
Figure DEST_PATH_IMAGE158
7、最长公共子序列
Figure DEST_PATH_IMAGE160
对于
Figure DEST_PATH_IMAGE162
Figure DEST_PATH_IMAGE164
两个字符串:
Figure DEST_PATH_IMAGE166
Figure DEST_PATH_IMAGE168
,则
Figure 858887DEST_PATH_IMAGE162
的最长公共子序列为:
Figure DEST_PATH_IMAGE172
8、扩展最长公共子序列
Figure DEST_PATH_IMAGE174
对于
Figure 456539DEST_PATH_IMAGE162
Figure 149164DEST_PATH_IMAGE164
两个以字符串作为基本比较单位的字符串:
Figure DEST_PATH_IMAGE176
Figure DEST_PATH_IMAGE178
,则
Figure 563965DEST_PATH_IMAGE162
Figure 319562DEST_PATH_IMAGE164
的最长公共子序列为:
Figure DEST_PATH_IMAGE180
Figure DEST_PATH_IMAGE182
9、公共子项矩阵
Figure DEST_PATH_IMAGE184
利用
Figure DEST_PATH_IMAGE186
算法分析两组最优路径用户矩阵
Figure DEST_PATH_IMAGE188
Figure DEST_PATH_IMAGE190
,以其中一组
Figure 695180DEST_PATH_IMAGE188
为基准,另一组
Figure 928846DEST_PATH_IMAGE190
为比较项,逐个字符串项进行比较,最终得到最大公共子项矩阵
Figure 401416DEST_PATH_IMAGE030
,如对两组路径用户序列
Figure DEST_PATH_IMAGE192
Figure DEST_PATH_IMAGE194
,经过我们
Figure 121723DEST_PATH_IMAGE028
算法分析,即可得到如图6所示的公共子项矩阵
Figure 46953DEST_PATH_IMAGE030
二、
Figure 333578DEST_PATH_IMAGE028
算法思想及主要性质:
Figure DEST_PATH_IMAGE196
Extended
Figure 473704DEST_PATH_IMAGE160
算法思想就是将LCS基于字符的比较拓展到基于字符串比较,通过将一字符串数组作为基准并与另一字符串数组逐个比较的方式得到两组字符串数组中的公共字符串序列。
假设前缀
Figure DEST_PATH_IMAGE198
Figure 820371DEST_PATH_IMAGE162
序列中的前
Figure DEST_PATH_IMAGE200
个字符串(用户名),
Figure DEST_PATH_IMAGE202
,前缀
Figure DEST_PATH_IMAGE204
Figure DEST_PATH_IMAGE206
序列的前
Figure DEST_PATH_IMAGE208
个字符串(用户名),
Figure DEST_PATH_IMAGE210
,则具有下列性质:
性质1:如果
Figure DEST_PATH_IMAGE214
(最后一个字符串相同),则用反证法可以证明,该字符串必定是
Figure 983630DEST_PATH_IMAGE162
Figure 579607DEST_PATH_IMAGE164
的任一最长公共子序列
Figure DEST_PATH_IMAGE216
(假定长度为
Figure 823507DEST_PATH_IMAGE068
)的最后一个字符串,即有
Figure DEST_PATH_IMAGE218
,而且显然有
Figure DEST_PATH_IMAGE220
,即序列的前缀
Figure DEST_PATH_IMAGE222
Figure DEST_PATH_IMAGE224
Figure DEST_PATH_IMAGE226
的最长公共子序列。
性质2:如果
Figure DEST_PATH_IMAGE228
(最后一个字符串不相同),则用反证法可以证明,
Figure DEST_PATH_IMAGE232
必然成立,因为
Figure DEST_PATH_IMAGE236
其中至少有一个必成立,如果
Figure 804680DEST_PATH_IMAGE234
,则
Figure 370791DEST_PATH_IMAGE230
,否则如果
Figure 217000DEST_PATH_IMAGE236
,那么
Figure 843153DEST_PATH_IMAGE232
性质3:如果
Figure 292589DEST_PATH_IMAGE214
,则问题化归为求解
Figure 396811DEST_PATH_IMAGE224
Figure 366035DEST_PATH_IMAGE226
Figure 163090DEST_PATH_IMAGE028
,而且
Figure DEST_PATH_IMAGE238
性质4:
Figure 834243DEST_PATH_IMAGE228
,则问题化归为求解
Figure 831466DEST_PATH_IMAGE164
Figure 861739DEST_PATH_IMAGE028
以及
Figure 957871DEST_PATH_IMAGE162
Figure 216945DEST_PATH_IMAGE226
Figure 347712DEST_PATH_IMAGE028
Figure DEST_PATH_IMAGE240
根据问题定义,我们的工作首先设计前
Figure 421323DEST_PATH_IMAGE002
条最优路径查询算法来解决用户路径查询问题,然后基于前
Figure 4751DEST_PATH_IMAGE002
条最优路径查询结果提出
Figure 67516DEST_PATH_IMAGE028
算法来解决用户之间的潜在好友发现问题。
三、算法描述
1、基于用户关系构建社交网络图
根据用户信息构建社交网络用户连接图
Figure 115106DEST_PATH_IMAGE004
。在此方法中将各个用户的信息建模成图的结点,用户的姓名、兴趣、联系方式等各种信息内容也可以存放在结点数据结构中。表示用户之间是否有连接关系,为了简单起见,我们使用布尔类型数据存储用户之间的连接关系,以减少存储空间的使用,如果用户
Figure DEST_PATH_IMAGE242
和用户
Figure DEST_PATH_IMAGE244
之间有连接关系,则用户邻接关系矩阵
Figure 237411DEST_PATH_IMAGE010
中相应的单元设置为
Figure 77191DEST_PATH_IMAGE012
,否则设置为,具体如图1将用户关系构建成一个社交网络。
2、前
Figure 912609DEST_PATH_IMAGE002
条最优路径查询算法:
这个算法由两个阶段完成,第一阶段根据用户社交网络图找到一条指定结点间的最短路径,第二阶段根据剪枝策略得到指定结点间前K条最优最短路径,以有效支持潜在好友查询。
在第一阶段中,需要以下两个步骤,首先我们利用路径关系矩阵
Figure 579826DEST_PATH_IMAGE016
辅助存储两个结点之间最短路径的途经结点,在这个过程中,
Figure 274113DEST_PATH_IMAGE016
初始设置为空,以用户邻接关系矩阵
Figure 987991DEST_PATH_IMAGE010
为基础,将每一个结点(例如C)插入到另外两个结点(A和B)之间,检查是否为最短路径,即是否满足
Figure 33307DEST_PATH_IMAGE018
,如果这样的结点存在,则将结点存储在
Figure 241566DEST_PATH_IMAGE020
Figure 790359DEST_PATH_IMAGE022
中,直到所有结点全部被遍历则循环结束。然后,在用户执行实际查询时,我们根据用户端的输入,得到用户需要查找的两个结点(起始结点和终止结点),通过递归调用
Figure 940718DEST_PATH_IMAGE016
逐步抛出两个结点最短路径间存在的结点,这期间我们利用路径用户矩阵
Figure 20800DEST_PATH_IMAGE032
来辅助存储用户社交网络中指定两个结点之间的最短路径。图2中加粗线段为查找到的一条从
Figure 954121DEST_PATH_IMAGE140
Figure 623000DEST_PATH_IMAGE154
之间的最短路径。
在第二阶段,由于单一最短路径不能有效地、全面地支持结点间的潜在好友发现,如非直接连接结点间的潜在好友查询,因此需要根据启发式的剪枝策略得到指定结点间前K条最优最短路径,如对得到的
Figure 246059DEST_PATH_IMAGE154
之间的一组最短路径
Figure DEST_PATH_IMAGE246
,存储在
Figure DEST_PATH_IMAGE248
中,执行我们的剪枝策略,具体实施方法如下(参见图3中的剪枝变换过程):
1)        结点之间的边删除。将
Figure 310967DEST_PATH_IMAGE140
Figure 644472DEST_PATH_IMAGE144
之间的权值设置为
Figure 808737DEST_PATH_IMAGE014
(即逻辑删除
Figure 112680DEST_PATH_IMAGE140
Figure 466432DEST_PATH_IMAGE144
之间的边),设置一个大小为2的一维字符串数组
Figure 844323DEST_PATH_IMAGE024
临时存储
Figure 970728DEST_PATH_IMAGE144
这两个结点的信息,同时更新用户邻接关系矩阵
Figure 128171DEST_PATH_IMAGE010
2)        再次执行前条最优路径查询算法的第一个阶段,并将获取的路径结点序列保存在
Figure 194533DEST_PATH_IMAGE026
为起始地址的二维数组中,
Figure 410751DEST_PATH_IMAGE022
3)        从临时一维字符串数组
Figure 106306DEST_PATH_IMAGE024
中获取两个结点
Figure 521106DEST_PATH_IMAGE140
Figure 198075DEST_PATH_IMAGE144
的信息,并将连接边的权值恢复为
Figure 446130DEST_PATH_IMAGE012
,同时更新用户邻接关系矩阵
Figure 132326DEST_PATH_IMAGE010
4)        针对最短路径中的各个相邻结点进行同样的删除、查询与恢复操作,直到所有的前
Figure 401633DEST_PATH_IMAGE002
条最优路径全部找到。
在第二阶段的剪枝策略中,如果针对最短路径中所有边执行剪枝策略,即删除、查询和恢复是不切合实际的,所以我们引入数据约束方法,根据实际情况对删除边的最大数目进行限定,如最优限定,以便得到存放在路径用户矩阵
Figure 328132DEST_PATH_IMAGE026
中前K条最优最短路径,如图4前
Figure 315680DEST_PATH_IMAGE002
条最优路径查询算法流程图。
我们提出的前
Figure 539988DEST_PATH_IMAGE002
条最优路径查询方法可以针对社交网络图中的任意结点进行查询,与其他单源算法(如Dijkstra等)相比,灵活性得到很大的提高。针对任意多组结点用户数据而言,提出的方法由于不必改变源结点,只需要调整起始和终止结点即可,因此更加具有优势。而且我们的方法通过剪枝策略,实现了前条最优路径查询,优化了查询结果,使得查询结果更加符合用户的查询需求。通过对路径关系矩阵
Figure 26781DEST_PATH_IMAGE032
和公共子序列矩阵放缩调整,减少运行过程中的硬件资源占用。我们通过多次测试结果发现,该方法比单源路径执行在效率上有很大程度的提高。
3、基于ELCS的潜在好友发现算法:
传统的最长公共子序列LCS算法,采取的是动态规划方式,通过两组字符串之间逐个字符比较,以递归的方式逐渐填充
Figure DEST_PATH_IMAGE252
矩阵。在输出时,用动态规划算法从底层向上计算最优值,递归调用得到公共子序列。然而这个算法需要占用大量存储空间。因此我们通过两个方面扩展传统的
Figure 986778DEST_PATH_IMAGE160
算法实现潜在好友发现,一是将字符比较扩展到字符串比较(
Figure 14776DEST_PATH_IMAGE028
算法),二是对字符串匹配的标记方法进行改进。
将字符比较扩展到字符串比较(
Figure 258676DEST_PATH_IMAGE028
算法),主要就是将其中一组用户字符串数组
Figure 713928DEST_PATH_IMAGE034
作为基准项,获取其长度length,构造一个
Figure 423871DEST_PATH_IMAGE036
大小的数组空间,将另外一组用户字符串数组作为比较项,
Figure 88387DEST_PATH_IMAGE040
,且
Figure 714541DEST_PATH_IMAGE042
,对基准项的每一项字符串进行比较,并逐次刷新数组内容,如果发现相同的字符串则引入标记变量以斜向增加方式进行数组内容更新,反之则顺向地映射为临近的最大值,直到对基准项中的所有字符串元素遍历完毕。
字符串匹配的标记方法改进,主要是在字符串比较过程中,并不是简单的给
Figure 18931DEST_PATH_IMAGE252
矩阵中相应元素赋值1,而是赋值其左上角元素值加1。我们引入两个标记变量来标记矩阵中值最大元素的位置,在矩阵生成的过程中来判断当前生成元素的值是不是最大的,据此来改变标记变量的值,最后在矩阵生成的同时,最长公共子序列的位置和长度也可以同步计算出来。采取这种改进方式可以有效的减少存储空间耗费,并有效计算字符串数组之间的最长公共字符串序列。
我们的基于
Figure 237423DEST_PATH_IMAGE028
的潜在好友发现算法基于前
Figure 34478DEST_PATH_IMAGE002
条最短路径查询结果。首先通过前
Figure 456363DEST_PATH_IMAGE002
条最短路径查询得到一组前
Figure 364276DEST_PATH_IMAGE002
条最短路径,并为前
Figure 437274DEST_PATH_IMAGE002
条最短路径中的每一条最短路径构造成一个字符串数组作为求解公共子序列的一条母串,然后从前
Figure 405230DEST_PATH_IMAGE002
条最短路径中任选两组作为两条母串,执行
Figure 314411DEST_PATH_IMAGE028
算法,进行字符串比较,并将比较结果记录在公共子项序列矩阵
Figure 26016DEST_PATH_IMAGE030
中,最后通过
Figure 219099DEST_PATH_IMAGE030
查询出两组最短路径
Figure 357957DEST_PATH_IMAGE032
中存在的潜在好友。在此过程中引入顺序表作为辅助存储结构,收集通过剪枝抛出的潜在好友,在插入顺序表的过程中判断是否重复,如果没有重复则执行插入操作,在算法的最后将顺序表的内容抛出,即为查询所得的所有潜在好友。
两条最短路径中字符串比较的具体步骤如下(详见图5):
1)       假设从前
Figure 485925DEST_PATH_IMAGE046
条最优最短路径查询算法获得的所有字符串中任取两个字符串为
Figure 1220DEST_PATH_IMAGE048
Figure 358569DEST_PATH_IMAGE052
Figure 976764DEST_PATH_IMAGE054
的长度,
Figure 30170DEST_PATH_IMAGE056
Figure 932267DEST_PATH_IMAGE058
的长度,
Figure 412927DEST_PATH_IMAGE060
Figure 783997DEST_PATH_IMAGE062
初始化为0,设置
Figure 375515DEST_PATH_IMAGE064
等于0,
Figure 397698DEST_PATH_IMAGE066
等于0;
2)       如果
Figure 49259DEST_PATH_IMAGE064
大于
Figure 642045DEST_PATH_IMAGE056
,则设置
Figure 37255DEST_PATH_IMAGE066
等于0和
Figure 913944DEST_PATH_IMAGE068
等于1,跳转至步骤6,否则跳转到步骤3;
3)       如果
Figure 736406DEST_PATH_IMAGE066
大于
Figure 836997DEST_PATH_IMAGE056
,则跳转到步骤2,且等于
Figure 767092DEST_PATH_IMAGE070
,否则跳转到步骤4;
4)       如果
Figure 760456DEST_PATH_IMAGE072
,则
Figure 327835DEST_PATH_IMAGE074
,且
Figure 916128DEST_PATH_IMAGE078
Figure 80393DEST_PATH_IMAGE080
,跳转到步骤3,反之跳转到步骤5。
5)       设置
Figure 135068DEST_PATH_IMAGE082
,而且
Figure 738088DEST_PATH_IMAGE078
Figure 115979DEST_PATH_IMAGE080
,跳转到步骤3。
6)       如果
Figure 716725DEST_PATH_IMAGE084
则算法模块结束,否则跳转到步骤7。
7)       如果
Figure 993117DEST_PATH_IMAGE086
,则输出而且
Figure 213992DEST_PATH_IMAGE080
跳转到步骤6,否则
Figure 164630DEST_PATH_IMAGE080
,跳转到步骤6。
通过构造二次for循环,对任意两组前K最优最短路径进行逐个比较计算,得到两个结点间一系列最优潜在好友,如图9所示顺序表中潜在好友图。二次for循环的构造为:外层for循环包括串行执行的两部分内容,第一部分是从前
Figure 47136DEST_PATH_IMAGE046
条最优最短路径查询算法获得的所有字符串任取两条作为母串,第二部分是内层for循环(从步骤1)到步骤6))对选取的两条母串调用
Figure DEST_PATH_IMAGE254
算法进行字符串比较,获取其中潜在好友。

Claims (3)

1.一种社交网络中潜在好友查询方法,其特征在于,包括如下具体步骤:
1)建立社交网络图将各个用户的信息建模成图                                               
Figure 160026DEST_PATH_IMAGE002
的结点,其中
Figure 2080DEST_PATH_IMAGE004
是图中结点的集合,
Figure 201210179600X100001DEST_PATH_IMAGE006
是图中无向边的集合,表示两个用户之间的直接连接,用户邻接关系矩阵
Figure 201210179600X100001DEST_PATH_IMAGE008
中对应用户之间的连接关系,有连接关系相应的单元设置为
Figure 201210179600X100001DEST_PATH_IMAGE010
,否则设置为
2)在社交网络图的基础上,进行前K条最优路径查询算法:
第一步:根据用户社交网络图找到一条指定结点间的最短路径,首先利用路径关系矩阵
Figure 201210179600X100001DEST_PATH_IMAGE014
辅助存储两个结点之间最短路径的途经结点,
Figure 85705DEST_PATH_IMAGE014
初始设置为空,以用户邻接关系矩阵
Figure 962394DEST_PATH_IMAGE008
为基础,将任意一个用户结点C插入到另外两个用户结点A和B之间,检查是否为最短路径,即是否满足
Figure DEST_PATH_IMAGE016
,如果这样的结点存在,则将结点存储在路径关系矩阵
Figure DEST_PATH_IMAGE018
Figure DEST_PATH_IMAGE020
中,直到所有结点全部被遍历则循环结束;
第二步:根据启发式的剪枝策略得到指定结点间前K条最优最短路径,存储在路径用户矩阵PUA中,具体方法步骤:
A:结点之间的边删除:将两用户邻接关系之间的权值设置为
Figure 660223DEST_PATH_IMAGE012
,设置一个大小为2的一维字符串数组
Figure DEST_PATH_IMAGE022
临时存储此两用户对应两个结点的信息,同时更新用户邻接关系矩阵
Figure 927256DEST_PATH_IMAGE008
B:再次执行第一步指定结点间的最短路径,并将获取的路径结点序列保存在路径用户矩阵
Figure DEST_PATH_IMAGE024
为起始地址的二维数组中,
Figure 998593DEST_PATH_IMAGE020
C:从临时一维字符串数组
Figure 667472DEST_PATH_IMAGE022
中获取步骤A中选择的两个结点的信息,并将连接边的权值恢复为
Figure 660835DEST_PATH_IMAGE010
,同时更新用户邻接关系矩阵
Figure 228214DEST_PATH_IMAGE008
D:针对最短路径中的各个相邻结点进行同样的删除、查询与恢复操作,直到所有的前
Figure DEST_PATH_IMAGE026
条最优路径全部找到;
3)基于ELCS的潜在好友发现:首先通过前
Figure 27543DEST_PATH_IMAGE026
条最短路径查询前
Figure 363977DEST_PATH_IMAGE026
条最短路径,将每条最短路径构造成一个字符串数组作为求解公共子序列的一条母串,然后依次从前
Figure 793822DEST_PATH_IMAGE026
条最短路径中取出不同的两条母串,执行
Figure 97764DEST_PATH_IMAGE028
算法,进行字串比较,并将比较结果记录在公共子项序列矩阵中,最后通过
Figure 16359DEST_PATH_IMAGE030
查询出两组最短路径中存在的潜在好友。
2.根据权利要求1所述社交网络中潜在好友查询方法,其特征在于,所述步骤3)中的
Figure 955813DEST_PATH_IMAGE028
算法包括两部分:
第一部分:将字符比较扩展到字符串比较,将其中一组用户字符串数组
Figure 34627DEST_PATH_IMAGE034
作为基准项,获取其长度length,构造一个
Figure DEST_PATH_IMAGE036
大小的数组空间,将另外一组用户字符串数组
Figure DEST_PATH_IMAGE038
作为比较项,
Figure DEST_PATH_IMAGE040
,且
Figure DEST_PATH_IMAGE042
,对基准项的每一项字符串进行比较,并逐次刷新数组内容,如果发现相同的字符串则引入标记变量
Figure DEST_PATH_IMAGE044
以斜向增加方式进行数组内容更新,反之则顺向地映射为临近的最大值,直到对基准项中的所有字符串元素遍历完毕;
第二部分:字符串匹配的标记方法改进,在字符串比较过程中,引入两个标记变量来标记矩阵中值最大元素的位置,在矩阵生成的过程中来判断当前生成元素的值是不是最大的,据此来改变标记变量的值,最后在矩阵生成的同时,最长公共子序列的位置和长度也可以同步计算出来。
3.根据权利要求2所述社交网络中潜在好友查询方法,其特征在于,所述两条最短路径中字符串比较的具体步骤如下:
A:假设从前
Figure DEST_PATH_IMAGE046
条最优最短路径查询算法获得的所有字符串中任取两个字符串为
Figure DEST_PATH_IMAGE048
Figure DEST_PATH_IMAGE050
Figure DEST_PATH_IMAGE052
Figure DEST_PATH_IMAGE054
的长度,的长度,
Figure DEST_PATH_IMAGE060
Figure DEST_PATH_IMAGE062
初始化为0,设置
Figure DEST_PATH_IMAGE064
等于0,
Figure DEST_PATH_IMAGE066
等于0;
B:如果
Figure 841259DEST_PATH_IMAGE064
大于
Figure 612906DEST_PATH_IMAGE056
,则设置
Figure 625862DEST_PATH_IMAGE066
等于0和
Figure DEST_PATH_IMAGE068
等于1,跳转至步骤6,否则跳转到步骤C;
C:如果
Figure 321416DEST_PATH_IMAGE066
大于
Figure 673900DEST_PATH_IMAGE056
,则跳转到步骤B,且等于
Figure DEST_PATH_IMAGE070
,否则跳转到步骤D;
D:如果
Figure DEST_PATH_IMAGE072
,则
Figure DEST_PATH_IMAGE074
Figure DEST_PATH_IMAGE076
,且
Figure DEST_PATH_IMAGE080
,跳转到步骤C,反之跳转到步骤E;
E:设置
Figure DEST_PATH_IMAGE082
,而且
Figure 867432DEST_PATH_IMAGE078
,跳转到步骤C;
F:如果
Figure DEST_PATH_IMAGE084
则算法模块结束,否则跳转到步骤G;
G:如果
Figure DEST_PATH_IMAGE086
,则输出
Figure DEST_PATH_IMAGE088
Figure DEST_PATH_IMAGE090
而且
Figure 446105DEST_PATH_IMAGE080
跳转到步骤F,否则
Figure 559554DEST_PATH_IMAGE080
,跳转到步骤F。
CN201210179600.XA 2012-06-04 2012-06-04 社交网络中潜在好友查询方法 Expired - Fee Related CN102722566B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201210179600.XA CN102722566B (zh) 2012-06-04 2012-06-04 社交网络中潜在好友查询方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201210179600.XA CN102722566B (zh) 2012-06-04 2012-06-04 社交网络中潜在好友查询方法

Publications (2)

Publication Number Publication Date
CN102722566A true CN102722566A (zh) 2012-10-10
CN102722566B CN102722566B (zh) 2015-04-15

Family

ID=46948327

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201210179600.XA Expired - Fee Related CN102722566B (zh) 2012-06-04 2012-06-04 社交网络中潜在好友查询方法

Country Status (1)

Country Link
CN (1) CN102722566B (zh)

Cited By (12)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049523A (zh) * 2012-12-20 2013-04-17 浙江大学 一种使用低秩半定规划求解社交推荐问题的方法
CN103150678A (zh) * 2013-03-12 2013-06-12 中国科学院计算技术研究所 微博中用户间潜在关注关系的发现方法及装置
CN104182422A (zh) * 2013-05-28 2014-12-03 中国电信股份有限公司 统一通讯录信息处理方法和系统
CN105893385A (zh) * 2015-01-04 2016-08-24 伊姆西公司 用于分析用户行为的方法和设备
WO2016202209A1 (zh) * 2015-06-17 2016-12-22 深圳大学 基于图简化技术的社交网络中用户影响力估算方法及装置
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN108090197A (zh) * 2017-12-22 2018-05-29 河南科技大学 一种多维社交网络的社区发现方法
CN108173746A (zh) * 2017-12-26 2018-06-15 东软集团股份有限公司 好友推荐方法、装置和计算机设备
CN108595603A (zh) * 2018-04-20 2018-09-28 北京费马科技有限公司 图数据库中查询无权图中两点间最短路径的方法及应用
CN110569980A (zh) * 2018-06-04 2019-12-13 北京天行健云科技有限公司 一种基于信息认知的处理方法和系统
CN110795568A (zh) * 2019-09-30 2020-02-14 北京淇瑀信息科技有限公司 基于用户信息知识图谱的风险评估方法、装置和电子设备
CN112231350A (zh) * 2020-10-13 2021-01-15 汉唐信通(北京)科技有限公司 一种基于知识图谱的企业商机挖掘方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243736A1 (en) * 2004-04-19 2005-11-03 International Business Machines Corporation System, method, and service for finding an optimal collection of paths among a plurality of paths between two nodes in a complex network
WO2006098588A1 (en) * 2005-03-15 2006-09-21 Nhn Corporation Online human network management system and method for stimulating users to build various faces of relation
CN101540739A (zh) * 2009-04-14 2009-09-23 腾讯科技(深圳)有限公司 用户推荐方法及用户推荐系统
CN102088419A (zh) * 2009-12-07 2011-06-08 倪加元 一种在社交网络中查找好友信息的方法和系统

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050243736A1 (en) * 2004-04-19 2005-11-03 International Business Machines Corporation System, method, and service for finding an optimal collection of paths among a plurality of paths between two nodes in a complex network
WO2006098588A1 (en) * 2005-03-15 2006-09-21 Nhn Corporation Online human network management system and method for stimulating users to build various faces of relation
CN101540739A (zh) * 2009-04-14 2009-09-23 腾讯科技(深圳)有限公司 用户推荐方法及用户推荐系统
CN102088419A (zh) * 2009-12-07 2011-06-08 倪加元 一种在社交网络中查找好友信息的方法和系统

Cited By (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103049523B (zh) * 2012-12-20 2015-10-28 浙江大学 一种使用低秩半定规划求解社交推荐问题的方法
CN103049523A (zh) * 2012-12-20 2013-04-17 浙江大学 一种使用低秩半定规划求解社交推荐问题的方法
CN103150678A (zh) * 2013-03-12 2013-06-12 中国科学院计算技术研究所 微博中用户间潜在关注关系的发现方法及装置
CN103150678B (zh) * 2013-03-12 2014-12-10 中国科学院计算技术研究所 微博中用户间潜在关注关系的发现方法及装置
CN104182422B (zh) * 2013-05-28 2018-01-23 中国电信股份有限公司 统一通讯录信息处理方法和系统
CN104182422A (zh) * 2013-05-28 2014-12-03 中国电信股份有限公司 统一通讯录信息处理方法和系统
CN105893385A (zh) * 2015-01-04 2016-08-24 伊姆西公司 用于分析用户行为的方法和设备
WO2016202209A1 (zh) * 2015-06-17 2016-12-22 深圳大学 基于图简化技术的社交网络中用户影响力估算方法及装置
CN107402927A (zh) * 2016-05-19 2017-11-28 上海斯睿德信息技术有限公司 一种基于图模型的企业关联关系拓扑建立方法及查询方法
CN108090197B (zh) * 2017-12-22 2021-06-04 河南科技大学 一种多维社交网络的社区发现方法
CN108090197A (zh) * 2017-12-22 2018-05-29 河南科技大学 一种多维社交网络的社区发现方法
CN108173746A (zh) * 2017-12-26 2018-06-15 东软集团股份有限公司 好友推荐方法、装置和计算机设备
CN108595603A (zh) * 2018-04-20 2018-09-28 北京费马科技有限公司 图数据库中查询无权图中两点间最短路径的方法及应用
CN108595603B (zh) * 2018-04-20 2021-07-02 深圳神图科技有限公司 图数据库中查询无权图中两点间最短路径的方法及应用
CN110569980A (zh) * 2018-06-04 2019-12-13 北京天行健云科技有限公司 一种基于信息认知的处理方法和系统
CN110795568A (zh) * 2019-09-30 2020-02-14 北京淇瑀信息科技有限公司 基于用户信息知识图谱的风险评估方法、装置和电子设备
CN112231350A (zh) * 2020-10-13 2021-01-15 汉唐信通(北京)科技有限公司 一种基于知识图谱的企业商机挖掘方法和装置
CN112231350B (zh) * 2020-10-13 2022-04-12 汉唐信通(北京)科技有限公司 一种基于知识图谱的企业商机挖掘方法和装置

Also Published As

Publication number Publication date
CN102722566B (zh) 2015-04-15

Similar Documents

Publication Publication Date Title
CN102722566A (zh) 社交网络中潜在好友查询方法
CN106227800B (zh) 一种高度关联大数据的存储方法及管理系统
CN102521416B (zh) 数据关联查询方法和数据关联查询装置
CN105320719B (zh) 一种基于项目标签和图形关系的众筹网站项目推荐方法
CN106021457B (zh) 基于关键词的rdf分布式语义搜索方法
CN102270232B (zh) 一种存储优化的语义数据查询系统
CN103631909B (zh) 对大规模结构化和非结构化数据联合处理的系统及方法
CN103646032A (zh) 一种基于本体和受限自然语言处理的数据库查询方法
CN105224554A (zh) 推荐搜索词进行搜索的方法、系统、服务器和智能终端
CN102298650B (zh) 一种海量数字信息的分布式推荐方法
CN103177094B (zh) 一种物联网数据清洗方法
CN102779308A (zh) 一种广告投放方法及系统
CN102571752B (zh) 基于服务关联索引图的QoS感知Top-k服务组合系统
CN103561133A (zh) 一种ip地址归属信息索引方法及快速查询方法
CN102163234A (zh) 一种基于纠错相关度对查询序列进行纠错的设备和方法
CN103856462B (zh) 一种会话的管理方法及系统
CN101222391B (zh) 一种在服务器/客户端结构中构造拓扑树的方法
CN104391908B (zh) 一种图上基于局部敏感哈希的多关键字索引方法
CN103678550A (zh) 一种基于动态索引结构的海量数据实时查询方法
CN104615734B (zh) 一种社区管理服务大数据处理系统及其处理方法
CN103002061A (zh) 一种长域名与短域名互相转化的方法及装置
CN104933143A (zh) 获取推荐对象的方法及装置
CN104268158A (zh) 一种结构化数据分布式索引及检索方法
CN106095961A (zh) 表显示处理方法和装置
CN103345536B (zh) 一种语义关联索引方法

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C14 Grant of patent or utility model
GR01 Patent grant
CF01 Termination of patent right due to non-payment of annual fee
CF01 Termination of patent right due to non-payment of annual fee

Granted publication date: 20150415

Termination date: 20210604