- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
社会网络问题中的算法
取决于所考虑的人群范围和关系的定义,社会网络,有时也称社交网络,可以多种多样。最熟悉的,是现实生活中的“熟人”关系,见面相互都能叫得上名字,用图来描述就很合适,如图1(a)所示。而微博博主之间的“粉丝关系”,不一定是互相的,用图来表示就不合适了,需要用有向图,如图1(b)所示。箭头方向就表达了粉丝关系的单向性。如果两个人互粉,如节点2和节点5,那么他们之间就有两条不同方向的边。
对矩阵概念陌生但对编程比较熟悉的读者,不妨就想像程序语言中的“二维数组”。在Python中可用二维列表或者numpy中的数组直接体现,如图2(a)中的矩阵用二维列表给出就是:
A=[[0,0,1,0,0,0],
[1,0,1,1,1,0],
[0,0,0,0,0,0],
[1,0,0,0,1,0],
[0,1,1,0,0,1],
[0,0,1,0,0,0]]
用A[i][j]訪问它的第i行第j列元素。有时候,为方便起见,也用矩阵(数组)的第i个行向量和第j个列向量来分别指代A[i][j],j=1,2,…,n和A[i][j],i=1,2,…,n。注意,它们分别都包含n个元素,视觉形象上对应数组的行和列。
我们要讨论的两个算法,其社会现实意义分别与社会网络中人们的“发言权”和“影响力”有关。为了体会这些说法的现实含义,不妨考虑下面这样一种情境。
设想在某中学的一个班里,学生们相处久了相互已经比较熟悉。现在要讨论某个话题,如生物多样性,或者校门口那一棵大槐树的高度。教师让每个学生分别填写表1,写出自己的姓名和2~5个认为对该话题比较有发言权的同学的姓名。
教师收上来这些纸条,你马上能意识到,她有了一个社会网络的数据,而且其中表达的关系是有方向性的:每个学生是其中一个节点,如果学生i在他的表中提到了学生j的名字,那么网络中就有一条从i指向j的边。例如,图3就是一次实际填报数据给出的结果。我们看到每个节点发出有若干指向其他节点的边(称为出向边),同时作为结果,每个节点也“收到了”若干来自其他节点的边。此处重点是,这种“入向边的条数(称为“入度”),不同节点很可能是不同的,反映了一个学生被其他学生“认可”的情况。
一般来说,针对一个话题,每个学生都会有自己的观点,有的坚实,有的飘忽,姑且称其为不同程度的“发言权”。而这种程度是被其他同学看在眼里,表达在上述表格中的。显然,这种发言权意味着某种价值,有高低。我们来介绍一种评估这种价值的计算方法。
按照填表时给学生的背景意义,我们可以理解,如果节点i的入度大于节点j的入度,大致可以说明更多的人认为i比j对当下话题更有发言权。也就是说,节点的入度可以是发言权高低的一种指示器。不过我们还想更进一步,认为一个人的发言权不光取决于有多少人认为他有发言权,还取决于认为他有发言权的人有多大的发言权。同时,若某人认可的人较多,他的分量体现在一个人身上应该较少。直觉上,这是有道理的。利用一些合理的直觉(尽管不一定能证明总是对的),形成启发式来指导计算,是利用计算机求解问题的一种基本策略。在本栏目前面的文章中我们已经看到过不少例子。在这种思想下,接着就要考虑两点,一是将启发式变成算法,二是在应用实践中检验。
下面就是解决这个问题的著名的PageRank算法,它通过迭代同时更新每个节点的值,直到收敛误差满足要求或达到某个预设的迭代次数。算法要点是:在迭代的每一轮,让每个节点将自己的当前值均分给出向邻居节点,同时将从入向邻居节点收到的当前值加和作为自己下一轮的当前值。图4给出一个示意。关注左边图中的节点v,它有3个入向邻居,每个有不同的出度。右边则是按照上述算法思想对v进行更新的公式。
不难想到,基于有向图中的连接关系,对每一个节点都可以写出一个类似但不同的公式来。假设有n个节点,通常令每个节点的初值为1/n,按照公式进行迭代,就是PageRank计算的过程。在我们前面设置的背景问题下,这也就是学生们对某一个问题的“发言权”的计算过程了。
不过,上面只是阐述了“算法思想”。落实到明晰的算法描述还需要做些整理。关键在于“按不同的公式同时更新每个节点的值”具体怎么实施。这里首先要解决的是不同公式的统一表达问题。
令v=(v1,v2,…,vn)为拟求的网络节点PageRank值的向量,其中每个vi对应一个节点。
为了体现算法思想中的“将当前值均分给出向邻居”,我们在网络图的邻接矩阵(A)基础上,用节点的出度除每一行,得到矩阵A。图2(b)就是对应图2(a)的例子。其中第3行有些特别,多出了一个“1”,待下面解释。现在重要的是可以看到,向量v左乘A,即v←vA,恰好就是按公式对所有节点的同时更新。为什么呢?请读者思考体会。
一般地,所谓一个n元行向量v=(v1,v2,…,vn)左乘一个nxn矩阵M,其中元素用mij表示,就是用
您可能关注的文档
- 社区社会实践的心得体会.docx
- 社区社会实践报告.docx
- 社区三八妇女代表发言稿范文.docx
- 社区群众主体活动方案.docx
- 社区全国爱耳日活动方案.docx
- 社区情人节活动策划方案.docx
- 社区清明节活动工作总结.docx
- 社区贫困证明.docx
- 社区母亲节有创意活动策划.docx
- 社区流动人口管理工作总结.docx
- 主题课程整理大班上.doc
- 2026人教版小学语文三年级上册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学语文四年级下册期末综合试卷3套(打印版含答案解析).docx
- 2026人教版小学二年级上册数学期末综合试卷精选3套(含答案解析).docx
- 2026人教版小学语文四年级上册期末综合试卷3套(含答案解析).docx
- 2026人教版小学二年级下册数学期末综合试卷3套(打印版含答案解析).docx
- 2026年地理信息行业年终总结汇报PPT.pptx
- 板块四第二十一单元封建时代的欧洲和亚洲 中考历史一轮复习.pptx
- 中考历史一轮复习:板块四第二十单元古代亚、非、欧文明+课件.pptx
- 第二次工业革命和近代科学文化中考历史一轮复习.pptx
原创力文档


文档评论(0)