一种在微博平台上识别机器人用户的方法

文档序号:6441303阅读:2361来源:国知局
专利名称:一种在微博平台上识别机器人用户的方法
技术领域
本发明涉及一种社交网络领域,具体地说,涉及的是一种在微博平台上识别机器人用户的方法。
背景技术
在*吐2.0时代,社交网络日益成为人们网络生活的重要组成部分,其中微博 (micro-blog)这种网络服务更是成为了最红火的概念。微博是一个基于用户关系的信息分享、传播以及获取平台,用户可以通过WEB、WAP以及各种客户端组件个人社区,以140字左右的文字更新信息,并实现即时分享。从国外的twitter到国内的新浪,对用户的技术门槛都很低,同时微博api的存在使得用户可以在各种移动终端上登录微博发布消息,这也加速了微博的发展。随着高速发展而来的是各种各样的问题,机器人账户、僵尸粉网络及其带来的内容污染和舆论误导等问题日益严重。国内外有众多的专家学者都开始研究机器人账户的检测和垃圾内容的过滤技术。微博服务提供商也建立了诸如IP检测、用户举报等检测机制来发现和限制这些恶意的账号。从用户的社会关系特征这个角度来看,一般的机器人用户的好友不会像正常人类用户那样形成若干个密集的节点集合。因此如果分析关系图的节点聚集情况,可以用来区分机器人用户和普通账户。

发明内容
本发明的目的在于针对目前微博平台上的机器人账号泛滥的情况,提出一种微博平台上识别机器人用户的方法,该方法区别于传统的用户举报等检测机制,这种方法是建立在分析用户的社会关系特点上,具有更高的主动性和精确性。为实现上述目的,本发明所述的微博平台上识别机器人用户的方法,包括以下步骤步骤1 利用已注册的账号登录微博;步骤2 综合目标用户的关注和粉丝列表页面,得到好友列表;步骤3 获得这些好友之间的关系矩阵,这其中包括获得好友和好友之间的关系以及交互系数K;步骤4 将得到的好友关系矩阵(包括交互系数K)作为Fruchterman-Reingold算法的输入参数,利用该算法绘制出好友社会关系图;步骤5 处理分析关系图得到节点密度分布矩阵matrix ;步骤6 利用步骤5得到的密度分布矩阵判断账户是否是机器人账户。上述步骤3中,需要通过步骤2得到的好友列表来获得用户好友之间的关系矩阵, 具体过程如下(1)对好友列表中的好友进行遍历;
(2)获取每个好友的好友列表;(3)将每个好友的好友列表中的人员和用户好友列表中的人员进行比较,得到每个好友和用户的共同好友;(4)对每一对好友建立一个3维向量,每一维分表代表用户A和B以及AB间的交互系数;(5)对每一个用户对,搜集用户之间的评论和@次数,计算交互系数K,K的值由基准值和浮动值两个部分组成,所述浮动值通过将评论数和@次数加权平均的方法计算得到。步骤4中,利用修改后Fruchterman-Reingold算法绘制出好友社会关系图,具体过程如下(1)初始化画布、万有引力系数、库伦系数、起始步长时间等参数;(2)获得步骤3中三位向量组成的关系矩阵;(3)按照关系矩阵的元素初始化节点列表和边列表,以及边的弹性系数,该边的弹性系数由交互系数K决定;(4)开始迭代;(5)计算每一个节点所受的合力,包括弹力、万有引力、库伦斥力;(6)计算节点受力后在步长时间内的速度变化和位移,更新每个节点的速度和位移信息;(7)计算系统的总动能;(8)判断迭代结束条件是否满足,即动能小于某个阈值或者迭代次数超过某个阈值,如果不满足返回(5),否则进行(9);(9)结束迭代,记录每个节点的最终位置;输出结果。本发明跳出传统的检测思路,利用用户的社会关系特点来发现机器人账号,通过微博搜集用户好友之间的关系信息以及交互信息,然后利用Fruchterman-Reingold算法绘制出关系图网络图,再分析图中节点的密度分布,利用这个信息来识别机器人和正常用户。本发明给出了一种基于社会关系信息分析的微博机器人账号检测方法。相比于传统的举报、ip检测等机制,拥有更高的主动性和精确性。


