掌桥专利:专业的专利平台
掌桥专利
首页

技术领域

本申请涉及机器学习技术领域,特别涉及一种链路预测方法和装置。

背景技术

随着互联网技术的蓬勃发展以及高速稳定的网络服务不断普及,网站体验日益提升,多媒体互动功能不断革新、完善和发展。目前,越来越多的企业都建立了在线品牌社区,品牌社区可以将企业分散的目标客户精准地聚集在一起,有利于开展有的放矢的营销活动,逐渐成为企业进行营销活动的新载体以及与客户建立强大和持久关系的工具。大量的消费者研究早已表明,群体可以影响个人的消费决策,在线品牌社区中的用户成员往往会受到朋友群体的影响。基于朋友群体影响的个性化营销指的是在品牌社区中将热衷于使用某类产品的使用者推荐给目标客户,利用群体影响效应对目标客户进行产品营销,从而大大提高品牌社区营销效率。

评分链路预测算法(SLPA,Score Link Prediction Algorithm)基于网络拓扑结构预测网络中节点对间是否存在链接,是朋友推荐的主要手段。尽管SLPA已被广泛用来进行朋友推荐,例如,共同邻居算法(CN)、大度节点有利指标算法(HPI)、资源分配算法(RA),但是目前还没有一个适合所有网络社区结构的模型,故有必要考虑多个候选SLPA,并根据网络特征选择最好的,但这是一项复杂工作,需借助大量的专家经验。

针对上述问题,目前尚未提出有效的解决方案。

发明内容

本申请实施例提供了一种链路预测方法和装置,以在多种候选评分链路预测算法中选择出适用于特定网络的评分链路算法。

本申请实施例提供了一种链路预测方法,包括:获取训练网络集和算法标签集,其中,训练网络集包括多个社区网络中各社区网络的多个网络结构特征,算法标签集中包括训练网络集中的多个社区网络中各社区网络对应的链路预测算法标识;基于训练网络集和算法标签集,生成决策树模型,以利用决策树模型和目标社区网络的多个网络结构特征,确定目标社区网络对应的目标链路预测算法,并根据目标链路预测算法对目标社区网络进行链路预测。

本申请实施例还提供了一种链路预测装置,包括:获取模块,用于获取训练网络集和算法标签集,其中,训练网络集包括多个社区网络中各社区网络的多个网络结构特征,算法标签集中包括训练网络集中的多个社区网络中各社区网络对应的链路预测算法标识;生成模块,基于训练网络集和算法标签集,生成决策树模型,以利用决策树模型和目标社区网络的多个网络结构特征,确定目标社区网络对应的目标链路预测算法,并根据目标链路预测算法对目标社区网络进行链路预测。

本申请实施例还提供一种计算机设备,包括处理器以及用于存储处理器可执行指令的存储器,所述处理器执行所述指令时实现上述任意实施例中所述的链路预测方法的步骤。

本申请实施例还提供一种计算机可读存储介质,其上存储有计算机指令,所述指令被执行时实现上述任意实施例中所述的链路预测方法的步骤。

在本申请实施例中,提供了一种链路预测方法,可以获取训练网络集和算法标签集,训练网络集包括多个社区网络中各社区网络的多个网络结构特征,算法标签集中包括训练网络集中的多个社区网络中各社区网络对应的链路预测算法标识,可以基于训练网络集和算法标签集,生成决策树模型,从而可以利用决策树模型和和目标社区网络的多个网络结构特征确定目标社区网络对应的目标链路预测算法,并根据目标链路预测算法对目标社区网络进行链路预测。上述方案中,根据社区网络的网络结构特征以及对应的评分链路预测算法训练出决策树模型,从而可以利用决策树模型根据目标社区网络的网络结构特征确定出适合该社区网络的评分链路预测算法,无需凭借主观经验,即可快速选择出适用于各种社区网络的评分链路预测算法,可靠性高,可以节约人力成本和时间成本。之后,可以利用选择出的评分链路预测算法对社区网络进行链路预测,预测准确率高,预测结果可以运用于社区网络的朋友群体节点对之间朋友链接的预测,从而可以利用群体对个人的影响,使得能够最好地利用群体效应提高某一产品或服务的推荐效率。

附图说明

此处所说明的附图用来提供对本申请的进一步理解,构成本申请的一部分,并不构成对本申请的限定。在附图中:

图1示出了本申请一实施例中链路预测方法的流程图;

图2示出了本申请一实施例中的链路预测方法的流程示意图;

图3示出了本申请一实施例中的链路预测方法中的决策树模型示意图;

图4示出了多种评分链路预测算法的预测性能对比图;

