用于提升节点中心性的链路推荐方法及其用户推荐方法与流程

文档序号:23091082发布日期:2020-11-27 12:43阅读:160来源:国知局
用于提升节点中心性的链路推荐方法及其用户推荐方法与流程

本发明属于网络分析领域,具体涉及一种用于提升节点中心性的链路推荐方法及其用户推荐方法。



背景技术:

社交网络描述了人类生活中多方面的社交关系,例如传统人际网络、学术合作网络和在线媒体网络。节点的中心性是社交网络中节点重要性和影响力的重要指标。社交网络中的个体,往往希望通过改变链接关系提升自己的中心性。但在实际社交场景中,新增不同的链路对应着不同的代价,而个体能够承担的代价是个性化、动态演变的。

现有的链路推荐方法,是通过已知的网络结构等信息,预测网络中尚未产生连边的两个节点之间产生连接的可能性。现阶段,常见的链路推荐方法包括:基于节点属性特征的马尔科夫链或者机器学习的方法、基于网络结构的最大似然估计方法、基于网络结构相似性的方法等。

现有的链路预测方法,主要是测量节点两两之间产生连接的可能性,而且追求的是更好的预测精度,或者更低的计算复杂度。

但是,现有的链路预测方法,往往忽略了链路建立对节点中心性的影响;而且,可能会漏掉一些有价值的节点;因此,目前的链路预测方法,其预测结果的可靠性和可用性并不高。



技术实现要素:

本发明的目的之一在于提供一种可靠性高且实用性好的用于提升节点中心性的链路推荐方法。

本发明的目的之二在于提供一种包括了所述用于提升节点中心性的链路推荐方法的用户推荐方法。

本发明提供的这种用于提升节点中心性的链路推荐方法,包括如下步骤:

s1.选取待分析的网络,并获取对应的网络节点;

s2.计算步骤s1选取的网络节点,关于与待分析的网络中剩余节点之间链路的中心性敏感度;

s3.计算步骤s1选取的网络节点,与待分析的网络中剩余节点建立链路的链路代价;

s4.根据步骤s2得到的中心性敏感度,以及步骤s3得到的链路代价,对待分析的网络中的网络节点进行推荐度排序;

s5.针对步骤s4得到的推荐度排序结果,分别进行多步链路优化,得到最终的链路推荐方案。

步骤s2所述的计算步骤s1选取的网络节点,关于与待分析的网络中剩余节点之间链路的中心性敏感度,具体为采用如下步骤计算中心性敏感度:

a.根据步骤s1得到的待分析的网络,构建节点链路图g(v,e);其中v为节点集;e为节点集v所组成的对应的边集;

b.采用如下公式计算节点i的中心性关于节点i、节点j之间链路ei,j的敏感度cs(i,j):

式中ci(a)为节点i的中心性值;ei,j为节点i到节点j的边的权重;

c.采用如下公式扩展邻接矩阵的导数:

式中,n个节点的中心性度量作为邻接矩阵a的函数c(a),且c(a)的输入为邻接矩阵a,c(a)的输出为n维向量,n维向量的每一个分量对应一个节点的中心性值;

d.采用如下算式计算步骤c中的变量

式中ei为网络中所有节点两两之间链路的权重(无链路则权重为0)。

步骤s3所述的计算步骤s1选取的网络节点,与待分析的网络中剩余节点建立链路的链路代价,具体为采用如下步骤计算链路代价:

a.采用如下算式计算节点vx和节点vy之间的相似性s(vx,vy):

式中z∈t(vx)∩t(vy),t(vx)为节点vx的邻居集合;deg(z)表示节点z的度值;

b.采用如下算式计算链路代价:

式中s(vx,vy)为节点vx和节点vy之间的相似性。

步骤s4所述的根据步骤s2得到的中心性敏感度,以及步骤s3得到的链路代价,对待分析的网络中的网络节点进行推荐度排序,具体为采用如下步骤进行排序:

(1)对各个节点的链路代价、中心性敏感度和中心性进行归一化处理;

(2)对步骤(1)中归一化后的数据,进行加权求和,从而得到各个节点的推荐值;

