一种基于种子节点传播的社交网络间用户身份识别方法与流程

文档序号:12888001阅读:510来源:国知局
一种基于种子节点传播的社交网络间用户身份识别方法与流程

本发明属于社交网技术领域,涉及一种基于种子节点传播的社交网络间用户身份识别方法。



背景技术:

社交网络间用户身份识别是当前研究热点,它是指识别同一用户在不同社交网络中的账户,寻找一种有效便捷的方法来解决该问题在很多领域都有应用价值。比如在网络安全方面,垃圾邮件发送者侵入到每一个社交网络并严重损坏了用户的体验,他们往往会在不同社交网站创建多个帐户,而身份识别技术可以帮助标记在不同社交网络中相同的垃圾邮件发送者,我们只要在某一个网络中识别出他们就可以将它们在各个网络的子账户都处理掉。同时该问题在合并通讯录,广告推荐上都有着重要的意义。传统上,身份识别方法都是基于字符串的属性匹配来进行的,通过计算各个属性的字符串相似度以及多个属性间组合的字符串相似度。这种方法简单直接,但是由于用户和网站会保护个人隐私,因此我们常常很难获取很多详细的属性,而且各个网站数据格式不统一,只依靠用户属性信息的进行字符串匹配很难取得良好的效果。

本发明提出了基于种子节点的扩张的社交网络间用户身份识别方法imp算法,该算法同时充分考虑了用户的属性信息,好友链接信息和社交行为的信息。(1)我们提出了用户亲密度概念用于衡量在同一网络中两个好友之间的亲密程度,传统的方法比如cn指数,jc指数,都是只考虑共同好友数目,而我们定义了链接亲密度则充分考虑了不同的共同好友对两个用户的影响。(2)我们根据用户平时在社交网络中产生的各种社交行为提出了环境亲密度,它能反映出用户平时使用社交网络的一些社交习惯以及常用的联系人,以此更真实的描绘出用户的社交行为亲密度。(3)我们根据如果两个人在现实中是朋友,那么他们在每个社交网络中也很可能是好友关系,因为社交网络的关系经常是现实关系的一个映射这一理论基础。提出了一个基于种子节点传播的算法。他可以不断地访问种子节点的邻居节点,并把匹配的节点对加入到生成的种子节点集合中,并逐步的遍历所有节点。



技术实现要素:

本发明基于种子节点传播,提出一种社交网络间用户身份识别方法。算法的理论基础是如果两个人在现实中是朋友,那么他们在每个社交网络中也很可能是好友关系,因为社交网络的关系经常是现实关系的一个映射。所以种子节点可以帮助我们识别它周围的邻居节点。如果一个节点和一个种子用户节点是好友关系(相邻节点),那么他更有可能被识别出来。而且这个节点在另一个网络中的对应账户应该也与这个种子节点是好友关系,即使他们不是好友关系,他们的距离也不会太远。根据这个理论,我们从一个种子节点出发,不断选择与他相邻的节点,通过使用逻辑回归的方法,比较他们与另一个网络间节点的属性相似度与环境相似度,我们可以识别出一些节点,并把他们加入到新生成的种子节点的集合中。随着种子节点的扩张,我们可以在种子节点周围逐步地发现越来越多的匹配的节点对。

一种基于种子节点传播的社交网络间用户身份识别方法,包括账号选择、账号匹配和交叉验证,步骤如下:

(1)节点选择阶段:在种子节点相邻的节点中选择亲密度最高的节点作为待匹配节点;

首先提出三个概念,即节点的人气值、节点间的链接亲密度和社交亲密度。

节点的人气值是用来评估一个人在网络中活跃度,简记为pp;节点u的人气值表示为

其中,f(u)是节点u的好友集合,节点i是节点u的一个好友,即节点u的相邻节点;deg(i)表示节点i的好友数量;

节点间的链接亲密度为在链接关系方面表示两个好友之间熟悉程度,简记为pc;节点u和节点v的链接亲密度表示为

其中,w是一个虚拟的节点,且他的好友是节点u和节点v的所有共同好友,pp(u)和pp(v)表示节点u和节点v的人气值;