图5示出了柔性链路预测模型、决策树模型选择出的目标链路预测算法以及优选出的评分链路预测算法的预测性能对比图;

图6示出了圈子数中节点数量与AUC的关系;

图7示出了本申请一实施例中的链路预测装置的示意图;

图8示出了本申请一实施例中的计算机设备的示意图。

具体实施方式

下面将参考若干示例性实施方式来描述本申请的原理和精神。应当理解,给出这些实施方式仅仅是为了使本领域技术人员能够更好地理解进而实现本申请,而并非以任何方式限制本申请的范围。相反,提供这些实施方式是为了使本申请公开更加透彻和完整,并且能够将本公开的范围完整地传达给本领域的技术人员。

本领域的技术人员知道,本申请的实施方式可以实现为一种系统、装置设备、方法或计算机程序产品。因此,本申请公开可以具体实现为以下形式,即:完全的硬件、完全的软件(包括固件、驻留软件、微代码等),或者硬件和软件结合的形式。

本申请实施例提供了一种链路预测方法。图1示出了本申请一实施例中链路预测方法的流程图。虽然本申请提供了如下述实施例或附图所示的方法操作步骤或装置结构,但基于常规或者无需创造性的劳动在所述方法或装置中可以包括更多或者更少的操作步骤或模块单元。在逻辑性上不存在必要因果关系的步骤或结构中,这些步骤的执行顺序或装置的模块结构不限于本申请实施例描述及附图所示的执行顺序或模块结构。所述的方法或模块结构的在实际中的装置或终端产品应用时,可以按照实施例或者附图所示的方法或模块结构连接进行顺序执行或者并行执行(例如并行处理器或者多线程处理的环境,甚至分布式处理环境)。

具体地,如图1所示,本申请一种实施例提供的链路预测方法可以包括以下步骤:

步骤S101,获取训练网络集和算法标签集,其中,训练网络集包括多个社区网络中各社区网络的多个网络结构特征,算法标签集中包括训练网络集中的多个社区网络中各社区网络对应的链路预测算法标识。

本实施例中,可以获取训练网络集和算法标签集。其中,训练网络集可以包括多个社区网络中各社区网络的多个网络结构特征。多个网络结构特征可以包括以下至少之一:平均最短路径、平均度、节点介数、链接介数和平均聚类系数等网络结构特征。算法标签集中包括训练网络集中的毒狗额社区网络中各社区网络对应的链路预测算法标识。其中,各社区网络对应的链路预测算法标识可以是多种候选链路预测算法中的一种。多种候选链路预测算法可以包括共同邻居算法(CN)、大度节点有利指标算法(HPI)、资源分配算法(RA)等各种链路预测算法。

步骤S102,基于训练网络集和算法标签集,生成决策树模型,以利用决策树模型和目标社区网络的多个网络结构特征,确定目标社区网络对应的目标链路预测算法,并根据目标链路预测算法对目标社区网络进行链路预测。

在获得训练网络集和算法标签集之后,可以基于训练网络集中的多个社区网络中各社区网络对应的多个网络结构特征以及各社区网络对应的链路预测算法标识,生成决策树模型。在得到决策树模型之后,可以利用决策树模型和目标社区网络的多个网络结构特征,确定目标社区网络对应的目标链路预测算法。例如,可以从生成的决策树模型中提取出决策规则。计算目标社区网络对应的多个社区网络结构特征。之后,可以根据决策规则和目标社区网络对应的多个社区网络结构特征,确定出目标社区网络对应的目标链路预测算法。目标链路预测算法为多种候选链路预测算法中的一种。在确定出适用于目标社区网络对应的目标链路预测算法之后,可以利用目标链路预测算法对目标社区网络进行链路预测。

上述实施例中,根据社区网络的网络结构特征以及对应的评分链路预测算法训练出决策树模型,从而可以利用决策树模型根据目标社区网络的网络结构特征确定出适合该社区网络的评分链路预测算法,无需凭借主观经验,即可快速选择出适用于各种社区网络的评分链路预测算法,可靠性高,可以节约人力成本和时间成本。之后,可以利用选择出的评分链路预测算法对社区网络进行链路预测,预测准确率高,预测结果可以运用于社区网络的朋友群体节点对之间朋友链接的预测,从而可以利用群体对个人的影响,使得能够最好地利用群体效应提高某一产品或服务的推荐效率。

在本申请一些实施例中,获取训练网络集和算法标签集,可以包括:获取训练网络集,其中,训练网络集中还包括多个社区网络中各社区网络的节点集合和边集合;根据各社区网络的节点集合和边集合确定各社区网络中的未连边节点对;利用多种候选链路预测算法中各候选链路预测算法,对各社区网络中的未连边节点对赋予分数值,得到各社区网络对应的多个总分数值,其中,各社区网络对应的多个总分数值中各总分数值与各候选链路预测算法对应;将各社区网络对应的多个总分数值中的最大总分数值对应的候选链路预测算法的标识确定为各社区网络对应的算法标签,得到算法标签集。