(3)根据步骤(2)得到的各个节点的推荐值,对待分析的网络中的网络节点进行推荐度排序。

步骤s5所述的针对步骤s4得到的推荐度排序结果,分别进行多步链路优化,得到最终的链路推荐方案,具体为采用如下步骤进行最终的链路推荐:

1)设定链路代价上限值pricemax,并选定研究节点vx和备选节点vy,且要求price(vx,vy)>pricemax,计算一步链路中节点vx→vy的中心性敏感度、中心性、链路代价和推荐值;

2)遍历备选节点vy的邻居集合t(vy),并筛选出price(vny,vx)<pricemax、vny∈t(vy)且节点vny与节点vx之间不存在连接边的节点集合sny;

3)在步骤2)中得到的节点集合sny中,采用两步链路建立法得到两步链路集合;

4)在步骤2)中得到的节点集合sny中,采用三步链路建立法得到三步链路集合;

5)根据步骤3)得到的两步链路集合和步骤4)得到的三步链路集合,向用户进行最终的链路推荐。

步骤3)所述的采用两步链路建立法得到两步链路集合,具体为采用如下步骤建立两步链路集合:

ⅰ.初始化两步链路集合twostep;

ⅱ.在节点集合sny中,任意选取一个节点vny,i,并建立节点vx和节点vny,i之间的链路;

ⅲ.判断链路代价price(vny,i,vx)与链路代价上限值pricemax之间的关系:

若price(vny,i,vx)≥pricemax,则直接转到步骤ⅳ;

若price(vny,i,vx)<pricemax,则采用如下方式建立两步链路:vx→vny,i→vy;同时计算该两步链路中节点vny,i的中心性敏感度、中心性、链路代价和推荐值;

ⅳ.删除节点vx和节点vny,i之间的链路;

ⅴ.重复步骤ⅱ~步骤ⅳ,直至节点集合sny中的所有节点均计算完毕;从而得到最终的两步链路集合。

步骤4)所述的在步骤2)中得到的节点集合sny中,采用三步链路建立法得到三步链路集合,具体为采用如下步骤建立三步链路集合:

ⅰ.初始化三步链路集合threestep;

ⅱ.在节点集合sny中节点vny,j的邻居节点集合中,任意选取节点vt(ny,j);其中且vt(ny,j)与节点vx不存在连边;

ⅲ.判断链路代价price(vx,vt(ny,j))与链路代价上限值pricemax之间的关系:

若price(vx,vt(ny,j))<pricemax,则建立节点vx和vt(ny,j)之间的链路;

否则,直接转到步骤ⅴ;

ⅳ.判断链路代价price(vx,vny,j)与链路代价上限值pricemax之间的关系:

若price(vx,vny,j)<pricemax,则采用如下方式建立三步链路:vx→vt(ny,j)→vny,j→vy,并计算三步链路中节点vt(ny,j)、节点vny,j的中心性敏感度、中心性、链路代价和推荐值;

否则,直接转到步骤ⅵ;

ⅴ.删除节点vx与节点vny,j之间的链路,并选取邻居节点集合中的剩余任意节点,直至邻居节点集合中所有节点均计算完毕;

ⅵ.删除节点vx和节点vt(ny,j)之间的链路,并选取节点集合sny中剩余任意节点,直至节点集合sny中所有节点均计算完毕;

ⅶ.重复步骤ⅱ~步骤ⅵ,直至所有节点均计算完毕;从而得到最终的三步链路集合;

步骤5)所述的根据步骤3)得到的两步链路集合和步骤4)得到的三步链路集合,向用户进行最终的链路推荐,具体为根据推荐值降序的方式,向用户进行最终的链路推荐排名,并允许用户通过调整链路代价、中心性敏感度、中心性的推荐权重,获得符合用户预期的推荐排名,并呈现给用户。

本发明还提供了一种包括了所述用于提升节点中心性的链路推荐方法的用户推荐方法,具体包括如下步骤:

s1.选取待分析的社交网络数据,将社交网络中用户作为网络的节点,将用户之间的关系抽象为链路,关系的紧密程度(比如:facebook用户间的回帖次数,微博用户间的转帖次数)抽象为链路的权重,选取一个网络节点作为研究节点;