节点间的社交亲密度为在社交行为上表示两个好友之间的熟悉程度,简记为spc;节点u和节点v的社交亲密度表示为

其中,cuv代表着节点u和节点v的互动次数;f(v)表示的v的好友集合,j是v的一个好友,i是u的一个好友;

已知一个种子节点即预先知道的匹配的节点对集合ar,首先计算两个网络中的每个节点与他们最近的种子节点的亲密度评分;接着将对两个网络中的节点按照元组的亲密度得分降序排列得到一个待匹配节点集合s,并返回排在最前面的节点作为待匹配节点vselect;

(2)节点匹配阶段:使用逻辑回归的方法找到对应的匹配节点

在得到步骤(1)节点账号选择过程中返回的待匹配节点vselect后,使用逻辑回归方法进行匹配;逻辑回归模型是一个用于解决二分类问题的分类器,其结果只能取两个值0和1;因此,建立一个多社交网络节点身份识别的分类器;其中分类器的输入是一对不同社交网络节点拥有的一些属性特征,如果两个网络节点是指向同一个真实节点的话,输出为1,否则为0;将各个特征相似度作为分类器特征的输入,得到该节点vselect对应的匹配节点vmatched;

(3)交叉验证阶段:通过交叉匹配算法验证步骤(2)得到的节点是否是最终的匹配节点

在步骤(2)得到匹配节点vmatched的结果后,采用交叉匹配算法进行验证;交叉匹配算法的步骤为:在步骤(2)中得到一个待匹配节点vselect的匹配节点vmatched时,再将vmatched作为步骤(2)的输入,得出一个新的匹配结果vmatched',如果vmatched'与原来的待匹配节点vselect是同一个节点,则匹配成功,将该结果(vselect,vmatched)加入到种子节点集合ar中,并返回步骤(1),重复步骤(1)-(3)直到所有待匹配节点集合s中的节点全部匹配完毕;反之,则失败,将该vselect节点从待匹配节点集合s中移除,并返回步骤(1),重复步骤(1)-(3)直到所有待匹配节点集合s中的节点全部匹配完毕。

本发明的有益效果在于,提出了一种新的社交网络间身份识别处理方法。该方法使用了一种种子节点扩张的传播模型,同时充分考虑了用户的属性信息,好友链接信息和社交行为的信息,有效的实现了社交网络间身份识别方法。

附图说明

图1是本发明方法的总体流程图。

图2是本发明方法的网络结构模型图。

图3是本发明方法和其他方法对社交网络间用户身份识别的实验结果。

图4(1)是不同失衡率对召回率的影响结果图。

图4(2)是不同失衡率对精确度的影响结果图。

图4(3)是不同失衡率对f1值的影响结果图。

具体实施方式

以下结合附图和技术方案,进一步说明本发命的具体实施方式。

(1)关键定义

我们在匹配的时候使用了多种信息,我们首先阐述下这些信息的具体内容。

1)个人属性相似度

个人属性相似度是通过某种方式将各个属性结合起来进行计算,并使其结果落在[0,1]的区间内。

我们将用户属性记为pi,pi=(f0,f1,...,fn),其中fj为用户i的第j个属性,将用户i,j之间属性的相似度用si;j表示,其中si;j=(s0,s1,...,sn)。我们使用vmn算法计算每种属性的相似度得分。现在我们决定用机器学习的方法来获取属性的相似度。

这是一个典型的二分类问题,以区分正确的和不正确的匹配对。而我们的任务是选择一个合理的分类器,得到每个属性对相匹配的可能的概率值。在此分类模型,分类器用向量si;j作为输入并输出每个属性对相匹配的概率值,即pas。我们定义为pas:

pas(pi,pj)=h(si,j)(a)

我们采用有监督的矩阵分解的方法。这样我们可以捕获更多的信息,并获得更好的结果。

目标函数如下:

2)人气值

人气值是用来评估一个人在网络中活跃度。我们用pp来表示,且

其中f(u)是节点u的好友集合,i是u的一个好友。deg(i)表示i的好友数量。

