CN101149756A - 在大规模社会网络中基于路径评分的个人关系发现方法 - Google Patents
在大规模社会网络中基于路径评分的个人关系发现方法 Download PDFInfo
- Publication number
- CN101149756A CN101149756A CNA2007101770668A CN200710177066A CN101149756A CN 101149756 A CN101149756 A CN 101149756A CN A2007101770668 A CNA2007101770668 A CN A2007101770668A CN 200710177066 A CN200710177066 A CN 200710177066A CN 101149756 A CN101149756 A CN 101149756A
- Authority
- CN
- China
- Prior art keywords
- node
- path
- limit
- relation
- dis
- 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
Links
Images
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
在大规模社会网络中基于路径评分的个人关系发现方法属于互联网中社会网络搜索技术领域,其特征在于基于通用的社会网络,首先定义基于权重的路径评分,再查找出每两个人之间的最短路径,然后开始查找指定的两个人之间的路径长度不大于最短路径的基于倍数的所有路径,最后按照路径评分的顺序把所有路径返回给用户。本发明能应用于节点数超过百万的社会关系网络中,进行人与人之间的关系快速查找或使用于研究者的关系发现。
Description
技术领域
本发明属于互联网技术领域,尤其涉及互联网下的社会网络搜索。
背景技术
个人关系发现是指下一代互联网中自动的发现人和人之间的相连关系的方法,将会给互联网带来巨大的用户和使用频率,是体现互联网新的技术以及经济价值的重要手段。查找人和人之间的路径是个人关系发现的基本方法,其目标是为了在两个不直接认识的人之间找到一条路径,该路径的节点为人,该路径的相邻两个人为互相认识的关系,通过这些人的介绍,可以将两个不直接认识的人联系起来,从而使得两个不直接认识的人能够找到一种建立连接的方式。
基于路径来查找个人关系是这一个领域中的重要方法,其目标是先把社会网络建模成为图,用节点来表示人,用连接节点的边表示人和人之间的关系。在大多数方法中,查找人和人之间的关系是通过在图中查找两个节点可能存在的路径来达到目标。
在已提出的个人关系发现方法中存在以下一些局限性:第一,仅考虑了“最小路径”的简单情形,也就是说,只查找长度最短的一条路径,这个长度最短的路径有可能是具有的边最少的路径,也有可能是根据边的权重和边的个数计算出来的最短路径。第二,缺少路径评分机制,在进行多条路径查找的时候,可以根据路径评分结果去掉分数较低的路径,提高系统的效率,这在大规模的社会网络中应用时非常重要。
针对上述不足,本发明提出了一种基于路径评分的个人关系发现系统(Path Rankingbased Association Search,简称PRAS)。本发明通过引入一种路径评分机制,更好的提高了个人关系发现的效率,能够被应用在节点数超过百万的社会关系网络中,进行人和人之间关系的快速查找,并且还可以将其应用于研究者的关系发现。
发明内容
有鉴于此,本发明的目的在于提供一种在大规模社会网络下基于路径评分的个人关系发现方法和系统。
该个人关系发现方法包括个人关系的模型搭建子模块,个人关系最短路径计算子模块以及基于路径评分的个人关系发现子模块和个人关系发现结果展示子模块。本发明的核心在于基于路径评分的个人关系发现子模块,其他子模块为核心模块提供数据服务。
本发明所提出的方法的思路在于:采用一种通用的社会网络描述模型,首先基于该模型定义路径评分方式;然后基于该模型构建的社会网络图先查找出每相邻两个人之间的最短路径;然后开始查找指定的两个人之间路径长度不大于最短路径某个倍数的所有路径;最后按照路径评分的顺序将所有的路径返回给用户。
所述方法是基于一个已经存在的社会网络依次按以下步骤实现的,所采用的步骤框图请见图1,该方法包括如下步骤:
步骤1:构建社会网络图:
设:社会网络为G=(V,E),其中G为有向图,其中V为节点的集合,E为边的集合,任何一个节点v∈V代表社会网络中的一个人,er ij∈E代表有向图中的一条有向边,表示社会网络中的人vi和vj之间存在的一种关系r,因为两个人之间可能存在多种关系。
其中er ij的小标ij表示该边的起始节点是vi,结束节点是vj,这个关系类型是r。
在这个图之中,我们限定一个人只能在图中出现一次,也就是说,图中的两个节点不可能表示同一个人。
在这个图上定义个人关系,个人关系指的是图中任意两个节点之间可能出现的一条路径,路径在这里的定义是两个人之间通过若干条边组成的一种可以连通的关系,如果节点之间只有一条边,那么退化成为er ij∈E这种类型的关系。因此,在这里,两个人之间的关系既可以是由一条相互之间关联的边组成,也可以由多条边组成。
个人关系的输入是两个人vi和vj,输出是这两个人之间的关系,按关系的评分从高到低排列,其中某一个关系的表示如下:
{er i1,er 12,…,er 1j},这个集合中的元素个数大于或者等于1
其中er m(m+1)∈E,表示为图中的一条边,在这里vi被定义为起点,vj定义为终点。
设vi和vj的一个路径之间有n条边,其中路径的长度定义为:
d=∑αk(vi,vj),k=1,2,…,n
其中αk(vi,vj)为vi和vj路径上的第k条边的权重,所以这个公式表示为从起点到终点的这条路径上所有的边的权重的和。本发明中的路径长度即路径评分表示的是两个人之间的亲密程度,如果路径评分低,则说明两个人之间具有的这个路径显示的亲密程度比较高,这个路径比较重要;如果路径评分高,则说明两个人之间具有的这个路径显示的亲密程度比较低,这个路径不重要。
在本发明中处理的所有关系以及权重表示如表1:
表1,本发明处理的所有关系以及权重
关系 | 所表达的意义 | 权重 |
同文章作者 | 两个人为同一篇论文的作者 | 2 |
被…所指导 | 一个人是另一个人的学生 | 4 |
在同一个项目中工作 | 两个人在同一个项目中工作 | 3 |
是朋友 | 两个人是好朋友 | 1 |
关系权重的给定方法由人为给定,目前所采用的方法是随机调研10个人,让每个人对于每个关系都给出一个1-10分之间的分值,计算平均值后进行四舍五入的取整,就是该关系的权重。
下面举例说明一个社会网络,一个真实的基于实验室的社会网络如图2所示,在这个图中,我们可以发现对于两个人“小洪”和“王教授”之间存在着如下的关系:
1)小洪-被…所指导-蔡教-在同一个项目中工作-王教授
2)小洪-同文章作者-唐博士-被…所指导-王教授
所以,关系1)的分数为4+3=7;关系2)的分数为2+4=6
步骤1就是创建一个社会网络的图,图中的节点就是人,图中的边就是表1中定义的4种边。社会网络存储在关系数据库中,本发明采用如下的数据库结构来存储社会关系网络:
1)关系以及权重表,该表存储社会关系网中的所有关系以及权重,如下所示:
表2,社会网络图中的关系类型以关系权重表
关系标识 | 关系名称 | 说明 | 权重 |
1 | 同文章作者 | 两个人为同一篇论文的作者 | 2 |
2 | 被…所指导 | 一个人是另一个人的学生 | 4 |
3 | 在同一个项目中工作 | 两个人在同一个项目中工作 | 3 |
4 | 是朋友 | 两个人是好朋友 | 1 |
2)节点表,该表存储社会网络中的所有人,如表3所示:
表3,社会网络图中的节点表
节点标识 | 节点名字 | 节点说明 |
1 | 唐博士 | 清华大学博士生 |
2 | 小洪 | 清华大学硕士生 |
3 | 王教授 | 清华大学博士生导师 |
4 | 蔡教授 | 清华大学硕士生导师 |
3)节点关系表,标识社会网络中的人之间的关系,如表4所示:
表4,社会网络节点关系表
关系类型 | 源节点 | 目标节点 |
1 | 1 | 2 |
1 | 1 | 3 |
3 | 1 | 2 |
2 | 1 | 3 |
1 | 2 | 1 |
3 | 2 | 1 |
2 | 2 | 4 |
1 | 3 | 1 |
3 | 3 | 4 |
3 | 4 | 3 |
实际上,图中的每一条边在表4中都有一条(双向边是两条)相应的记录(表1中的行)。
至此,一个社会网络构建完毕。
步骤2:根据社会网络图,计算图中每两个人之间的最短路径的评分;
在步骤1结束后,整个社会网络已经构建完毕,在步骤2中,我们将计算社会网络图中任意两个节点之间的最短路径,以便让步骤三使用。社会网络途中任何两个节点的最短路径计算方法利用基于Dijkstra的图最短路径计算方法,算法如下:
算法的输入,社会关系图上的任意两个节点v和t,v和t分别代表两个人。
输出:v和t之间的最短路径的评分。
算法中的变量说明:
1)dis(a)的值表示图中的节点a到v的最短路径的评分;
2)path(v)的值表示该条路径到达v后的下一个节点;
3)c(a)的值表示这个节点是否被遍历过,0为还没有遍历过,1为遍历过了;
4)(u,v)表示某一条边(u,v)的开始和结束节点,其中u表示开始节点,v表示结束节点。
5)w(e)表示边e的权重。
1.首先对于除去t之外的所有G中的点a∈V\t,设{dis(a)为(2-2-52)·21023;path(a)为0;c(a)为0;};
2.令dis(t)为0;
3.创建一个最小堆heap;
4.将t插入到最小堆中;
5.当(最小堆不为空的时候),做下面的循环{
6.从最小堆中取出一个节点,设为vmin;如果vmin不为v,继续,否则回到第5步;
7.c(vmin)设为1;
8.得到所有指向vmin的边的集合E(vmin);
9.(对于每个在E(vmin)中的边,设为emin),做下面的循环{
10.得到emin的起始和终结节点(u,vmin);
11.如果(c(u)为0并且w(emin)+dis(vmin)<dis(u))则做如下操作{
12.令dis(u)为w(emin)+dis(vmin);
13.令path(u)为vmin;
14.if(如果节点u存在于最小堆中)则做如下操作{
15.将u从最小堆中移除;
16.}如果节点u不存在于最小堆中,则做如下操作{
17.将u插入到最小堆中;
18.}
19.}
20.}
21.}
22.输出dis(v)的值,该值就是v到t之间的最短路径;
算法的一个例子如附图3所示,在附图3中,求v和t之间的最短路径,算法的计算流程如下所示:
1)初始化
先初始化算法的所有参数:
dis(v)=(2-2-52)·21023,dis(a)=(2-2-52)·21023,dis(b)=(2-2-52)·21023,dis(c)=(2-2-52)·21023,
path(v)=-1,path(a)=-1,path(b)=-1,path(c)=-1,
c(v)=0,c(a)=0,c(b)=0,c(c)=0;dis(t)=0
2)算法开始,创建最小堆,将t插入最小堆;
3)最小堆不为空,开始循环,取出节点,这时候为t,于是Vmin为t,于是c(t)=1;
4)得到所有指向t的边的集合,设为E(t)={(a,t),(b,t)}
5)对于E(t)中的边,开始循环:
6)首先处理(a,t),因为c(a)=0并且w((a,t))+dis(t)=5+0=5<dis(a)=(2-2-52)·21023,所以dis(a)=5,path(a)=t;将a入最小堆;
7)然后处理(b,t),因为c(b)=0并且w((b,t))+dis(t)=6+0<dis(b)=(2-2-52)·21023,所以dis(b)=6,path(b)=t;将b入最小堆;
8)因为最小堆不为空,所以开始循环,取出节点,这时候为a,于是c(a)=1;
9)得到所有指向a的边的集合E(a)={(v,a)};
10)对于E(a)中的边,开始循环:
11)处理(v,a),因为c(v)=0,并且w((v,a))+dis(a)=2+5=7<dis(v)=(2-2-52)·21023,所以dis(v)=7,path(v)=a;将v入最小堆;
12)因为最小堆不为空,所以开始循环,取出节点,这时候为b,于是c(b)=1;
13)得到所有指向b的边的集合E(b)={(v,b)};
14)对于E(b)中的边,开始循环:
15)处理(v,b),因为c(v)=0;而且w(v,b)+dis(b)=3+6>dis(v)=6,所以不做动作。
16)最小堆不为空,所以开始循环,取出节点,这时候为v,于是退回循环;
17)此时最小堆为空,则输出dis(v)=6,就是v和t之间的最短路径;
上面是图3节点v和t之间最短路径计算的例子,对于图3中的任意两个节点,都利用上述方法计算出最短路径并且存放在数据库中。数据库表的结构包括三列:源节点;目标节点和最短路径。如表5所示,表5表示了图2中的社会网络的任意两个节点之间的最短路径在数据库中存放的实际情况。
表5,任意两个节点之间最短路径记录表
源节点 | 目标节点 | 最短路径 |
1 | 2 | 2 |
1 | 3 | 2 |
1 | 4 | 5 |
2 | 1 | 2 |
2 | 3 | 4 |
2 | 4 | 4 |
3 | 1 | 2 |
3 | 2 | 4 |
3 | 4 | 3 |
4 | 1 | 5 |
4 | 2 | 7 |
4 | 3 | 3 |
这个表记录了社会关系图中任意两个节点之间的最短路径,如果这两个节点并不连通,那么采用双精度实数的最大值作为无穷大,该值为(2-2-52)·21023。
在步骤2中,对步骤1所产生的社会关系网络中的任意两个节点的最短路径进行计算,并且将结果保存在数据库中。
步骤3:根据路径评分,对于任意指定的两个人,查找他们之间的社会关系;
当步骤1和步骤2把社会网络图以及图中任意两个人的最短路径都生成完毕后,就可以进行社会网络中任意两个人之间的关系的快速查找了,设社会网络图中的两个人为vi和vj,并且设定所返回的路径不能大于最短路径的倍数β,可以开始按照下面的方法进行社会网络中的关系的查找:
其中参数β的作用是用来过滤一些不亲密的关系,因为前面已经提到,一个关系的评分越低,说明它越重要,比如β=1.2,那么,所有分数高于vi和vj的最短路径长度乘于1.2的路径都将被过滤掉。只返回那些重要的关系可以加快关系查找的速度,同时又兼顾到用户关心的重要的关系,为本发明的核心。
该方法步骤如下,其中对应的变量和步骤2中查找两个人之间的最短路径的方法的变量的意义保持一致。增加了如下变量:
1)d(a),表示从节点a到节点vi的路径长度;
2)Lmin,表示vi和vj之间的最短路径;
1.首先初始化边的权重,对于社会网络中所有的边emn∈E,令这些边的权重为w(emn),为方便起见记作wmn,其中wij为vi和vj之间的关系eij的权重,这些关系的权重列表见表1;
2.其次对于除去终点vj的所有的点v∈V\vj,令dis(v)等于从v到vj的最短路径长度;
3.设Lmin为vi和vj之间的最短路径,所以有Lmin为dis(vi);
4.将vi入栈;
5.定义如下两个变量:d(v),c(v)。d(v)表示从vi到v的路径长度,c(v)表示v是否已经在路径中出现过。并且对于任何图中的节点v,都初始化d(v)=0,c(v)=0。因为vi已经在路径中,所以c(vi)=1;
6.如果(栈还不为空),那么进行跳到7,如果(栈为空),那么跳到13;
7.得到栈顶的节点s,将起点是s的边的集合记为E(s);
8.对于E(s)中的任何边es,进行如下操作;
9.假设边es是从s指向u的,那么如果u还未在路径中,并且满足从vi到s的路径长度+从s到u的路径长度+从u到vj的长度小于βLmin,则跳到10,否则跳到12;
10.如果u=vj,那么一条路径已经找到,对该路径进行评分,加到返回结果集中;
11.如果u并不等于vj,那么将u加入到栈顶,并且标记u为在路径中的节点,c(u)=c(u)+1,并且更新u到vi的值,d(u)=d(s)+w(esu)
12.说明该条边已经被淘汰,将s是否在路径中的值减1,c(s)=c(s)-1;
13.得到所有的关系结果。
算法的一个例子如附图4所示,输入为vi和vj,参数为β=1.2,就是找到所有关系长度小于1.2*7=8.4的vi和vj之间的关系。
在这个算法中,用队列变量A来存储所有得到的路径。
1)算法初始化:
得到所有边的权重:
w(vi,a)=1,w(vi,b)=2,w(vi,c)=3,w(vj,d)=2,w(vi,f)=5,w(a,vj)=7,w(b,vj)=5,w(c,vj)=6,w(d,e)=8w,w(e vj)=2,
初始化dis(v):
dis(vi)=7,dis(a)=7,dis(b)=5,dis(c)=6,dis(d)=10,dis(e)=2;dis(f)=∞,dis(vj)=0;
令Lmin=dis(vi)=7,
建立一个栈,并且将(vi,NULL)插入栈,
对于图中所有的节点,初始化d(v)和c(v),令
d(vi)=d(a)=d(b)=d(c)=d(d)=d(e)=d(f)=d(vj)=0,
c(vi)=c(a)=c(b)=c(c)=c(d)=c(e)=d(f)=c(vj)=0
令c(vi)=1;
2)因为栈不为空,所以弹出栈顶元素,为(vi,NULL),得到vi作为起始节点的所有边的集台E(vi)={vi,a),(vi,b),(vi,c),(vi,d)},对于每个E(vi)中的边,进行循环处理;
3)处理(vi,a),因为c(a)=0,而且d(vi)+w(vi,a))+dis(a)=0+1+0=1<βLmin=8.4,
而且又因为a不是vj;所以将(a,(vi,a))加入栈,并且c(a)=c(a)+1,d(a)=d(vi)+w((vi,a))=1;
4)返回到算法2中的步骤6,因为栈不为空,所以弹出栈顶元素,为(a,(vi,a)),得到a作为起始节点的所有边的集合E(a)={(a,vj)},对于E(a)中的边,进行循环处理;
5)处理(a,vj),因为c(vj)=0,而且d(a)+w((a,vj))+dis(vj)=1+7+0=8<8.4,而且因为vj就是该边的终点,所以将栈中在(vi,a)之前的所有边得到,作为一条路径,就是(vi,a)(a,vj),将该条路径存储到A中,并且记录该条路径的长度;并且弹出(a,(vi,a)),并且c(a)=c(a)-1;
6)处理(vj,b),因为c(b)=0,而且d(vi)+w((vi,b))+dis(b)=0+2+0=2<βLmin=8.4,而且又因为b不是vj;所以将(b,(vi,b))加入栈,并且c(b)=c(b)+1,d(b)=d(vi)+w(vi,b))=2;
7)返回到算法2中的步骤6,因为栈不为空,所以弹出栈顶元素,为(b,(vi,b)),得到b作为起始节点的所有边的集合E(b)={(b,vj)},对于E(b)中的边,进行循环处理;
8)处理(b,vj),因为c(vj)=0,而且d(b)+w((b,vj))+dis(vj)=2+5+0=7<8.4,而且因为vj就是该边的终点,所以将栈中在(vj,b)之前的所有边得到,作为一条路径,就是(vi,b)(b,vj),将该条路径存储到A中,并且记录该条路径的长度;并且弹出(b,(vi,b)),并且c(b)=c(b)-1;
9)处理(vi,c),因为c(c)=0,而且d(vi)+w((vi,c))+dis(c)=0+3+0=3<βLmin=8.4,而且又因为c不是vj;所以将(c,(vi,c))加入栈,并且c(c)=c(c)+1,d(c)=d(vi)+w((vi,c))=3;
10)返回到算法2中的步骤6,因为栈不为空,所以弹出栈顶元素,为(c,(vi,c)),得到c作为起始节点的所有边的集合E(c)={(c,vj)},对于E(c)中的边,进行循环处理;
11)处理(c,vj),因为c(vj)=0,而且d(c)+w((c,vj))+dis(vj)=3+6+0=9>8.4,因此弹出(c,(vi,c)),并且c(c)=c(c)-1;
12)处理(vi,d),因为c(d)=0,而且d(vi)+w(vi,d))+dis(d)=0+2+0=2<βLmin=8.4,而且又因为d不是vj;所以将(d,(vi,d))加入栈,并且c(d)=c(d)+1,d(d)=d(vi)+w((vi,d))=2;
10)返回到算法2中的步骤6,因为栈不为空,所以弹出栈顶元素,为(d,(vi,d)),得到d作为起始节点的所有边的集合E(d)={(d,e)},对于E(d)中的边,进行循环处理;
11)处理(d,e),因为c(e)=0,而且d(e)+w((d,e))+dis(e)=2+8+0=10>8.4,因此弹出(d,(vi,d)),并且c(d)=c(d)-1;
12)栈为空,退出循环;
13)输出A,A包含了两条路径(vi,b)(b,vj),(vi,a)(a,vj)
步骤4:根据不同条件设置进行路径输出;
A中包含了本方法返回的路径,其中包含如下信息:
1.路径的长度,按照边的权重计算得出,在算法2中的14行计算得到该值;
2.每条路径的边的个数,因为返回的路径组织成边的形式,所以能够得到每条路径的边的个数。
在排序的时候,本发明允许用户利用这两个参数得到相应的排序结果,缺省情况下,本发明所返回的路径按照路径长度排序。
系统的硬件结构图见图5,基于路径评分的个人关系发现的4个子系统分别实现了方法的4个步骤,而这4个子系统用4个装置实现。说明如下:
其中装置4社会网络生成服务器负责生成社会网络结构图,并且将社会网络结构图存储在装置3数据库服务器上。装置4负责步骤1的工作,生成了表1,表2,表3和表4,然后通过网络将这些表存储在装置3中;
装置3是系统的数据服务器,接受装置4传过来的表1-4,同时利用步骤2的方法,读取表1-4的数据生成表5,于是装置3上就有了所有系统的数据,包括表1-表5,给装置2提供服务;
装置2社会网络计算服务器接受Web服务器传过来的查询两个人的社会关系的请求,通过步骤3的方法读取装置3数据库服务器的信息并且计算出两个人之间的社会关系然后返回给装置4;
装置4是Web服务器。装置4提供了界面,接受用户的查询请求并且将得到的结果显示给用户。用户通过浏览器来访问Web服务器,输入查询请求并且得到结果。
附图说明
图1,基于路径评分个人关系发现系统的的步骤框图;
图2,基于路径评分个人关系发现系统的一个社会关系网络的例子;
图3,基于路径评分个人关系发现系统的最短路径算法的一个例子;
图4,基于路径评分个人关系发现系统的社会关系发现算法的一个例子;
图5,基于路径评分个人关系发现系统的硬件结构图。
具体实施步骤
利用本发明的步骤1-4,创建了一个研究者的社会网络,并且使用该社会网络中查找研究者之间的关系的任务来验证本文的发明。
(1)研究者社会网络的构建
研究者的社会网络的构建主要使用了如下步骤:首先基于发表文章,通过对特定的学术论文网站(http://www.informatik.uni-trier.de/~ley/db/)的数据分析,首先得到论文列表,接着得到每一篇论文的作者,对于每一篇论文的作者,做如下步骤:
如果该作者不存在节点表中,则将该作者添加到节点表中;接着,对于该论文的每两个作者,在节点关系表中插入“同文章作者”关系。
经过这种构建方法,收集了448,551个在计算机科学的研究者,他们之间的“同文章作者”数目大到了2,413,208个。
接着,采用人工的方式,利用这些计算机科学研究者中具有个人主页的研究者,进行“被…所指导”,“在同一个项目中工作”以及“是…的朋友”关系的建立。
其中“被…所指导”和“在同一个项目中工作”可以通过阅读该研究者的网页内容所得到,一般来说,研究者会在个人主页上说明自己的导师以及自己从事过的项目。
相对而言,“是…的朋友”很多情况下并不能直接得到,我们采取利用网页链接的方法得到,比如研究者A的主页上放了研究者B的主页的链接,那么我们认为研究者A和研究者B直接存在朋友的关系。
经过人工构建,这些研究者之中“被…所指导”的关系达到10,300个,“在同一个项目中工作”的关系达到35,020个,“是…的朋友”关系达到14,700个。
在上述步骤完成后,社会网络建立完毕,再通过算法1来计算这个社会网络中任意两个人之间的最短路径,于是可以进行算法2的验证了。
(2)测试集的建立
在上述的社会网络上,我们创建了9个测试集,每个测试集分别包含369-1000个关系查询。
在测试集生成中,我们首先随机选择了1000对人(一对人(A,B)表示从A到B的关系查询)作为第一个基础测试集,对于余下的8个测试集,我们每次都从这1000对人里面选择不同领域的两个人。我们选择了计算机中的本体映射、语义Web、数据挖掘、信息抽取、Boosting学习、规划问题以及机器学习的研究者。构建出的测试集表6所示:
表6,九个测试集
No. | 测试集 | 多少对人 | 领域1 | 领域2 |
1 | Random | 1000 | Random | |
2 | SW_SW | 1000 | SW | |
3 | IE_IE | 1000 | IE | |
4 | DM_DM | 1000 | DM | |
5 | BS-PL | 369 | BS | PL |
6 | DM-SW | 1000 | DM | SW |
7 | ML-IE | 1000 | ML | IE |
8 | PL-DM | 1000 | PL | DM |
9 | SW-0A | 1000 | SW | 0A |
其中SW代表语义网络,IE代表信息抽取,DM代表数据挖掘,BS代表Boosting学习,PL代表规划问题,ML代表机器学习,OA代表本体映射。
测试集中的“Random”表示随机选取两个人,共有1000对人;“SW_SW”表示两个人都是语义Web领域的研究者,“IE_IE”表示两个人都是信息抽取领域的研究者;“DM_DM”表示两个人都是数据挖掘领域的研究者;“BS-PL”表示两个人中的一个是Boosting学习领域的研究者,另外一个人是规划问题领域的研究者;“DM-SW”表示其中一个人是数据挖掘领域的研究者,另外一个人是语义Web的研究者;“ML-IE”表示其中一个人是机器学习领域的研究者;另外一个人是信息抽取领域的研究者;“PL-DM”表示其中一个人是规划问题领域的研究者,另外一个人是数据挖掘领域的研究者;“SW-OA”表示其中一个人是语义Web领域的研究者,另外一个人是本体映射领域的研究者。这种训练集的设计可以充分的考虑到不同研究者之间社会关系距离的远近,因为同一个研究领域的研究者之间会通过比较少的节点产生关系,而不同领域的研究者之间会通过比较多的节点产生关系,所以测试集既考虑了通过少的节点产生关系的两个研究者,也考虑了通过多的节点产生关系的研究者,在这样的测试集下面取得的结果很有说服力。
测试集里面的每个测试单元是两个研究者,在同以往方法比较的时候,采用了在所构建的社会网络中查找测试集上的每个测试单元中的两个研究者的关系所需要的时间平均值。本发明中所述的方法与常用的图遍历法进行比较,图遍历算法被广泛的应用于基于图节点关系的查找之中,实验结果如表7所示:
表7,本文发明和遍历法的实验结果比较
测试集 | 方法 | 总时间 | 平均时间 |
Random | 遍历法 | 669000 | 669.00 |
本发明方法 | 3553 | 3.5 | |
SW_SW | 遍历法 | 161050 | 161.05 |
本发明方法 | 2752 | 2.75 | |
IE_IE | 遍历法 | 1002285 | 1002.29 |
本发明方法 | 2710 | 2.71 | |
DM_DM | 遍历法 | 16474 | 164.74 |
本发明方法 | 2734 | 2.73 | |
BS-PL | 遍历法 | 162520 | 162.52 |
本发明方法 | 1034 | 2.80 | |
DM-SW | 遍历法 | 969437 | 969.44 |
本发明方法 | 3010 | 3.01 | |
ML-IE | 遍历法 | 240746 | 240.77 |
本发明方法 | 3029 | 3.03 | |
PL-DM | 遍历法 | 601309 | 601.31 |
本发明方法 | 3181 | 3.18 | |
SW-0A | 遍历法 | 373250 | 373.25 |
本发明方法 | 2714 | 2.71 | |
Average | 遍历法 | 482708 | 482.71 |
本发明方法 | 2941 | 2.94 |
从实验结果可以看出,利用本发明所提出的方法能够提高在社会网络中查找个人关系的时候的速度。本发明所提出的个人关系发现的快速性质体现在以下几点:(1)两个人之间的最短路径预先计算出来并且存储完成,作为查找其他路径的基础,在查找其他路径的时候最短路径不用重复计算;(2)在查找其他路径的时候,通过对于长度大于某个阈值的路径直接进行忽略,大大减少了需要查找的路径的数目。
综上所述,利用本发明,能够有效的提高在社会网络中进行个人关系查找的效率,本发明应用在网站http://www.arnetminer.com上,提高了用户在搜索研究者之间关系的效率,使得网站防问量剧增,已经从未运行该发明所提供的系统之前的2,000次/天提升到20,000次/天。
Claims (1)
1.在大规模社会网络中基于路径评分的个人关系发现方法,其特征在于依次含有以下步骤:
步骤(1),初始化,
在社会关系网络生成服务器中,构建社会网络图,其步骤如下:
设定:社会网络图G=(V,E),其中,G为有向图,V为节点的集合,E为边的集合,任何一个节点v∈V,代表社会网络中的一个人,er ij∈E代表有向图G中的一条有向边,表示社会网络中的一个人vi和另一个人vj之间存在的一种关系,下标ij表示这种关系的起始节点是vi,结束节点是vj,关系的类型是r;有向图G中的任何两个节点不可能表示同一个人;
定义:关系集合{er i1,er 12,…,er lj},表示两个人vi和vj之间从vi开始寻找时的关系;其中,er m(m+1)∈E,表示图G中的一条边,关系的起点是vi,终点是vj;
路径长度d为:d=∑αk(vi,vj),k=1,2,…,n,n为vi和vj两个节点之间的边的总数,αk(vi,vj)为其中第k条边的权重,同向路径长度d为从起点vi到终点vj的这n条路径上所有边的权重的和;
路径长度d的评分:当路径中只有一条边时,路径评分用这一条边的权重表示,权重低,路径评分就低,表示两个人之间的关系亲密度高;否则,反之;当路径中存在n条边,即n种关系时,用所有n条边的权重之和表示这两个人之间的路径的综合评分;
构建,以下要存储的数据项的集合,用一个表来表示:
关系——权重表,含有:关系、关系所表达的意义以及该关系的权重,共三类数据项;其中,权重是设定值,
关系类型——关系权重表,含有:关系标识、关系名称、关系说明以及关系的权重,共四类数据项;
有向图G中的节点列表,含有;节点标识、节点名字和节点说明,共三类数据项;
社会网络节点关系表,含有:关系类型、源节点即起点、目标节点即终点,三类数据项;然后,把最终构建的社会网络图G存入数据库服务器;
步骤(2),根据从数据库服务器中取出的由步骤(1)构建的社会网络图G,社会关系网络计算服务器按以下步骤计算图G中任意两个人vi和vj之间最短路径的评分,其中,vi为起点,为终点vj;
步骤(2.1),初始化
设定:v为除去终点vj之外,图G中的任一个节点,v∈V/vj,
dis(v)为图G中节点v到终点vj的最短路径的评分,而dis(vj)为0,
path(v),其值表示一条路径到达节点v后的下一个节点,
c(v)表示节点v是否被遍历过,未遍历过,c(v)=0,否则,c(v)=1,
(u,v)表示从节点u到节点v之间这条有向边的开始节点u和结束节点v,
w(c)表示边c的权重;
步骤(2.2),
设定:dis(v)为双精度实数的最大值(2-2-52)·21023;c(v)=0,path(v)=0;
令dis(t)=0;
步骤(2.3),创建一个最小堆,初始值为零,把节点插入vj该最小堆,c(vj)=1;
步骤(2.4),最小堆不为空,取出节点vj,得到所有指向vj的边的集合E(vj);
步骤(2.5),对于步骤(2.4)中集合E(vj)中的每条边evvj依次按以下步骤处理:
步骤(2.5.1),计算w(evvj)+dis(vj)的值,其中,w(evvj)是指向节点vj的一条边的权重;
步骤(2.5.2),比较w(evvj)+dis(vj)与dis(v)的大小,dis(v)是节点v到节点vj的最短路径的评分,初始值dis(v)=(2-2-52)·21023,取其中的小者为dis(v)的值,path(v)=vj,把v放在最小堆内;否则,不动作;
步骤(2.5.3),依此类推,把符合步骤(2.5.2)中所述的节点v都放在最小堆内;
步骤(2.6),再依次取出所述最小堆内的各节点v,此时,c(v)=1,得到所有指向各个节点v的边的集合E(v);
步骤(2.7),对于各个节点v各自所对应的边的集合E(v),依次分别按步骤(2.5)所述的方法处理,此时,各个节点v为终节点,各个边的起点到相应节点v的最短路径的评分为dis(v),
步骤(2.8),按步骤(2.7)所述的方法,一直追踪到源节点vj为止;
步骤(2.9),根据步骤(2.5)-(2.8),得到社会网络图G中每相邻个人之间的最短路径;
步骤(3),根据路径评分,对于任意制定的两个人快速发现他们之间的社会关系:
步骤(3.1),设定:所述任意两个人之间的路径长度小于最短路径的倍数β,β=1,2;又设源节点为vj,目标节点为vj;
步骤(3.2),计算从vi到vj的各种可能的路径的长度,找到其中的最小路径长度,删去所有长度大于最短路径1.2倍的路径,再按长度大小顺序排队后,通过WEB服务器向用户输出。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101770668A CN100470554C (zh) | 2007-11-09 | 2007-11-09 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CNB2007101770668A CN100470554C (zh) | 2007-11-09 | 2007-11-09 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN101149756A true CN101149756A (zh) | 2008-03-26 |
CN100470554C CN100470554C (zh) | 2009-03-18 |
Family
ID=39250282
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CNB2007101770668A Active CN100470554C (zh) | 2007-11-09 | 2007-11-09 | 在大规模社会网络中基于路径评分的个人关系发现方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN100470554C (zh) |
Cited By (23)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321183B (zh) * | 2008-06-30 | 2011-07-06 | 刘鑫 | 一种可信任的社会关系推荐系统及其运行方法 |
CN102129426A (zh) * | 2010-01-13 | 2011-07-20 | 腾讯科技(深圳)有限公司 | 显示人物关系的方法及装置 |
CN102194149A (zh) * | 2010-03-01 | 2011-09-21 | 中国人民解放军国防科学技术大学 | 社区发现方法 |
CN101540739B (zh) * | 2009-04-14 | 2011-10-05 | 腾讯科技(深圳)有限公司 | 用户推荐方法及用户推荐系统 |
CN102779142A (zh) * | 2011-06-28 | 2012-11-14 | 安徽大学 | 基于社区紧密度的快速社区发现方法 |
CN101854439B (zh) * | 2010-02-04 | 2012-11-28 | 深圳市同洲电子股份有限公司 | 一种基于话单的人际关系网的分析方法与系统 |
CN103106225A (zh) * | 2011-11-10 | 2013-05-15 | 北京千橡网景科技发展有限公司 | 在社交网络中确定用户选择好友的偏好的方法和设备 |
CN103345508A (zh) * | 2013-07-04 | 2013-10-09 | 北京大学 | 一种适用于社会网络图的数据存储方法及系统 |
CN103593342A (zh) * | 2012-08-13 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 基于单向用户关系的专家挖掘方法及挖掘系统 |
CN103593800A (zh) * | 2013-10-27 | 2014-02-19 | 西安电子科技大学 | 基于派系随机游走的社区发现方法 |
WO2015051480A1 (en) * | 2013-10-09 | 2015-04-16 | Google Inc. | Automatic definition of entity collections |
CN105354749A (zh) * | 2015-10-16 | 2016-02-24 | 重庆邮电大学 | 一种基于社会网络的移动终端用户分组方法 |
CN106294641A (zh) * | 2016-08-03 | 2017-01-04 | 朱杰 | 一种联络对象的定向查找方法 |
CN107306395A (zh) * | 2016-04-22 | 2017-10-31 | 姚锐 | 一种基于权限控制的电话呼叫建立方法 |
CN107402927A (zh) * | 2016-05-19 | 2017-11-28 | 上海斯睿德信息技术有限公司 | 一种基于图模型的企业关联关系拓扑建立方法及查询方法 |
CN107850443A (zh) * | 2015-07-28 | 2018-03-27 | 索尼公司 | 信息处理装置、信息处理方法以及程序 |
CN108109069A (zh) * | 2016-11-24 | 2018-06-01 | 方正国际软件(北京)有限公司 | 一种社会网络连接的建立方法及装置 |
CN108132998A (zh) * | 2017-12-21 | 2018-06-08 | 浪潮软件集团有限公司 | 一种人员关系分析方法和系统 |
CN109408543A (zh) * | 2018-09-26 | 2019-03-01 | 蓝库时代(北京)科技有限公司 | 一种智能关系网嗅探方法 |
CN110555053A (zh) * | 2018-06-01 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN111815448A (zh) * | 2020-07-09 | 2020-10-23 | 睿智合创(北京)科技有限公司 | 基于关联网络的申请单确定方法 |
CN112084319A (zh) * | 2020-09-29 | 2020-12-15 | 四川省人工智能研究院(宜宾) | 一种基于动作的关系网络视频问答系统及方法 |
CN112231591A (zh) * | 2020-11-06 | 2021-01-15 | 烟台大学 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
-
2007
- 2007-11-09 CN CNB2007101770668A patent/CN100470554C/zh active Active
Cited By (33)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101321183B (zh) * | 2008-06-30 | 2011-07-06 | 刘鑫 | 一种可信任的社会关系推荐系统及其运行方法 |
CN101540739B (zh) * | 2009-04-14 | 2011-10-05 | 腾讯科技(深圳)有限公司 | 用户推荐方法及用户推荐系统 |
CN102129426A (zh) * | 2010-01-13 | 2011-07-20 | 腾讯科技(深圳)有限公司 | 显示人物关系的方法及装置 |
CN102129426B (zh) * | 2010-01-13 | 2015-11-25 | 深圳市世纪光速信息技术有限公司 | 显示人物关系的方法及装置 |
CN101854439B (zh) * | 2010-02-04 | 2012-11-28 | 深圳市同洲电子股份有限公司 | 一种基于话单的人际关系网的分析方法与系统 |
CN102194149B (zh) * | 2010-03-01 | 2012-12-05 | 中国人民解放军国防科学技术大学 | 社区发现方法 |
CN102194149A (zh) * | 2010-03-01 | 2011-09-21 | 中国人民解放军国防科学技术大学 | 社区发现方法 |
CN102779142A (zh) * | 2011-06-28 | 2012-11-14 | 安徽大学 | 基于社区紧密度的快速社区发现方法 |
CN103106225A (zh) * | 2011-11-10 | 2013-05-15 | 北京千橡网景科技发展有限公司 | 在社交网络中确定用户选择好友的偏好的方法和设备 |
CN103593342A (zh) * | 2012-08-13 | 2014-02-19 | 腾讯科技(深圳)有限公司 | 基于单向用户关系的专家挖掘方法及挖掘系统 |
CN103593342B (zh) * | 2012-08-13 | 2017-10-31 | 腾讯科技(深圳)有限公司 | 基于单向用户关系的专家挖掘方法及挖掘系统 |
CN103345508B (zh) * | 2013-07-04 | 2016-09-21 | 北京大学 | 一种适用于社会网络图的数据存储方法及系统 |
CN103345508A (zh) * | 2013-07-04 | 2013-10-09 | 北京大学 | 一种适用于社会网络图的数据存储方法及系统 |
US9454599B2 (en) | 2013-10-09 | 2016-09-27 | Google Inc. | Automatic definition of entity collections |
WO2015051480A1 (en) * | 2013-10-09 | 2015-04-16 | Google Inc. | Automatic definition of entity collections |
CN103593800B (zh) * | 2013-10-27 | 2016-08-17 | 西安电子科技大学 | 基于派系随机游走的社区发现方法 |
CN103593800A (zh) * | 2013-10-27 | 2014-02-19 | 西安电子科技大学 | 基于派系随机游走的社区发现方法 |
CN107850443A (zh) * | 2015-07-28 | 2018-03-27 | 索尼公司 | 信息处理装置、信息处理方法以及程序 |
CN105354749A (zh) * | 2015-10-16 | 2016-02-24 | 重庆邮电大学 | 一种基于社会网络的移动终端用户分组方法 |
CN107306395A (zh) * | 2016-04-22 | 2017-10-31 | 姚锐 | 一种基于权限控制的电话呼叫建立方法 |
CN107402927A (zh) * | 2016-05-19 | 2017-11-28 | 上海斯睿德信息技术有限公司 | 一种基于图模型的企业关联关系拓扑建立方法及查询方法 |
CN106294641A (zh) * | 2016-08-03 | 2017-01-04 | 朱杰 | 一种联络对象的定向查找方法 |
CN108109069A (zh) * | 2016-11-24 | 2018-06-01 | 方正国际软件(北京)有限公司 | 一种社会网络连接的建立方法及装置 |
CN108132998A (zh) * | 2017-12-21 | 2018-06-08 | 浪潮软件集团有限公司 | 一种人员关系分析方法和系统 |
CN110555053A (zh) * | 2018-06-01 | 2019-12-10 | 百度在线网络技术(北京)有限公司 | 用于输出信息的方法和装置 |
CN109408543A (zh) * | 2018-09-26 | 2019-03-01 | 蓝库时代(北京)科技有限公司 | 一种智能关系网嗅探方法 |
CN109408543B (zh) * | 2018-09-26 | 2021-07-23 | 北京华宝智慧科技有限公司 | 一种智能关系网嗅探方法 |
CN111815448A (zh) * | 2020-07-09 | 2020-10-23 | 睿智合创(北京)科技有限公司 | 基于关联网络的申请单确定方法 |
CN111815448B (zh) * | 2020-07-09 | 2021-05-04 | 睿智合创(北京)科技有限公司 | 基于关联网络的申请单确定方法 |
CN112084319A (zh) * | 2020-09-29 | 2020-12-15 | 四川省人工智能研究院(宜宾) | 一种基于动作的关系网络视频问答系统及方法 |
CN112084319B (zh) * | 2020-09-29 | 2021-03-16 | 四川省人工智能研究院(宜宾) | 一种基于动作的关系网络视频问答系统及方法 |
CN112231591A (zh) * | 2020-11-06 | 2021-01-15 | 烟台大学 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
CN112231591B (zh) * | 2020-11-06 | 2024-02-09 | 烟台大学 | 考虑社交网络用户群紧密度的信息推荐方法及系统 |
Also Published As
Publication number | Publication date |
---|---|
CN100470554C (zh) | 2009-03-18 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN100470554C (zh) | 在大规模社会网络中基于路径评分的个人关系发现方法 | |
CN100583804C (zh) | 基于专家值传播算法的社会网络专家信息处理系统及方法 | |
KR101895249B1 (ko) | 지능 문답 구현 방법, 시스템 및 저장 매체 | |
CN106598950B (zh) | 一种基于混合层叠模型的命名实体识别方法 | |
CN108280114B (zh) | 一种基于深度学习的用户文献阅读兴趣分析方法 | |
CN108304437A (zh) | 一种自动问答方法、装置及存储介质 | |
US20140258211A1 (en) | Interactive and Social Knowledge Discovery Sessions | |
CN105659225A (zh) | 使用路径受约束的随机游走的查询扩展和查询-文档匹配 | |
CN106021457A (zh) | 基于关键词的rdf分布式语义搜索方法 | |
US9070087B2 (en) | Methods and systems for investigation of compositions of ontological subjects | |
CA2720842A1 (en) | System and method for value significance evaluation of ontological subjects of network and the applications thereof | |
CN104484380A (zh) | 个性化搜索方法及装置 | |
CN106934071A (zh) | 基于异构信息网络和贝叶斯个性化排序的推荐方法及装置 | |
CN109635083A (zh) | 一种用于搜索ted演讲中话题式查询的文档检索方法 | |
EP3940582A1 (en) | Method for disambiguating between authors with same name on basis of network representation and semantic representation | |
CN104391908B (zh) | 一种图上基于局部敏感哈希的多关键字索引方法 | |
CN106294418B (zh) | 检索方法和检索系统 | |
CN111241361A (zh) | 基于云平台的企业与高校的智能引荐系统及方法 | |
Nadi et al. | A hybrid recommender system for dynamic web users | |
US20210073191A1 (en) | Knowledgeable Machines And Applications | |
CN102289514A (zh) | 社会标签自动标注的方法以及社会标签自动标注器 | |
CN107577786A (zh) | 一种基于联合聚类的矩阵分解推荐方法 | |
CN116910221A (zh) | 一种基于相似度检索提升大规模语言模型响应速度的方法 | |
CN115329210A (zh) | 一种基于交互图分层池化的虚假新闻检测方法 | |
CN104572915A (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 | ||
TR01 | Transfer of patent right |
Effective date of registration: 20201204 Address after: 603a, 6th floor, building 6, yard 1, Zhongguancun East Road, Haidian District, Beijing 100084 Patentee after: Beijing Zhipu Huazhang Technology Co., Ltd Address before: 100084 Haidian District 100084-82 mailbox Beijing Patentee before: TSINGHUA University |
|
TR01 | Transfer of patent right |