本发明属于社交网络分析领域,具体涉及一种基于虚节点和元学习改进社交网络对齐方法及系统。
背景技术:
随着互联网的快速发展,社交网络成为了人们生活和交友的重要组成部分。为了满足自己的需求,人们往往在多个社交网络平台上注册身份,而社交网络对齐是指在不同的社交网络平台中识别出同一用户。这一工作已经在工业界和学术界引起了广泛的关注,因为它在许多应用中存在重大影响,比如用户的行为预测,朋友推荐,身份验证和隐私保护
现有的这些工作大多需要依赖大量的标注信息来确保性能,通常是在跨社交网络平台中使用了大量的成对锚节点,使得非锚节点用户的邻域存在着多个锚节点信息,通过这种对多个锚节点的依赖关系达到了良好的对齐效果。然而在现实中,经常会出现锚节点较少的情况,非锚节点的邻域存在锚节点的概率很低,由于缺少这种依赖关系,对齐工作会变得非常困难。举例来说,gs和gt中是缺少训练锚节点的局部网络,其中x和y是一对锚用户,而用户x处于没有与锚节点直接相连的稀疏结构中,希望通过已知的gs网络结构,映射得到在gt中用户x的位置信息;但由于缺少锚用户,gs的用户y很容易对齐到gt中与用户y结构相似的其他部分中去。与此同时,由于现实中节点和对应边的结构往往是复杂且密集,很难在低维空间中区分一阶邻居和二阶邻居的关系,比如m节点是y的二阶邻居,i是它的一阶邻居,但是在m与x共享较多一阶邻居或网络结构更复杂的情况下,在低维空间中y很有可能离m位置更近。在做对齐任务的时候,由于不能有效的排除这种网络嵌入带来的干扰,这种干扰在学习映射函数之后可能会进一步扩大,导致在其他区间中产生错误对齐,将这种容易导致错误对齐的区间称为模糊区间。
技术实现要素:
为了解决上述问题,本发明提出一种基于虚节点和元学习改进社交网络对齐方法,如图1,具体包括以下步骤:
从多个不同的社交网络平台中获取同一用户,称为锚用户,并将与其存在社交关系的用户作为邻居用户,并将每个用户视为一个节点,定义社交网络中用户关注和被关注的概率模型;
对每个社交网络中的锚节点增加两条边,分别与两个虚节点彼此相连,虚节点也彼此相连,同时,虚节点也带有锚节点标签信息,也为锚用户;
利用加入虚节点之后的网络在图表示算法中进行向量表示计算,获取到稀疏的网络结构;
定义微调虚节点的表达式,通过聚合虚节点对应的锚节点周围节点的信息,再乘上权重矩阵,更新虚节点向量的位置;
在每一轮迭代中,对其他训练社交网络数据集中同样加入虚节点,并使用元学习对其他训练社交网络数据集中当前迭代下更新权重矩阵,并将更新后的权重矩阵,放入测试集中,保存此次计算中的损失;
进行k次迭代后,进行梯度下降处理,利用在训练集中获得的先验知识,得到的权重矩阵再做一次更新,得到当前迭代下测试集的最佳权重矩阵,并对虚节点向量进行更新;
更新后的虚节点向量加入对齐计算中,虚节点的向量能够使向整个社交网络在低维空间种的结构变得更稀疏,根据更新后的初始网络表示模型对待更新的局部网络中的所有用户进行用户对齐。
进一步的,用户关系概率模型的构建公式如下:
其中,p1(vj|vi)表示用户vi关注用户vj的概率;p2(vi|vj)表示用户vj被用户vi关注的概率;
进一步的,每个锚节点添加了两个带有训练锚节点信息的虚节点,虚节点会对锚节点和锚节点周围的邻居向量表示产生变化,其中加虚节点前表示为:
加虚节点后表示为:
其中,φ(a)表示锚节点a在低维空间中的向量表示,φ(b))表示锚节点a的二阶邻居b在低维空间中的向量表示,φ(c)表示锚节点a的一阶邻居c在低维空间中的向量表示,
进一步的,若虚节点为
其中,fpi(vi,w)为虚节点的微调向量。
进一步的,若更新虚节点的权重矩阵为w={w0,w1,...,wn},虚节点的微调向量fpi(vi,w)表示为:
其中,ui是锚节点,uj是锚节点ui对应的邻居,vi为当前采样的中心节点,nei(v)表示节点v的一阶邻居节点集合,n表示节点v的一阶邻居总数,w为权重矩阵,g(.)为激活函数。
进一步的,权重矩阵w表示为:
w=w-η1▽f(us)
其中,us指代的是训练集中不同的子任务s={s1,s2,...,sk},η1为学习率,▽f为梯度,f(us)为区分开锚节点和周围节点的损失函数,会在权利要求6中进行解释。
进一步的,区分开锚节点和周围节点的损失函数f(us)表示为:
其中,当跨社交网络中是同一个锚节点的时候,label为1,否则label为-1;
进一步的,测试集的总损失表示为:
其中,lquery为测试集的总损失,f(us)n表示每次计算过程中的f(us)保存下来进行求和得到的值。
进一步的,根据得到测试集的总损失lquery,进行梯度下降,利用对训练集进行梯度下降,并根据梯度下降得到的先验知识对权重矩阵再做一次更新,具体过程表示为:
w=w-η2▽lquery;
其中,η2是元学习更新所需要的学习率。
本发明还提出一种基于虚节点和元学习改进社交网络对齐系统,所述系统包括:
平台接口api,用于获取社交网络平台中的每个用户的社交关系;
模型建模模块,用于构造出社交网络平台的图网络,将社交网络用户作为图节点,将存在社交关系的两邻居用户作为图边;
添加虚节点模块,用于对每个社交网络中的锚节点,添加新的虚节点,每个锚节点与两个虚节点相连;
元学习训练集获取先验知识模块,用于通过训练集的先验知识训练,然后更新锚节点对应的虚节点向量,然后进行k次更新权重矩阵;
元学习测试集更新当前虚节点向量,用于上一步得到训练集的先验知识,作为测试集的初始值进行计算,更新虚节点向量。;
用户对齐模块,用于获取不同社交网络平台中的用户相似程度,对待对齐的局部网络中的所有用户进行用户对齐。
本发明通过跨社交网络分别添加成对虚节点,利用虚节点使得社交网络的向量表示空间变得更加稀疏,利用元学习通过不同的社交网络数据得到对齐所需的先验知识,在半监督环境下聚合锚节点周围邻居的信息来更新虚节点的向量,在跨网络环境下利用先验知识去更新测试数据中虚节点的更新方向,最后利用虚节点找到在对齐工作中的最佳位置;本发明可以改进利用图表示算法进行的社交网络对齐工作,从表示向量的本质出发,有效的改变了节点表示的训练方式,提升这些算法的准确率。
附图说明
图1是本发明的基于虚节点和元学习改进社交网络对齐方法流程图;
图2为本发明的基于虚节点和元学习改进社交网络对齐系统结构图;
图3为本发明的计算机设备的架构图;
图4为本发明所述新增虚节点和元学习过程对社交网对齐的影响图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明提出一种基于虚节点和元学习改进社交网络对齐方法,如图1,具体包括以下步骤:
从多个不同的社交网络平台中获取同一用户,称为锚用户,并将与其存在社交关系的用户作为邻居用户,并将每个用户视为一个节点,定义社交网络中用户关注和被关注的概率模型;
对每个社交网络中的锚节点增加两条边,分别与两个虚节点彼此相连,虚节点也彼此相连,同时,虚节点也带有锚节点标签信息,也为锚用户;
利用加入虚节点之后的网络在图表示算法中进行向量表示计算,获取到稀疏的网络结构;
定义微调虚节点的表达式,通过聚合虚节点对应的锚节点周围节点的信息,再乘上权重矩阵,更新虚节点向量的位置;
在每一轮迭代中,对其他训练社交网络数据集中同样加入虚节点,并使用元学习对其他训练社交网络数据集中当前迭代下更新权重矩阵,并将更新后的权重矩阵,放入测试集中,保存此次计算中的损失;
进行k次迭代后,进行梯度下降处理,利用在训练集中获得的先验知识,得到的权重矩阵再做一次更新,得到当前迭代下测试集的最佳权重矩阵,并对虚节点向量进行更新;
更新后的虚节点向量加入对齐计算中,虚节点的向量能够使向整个社交网络在低维空间种的结构变得更稀疏,根据更新后的初始网络表示模型对待更新的局部网络中的所有用户进行用户对齐。
如图2所示,本实施例给出了一种基于虚节点和元学习改进社交网络对齐系统,所述系统包括:
平台接口api,用于获取社交网络平台中的每个用户的社交关系;
模型建模模块,用于构造出社交网络平台的图网络,将社交网络用户作为图节点,将存在社交关系的两邻居用户作为图边;
添加虚节点模块,用于对每个社交网络中的锚节点,添加新的虚节点,每个锚节点与两个虚节点相连;
元学习训练集获取先验知识模块,用于通过训练集的先验知识训练,然后更新锚节点对应的虚节点向量,然后进行k次更新权重矩阵;
元学习测试集更新当前虚节点向量,用于上一步得到训练集的先验知识,作为测试集的初始值进行计算,更新虚节点向量;
用户对齐模块,用于获取不同社交网络平台中的用户相似程度,对待对齐的局部网络中的所有用户进行用户对齐。
基于上述,本发明还可以提供一种计算机设备,如图3所示,包括存储器和处理器,所述存储器存储计算机程序,所述计算机程序被配置为由所述处理器执行,所述计算机程序包括用于执行上述基于虚节点和元学习改进社交网络对齐的方法中各步骤的指令。
该计算机设备包括通过系统总线连接的处理器、非易失性存储介质、内存储器及网络接口。其中,计算机设备的非易失性存储介质存储有操作系统及计算机可执行指令,该计算机可执行指令用于实现本发明实施例中提供的基于虚节点和元学习社交网络对齐方法。该处理器用于提供计算和控制能力,支撑整个计算机设备的运行。计算机设备中的内存储器为非易失性存储介质中的操作系统及计算机可执行指令的运行提供环境,网络接口用于与其它的计算机设备进行网络通信。该计算机设备可以是手机、平板电脑、pc(personalcomputer)等终端,也可以是服务器等。本领域技术人员可以理解,图3中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定,具体地计算机设备可以包括比图中所示更多或更少的部件,或者组合某些部件,或者具有不同的部件布置。
下面将结合具体的实施例来对本发明进行进一步说明,如图4所示,gs和gt中是缺少训练锚节点的局部网络。其中x和y是一对锚用户,而用户x处于没有与锚节点直接相连的稀疏结构中,本实施例通过已知的gs网络结构,映射得到在gt中用户x的位置信息,但由于缺少锚用户,gs的用户y很容易对齐到gt中与用户y结构相似的其他部分中去。与此同时,由于现实中节点和对应边的结构往往是复杂且密集,很难在低维空间中区分一阶邻居和二阶邻居的关系,比如一个节点m是y的二阶邻居,一个节点i是y的一阶邻居,但是在m与x共享较多一阶邻居或网络结构更复杂的情况下,在低维空间中y很有可能离m位置更近。在做对齐任务的时候,由于我能有效的排除这种网络嵌入带来的干扰,这种干扰在学习映射函数之后可能会进一步扩大,导致在其他区间中产生错误对齐,现有技术将这种容易导致错误对齐的区间称为模糊区间。
在对齐任务驱动的多网络节点表示模型中,如何充分考虑跨网络表示模型中不同的节点类型,从向量本质出发至关重要。针对以上挑战,本发明提出一提出一种减少模糊区间内的节点数量的方法,使得对齐更加准确。区别于传统算法,本实施例倾向于从向量的本质上解决问题。因此,本实施例采取了一种增加虚节点的方法,虚节点是原社交网络上不存在,而现在我们加入的虚拟节点,旨在弱监督的环境下,为跨用户对齐提供更有利的学习体系结构,每个锚节点与两个虚节点彼此相互关注,对应的两个虚节点之间也相互关注,不同社交网络中相同锚节点对应的虚节点是相同的,虚节点视为训练锚节点。与没有加虚节点时的网络结构相比,由于带虚节点与锚节点直接相连,锚节点向量会朝虚节点向量方向靠近,以保持邻近的关系。同样,这一影响也会传递给锚节点的一阶邻居,由于锚节点向量的移动,锚节点一阶邻居的向量也会朝锚节点的变化方向靠近一些。但是虚节点带来的这种影响随着距离增加是递减的,虚节点的高阶邻居很难受到影响;在低维空间中,锚节点和它的一阶邻居朝虚节点方向靠近,虚节点的高阶邻居节点周围的结构变得稀疏,有效地减少该区域的模糊区间内的节点数量。
本实施例提出的从多个不同的社交网络平台中获取同一用户,称为锚用户,并将与其存在社交关系的用户作为邻居用户,并将每个用户视为一个节点,定义社交网络中用户关注和被关注的概率模型;
对每个社交网络中的锚节点增加两条边,分别与两个虚节点彼此相连,虚节点也彼此相连,同时,虚节点也带有锚节点标签信息,也为锚用户;
利用加入虚节点之后的网络在图表示算法中进行向量表示计算,获取到稀疏的网络结构;
定义微调虚节点的表达式,通过聚合虚节点对应的锚节点周围节点的信息,再乘上权重矩阵,更新虚节点向量的位置;
在每一轮迭代中,对其他训练社交网络数据集中同样加入虚节点,并使用元学习对其他训练社交网络数据集中当前迭代下更新权重矩阵,并将更新后的权重矩阵,放入测试集中,保存此次计算中的损失;
进行k次迭代后,进行梯度下降处理,利用在训练集中获得的先验知识,得到的权重矩阵再做一次更新,得到当前迭代下测试集的最佳权重矩阵,并对虚节点向量进行更新;
更新后的虚节点向量加入对齐计算中,虚节点的向量能够使向整个社交网络在低维空间种的结构变得更稀疏,根据更新后的初始网络表示模型对待更新的局部网络中的所有用户进行用户对齐。
本实施例实现的社交网络对齐是指一个用户在不同社交媒体(微博、豆瓣、贴吧、知乎、twitter、facebook等)拥有不同的账号,通过不同社交网络平台中账号的各个特征,判断出来这些账号是否属于同一个用户,将社交网络平台中的用户作为图节点,将具有社交关系的两用户通过边的方式连接,这里的存在社交关系表示用户间存在关注与粉丝关系。
每个锚节点添加了两个带有训练锚节点信息的虚节点,虚节点会对锚节点和锚节点周围的邻居向量表示产生变化,本实施例中将添加虚节点前后向量的变化表示为:
加虚节点前表示为:
加虚节点后表示为:
其中,φ(a)表示锚节点a在低维空间中的向量表示,φ(b))表示锚节点a的二阶邻居b在低维空间中的向量表示,φ(c)表示锚节点a的一阶邻居c在低维空间中的向量表示,
若虚节点为
其中,ui是锚节点,uj是锚节点对应的邻居,通过一阶邻居向量和锚节点向量的均值乘以权重矩阵w,g是激活函数。
并根据上述得到的虚节点的微调向量fpi(vi,w)更新虚节点当前的向量,表示为:
其中,pi是虚节点当前的向量。
本实施例在更新图表示算法的时候,需要显示的区分开锚节点和周围节点,于是本实施例定义损失函数:
其中,当跨社交网络中是同一个锚节点的时候,label为1,否则label为-1;
将当前更新虚节点中的w,也就是更新本实施例中在当前迭代状态下,所需要的权重矩阵w:
w=w-η1▽f(us);
其中,us指代的是训练集中不同的子任务s={s1,s2,...,sk},η1为学习率,由此进行梯度下降更新w。
在训练集中学习到了本实施例需要的先验知识,把这个先验知识运用到测试里面,这个整个过程反复执行k次,并且保存每一次在测试集中的损失,进行求和,再k次迭代之后,得到损失的总和,表示为:
其中,lquery为测试集的总损失,f(us)n表示每次计算过程中的f(us)保存下来进行求和得到的值。
将得到的损失总和lquery,进行梯度下降,希望得到学习先验知识后,再测试集中当前状态下的最佳w,表示为:
w=w-η2▽lquery;
其中η2是元学习更新所需要的学习率。
根据上述得到的权重对虚节点向量进行更新,更新后的虚节点向量加入到网络对齐计算中,并根据更新后的初始网络表示模型对待更新的局部网络中的所用用户进行对齐,完成网络对齐。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。