具体地,训练网络集中的多个社区网络可以为无向网络,无向网络可以包括节点集合V和边集合E。对于一网络,总的节点数为N,边数为M,则该网络共有N(N-1)/2个节点对,即全集U。全集U中不属于边集合E的节点对为未连边节点对,未连边节点对的数量为N(N-1)/2-M。给定一种链路预测算法,对每对未连边节点对赋予一个分数值,然后将所有未连边的节点对按照该分数值从大到小排序,排在最前面的节点对出现连边的概率最大。为了确定出最适合某一特定网络的链路预测算法,利用多种候选链路预测算法中各算法对该网络中的所有未连边节点对赋予分数值,相加后得到各候选链路预测算法对应的总分数值。可以将总分数值最大的总分数值对应的候选链路预测算法确定为该网络对应的链路预测算法。针对训练网络集中的多个社区网络中各社区网络确定出最适合的链路预测算法,将各网络对应的最佳链路预测算法的标识确定为该网络的算法标签,得到算法标签集。通过上述方式,可以获取用于决策模型训练的训练网络集和算法标签集。

在本申请一些实施例中,基于训练网络集和算法标签集,生成决策树模型,可以包括:根据算法标签集,计算按照各社区网络对应的链路预测算法对训练网络集进行分类后训练网络集的信息熵;基于信息熵,确定多个网络结构特征中的各网络结构特征对应的目标信息增益率;将目标信息增益率最大的网络结构特征作为根节点,并确定根节点对应的分支阈值;依据根节点的分支阈值对训练网络集进行分支,得到第一训练网络子集和第二训练网络子集;对第一训练网络子集进行分支,直至分支后得到的训练网络子集对应的算法标签子集中的链路预测算法标识相同;对第二训练网络子集进行分支,直至分支后得到的训练网络子集对应的算法标签子集中的链路预测算法标识相同。