根据这个公式,我们可以发现,如果你有一个好友,并且这个好友的好友数量很少,那么说明你对这个好友很重要,而这个好友将会为你的人气值增加很多的得分。而如果你的好友中有个人好友数量特别多,那么只能说明这个好友很爱社交,并不能说明你们的关系很重要,因此这个好友并不会为你的人气值增加太多得分。

3)链接亲密度

主要在链接关系方面表示两个好友之间熟悉程度。我们简记为pc。且

其中w是一个虚拟的节点,且他的好友是节点u,v的所有共同好友,如果u,v的共同具有很高的人气值,w的人气值也就不会太高,u,v也就有较低的亲密度,而total则是节点u,v的全部好友数。

根据这个公式,我们发现,如果u,v的共同好友都有较少的好友,则他们一定很熟悉,而如果他们的共同好友都有很多的好友,则他们并不一定很熟悉,更可能是通过一些很活跃的用户成为好友。

4)社交亲密度

主要在社交行为上表示两个好友之间的熟悉程度。

当我们使用社交网络时,我们看到别人发出的一条微博,并认为把这条微博很好的时候,我们常会转发或者评论这条微博来表达自己的意见,又或者,当我们写出某条微博并强烈希望某人能看到时,我们会使用@功能来提醒他阅读。这些源自于两个社交用户的正常社交行为,因此我们可以通过这个来统计两个好友之间在社交行为上的亲密度。

我们简记为spc。且

其中cuv代表着用户u和用户v的互动次数。f(v)表示的v的好友集合,j是v的一个好友,i是u的一个好友。

(2)具体流程

我们方法的最终目的在于准确的找出尽可能多的匹配账号,本文中将种子节点的识别分解成逐步迭代求取的过程,而在每一步迭代的过程里,算法的计算过程又分解成账号选择,账号匹配和交叉匹配的子步骤,每一个步骤里我们根据贪心策略选择最优结果作为子步骤的解,积累每次迭代得到的结果,从而最终得到结果集合。具体模型如图2所示,aris,vis等上面5个点为社交网络s的节点,arit,vit等下面6个点为社交网络t的节点,其中aris,arit为种子节点,是已知的已经匹配好的节点。(v1s,v1t)(v3s,v3t)(v4s,v4t)为3组匹配的节点,其余节点不匹配。

1)账号选择

算法每一次迭代运行的第一个步骤就是两个网络中选择出一个节点,该节点有这样一个特性,就是最有可能在另一个网络中存在匹配的节点。选择这个节点的规则基于以下两点假设:a.如果在不同社交网络中的两个节点的属性有着较高的属性相似度,那么它们很有可能是属于同一个人的。b.一个节点,如果他的关系环境评分比较高,那么它在另一个社交网中更有可能存在一个匹配节点,所以他应该被选中。

节点选择算法过程就是基于这两点假设产生出一个候选匹配节点。在节点选择算法中,未匹配队列包含的节点,是在之前的迭代过程中被选中了但并未能成功匹配的节点。我们首先为两个网络中的每个节点计算他们的关系环境评分,基于这样一个事实,就是每一步计算的结果都会被保存,所以只有与最新产生的匹配节点的节点亲密度需要被计算。首先为两个网络中的每个节点计算他们与最近的种子节点的亲密度评分。接着算法将会对两个网络中的节点账号集合,按照元组间的亲密度得分降序排列,并返回得分最高的节点作为我们的待匹配节点vselect。

2)节点匹配

逻辑回归模型是一个用于解决二分类问题的分类器,其结果只能取两个值0和1。因此,我们可以建立一个多社交网络用户身份识别的分类器。其中分类器的输入是一对不同社交网络节点拥有的一些属性特征,如果两个网络节点是指向同一个真实用户的话,输出为1,否则为0。0也称为负类,1称为正类。我们的算法也是是基于此模型。逻辑回归基于假设函数hθ(x),即

方程式g称为逻辑函数或sigmoid函数。x=(x0,x1,…,xn)是表示社交网络中用户的内容属性和行为属性的n维向量。θ=(θ0,θ1,…,θn)也是n维向量,其表示对应于x的参数。我们做出以下定义:x=(x0,x1,...,xn)是用户的属性向量,则如果hθ(x)=0表示这一对用户不是指向同一真实用户,否则hθ(x)=1表示这一对用户是相互匹配的。显然,hθ(x)∈{0,1},这完全符合需要。给定逻辑回归模型和训练数据,我们需要做的下一步是找到模型的适合θ。众所周知的方法通过最大似然度拟合参数。对于逻辑回归模型,损失函数j(θ)为

