微博是一个很多人都在用的社交应用。天天刷微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中,前四个是针对短博文,最后的关注和@则针对的是用户之间的关系,关注某个人就意味着你成为他的粉丝,而他成为你的好友;@某个人意味着你想要他看到你的微博信息。
微博被人们认为是“自媒体”,即普通大众分享与本身相关的“新闻”的途径。最近,有些人使用自己在自媒体上的影响力而盈利的报道屡见不鲜。那微博上个人影响力是怎样计算的呢?微博上还有哪些算法作为看不见的手在管理着我们?我们的每一个行为怎样影响着算法呢?
直观上看,微博其实是人类社会的一个简单的缩影,微博网络的一些特点,也许可以启发我们得到真实的社会网络上的规律。得益于社交网络的爆发式发展,“社会计算”尤其是社交网络分析成为数据挖掘的新宠儿。下面我们就针对微博网络分析的一些算法进行简单的介绍,其中的有些算法对于其他的社交应用可能也适用。
标签传播
微博用户量浩大,不同的人有不同的兴趣。挖掘每个用户的兴趣有助于更加精准的广告投放、内容推荐。为了得到每个用户的兴趣,可以为用户打上标签,每个标签代表用户的一个兴趣,用户可以拥有一个或多个标签。
为了得到最终的用户标签,先做第一个假设:
每个用户的好友(或粉丝)中与该用户具有相同兴趣的人占多数。
这就引出了本文介绍的第一个算法,即标签传播算法。在这个算法中,每个用户的标签取其好友或粉丝中标签最多的一个或多个。当然,可以将好友和粉丝的标签都考虑进来,整合的时候可以考虑赋予好友的标签和粉丝的标签不同的权重。
标签传播算法的过程如下:
对一部分用户给出初始标签;
对每一个用户,统计其好友和粉丝的标签数目,赋予该用户出现次数最多的一个或者多个标签。
循环进行第2步,直到用户的标签不再发生大的变化为止。
用户相似度计算
标签传播算法实现起来比较简单,其缺点在于当所做的假设不符合事实时,比如为了社交上的礼貌,我们一般会把自己的亲友添加关注,这些人不一定和我们拥有同样的标签;该算法的结果就会变得很差。解决的办法就是通过计算用户之间的相似度来衡量好友或粉丝的标签对用户标签的贡献率。因而得到第二个假设:
与用户越相似的好友或粉丝,其标签越可能是用户的标签。
那么,如何衡量用户之间的相似度呢?这就需要考虑到用户发表的微博信息了,包括转发的和原创的。这里是要考虑用户之间的相似度而不是用户微博之间的相似度,因而在实际计算时,将某个用户的所有微博信息聚集到一起进行计算。一个可选的方法是使用词袋法将微博信息表示成词语向量,然后直接使用余弦方法等计算其相似度。但这个方法太过简单,不容易达到好的结果,这里介绍一种基于LDA(隐含狄利克雷分布)的相似度计算方法。
LDA仍然使用词袋法表示文本,但是在中间添加了一个主题层,形成了“文档-主题-词语”三层概率模型,即每篇文档看成是主题的一种概率分布,主题又被看成是单词的概率分布。在LDA模型下,文档可以被看成按照如下方式生成:
对于每篇文档:
从主题分布中抽取一个主题;
从该主题的词语分布中抽取一个词语;
重复第2步和第3步,直到该文档的所有词语都生成。
LDA模型参数的估计算法不在本文的讨论范围之内。这里只需要知道,通过LDA可以得到每个用户的微博信息的主题分布。然后使用余弦方法、KL距离等计算相似度的方法来得到用户间主题分布的相似度,以之作为用户之间的相似度。而后使用该相似度对标签传播进行加权。
时间因素和网络因素
上述的算法还有什么缺点呢?
随着时间的变化,用户的兴趣是会变化的,计算用户相似度的时候每次都把所有微博信息都聚合在一起不太合理。对此,可以通过选取距离当前时间较近的N条微博。比如,对每个用户,选取距离当前时间最近的50条微博聚在一起放到LDA中训练。此处的N既不能太大也不能太小。太大则不容易反映用户兴趣的时间变化,太小则由于用户发表微博的随机性容易引起兴趣的漂移。为了使效果最好,可以不拘泥于一个固定的N,比如可以考虑对每个用户按照其发表微博的时间序列做N值的自适应。
至此,在算法中还没有考虑微博关系中由回复、转发、@等所构成的网络信息。以转发为例,如果在用户的微博中频繁的转发某个好友的微博,那么用户和该好友的相似度相比其他好友来说应该会更高。这里可以看做是假设三:
用户转发某好友的微博的频率越高,用户与该好友的兴趣相似度越大。
相似的,可以得到假设四:
用户微博中@某用户的频率越高,用户与该好友的兴趣相似度越大。
由此就得到了计算相似度的另外的因素。有很多方法可以添加一个新的因素到原有的相似度计算方法中,比如可以考虑将转发频率量化为值,作为权重添加到相似度的衡量中去。
社区发现
微博社区是指在微博中关系紧密的人组成的团体,社区内部的人之间联系紧密,社区之间的联系则比较稀疏。这里所指的关系紧密有两层含义,第一是社区内部的人之间的兴趣相似度大;第二是指社区内部的人之间的关系要近,比如要求社区内部的两个用户不能超过二度关联,二度关联即好友的好友。
兴趣相似度在上文已有叙述,关系相似度则需要利用用户之间的关注关系来进行计算。以用户的关注关系为单向链,可以将所有的微博用户之间的关系表示为一个巨大的有向图。用户之间的关系相似度可以简单的考虑,比如使用用户间的最短路径的倒数。但是这种方法衡量的不精确,我们知道,在现实世界中,存在着六度理论,在微博网络及其他社交网络中,往往关系会更加紧密。因而这种简单的关系相似度只能有至多六个离散值,显然不够精确。
为了达到更好的效果,这里不仅以最短路径作为显式量度,还要考虑一些隐式的量度。这里先给出两个假设,分别为假设五和假设六:
两个用户的共同好友越多,这两个好友的关系相似度越高。
两个用户的共同粉丝越多,这两个好友的关系相似度越高。
这里可以借鉴Jaccard相似度的计算方式,将这两种假设的量化函数表示为交集的大小与并集的大小之商。以假设五为例,其量化指标又被称为共指向性相似度,量化时使用两个用户共同好友的数目除以两个用户所有好友的数目。假设六的量化指标被称为共被指向性相似度,计算方式与共指向性相似度类似。从意义上讲,这两种相似度不仅仅是关系上的度量,在一定程度上也衡量了用户之间的兴趣相似程度,直观上看,两个用户共同关注的好友越多,他们的兴趣相似程度也越大。这两种相似度还有一个专业的名字,是基于结构情景的相似度计算。
得到了最短路径相似度、共指向性相似度、共被指向性相似度后,可以采用一种加权函数将它们融合起来,得到最后的相似度。之后,可以采用一些聚类算法如K-Means、DBSCAN等进行聚类操作,得到最后的社区簇。也可以采用相似度加权的标签传播算法,把具有相同标签的人作为一个社区。
影响力计算
在社区发现中,使用微博中的关系网络可以提高相似度计算的精确度。但关系网络能做的事情还有很多,影响力计算便是其中比较重要的应用。
说到影响力的计算,这里借鉴了网页排名中的算法。网页排名中广为人知的算法当属PageRank了,该算法由google创始人拉里·佩奇和谢尔盖·布林发明,随着google在商业上的成功而声名鹊起。该算法根据网页之间的链接来确定网页的排名,其核心在于一个假设,质量高的网页所指向的网页的质量必定也高。
根据PageRank的思想,可以得到微博上影响力的假设,称之为假设七:
影响力高的用户关注的用户的影响力必定也高。
将用户看成是PageRank中的网页,将关注关系看做是网页中的链接关系。从而,可以根据PageRank的算法流程得到在微博关注网络上的影响力计算算法:
赋予所有用户相同的影响力权重;
将每个用户的影响力权重按照其关注的人数等量分配;
对每个用户来说,其影响力等于其粉丝分配给他的权重之和;
第2步和第3步迭代,直到权重不再发生大的变化为止。
在网页排名中,基于网络关系的算法还有HITS、HillTop算法等,这些算法也可以借鉴到影响力计算中来。
上面的算法有什么缺点呢?
如果只是基于关系网络的话,那么很容易就造成,粉丝数目多的人影响力必然会很高。这样就导致有些用户去购买一些僵尸粉就可以达到很高的影响力了。这样的算法显然是不能应对实际情况的,因为还有太多的信息没有用到。
用户的影响力除了他的微博关系之外,还与他的个人属性有很大的关系,比如用户的活跃度、微文的质量等。用户的活跃度可以使用其发表微博的频度来衡量,微文的质量可以采用其被转发的数目、被回复的数目来得到。通过对这些值进行衡量,再加上上面算法的结果,就可以得到更加精确的影响力结果。
当然,也可以这样考虑,用户之间的回复关系、转发关系、@关系均可以构成网络,它们也有相应的假设,分别为假设八、假设九、假设十:
影响力越高的用户回复的微博的影响力越高,从而使该微博主人的影响力变高。
影响力越高的用户转发的微博的影响力越高,从而使该微博原创作者的影响力变高。
影响力越高的用户倾向于在其微博中@影响力高的用户。
这样就又得到了转发网络、回复网络、@网络三种网络,借鉴PageRank算法,可以得到另外的三种影响力结果。将它们与关系网络的影响力结果进行融合,就可以最终的影响力结果了。这里的融合可以简单的考虑成结果的加权和,复杂的融合方法不在本文的范围之内。
话题因素和领域因素
得到了影响力的计算方法之后,可以做些什么呢?
可以对当前的热点话题进行影响力分析,得到谁在微博上成为当前热点话题的意见领袖。具体做法是这样,找到和当前热点话题相关的微文,从而找到参与当前热点话题的用户。如何找到和当前热点话题相关的微文呢?有话题标签的微文自不必说,对于没有话题标签的微文来说,可以使用上文中介绍的LDA算法,它可以在用户的所有微文中找到用户的主题分布,也可以对一条微文找到主题分布,一般来说,由于微文的字数限制在140以内,比较短,因而一条微文包含的主题数目不会太多,取该微文的主题分布中概率最高的主题当做其主题即可。
找到话题对应的微文与用户之后,运行影响力计算算法,就可以得到该话题中影响力较大的用户了。这也是舆情监测、社会热点监控的一个方面。
对于标签传播算法得到的结果,对同一标签下的用户运行影响力计算算法,可以得到该标签下的影响力排名,即领域内影响力排名。比如,李开复在全部领域内的影响力或许不是最高的,但在IT领域,其影响力绝对是数一数二的。
垃圾用户识别
在影响力计算中,提到要避免僵尸用户对影响力计算的干扰。在算法中,如果可以识别这样的用户,在计算影响力时将其排出在外,不仅可以提高效果,还可以降低计算量。
与影响力计算相似,垃圾用户的识别要同时考虑用户属性与链接关系两方面的因素。
对于垃圾用户来说,有一些统计上的特征与正常用户不同。比如如下几点:
垃圾用户一般发微文具有一定的时间规律性,可以使用熵值对此进行衡量,熵是衡量随机性的一种量度,随机性越大,熵值越小。具体做法为将一定的粒度进行时间切片统计,得到每个时间片内的博文概率,然后依照概率进行熵值的计算。熵值越大代表用户发微文的时间越有规律,越有可能是垃圾用户。
垃圾用户有些倾向于在微文中恶意的@其他人,因而有些垃圾用户的微文中@使用的比例比一般用户高。
有些垃圾用户的微文中为了进行广告的推广,添加大量的URL。可以通过微文中的URL比例进行衡量。也有些用户为了骗取URL的点击,微文中的内容与URL对应界面的内容不一致,这时需要判断微文与URL内容的一致程度,简单的做法可以使用词袋法将微文与URL对应界面表示成词语向量,查看微文中的词语在URL对应网页中出现的频度。
对于那些为做广告推销的用户,还可以对其微文进行文本分类,判断其微文是否是广告,如果某用户的相当一部分微文是广告,则该用户可能是垃圾用户。
垃圾用户一般随意的关注用户,故其粉丝数目与好友数目的比例与正常用户会有差别。而且正常用户一般是通过好友关系添加好友的,这样会形成关注三角形,如A看到其好友B关注了C,那么若A也去关注C,就形成了A关注B、C,B关注C的三角形。一般来说,由于垃圾用户关注的随意性,其关注三角形的比例与正常用户不同。
当然,垃圾用户与正常用户的不同之处不止这些,本文不再一一枚举。垃圾用户的识别本质上是一个二分类问题,获得了这些属性之后,就可以将这些信息输入到一个机器学习的分类模型中,比如逻辑斯蒂回归(LR)、决策树、朴素贝叶斯等,就可以对其进行分类了。
当然,还没有用到链接信息。一般来说,垃圾用户会去关注正常用户,而正常用户不会关注垃圾用户。这即是假设十一:
正常用户不倾向于关注垃圾用户。
这样就可以再次使用PageRank算法来对用户是否是垃圾用户的概率进行计算。这里需要注意的是,算法初始化时采用上面的分类器结果,将垃圾用户的概率设为1,正常用户的概率设为0。在PageRank计算过程中,不能通过简单的求和公式计算,比如如果一个用户关注了多个垃圾用户的时候,求和后概率可能大于1;因而需要使用一些归一化方法或指数族函数进行概率的更新。
结语
本文对微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多。当然,本文覆盖的主题并不全,比如好友推荐、热点跟踪等就没有涉及到。但古人云“窥一斑而见全豹”,希望本文的介绍能帮助大家更好的理解微博这样的社交网络应用。
在文中,可以看到黑体标出的假设,这些假设看起来都与我们的直观感觉一致。而根据这些可以引申出很多有效的算法。所以有时候,只要你肯发现,算法就在身边。
http://bi.dataguru.cn/article-7125-1.html
|
- 浏览: 1973511 次
- 性别:
- 来自: 北京
文章分类
最新评论
-
x593106671:
写的真不错
对研发团队里技术分享的一些思考 -
Ann-phei:
大神 您好~我是博文视点编辑安娜,可否加我微信或QQ 8030 ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
feifeiwudi 写道发现了一个 Elasticsearc ...
ElasticSearch的Java Api基本操作入门指南 -
feifeiwudi:
发现了一个 Elasticsearch 2.3.3 JAVA ...
ElasticSearch的Java Api基本操作入门指南 -
风火轮子:
基于大数据技术推荐系统算法案例实战教程网盘下载:https:/ ...
大数据/数据挖掘/推荐系统/机器学习相关资源
发表评论
-
诸神之黄昏:2021年以后的互联网及新兴行业
2021-10-11 12:09 387截止2021年4月,在港股 ... -
从 Web 图标演进历史看最佳实践
2021-07-26 10:21 1078一、使用独立图片 在过去有很长一段时间,前端是通过引入图片 ... -
架构制图:工具与方法论
2021-07-18 20:08 1073架构制图:工具与方法论 前言 “架构制图”这词乍 ... -
性能优化
2021-07-18 19:56 998性能问题和Bug不同,后 ... -
大小公司都适用的架构选型工具箱(涵盖上百个组件)
2020-10-17 21:20 426本篇内容涵盖14个方面,涉及上百个框架和工具。会有你喜 ... -
读书与成长
2020-10-16 10:52 310《论语》里说:⾏有余 ... -
2020年教育行业OMO模式转型现状研究报告
2020-08-28 16:39 333OMO 模式是教育行业近十年的主流趋势,机构要选择的并非是是 ... -
百度的71个非常厉害的开源项目
2020-08-18 12:47 4571.JavaScript图表库 EChartsEChart ... -
最好的励志书
2020-08-09 21:14 394最好的励志书是促使你马上采取行动或者觉得自己必须马上采取行 ... -
心智成长
2020-08-07 22:50 358——来自《哈佛商业评论》的文章 伟大的领导人与一般领 ... -
研发路上的一些总结与思考
2020-07-27 17:07 481技术层面 对开发同学 ... -
MQTT协议为什么这么轻量级
2020-07-25 22:24 8921、MQTT协议如何做到轻 ... -
高效沟通
2020-07-23 14:55 442为什么沟通那么重要 谁都知道在工作中沟通是非常重要的,那大 ... -
分布式架构——Gossip 协议详解
2020-07-15 11:32 530起源 Gossip protocol 也叫 Epidemi ... -
MySQL优化实战
2020-07-13 21:58 428当MySQL单表记录数过大时,增删改查性能都会急剧下 ... -
救火必备!问题排查与系统优化手册
2020-07-13 21:55 420简介:软件工程领域存在一个共识:维护代码所花费的时间要远 ... -
WebRTC,音视频会议底层支撑技术解读
2020-07-12 21:49 691WebRTC 是 Web Real-Time Communi ... -
私域流量的运营
2020-07-08 09:42 493如何才能做好私域流量的运营?可以从以下5个方面来思考: ... -
阿里官方Redis开发规范
2020-07-06 13:35 446本文主要介绍在使用阿里云Redis的开发规范,从下面几个方面 ... -
快手正式发布了基于流式的直播多码率自适应标准 LAS
2020-07-03 20:57 520快手正式发布了基于流 ...
相关推荐
7. **社交功能**:微博的核心是社交互动,包括关注、评论、转发和点赞等。开发者需要设计并实现这些功能,同时考虑性能和用户体验,例如通过异步操作来避免阻塞主线程。 8. **缓存策略**:为了提高性能和减少网络...
这篇论文“对微博的社交网络分析”着重于研究如何在微博客平台上识别与现实世界组织相关的真实用户群体。随着微博用户数量的快速增长,例如Twitter在2012年已拥有超过5亿注册用户,越来越多的组织和个人选择在微博上...
《微博文本情感分析数据集详解》 在信息技术领域,自然语言处理(NLP)作为人工智能的一个重要分支,致力于理解和生成人类自然语言。本数据集——"NLP:微博文本情感分析数据-数据集.zip",专门针对中文微博文本的...
随着微博在中国的普及,用户数量急剧增长,不同的微博门户涌现,用户可以在多个平台上建立自己的社交网络。微博不仅连接了个体,还成为了社会热点和公共事件的重要讨论平台,促进了公众意识的形成和公民参与。 文章...
《构建微博用户情感分析系统:Django+Vue实践解析》 在当今大数据时代,社交媒体平台如微博成为人们表达情绪、分享观点的重要渠道。因此,对微博用户情感的分析显得尤为重要,它可以帮助企业和研究者理解公众舆论,...
在本“iOS新浪微博项目视频教程:微博开放平台介绍”中,我们将深入探讨如何利用微博开放平台为iOS应用集成社交功能。微博开放平台是新浪提供的一个开发者接口,它允许开发者通过API(应用程序接口)来实现与微博的...
总的来说,该研究为微博平台的标签推荐提供了一种有效的解决方案,通过数据驱动的分析和推荐策略,不仅可以提升用户对平台的满意度,还有助于进一步挖掘和利用社交媒体中的潜在价值。同时,这种方法对于其他类似平台...
报告《2021年看得见的粉丝价值-五大平台kol粉丝分析研究报告:微博、抖音、快手、小红书、B站》揭示了社交媒体平台上KOL(关键意见领袖)粉丝行为和价值的深入洞察。这份由克劳锐指数研究院出品的研究报告主要关注了...
##文件说明 data.csv : 转发数据; ... get_weibo.py :解析网页模块;...network_graph.py : 绘制网络图; time_graph.py : 绘制时间图; network_graph.png : 网络图; time_graph.png : 时间图。
微博作为中国领先的社交媒体平台,为用户提供了一个传播信息、分享生活和讨论时事的网络空间。根据2020年12月微博数据中心发布的用户发展报告,我们可以提炼出以下几个重要知识点: 1. 用户群体年轻化趋势明显:...
在新版本中,人生壁纸的智能适应技术得到了提升,无论用户电脑的屏幕尺寸如何,都能确保壁纸完整呈现,确保每个用户都能享受到最佳的视觉效果,避免了重要元素被裁切的遗憾。 此外,桌面工具右侧原有的“下一张”...
总之,微博、图博和视博代表了社交媒体在内容形式和传播方式上的演变,它们满足了不同用户群体对信息传播和分享的需求。然而,这些新兴媒体形式在中国的发展还需考虑社会环境、政策监管及用户习惯等因素,其未来走势...
中国互联网用户基数庞大,2020年达到9.9亿,几乎每个网民都使用至少一种社交平台。中国社交媒体平台的合并月活跃用户数从2016年的4.9亿增长到2020年的7.4亿,预计到2025年将以3.7%的复合年增长率温和增长至8.8亿。...
在这篇研究论文中,作者们提出了一个面向微博用户分析的集成标签推荐算法。本文将详细探讨该算法的设计原理、功能特点以及其在解决推荐系统数据稀疏性和语义冗余问题方面的有效性。同时,本文还将关注算法在推断用户...
文章中举了一个实例,作者负责推广的移动应用“安医生”在某知名手机网站微博大号的助力下,花费五百元仅获得了11个用户激活,成本高达近50元/个,远高于其他渠道。这反映出,依赖粉丝数和转发量的评估方式可能导致...
从真实的新浪微博数据中分析用户的转发行为,提取了用户特征、微博特征、交互特征和结构特征等4个方面的影响转发行为的因素。通过实证分析各个特征对转发行为的具体影响,并利用机器学习中的不同预测算法对用户是否会...
在IT行业中,网络爬虫是一种常见的技术,用于自动地抓取网页信息,为数据分析、市场研究、搜索引擎优化等提供大量数据。本压缩包文件“爬虫实例:微博、b站、csdn、淘宝、今日头条、知乎、豆瓣、知乎APP、大众点评....