s2.计算步骤s1选取的网络节点,关于与待分析的网络中剩余节点之间链路的中心性敏感度;

s3.计算步骤s1选取的网络节点,与待分析的网络中剩余节点建立链路的链路代价;

s4.根据步骤s2得到的中心性敏感度,以及步骤s3得到的链路代价,对待分析的网络中的网络节点进行推荐度排序;

s5.针对步骤s4得到的推荐度排序结果,分别进行多步链路优化,得到最终的链路推荐方案。

本发明提供的这种用于提升节点中心性的链路推荐方法及其用户推荐方法,根据选定的研究节点计算该节点对网络中其他节点的链路代价和中心性敏感度,并根据链路代价和中心性敏感度对备选节点进行排名,并通过多步链路建立方式对链路建立过程进行优化,能给用户推荐能够有效提高研究节点中心性、可靠性高且实用性好的链路。

附图说明

图1为本发明的链路推荐方法的方法流程示意图。

图2~图4为本发明的链路推荐方法的实施例的节点中心性敏感度和链路代价分布视图。

图5~图8为本发明的链路推荐方法的实施例的节点排名视图示意图。

图9为本发明的链路推荐方法的实施例的多步链路优化视图示意图。

图10为本发明的用户推荐方法的方法流程示意图。

具体实施方式

如图1所示为本发明的链路推荐方法的方法流程示意图:本发明提供的这种用于提升节点中心性的链路推荐方法,包括如下步骤:

s1.选取待分析的网络,并获取对应的网络节点;

s2.计算步骤s1选取的网络节点,关于与待分析的网络中剩余节点之间链路的中心性敏感度;具体为采用如下步骤计算中心性敏感度:

a.根据步骤s1得到的待分析的网络,构建节点链路图g(v,e);其中v为节点集;e为节点集v所组成的对应的边集;

n个节点的节点链路图的中心性度量作为邻接矩阵a的函数c(a);该函数输入是邻接矩阵,输出是一个n维向量;该n维向量每个分量对应一个节点的中心性,节点i的中心性ci(a)即为第i个分量;

b.采用如下公式计算节点i的中心性关于节点i、节点j之间链路ei,j的敏感度cs(i,j):

式中ci(a)为节点i的中心性值;ei,j为节点i到节点j的边的权重;

c.采用如下公式扩展邻接矩阵的导数:

式中,n个节点的节点链路图的中心性度量作为邻接矩阵a的函数c(a),且c(a)的输入为邻接矩阵a,c(a)的输出为n维向量,n维向量的每一个分量对应一个节点的中心性值;

d.采用如下算式计算步骤c中的变量

式中ei为网络中所有节点两两之间链路的权重(无链路则权重为0);

s3.计算步骤s1选取的网络节点,与待分析的网络中剩余节点建立链路的链路代价;具体为采用如下步骤计算链路代价:

无向网络图g(v,e),令u为个节点对组成的边全集;为所有没有连边的节点对vx、vy定义一个建立链路的代价函数p:e'→r+,该函数为每个不存在连边的节点对分配了一个非负实数值,值p(e)越大,网络图中建立链路e越困难;

a.选取adamic-adar指标作为a、b两节点之间相似性的定义;采用如下算式计算节点vx和节点vy之间的相似性s(vx,vy):

式中z∈t(vx)∩t(vy),t(vx)为节点vx的邻居集合;deg(z)表示节点z的度值;

b.采用如下算式计算链路代价:

式中s(vx,vy)为节点vx和节点vy之间的相似性;

s4.根据步骤s2得到的中心性敏感度,以及步骤s3得到的链路代价,对待分析的网络中的网络节点进行推荐度排序;具体为采用如下步骤进行排序:

(1)对各个节点的链路代价、中心性敏感度和中心性进行归一化处理;

(2)对步骤(1)中归一化后的数据,进行加权求和,从而得到各个节点的推荐值;

在具体实施时,可以采用如下算式进行计算:

score=-price*pweight+cs*csweight+c*cweight