然后我们可以使用已经标记好的数据来训练模型,这样问题就转化为找到最优参数θ=(θ0,θ1,…,θn)使得损失函数j(θ)最小。梯度下降法是解决寻找最优化参数问题的一种很好的方法。首先,我们根据设置合适的初始参数矢量θ0,阈值ε,最大迭代步长m和学习速率α。那么如果没有达到阈值要求或者没有达到最大步长m,则迭代继续。通过这种方法,我们将找到一个局部最优解。我们可以改变初始参数矢量θ0,最终得到全局最优解。

我们在实际实验中主要使用的特征是用户属性相似度,和节点环境相似度。其中环境相似度通过分别计算两个要匹配的点到各个种子节点的亲密度(包含链接亲密度与社交亲密度),再计算这些向量的cosine值,即可得到环境相似度。这一过程返回匹配节点vmatched。

3)交叉验证

考虑到种子节点的重要性,关系到接下来的识别过程,由于新的节点选择和匹配过程,都需要参考已有的种子节点,根据与已有种子节点的关系来进行决定最终的评分。因此一个错误的种子节点将会对接下来的迭代过程造成误导,并且这种坏的影响会不断积累导致算法失败。因此我们需要一个方法来保证我们每个产生的种子节点的准确性。

在步骤2)得到匹配节点vmatched的结果后,我们对它采用交叉匹配算法进行验证。交叉匹配算法的步骤为:在步骤2)中得到一个待匹配节点vselect的匹配节点vmatched时,我们再将vmatched作为步骤2)的输入,得出一个新的匹配结果vmatched',如果vmatched'与原来的待匹配节点vselect是同一个用户,则匹配成功,将该结果(vselect,vmatched)加入到种子节点集合ar中,并返回步骤1),重复步骤1)-3)直到所有待匹配节点集合s中的节点全部匹配完毕。反之,则失败,将该vselect节点从待匹配节点集合s中移除,并返回步骤1),重复步骤1)-3)直到所有待匹配节点集合s中的节点全部匹配完毕。

(3)实验结果

1)数据集

我们使用的数据集是由我们在twitter和facebook上爬取的数据集。我们之所以选择这两个社交网络是因为他们是全球最流行的两个社交网站,而且我们所收集到的信息都是在网上公开的,不涉及个人隐私的。在facebook上,总共有1433个用户,并存在14021个链接,并发出了273098个消息。而在twitter上共有1012个用户并存在8502个好友链接,并发出了153614个推文。需要注意的是,因为在facebook中,好友关系是双向的,而在twitter中,没有好友关系,只有粉丝这种单向的链接关系,所以我们这里只选取了用户间的双向的链接关系,即两个用户“互粉”的情况。如果两个用户只是单向的粉丝关系,我们会对这种链接关系进行忽略。并且这个数据集中总共存在357个相匹配的用户。

样本的数据集中每个用户的属性都只有3个,即姓名,昵称和个人网站的主页。我们可以在facebook上收集到很多属性信息,比如家乡,学校等信息,但是在twitter上,我们都能收集到的信息比较少,因此我们选择了只收集这些两个网站共有的信息。其中,在匹配姓名与昵称时,我们采用vmn算法计算相似度,而在匹配个人网站主页时,我们采用基于完全匹配的方法。

表1实验数据

2)评价指标

我们使用传统的召回率和精确度来评价我们的算法:

召回率:

精确度:

其中,tp指的是我们成功匹配到的节点,fp指的是我们错误匹配的节点,fn指的是我们没有发现的可以被匹配到的节点。

我们同时还使用f1-score进行评价。它是ir(信息检索)领域的常用的一个评价标准,公式为:

3)对比算法

实验中我们采用5-折交叉验证的方法来进行实验,即轮流使用4组用作训练集剩下的1组用作测试集。在每次实验时,我们随机使用10组种子节点作为我们算法的起始。