图1是本发明方法的流程图。图2是数据收集好友社会关系信息的流程。图3是获取交互信息并计算交互系数的流程图4是修改后的Fruchterman-Reingold算法的流程图。图5是分析节点密度分布的流程。
具体实施例方式下面对本发明的实施例作详细说明,本实施例以本发明技术方案为前提,给出了详细的实施方式和具体的操作过程,但本发明的保护范围不限于下述的实施例。如图1所示,本实施例的流程大致可以分为以下几个步骤
步骤1 利用已注册的账号登录微博;步骤2 综合目标用户的关注和粉丝列表页面,得到好友列表;步骤3 获得这些好友之间的关系矩阵,这其中包括获得好友和好友之间的关系以及交互系数K,矩阵由多个三维向量组成,每一维分别代表拥有好友关系的两个用户A和 B以及AB间的交互系数K;步骤4 将得到的好友关系矩阵(包括交互系数K)作为Fruchterman-Reingold算法的输入参数,利用该算法绘制出好友社会关系图;步骤5 处理分析关系图得到节点密度分布矩阵matrix ;步骤6 利用步骤5得到的密度分布矩阵判断账户是否是机器人。步骤1、2、3的过程如图2所示,需要注意的是,普通用户无法直接获取其他用户的好友列表,只能得到一个用户关注对象的列表和粉丝的列表。因此,可以看到图2中需要首先访问关注页面来获取关注的用户列表,再访问粉丝页面获取粉丝列表。同样,获取好友的好友列表也是需要两步来完成的,图2中综合成一步来表示。获取了好友列表和每个好友的好友列表后,开始遍历该用户的所有好友。将每个好友的好友列表中的元素和用户的好友列表中的元素进行比较,找出用户的好友之间互为好友的所有配对。然后计算每一个配对的好友的交互系数K。最后会输出一个三维的向量集合。每个向量的每一维分别代表好友对成员A好友对成员B和AB之间的交互系数。获取和计算交互系数K的具体过程在图3中可以看到,对于得到的每一个好友配对,有用户A和B。本实施例利用AB之间的评论和@的次数这两个信息来计算交互系数。 获取这些数据需要以下几个步骤,以获得A对B的交互信息为例首先遍历用户A所有的微博消息,统计其中@到用户B的情况有多少次;然后遍历用户B的所有微博消息,统计其中由A发出的评论的数量。然后同样统计B对A的这些信息。利用这些信息计算AB之间的交互系数K。这个交互系数K是作为Fruchterman-Reingold算法中物理引力的计算系数的, K的值会以某个常数为基准值浮动。上面提到的评论数和@次数将以加权平均的方法最后计算得到一个浮动值。即K = Kb+Kf。Kb的选取取决于库仑斥力系数,一般是和库仑斥力系数取相同的值,Kf的浮动范围在0 50% Kb,需要对加权平均之后的值进行归一化。步骤4的处理就是将步骤3得到的好友关系向量作为Fruchterman-Reingold算法的参数进行运算,绘制出好友社会关系图。Fruchterman-Reingold算法是一种基于力学的绘图算法,由T.M.J. Fruchterman和E.M. Reingold在1991年提出。传统的基于力学的绘图算法将弹簧模型和同种电荷相斥模型引入节点图的绘制将节点之间的边看做是拉伸的弹簧,会使两个节点相互靠近;同时引入节点之间的库伦斥力,使节点在离得很近时会因为斥力而分离。算法的大致步骤如下1)初始化一块固定大小的画布;将节点随机放置到画布中,并且初始化边。初始化所有节点的速度为0。2)开始迭代,计算每个节点受到的合力,包括所有其他节点对其产生的斥力和所有连接它的边产生的拉力。按照事先设定的“步长”,计算节点经过移动后的速度和位置,然后利用速度信息计算所有节点的动能总和。3)继续迭代,每次迭代都重新计算所有节点的位置和速度,得到动能总和。4)按照物理规律,节点的动能总和会在多次迭代之后趋于稳定,而节点的位置也将固定。根据预先设定的迭代次数。完成迭代以后我们会得到一个相对稳定的节点分布图。5)记录每个节点的最终位置,以坐标形式输出。传统的基于力学的绘图方法中,步长参数是固定的,这样做的缺点在于,无法确保系统最后是处于一个稳定状态。Fruchterman-Reingold算法引入了一个“环境温度”的概念,通过温度来控制步长变量,温度越高步长越低。初始温度较高,随着每次迭代的进行,温度会降低,最后系统将趋于稳定状态。本发明使用到的Fruchterman-Reingold算法,还引入了交互系数K的概念,即不同的边(可以看做弹簧)的弹力系数是不同的,交互性越强,弹力系数越强,这样可以使得交互性较高的节点能够靠得更近。修改后的Fruchterman-Reingold算法的流程如图4所示。具体过程如下(1)初始化画布、万有引力系数、库伦系数、起始步长等参数;(2)获得步骤3中三位向量组成的关系矩阵;(3)按照关系矩阵的元素初始化节点列表和边列表,以及边地弹性系数(由交互系数K决定);(4)开始迭代;(5)计算每一个节点所受的合力,包括弹力、万有引力、库伦斥力;(6)计算节点受力后在步长时间内的速度变化和位移,更新每个节点的速度和位移信息;(7)计算系统的总动能;(8)判断迭代结束条件是否满足(动能小于某个阈值或者迭代次数超过某个阈值),如果不满足返回(5),否则进行(9);(9)结束迭代,记录每个节点的最终位置。输出结果。步骤5是在步骤4的基础上分析节点的分布密度,其具体流程如图5。首先将画布划分为100块小块;然后遍历每个节点的坐标,判断它落在哪个分块中,将相应分块的节点数加一。完成遍历后统计每个分块的节点数量,得到密度分布矩阵,矩阵为一个10*10的二维矩阵,每个元素代表相应分块中的节点数量。步骤6通过分析步骤5得到的密度分布矩阵来判断账号是否机器人。首先根据预先设定的密度阈值,统计100个分块中有多少个分块的数量超过了这个阈值,计算得到密集块的数量;再根据设定的密集块数量阈值来判定用户是否是机器人,即数量高于阈值的为正常用户,低于阈值的为机器人用户。这种方法的思路有两点,首先,机器人用户的好友不会有明显的社会群体分布或者说形成密集的社会圈子;其次,就算是有,它的社会群体的数量也不会有正常用户那么多。利用这两个性质可以区分正常用户和机器人用户。尽管本发明的内容已经通过上述优选实施例作了详细介绍,但应当认识到上述的描述不应被认为是对本发明的限制。在本领域技术人员阅读了上述内容后,对于本发明的多种修改和替代都将是显而易见的。因此,本发明的保护范围应由所附的权利要求来限定。
权利要求
1.一种在微博平台上识别机器人用户的方法,其特征在于包括以下步骤 步骤1 利用已注册的账号登录微博;步骤2 综合目标用户的关注和粉丝列表页面,得到好友列表; 步骤3 获得这些好友之间的关系矩阵,这其中包括获得好友和好友之间的关系以及交互系数K,矩阵由多个三维向量组成,每一维分别代表拥有好友关系的两个用户A和B以及AB间的交互系数K;步骤4 将得到的好友关系矩阵,包括交互系数K,作为Fruchterman-Reingold算法的输入参数,利用该算法绘制出好友社会关系图;步骤5 处理分析关系图得到节点密度分布矩阵matrix ;步骤6 利用步骤5得到的密度分布矩阵判断账户是否是机器人账户。
2.根据权利要求1所述的在微博平台上识别机器人用户的方法,其特征在于步骤3中, 需要通过步骤2得到的好友列表来获得用户好友之间的关系矩阵,具体过程如下(1)对好友列表中的好友进行遍历;(2)获取每个好友的好友列表;(3)将每个好友的好友列表中的人员和用户好友列表中的人员信息进行比较,得到每个好友和用户的共同好友;(4)对每一对好友建立一个3维向量,每一维分表代表用户A和B以及AB间的交互系数;(5)对每一个用户对,搜集用户之间的评论和@次数,计算交互系数K,K的值由基准值和浮动值两个部分组成,即K = Kb+Kf,基准值Kb的选取取决于库仑斥力系数,Kf的浮动范围在O 50% Kbo
3.根据权利要求1或2所述的在微博平台上识别机器人用户的方法,其特征在于步骤 4中,利用修改后Fruchterman-Reingold算法绘制出好友社会关系图,具体过程如下(1)初始化画布、万有引力系数、库伦系数、起始步长参数;(2)获得步骤3中三位向量组成的关系矩阵;(3)按照关系矩阵的元素初始化节点列表和边列表,以及边地弹性系数,该边地弹性系数由交互系数K决定;(4)开始迭代;(5)计算每一个节点所受的合力,包括弹力、万有引力、库伦斥力;(6)计算节点受力后在步长时间内的速度变化和位移,更新每个节点的速度和位移信息;(7)计算系统的总动能;(8)判断迭代结束条件是否满足,即动能小于某个阈值或者迭代次数超过某个阈值,如果不满足返回(5),否则进行(9);(9)结束迭代,记录每个节点的最终位置;输出结果。
4.根据权利要求1或2所述的在微博平台上识别机器人用户的方法,其特征在于步骤 5中,具体如下首先将画布划分为100块小块;然后遍历每个节点的坐标,判断它落在哪个分块中,将相应分块的节点数加一,完成遍历后统计每个分块的节点数量,得到密度分布矩阵,矩阵为一个10*10的二维矩阵,每个元素代表相应分块中的节点数量。
5.根据权利要求1或2所述的在微博平台上识别机器人用户的方法,其特征在于步骤 6,具体为将每个分块的密度和预设的密度阈值比较,统计超过阈值的分块数量,然后将这个数量和预设的数量阈值进行比较,如果超过数量阈值,则说明用户符合正常用户的社会网络特点,否则是机器人账户。
全文摘要
本发明公开一种在微博平台上识别机器人用户的方法,通过分析用户好友的社会关系来区分正常用户和机器人用户。该方法获取用户的好友之间的关系信息和交互程度信息,利用Fruchterman-Reingold算法得到用户的好友关系网络图,通过分析关系网络图来鉴别机器人用户。本发明区别于传统的用户举报等检测机制,这种方法是建立在分析用户的社会特点上,具有更高的主动性和精确性。
文档编号G06F17/30GK102571485SQ20111041926
公开日2012年7月11日 申请日期2011年12月14日 优先权日2011年12月14日
发明者周异, 周曲, 杨小康, 林成峰, 陈凯 申请人:上海交通大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1