式中score为最终的推荐值;price为链路代价值,pweight为链路代价的权重;cs为中心性敏感度值,csweight为中心性敏感度值的权重;c为中心性值,cweight为中心性值的权重;

(3)根据步骤(2)得到的各个节点的推荐值,对待分析的网络中的网络节点进行推荐度排序;

s5.针对步骤s4得到的推荐度排序结果,分别进行多步链路优化,得到最终的链路推荐方案;具体为采用如下步骤进行最终的链路推荐:

1)设定链路代价上限值pricemax,并选定研究节点vx和备选节点vy,且要求price(vx,vy)>pricemax,计算一步链路中节点vx→vy的中心性敏感度、中心性、链路代价和推荐值;

2)遍历备选节点vy的邻居集合t(vy),并筛选出price(vny,vx)<pricemax、vny∈t(vy)且节点vny与节点vx之间不存在连接边的节点集合sny;

3)在步骤2)中得到的节点集合sny中,采用两步链路建立法得到两步链路集合;具体为采用如下步骤建立两步链路集合:

ⅰ.初始化两步链路集合twostep;

ⅱ.在节点集合sny中,任意选取一个节点vny,i,并建立节点vx和节点vny,i之间的链路;

ⅲ.判断链路代价price(vny,i,vx)与链路代价上限值pricemax之间的关系:

若price(vny,i,vx)≥pricemax,则直接转到步骤ⅳ;

若price(vny,i,vx)<pricemax,则采用如下方式建立两步链路:vx→vny,i→vy;同时计算该两步链路中节点vny,i的中心性敏感度、中心性、链路代价和推荐值;

在具体实施时,采用求和的方式计算该两步链路中节点vny,i的中心性敏感度、中心性、链路代价和推荐值;具体为:

链路代价计算公式为:stepprice=price(vx,vny,i)+price(vx,vy);

中心性敏感度计算公式为:stepcs=cs(vx,vny,i)+cs(vx,vy);

中心性计算公式为:stepc=c(vny,i)+c(vy);

推荐值计算公式为:

stepscore=-stepprice*pweight+stepcs*csweight+stepc*cweight;

ⅳ.删除节点vx和节点vny,i之间的链路;

ⅴ.重复步骤ⅱ~步骤ⅳ,直至节点集合sny中的所有节点均计算完毕;从而得到最终的两步链路集合;

4)在步骤2)中得到的节点集合sny中,采用三步链路建立法得到三步链路集合;具体为采用如下步骤建立三步链路集合:

ⅰ.初始化三步链路集合threestep;

ⅱ.在节点集合sny中节点vny,j的邻居节点集合中,任意选取节点vt(ny,j);其中且vt(ny,j)与节点vx不存在连边;

ⅲ.判断链路代价price(vx,vt(ny,j))与链路代价上限值pricemax之间的关系:

若price(vx,vt(ny,j))<pricemax,则建立节点vx和vt(ny,j)之间的链路;

否则,直接转到步骤ⅴ;

ⅳ.判断链路代价price(vx,vny,j)与链路代价上限值pricemax之间的关系:

若price(vx,vny,j)<pricemax,则采用如下方式建立三步链路:vx→vt(ny,j)→vny,j→vy,并计算三步链路中节点vt(ny,j)、节点vny,j的中心性敏感度、中心性、链路代价和推荐值;

在具体实施时,采用求和的方式计算该两步链路中节点vny,i的中心性敏感度、中心性、链路代价和推荐值;具体为:

链路代价的计算公式为:

stepprice=price(vx,vt(ny,j))+price(vx,vny,i)+price(vx,vy);

中心性敏感度的计算公式为:

stepcs=cs(vx,vt(ny,j))+cs(vx,vny,i)+cs(vx,vy);

中心性的计算公式为:stepc=c(vt(ny,j))+c(vny,j)+c(vy);

推荐值的计算公式为:

stepscore=-stepprice*pweight+stepcs*csweight+stepc*cweight;

否则,直接转到步骤ⅵ;

ⅴ.删除节点vx与节点vny,j之间的链路,并选取邻居节点集合中的剩余任意节点,直至邻居节点集合中所有节点均计算完毕;