在本实验中,我们主要采用4种算法与我们算法进行对比,第一种是jla算法,该算法结合属性与链接两种信息,很好地解决了局部网络的身份识别问题,第二种算法是mobius算法,该算法可以看作是一种传统的基于属性匹配的算法,第三种算法是传统的有监督的算法,第四种算法则是imp算法的变种,分别是省去某些特征的精简版的imp算法。

(1)jla:它的全称是jointlink-attributeuseridentityresolution,这是一种基于条件随机域的一种算法。它结合了用户信息属性与链接属性来解决一种局部网络的中的身份识别。算法基于的假设是有一个不擅长社交的好友(拥有较少好友)比有一个擅长社交的好友更容易帮助定位用户。

(2)mobius:它的全称是modelingbehaviorforidentifyingusersacrosssites,它是一种传统的基于属性匹配的算法。它从属性中提取出了多种特征,例如:语言模式,姓名前缀。因为在我们的数据集中,所收集到的属性数据只有姓名,昵称和网址3种,所以一些更为复杂的基于属性匹配的模型也很难取得更好的效果。

(3)监督学习模型:对于身份识别问题,监督学习模型一直是一个很热门的方法,但是之前的一些监督学习模型在寻找特征时,主要使用一些地理位置信息,文章主题信息等一些数据量很大并且是某些网站独有的信息,这在我们的数据集上是很难获取的,至于链接信息,他们主要使用的还是最基础的cn,jc,aa等信息。根据以前的研究工作可知,训练集中匹配用户和非匹配用户的数量大致相等时效果已经很好,因此我们设定了3种比例2:1,1:1和0.5:1,简记为sl0.5,sl1,sl2。

(4)不完整版的imp算法:我们会将我们的算法依次删去一些部分,这样与我们的算法相比,就可以看出每部分的重要作用。imp_1:不含有亲密度的算法,只使用属性和环境亲密度来进行匹配。imp_2:不含有环境亲密度的算法,只使用属性和亲密度来进行匹配。imp_3:只使用属性相似度来进行匹配,这个和传统的方法比较类似。imp_4:不使用交叉验证方式,虽然在匹配的时候使用的信息都是完整的,但是因为在匹配过程中,没有了一一对应的限制,很可能导致多个用户匹配到了某个用户,这会使得生成的结果会有很多错误的答案。

实验结果如表2所示,并使用召回率,精确度,f1-measure等评价标准来评判。

对比jla:从表中我们可以看出,jla的算法并没有取得良好的效果,这是源于jla是应用于ego-network这个小型网络上的算法,当网络结构稍微扩大,数据就变得多了,jla提出所依据的理论基础考虑的情况就不够全面了,因此没有取得较好的效果。

对比基础的有监督学习算法:可以看出有监督模型效果并不十分理想,因为数据较少,没有时间地理位置等信息较为明确的数据,而且他使用的连接信息只是最基础的cn,jc,ra,在匹配时,这些数值没有显著地差异来作为判定标准,因此很难取得好的效果。

对比imp_1,imp_2,imp_3:与这3种自己算法的变种进行比较,可以看出我们提出的亲密度,环境亲密度与社交因素的重要性。其中imp_3与mobius结果相似,也说明我们的属性特征较为简单,各种基于属性的匹配方式的算法取得的效果大致相同。

对比imp_4:不使用交叉匹配的验证方式实现了最高的召回率,然而这却是在以牺牲准确率为代价,虽然在匹配的时候使用的信息都是完整的,但是因为在匹配过程中,没有了一一对应的限制,很可能导致多个用户匹配到了某个用户,这会使得生成的结果会有很多错误的答案。

表2实验结果

图3展示了各个算法的匹配结果,可以发现和基准算法相比,我们的算法不论是从召回率还是准确度上都具有很大的优势。

4)改变失衡率对结果的影响

失衡率是指集合中不可匹配的节点与可匹配的节点的比例,在这轮实验中,我们每次都改变失衡率,并与jla和mobius两种算法进行比较。图4展示了改变失衡率对匹配结果的影响,随着失衡率的升高,匹配结果越来越糟糕,可以发现,可匹配节点所占比重越大,我们越容易得到好的结果。

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