在得到训练网络集和算法标签集之后,可以通过训练得到决策树模型。可以根据算法标签集,计算按照各社区网络对应的链路预测算法对训练网络集进行分类后训练网络集的信息熵。信息熵是度量样本集纯度最常用的一种指标。例如,对于训练网络集为T。假定有k种链路预测算法,将训练网络集中各训练网络分类到最适用的链路预测算法,得到训练网络集T的一个划分为{S

其中,P

在决策树算法中,可以基于信息增益来选择特征,信息增益越大,则这个特征的选择性越好。信息增益在概率中定义为:待分类的集合的熵和选定某个特征的条件熵之差。例如,可以按网络结构特征A划分训练网络集T中的网络,定义目标分割点为a

Gain(A)=Info(T)-Info

其中

一般情况下,信息增益准则对那些属性的取值比较多的属性有所偏好,也就是说,采用信息增益作为判定方法,会倾向于去选择属性取值比较多的属性。然而,属性过多可能会导致分类无意义,因此一般基于信息增益率来选择用于分类的特征。对应分割点a

其中

对于网络结构特征A,可以确定多个分割点a

之后,可以将目标信息增益率最大的网络结构特征作为根节点,并确定根节点对应的分支阈值。例如,可以将目标信息增益率对应的分割点确定为根节点对应的分支阈值。依据根节点的分支阈值对训练网络集进行分支,得到第一训练网络子集和第二训练网络子集。其中,第一训练网络子集中的各社区网络的与根节点对应的网络结构特征的值可以小于等于根节点的分支阈值。第二训练网络子集中的各社区网络的与根节点对应的网络结构特征的值可以大于根节点的分支阈值。

在得到第一训练网络子集和第二训练网络子集之后,可以基于同样的方法对第一训练网络子集和第二训练网络子集进行分支。可以对第一训练网络子集进行分支,直至分支后得到的训练网络子集对应的算法标签子集中的链路预测算法标识相同。可以对第二训练网络子集进行分支,直至分支后得到的训练网络子集对应的算法标签子集中的链路预测算法标识相同。

以第一训练网络子集为例,在得到第一训练网络子集的同时可以得到第一训练网络子集对应的第一算法标签子集。可以确定第一算法标签子集中的链路预测算法标识是否为同一标识,即判断第一训练网络子集中的各社区网络是否适用于同一种链路预测算法,若是,则停止分支。否则,按照对训练网络集进行分支的方法同样的方法对第一训练网络子集进行分支,不同之处在于,无需考虑根节点对应的网络结构特征。

例如,在对训练网络集T进行分支时,确定根节点为网络结构特征A,分支阈值为a,则将训练网络集T分为第一训练网络子集T1和第二训练网络子集T2。T1中的网络结构特征A的值均小于等于a,T2中的网络结构特征A的值均大于a。T1对应的第一标签子集为L1。在L1中的链路预测算法标识不全为同一标识的情况下,根据L1中的各标识的数量,确定T1对应的信息熵S1。针对T1,基于S1确定多个网络结构特征中除A之外的网络结构特征中各网络结构特征对应的目标信息增益率,将目标信息增益率最大的网络结构特征作为T1的根节点,并对T1进行分支,得到训练网络子集T11和T12。重复上述步骤直至最终的训练网络子集对应的算法标签子集中的算法标识属于同一种算法标识,从而得到决策树模型。

在另一个实施例中,可以不直接选择增益率最大的属性作为划分属性,而是之前先通过一遍筛选,先把信息增益低于平均水平的属性剔除掉,之后从剩下的属性中选择信息增益率最高的,这样的话,相当于两方面都得到了兼顾。

在本申请一些实施例中,基于信息熵,确定多个网络结构特征中的各网络结构特征对应的目标信息增益率,可以包括:将各网络结构特征的多个值进行升序排列,得到各网络结构特征对应的特征序列,其中,多个值中的各个值与多个社区网络中各社区网络对应;分别以各网络结构特征对应的特征序列中的多个分割点中各分割点对训练网络集进行划分,并基于信息熵计算对应的信息增益率,得到各网络结构特征对应的多个信息增益率,其中,各网络结构特征对应的特征序列中的多个分割点包括各网络结构特征对应的特征序列中相邻两个值的中值;将各网络结构特征对应的多个信息增益率中的最大信息增益率确定为各网络结构特征对应的目标信息增益率;相应的,确定根节点对应的分支阈值,包括:将根节点的目标信息增益率对应的分割点作为根节点对应的分支阈值。

具体地,对于各网络结构特征,存在对应于训练网络集中多个社区网络各社区网络对应的值。可以将各网络结构特征对应的多个值进行升序排列,得到对应的特征序列。将各特征序列中相邻两个值的平均值或者说中值确定为分割点,得到各网络结构特征对应的多个分割点。分别以多个分割点中的各分割点作为分支阈值,对训练网络集进行划分,得到各分割点对应的信息增益率,从而得到各网络结构特征对应的多个信息增益率。将各网络结构特征对应的多个信息增益率中的最大信息增益率确定为各网络结构特征对应的目标信息增益率。将目标信息增益率最大的网络结构特征确定为根节点,并将根节点的目标信息增益率对应的分割点确定为根节点的分支阈值。之后,即可根据根节点及对应的分支阈值对训练网络集进行划分。

例如,在按网络结构特征A(例如平均聚类系数)划分T中的网络,以网络结构特征A的值升序排列得到序列{A

Gain(A)=Info(T)-Info

其中,

对应分割点a

其中,

可以计算网络结构特征A对应的特征序列{A

在本申请一些实施例中,链路预测方法还可以包括:获取训练样本集和分类标签集;于训练样本集和分类标签集,构建支持向量机模型,以利用支持向量机模型确定目标社区网络对应的目标链路预测算法的相生算法;其中,训练样本集包括多个特征向量,多个特征向量中各特征向量用于表征多个算法对中各算法对对应的两种链路预测算法对同一社区网络进行评分的差异,分类标签集用于表征训练样本集中的各特征向量对应的算法对对应的两种链路预测算法是否互为相生算法,各算法对包括多种候选链路预测算法中的两种链路预测算法,在结合两种链路预测算法对社区网络进行预测的准确率大于两种链路预测算法中的任一种算法对该社区网络进行预测的准确率的情况下,两种链路预测算法互为相生算法。

考虑到不同链路预测算法经常由于高估或低估而导致的预测模型性能下降,发明人提出了相生算法的概念,并利用目标链路预测算法及该算法的相生算法来对目标社区网络进行链路预测。在结合两种链路预测算法对某一社区网络进行链路预测的准确率大于这两种链路预测算法中任一种算法对该社区网络进行预测的准确率的情况下,这两种链路预测算法相对于该社区网络而言互为相生算法。例如,对于社区网络M,结合链路预测算法S1和S2进行链路预测的准确率大于仅利用链路预测算法S1或者仅利用链路预测算法S2进行链路预测的准确率,则算法S1和S2针对社区网络M互为相生算法。

由于支持向量机模型(Support Vector Machine,SVM)在解决小样本、非线性及高维模式识别中表现出许多特有的优势,可以采用SVM模型来筛选与决策树模型选出的目标链路预测算法优势互补的相生算法。

本实施例中,可以获取训练样本集和分类标签集。其中,训练样本集可以包括多个特征向量,多个特征向量中各特征向量用于表征多个算法对中各算法对对应的两种链路预测算法对同一社区网络进行评分的差异。可以选用多种指标来刻画算法间的评分差别,多种指标可以包括以下中的至少之一:欧氏距离、标准化欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离、相关距离、斯皮尔曼距离。分类标签集可以用于表征训练样本集中的各特征向量对应的算法对对应的两种链路预测算法是否互为相生算法,各算法对包括多种候选链路预测算法中的两种链路预测算法。

在获得训练样本集和分类标签集之后,可以利用训练样本集和分类标签集训练出支持向量机模型。之后,可以利用支持向量机模型确定目标社区网络对应的目标链路预测算法的相生算法。在对目标社区网络进行链路预测时,可以利用决策树模型确定出适用于该目标社区网络的目标链路预测算法,利用支持向量机模型确定出目标社区网络对应的目标链路预测算法对应的相生算法。之后,可以结合目标链路预测算法及其对应的相生算法对目标社区网络进行链路预测,可以进一步提高链路预测的准确性。

在本申请一些实施例中,利用支持向量机模型确定目标社区网络对应的目标链路预测算法的相生算法,可以包括:利用目标链路预测算法对目标社区网络进行链路预测,得到目标链路预测结果;利用多种候选链路预测算法中的各算法对目标社区网络进行链路预测,得到多个候选链路预测结果;根据目标链路预测结果和多个候选链路预测结果,确定多个特征向量,多个特征向量中各特征向量与多个候选链路预测算法中各算法对应;将多个特征向量输入支持向量机模型,确定多个候选链路预测算法中各算法是否为目标链路预测算法的相生算法。

具体地,可以利用目标链路预测算法对目标社区网络进行链路预测,得到目标链路预测结果。可以利用多种候选链路预测算法中的各算法对目标社区网络进行链路预测,得到多个候选链路预测结果。链路预测结果可以是利用某一链路预测算法对目标社区网络中的所有未连边节点对中各未连边节点对赋予的评分。可以根据目标链路预测结果和多个候选链路预测结果,确定多个特征向量。多个特征向量中各特征向量与多个候选链路预测算法中各算法对应。多个特征向量中各特征向量可以表征目标链路预测算法与多种候选链路预测算法中各算法对目标社区网络进行评分之间的差异。通过将多个特征向量中各特征向量输入支持向量机模型,可以输出多个分类结果。多个分类结果中各分类结果可以用于表征各特征向量对应的候选链路预测算法是否为目标链路预测算法的相生算法,从而可以得到目标链路预测算法的相生算法。通过上述方式,可以针对目标社区网络确定目标链路算法的相生算法。

在本申请一些实施例中,根据目标链路预测算法对目标社区网络进行链路预测,可以包括:根据目标链路预测算法和目标链路预测算法的相生算法,生成柔性链路预测模型;基于柔性链路预测模型对目标社区网络进行链路预测。例如,可以将目标链路预测算法与其相生算法中的一个或多个相加后,生成柔性链路预测模型。通过柔性链路预测模型对社区网络进行链路预测,可以提高链路预测的准确性。

在本申请一些实施例中,柔性链路预测模型为:

S=w·(B,E

其中,S为柔性链路预测模型,w为目标链路预测算法以及目标链路预测算法的相生算法对应的权重组成的向量;B为目标链路预测算法,E

下面结合一个具体实施例对上述方法进行说明,然而,值得注意的是,该具体实施例仅是为了更好地说明本申请,并不构成对本申请的不当限定。

在本具体实施例中,链路预测算法又可以称为评分链路预测算法。评分链路预测算法主要思想是通过公式计算出的节点对链接评分越大,产生链接的可能性就越高。所有评分链路预测算法的共同原则是所得到的链接评分多少并不重要,重要的是链接评分的排序。可以选用Salton、Sorenson、HPI(hub promoted index,核心提升指标)、HDI(hubdepressed index,核心抑制指标)、LHN、PA、RA等最常使用的七种评分链路预测算法,具体见表1。

表1

进一步的,本实施例中,依据资源分配思想新提出了5种算法。下文中,Γ(x)代表节点x的邻居,|·|表示·的数量,|Γ(x)∩Γ(y)|则表示节点x和节点y共同邻居的数量,k(x)则代表节点x的度。新提出5种新的资源分配评分算法为:资源二次分配算法(WA1)、基于节点网络位置分配算法(WA2)、节点资源分散算法(WA3)、邻居节点资源分散算法(WA4)、以及上述四种算法的组合算法(RWA)。下面对这五种算法进行介绍。

WA1:以与共同邻居相连的节点作为资源发射机,节点对分得的资源表示成与共同邻居连接的节点度的倒数之和,即:

WA2:考虑共同邻居节点的聚类系数,聚类系数越大说明该邻居节点在网络中越处于中心位置,越易导致资源分散,即:

其中c(z)代表节点z的聚类系数,ρ,

WA3:考虑了节点分享到资源后的再分享的情况,即:

WA4:结合节点本身资源分散以及共同邻居节点能源分散的特性,即:

RWA:综合RA,WA2,WA3得到的组合算法,即:

其中,α,β,γ分别为

本实施例中,提出一种柔性链路预测模型(Flexible Link Prediction Model,FLPM)。FLPM考虑网络中各种特征的联合效应与算法预测性能的关系,选用决策树模型,根据网络特征来选择合适链路预测算法,此外由于单一链路预测算法经常做出过高或过低的估算,因此随机组合链路预测算法并不能保证每次都获得优良效果,引入支持向量机模型来识别相生算法,进而生成高效组合的柔性链路预测模型。对于任一评分算法A,其相生算法为:对训练样本中所有节点对,两算法评分加起来作为节点对的新评分,并进行排序,如能使得排在前面的实际有连边的节点对比A的多,就认为该算法是A的相生算法。

请参考图2,示出了本申请一实施例中的链路预测方法的流程示意图。如图2所示,首先利用训练网络数据训练出决策树(Decision Tree,DT)模型。DT基本思想是根据平均最短路径、平均度、节点介数、链接介数和平均聚类系数等社区网络的结构特征来选择精度最高的SLPA。请参考图3,示出了本申请一实施例中的链路预测方法中的决策树模型示意图。

为了评估指标的预测性能,本实施例中采用AUC(area under the receiveroperating characteristic curve,接收者操作特征曲线下的面积)作为衡量链路预测精度的标准。AUC可以理解为随机选择测试集中的一条连边,将其与一条随机选择的不存在的边比较分数值,在m次独立的比较中,如果测试集中的边评分高的次数有m1次,那么AUC值为:

AUC可以理解为在测试集中的边的分数值有比随机选择的一个不存在的边的分数值高的概率。当网络规模较大,通过这种随机抽样方式得到的AUC值可降低计算复杂度,提高计算效率。显然AUC值越大,算法准确度越高。

可以将训练样本的自变量定义为网络结构特征,因变量是AUC值最大的SLPA。

可以依据C4.5算法思想设计DT算法。该算法具体描述如下:

整个训练网络集为T,对于每一个网络,根据其在各SLPA上的AUC值,将其分配到AUC最大的SLPA对应的类中,假定有K种SLPA,得到T的一个划分为{S

按网络结构特征A(例如,平均聚类系数)划分T中的网络,以网络结构特征A的值升序排列得到序列{A

Gain(A)=Info(T)-Info

其中

对应分割点a

其中,

可以计算出特征序列{A

本实施例中提出的DT模型的训练过程的主要步骤如下:

步骤1,计算平均最短路径、平均度、节点介数、链接介数和平均聚类系数等社区网络的结构特征,计算各个特征属性的信息增益率,选择信息增益率最大的属性作为根节点,依据其最佳分支阈值进行分支;

步骤2,根据节点属性不同的分支所对应的数据子集,采用与Step1相同的方法递归地建立树的分枝,如此循环下去,直到所有分枝节点中的样本选择同一SLPA;

步骤3,提取决策规则。对于Step 2生成的DT,可以直接获得决策规则,即根据社区网络的平均最短路径、平均度、节点介数、链接介数和平均聚类系数等结构特征选出适合该网络的最佳SLPA。

在训练DT模型的过程中,会得到各SLPA的平均AUC值,这可以作为柔性链路预测模型的权重。

请继续参考图2,可以利用SVM模型确定出最佳算法的相生算法。由于SVM模型在解决小样本、非线性及高维模式识别中表现出许多特有的优势,采用SVM模型来筛选与DT模型选出的最优SLPA优势互补的相生SLPA。SVM模型依据两种算法在各节点对上的评分差别来判断两算法是否相生。可以选用7种指标来刻画算法间的评分差别,即欧氏距离、标准化欧氏距离、曼哈顿距离、切比雪夫距离、余弦距离、相关距离、斯皮尔曼距离。

给定训练样本集(x

其中,a,b,δ为常数。

为了进一步提高预测精度,FLPM设计了组合预测模型,该模型主要由DT筛选出的最佳评分链路预测算法B,及用SVM辨识出的B的相生算法(即E

S=w*(B,E

其中,S为所述柔性链路预测模型,w为所述目标链路预测算法以及所述目标链路预测算法的相生算法对应的权重组成的向量;B为所述目标链路预测算法,E

上述具体实施例中,提出了FLPM来实现朋友群体推荐,进而利用朋友群体影响实现个性化营销。该模型克服了传统SLAP在选择合适算法需借助大量专家经验导致的在实际中预测效果不稳定的缺陷。采用DT模型根据网络结构特征而不是主观经验,从所设计的算法集合中自适应地选择适合该网络的SLPA。此外,为了克服由于不同SLPA经常过高预测或低估而导致的组合预测模型性能下降的不足,提出了基于SVM的相生模型辨识方法,使FLPM的组合模型中各SLPA优势互补。因此,FLPM对营销人员针对某类产品最佳地利用在线社区提高营销效率提供了有力支持。

为了更好地理解本方案及其有益效果,下面给出了利用上述具体实施例中的链路预测方法进行链路预测的实验过程。

在本实验中,选取斯坦福大学提供的twitter中971个ego-net数据集来验证FLPM的有效性。ego-net是由用户及其粉丝组成的社区网络,网络中心节点可代表品牌企业,该数据集把社区成员分为喜欢不同产品组成的圈子。在每次实验中,从971个网络中随机选取777个网络作为训练集,其他194个作为测试集合。可以采用S1-S25来表示25种算法,表2给出无参数算法,表3给出含参算法。

表2

表3

在DT实验中,基于训练网络集数据,对25种算法进行了筛选,优选出15种算法,分别为S6,S7,S8,S9,S10,S11,S13,S15,S16,S17,S19,S20,S23,S24,S25。针对每一个优选出的算法,使用训练集训练SVM,进而找到其相生算法,这样15种算法对应15个SVM。然后,依据式公式S=w*(B,E

为了评估算法的预测性能,对测试集进行100次实验,取平均AUC值作为评估算性能的指标,结果如表4所示。

表4

表4中给出所有算法的性能比较,其中FLPM1代表不同权重组合的FLPM,FLPM2代表无权重组合的FLPM,即权重都为1,单DT表示直接用DT模型选出的算法进行预测。图4示出了多种评分链路预测算法的预测性能对比图,给出了经典的SLPA和本章新提出的五种基于资源分配的SLPA的性能比较。图5示出了柔性链路预测模型、决策树模型选择出的目标链路预测算法以及优选出的评分链路预测算法的预测性能对比图,即给出了FLPM,DT及优选出的SLPA性能对比。

从图4可以看出,S7,S9,S10,S11,S12,S14,S15,S16,S17,S18,S19,S20,S21,S22,S23,S24,S25这18种算法精度明显高于其他7种算法,其中除了S7,均为本申请基于资源分配思想提出的新算法。由图5可知,相比于这些较好的性能算法,FLPM提升效果显著。从图5中还可以观察到有权组合FLPM1优于无权组合FLPM2,这说明本实施例提出基于AUC来设定权重是有效的,同时FLPM1和FLPM2的性能都比DT和其他组合算法要好,这说明本实施例提出的用SVM模型来选择相生算法的机制是高效的。最后,从表4可以看出DT精度高于其他非组合算法,这说明本实施例提出的基于网络结构特征来选择合适链路预测算法的机制是有效的。这些结果表明,FLPM可为品牌社区不同产品朋友群体间的用户提供可靠和准确的朋友推荐预测。

进一步地,可以分析FLPM在品牌社区中由于使用不同类产品而形成的朋友圈子网络的精度。根据网络大小选取包含产品类数量从2到19不等的网络,分析FLPM在推荐不同产品圈子之间建立连接的精度。表5给出了预测精度。从表5中可以看出无论在产品圈数较多的网络中,还是较少的网络中,FLPM都有很高的推荐精度,平均值达0.9003。请参考图6,出了圈子数中节点数量与AUC的关系。从图6可以看出FLPM精度随着圈子中节点数量增加而增大,这说明对那些可能存在更多交叠节点的品牌社区网络,FLPM的朋友群体推荐的性能会更优越。

表5

基于同一发明构思,本申请实施例中还提供了一种链路预测装置,如下面的实施例所述。由于链路预测装置解决问题的原理与链路预测方法相似,因此链路预测装置的实施可以参见链路预测方法的实施,重复之处不再赘述。以下所使用的,术语“单元”或者“模块”可以实现预定功能的软件和/或硬件的组合。尽管以下实施例所描述的装置较佳地以软件来实现,但是硬件,或者软件和硬件的组合的实现也是可能并被构想的。图7是本申请实施例的链路预测装置的一种结构框图,如图7所示,包括:获取模块701和生成模块702,下面对该结构进行说明。

获取模块701用于获取训练网络集和算法标签集,其中,训练网络集包括多个社区网络中各社区网络的多个网络结构特征,算法标签集中包括训练网络集中的多个社区网络中各社区网络对应的链路预测算法标识。

生成模块702基于训练网络集和算法标签集,生成决策树模型,以利用决策树模型和目标社区网络的多个网络结构特征,确定目标社区网络对应的目标链路预测算法,并根据目标链路预测算法对目标社区网络进行链路预测。

从以上的描述中,可以看出,本申请实施例实现了如下技术效果:根据社区网络的网络结构特征以及对应的评分链路预测算法训练出决策树模型,从而可以利用决策树模型根据目标社区网络的网络结构特征确定出适合该社区网络的评分链路预测算法,无需凭借主观经验,即可快速选择出适用于各种社区网络的评分链路预测算法,可靠性高,可以节约人力成本和时间成本。之后,可以利用选择出的评分链路预测算法对社区网络进行链路预测,预测准确率高,预测结果可以运用于社区网络的朋友群体节点对之间朋友链接的预测,从而可以利用群体对个人的影响,使得能够最好地利用群体效应提高某一产品或服务的推荐效率。

本申请实施方式还提供了一种计算机设备,具体可以参阅图8所示的基于本申请实施例提供的链路预测方法的计算机设备组成结构示意图,所述计算机设备具体可以包括输入设备81、处理器82、存储器83。其中,所述存储器83用于存储处理器可执行指令。所述处理器82执行所述指令时实现上述任意实施例中所述的链路预测方法的步骤。

在本实施方式中,所述输入设备具体可以是用户和计算机系统之间进行信息交换的主要装置之一。所述输入设备可以包括键盘、鼠标、摄像头、扫描仪、光笔、手写输入板、语音输入装置等;输入设备用于把原始数据和处理这些数的程序输入到计算机中。所述输入设备还可以获取接收其他模块、单元、设备传输过来的数据。所述处理器可以按任何适当的方式实现。例如,处理器可以采取例如微处理器或处理器以及存储可由该(微)处理器执行的计算机可读程序代码(例如软件或固件)的计算机可读介质、逻辑门、开关、专用集成电路(Application Specific Integrated Circuit,ASIC)、可编程逻辑控制器和嵌入微控制器的形式等等。所述存储器具体可以是现代信息技术中用于保存信息的记忆设备。所述存储器可以包括多个层次,在数字系统中,只要能保存二进制数据的都可以是存储器;在集成电路中,一个没有实物形式的具有存储功能的电路也叫存储器,如RAM、FIFO等;在系统中,具有实物形式的存储设备也叫存储器,如内存条、TF卡等。

在本实施方式中,该计算机设备具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

本申请实施方式中还提供了一种基于链路预测方法的计算机存储介质,所述计算机存储介质存储有计算机程序指令,在所述计算机程序指令被执行时实现上述任意实施例中所述链路预测方法的步骤。

在本实施方式中,上述存储介质包括但不限于随机存取存储器(Random AccessMemory,RAM)、只读存储器(Read-Only Memory,ROM)、缓存(Cache)、硬盘(Hard DiskDrive,HDD)或者存储卡(Memory Card)。所述存储器可以用于存储计算机程序指令。网络通信单元可以是依照通信协议规定的标准设置的,用于进行网络连接通信的接口。

在本实施方式中,该计算机存储介质存储的程序指令具体实现的功能和效果,可以与其它实施方式对照解释,在此不再赘述。

显然,本领域的技术人员应该明白,上述的本申请实施例的各模块或各步骤可以用通用的计算装置来实现,它们可以集中在单个的计算装置上,或者分布在多个计算装置所组成的网络上,可选地,它们可以用计算装置可执行的程序代码来实现,从而,可以将它们存储在存储装置中由计算装置来执行,并且在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤,或者将它们分别制作成各个集成电路模块,或者将它们中的多个模块或步骤制作成单个集成电路模块来实现。这样,本申请实施例不限制于任何特定的硬件和软件结合。

应该理解,以上描述是为了进行图示说明而不是为了进行限制。通过阅读上述描述,在所提供的示例之外的许多实施方式和许多应用对本领域技术人员来说都将是显而易见的。因此,本申请的范围不应该参照上述描述来确定,而是应该参照前述权利要求以及这些权利要求所拥有的等价物的全部范围来确定。

以上所述仅为本申请的优选实施例而已,并不用于限制本申请,对于本领域的技术人员来说,本申请实施例可以有各种更改和变化。凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。

相关技术
  • 一种链路预测模型的建立及链路预测方法
  • 一种链路预测模型的建立及链路预测方法
技术分类

06120112985020