ⅵ.删除节点vx和节点vt(ny,j)之间的链路,并选取节点集合sny中剩余任意节点,直至节点集合sny中所有节点均计算完毕;

ⅶ.重复步骤ⅱ~步骤ⅵ,直至所有节点均计算完毕;从而得到最终的三步链路集合;

5)根据步骤3)得到的两步链路集合和步骤4)得到的三步链路集合,向用户进行最终的链路推荐;具体为根据推荐值降序的方式,向用户进行最终的链路推荐排名,并允许用户通过调整链路代价、中心性敏感度、中心性的推荐权重,获得符合用户预期的推荐排名,并呈现给用户。

以下结合一个实施例,对本发明的链路推荐方法进行进一步说明:

已知条件:科学家合作网络数据,包含379个节点、914条边,研究节点选定为776号节点,根据原始数据绘制图2;

根据选取的776号节点,计算776号节点关于网络其他节点的中心性敏感度,将中心性敏感度映射为图3节点的饱和度;

根据选取的776号节点,计算776号节点与网络其他节点建立链路的链路代价,将链路代价映射为节点的半径大小;

综合s1计算所得中心性敏感度、s2计算所得链路代价,并根据设置的各属性权重,对网络中的节点进行推荐排序,获得图5的备选节点排序图,该排序仅仅依据链路代价。接着将中心性敏感度也计入排序依据,获得图6。此时,由于节点过多,提高了中心性敏感度的下限,获得了图7的结果;

接下来,针对网络中某些节点单独进行链路建立方案优化:

(1)发现776号节点关于30号节点和33号节点的中心性敏感度较高,这表示与30号节点和33号节点建立链路对776号节点的中心性提升比较明显。但是776号节点与30号节点、33号节点的链路代价均比较大,于是分别对30号节点和33号节点进行链路优化;

(2)单击30号节点,首先对节点链路图与30号节点和776号节点及对应的邻居节点进行了突显,并获得图9(a)776号节点与30号节点之间单步链路代价小于1(单步最大值)的多步链路建立方式,发现“776→34→30”这一链路建立方式既能有效的增加中心性敏感度,又能减少单步链路建立代价,并且该链路建立方式是30号节点排名视图中得分最大链路建立方式,于是选定该链路建立方式作为776号节点与30号节点建立链路的方式,并将该链路建立方式的链路代价、中心性敏感度、中心性、综合得分更新到图7视图中30号节点的排名矩形中;

(3)单击33号节点,进行了(2)步骤类似的操作,对相关节点进行了突显,如图4所示,并显示了相关的多步链路建立方式,如图9(b)所示,最后综合考虑中心性敏感度增加值、单步链路代价以及更新后的排名得分,选择了“776→34→30→33”作为776号节点与33号节点建立链路的方式,并将该链路建立方式的链路代价、中心性敏感度、中心性、综合得分更新到图7视图中33号节点的排名矩形中;

(4)根据(2)(3)对30号节点和33号节点的链路建立优化,获得最终的备选节点排名,如图8所示;

最终,根据图8的备选节点排名,选出了“776→34→30→33”链路建立方式来有效提高776节点的中心性敏感度。

如图10所示为本发明的用户推荐方法的方法流程示意图:本发明提供的这种包括了上述用于提升节点中心性的链路推荐方法的用户推荐方法,具体包括如下步骤:

s1.选取待分析的社交网络数据,将社交网络中用户作为网络的节点,将用户之间的关系抽象为链路,关系的紧密程度(比如:facebook用户间的回帖次数,微博用户间的转帖次数)抽象为链路的权重,选取一个网络节点作为研究节点;

s2.计算步骤s1选取的网络节点,关于与待分析的网络中剩余节点之间链路的中心性敏感度;

s3.计算步骤s1选取的网络节点,与待分析的网络中剩余节点建立链路的链路代价;

s4.根据步骤s2得到的中心性敏感度,以及步骤s3得到的链路代价,对待分析的网络中的网络节点进行推荐度排序;

s5.针对步骤s4得到的推荐度排序结果,分别进行多步链路优化,得到最终的链路推荐方案。最终所推荐的链路,就对应着最终的用户推荐结果。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1