推荐.微博热门会根据喜好推荐吗pve,这三个里哪个更强些

新浪微博是一个很多人都在用的社交应用天天刷新浪微博的人每天都会进行着这样几个操作:原创、转发、回复、阅读、关注、@等。其中前四个是针对短博文,最后嘚关注和@则针对的是用户粉丝之间的关系关注某个人就意味着你成为他的粉丝,而他成为你的好友;@某个人意味着你想要他看到你的新浪微博信息

新浪微博被人们认为是“自媒体”,即普通大众分享与本身相关的“新闻”的途径最近,有些人使用自己在自媒体上的影响仂而盈利的报道屡见不鲜那新浪微博上个人影响力是怎样计算的呢?新浪微博上还有哪些算法作为看不见的手在管理着我们?我们的每一个荇为怎样影响着算法呢?

直观上看,新浪微博其实是人类社会的一个简单的缩影新浪微博网络的一些特点,也许可以启发我们得到真实的社会网络上的规律得益于社交网络的爆发式发展,“社会计算”尤其是社交网络分析成为数据挖掘的新宠儿下面我们就针对新浪微博網络分析的一些算法进行简单的介绍,其中的有些算法对于其他的社交应用可能也适用

新浪微博用户粉丝量浩大,不同的人有不同的兴趣挖掘每个用户粉丝的兴趣有助于更加精准的广告投放、内容推荐。为了得到每个用户粉丝的兴趣可以为用户粉丝打上标签,每个标簽代表用户粉丝的一个兴趣用户粉丝可以拥有一个或多个标签。为了得到最终的用户粉丝标签先做第一个假设:

每个用户粉丝的好友(戓粉丝)中与该用户粉丝具有相同兴趣的人占多数。

这就引出了本文介绍的第一个算法即标签传播算法。在这个算法中每个用户粉丝的標签取其好友或粉丝中标签最多的一个或多个。当然可以将好友和粉丝的标签都考虑进来,整合的时候可以考虑赋予好友的标签和粉丝嘚标签不同的权重标签传播算法的过程如下:

1)对一部分用户粉丝给出初始标签;

2)对每一个用户粉丝,统计其好友和粉丝的标签数目赋予該用户粉丝出现次数最多的一个或者多个标签。

3)循环进行第2步直到用户粉丝的标签不再发生大的变化为止。

标签传播算法实现起来比较簡单其缺点在于当所做的假设不符合事实时,比如为了社交上的礼貌我们一般会把自己的亲友添加关注,这些人不一定和我们拥有同樣的标签;该算法的结果就会变得很差解决的办法就是通过计算用户粉丝之间的相似度来衡量好友或粉丝的标签对用户粉丝标签的贡献率。因而得到第二个假设:

与用户粉丝越相似的好友或粉丝其标签越可能是用户粉丝的标签。

那么如何衡量用户粉丝之间的相似度呢?这僦需要考虑到用户粉丝发表的新浪微博信息了,包括转发的和原创的这里是要考虑用户粉丝之间的相似度而不是用户粉丝新浪微博之间嘚相似度,因而在实际计算时将某个用户粉丝的所有新浪微博信息聚集到一起进行计算。一个可选的方法是使用词袋法将新浪微博信息表示成词语向量然后直接使用余弦方法等计算其相似度。但这个方法太过简单不容易达到好的结果,这里介绍一种基于LDA(隐含狄利克雷汾布)的相似度计算方法

LDA仍然使用词袋法表示文本,但是在中间添加了一个主题层形成了“文档-主题-词语”三层概率模型,即每篇文档看成是主题的一种概率分布主题又被看成是单词的概率分布。在LDA模型下文档可以被看成按照如下方式生成:

2)从主题分布中抽取一个主題;

3)从该主题的词语分布中抽取一个词语;

4)重复第2步和第3步,直到该文档的所有词语都生成

LDA模型参数的估计算法不在本文的讨论范围之内。這里只需要知道通过LDA可以得到每个用户粉丝的新浪微博信息的主题分布。然后使用余弦方法、KL距离等计算相似度的方法来得到用户粉丝間主题分布的相似度以之作为用户粉丝之间的相似度。而后使用该相似度对标签传播进行加权

上述的算法还有什么缺点呢?

随着时间的變化,用户粉丝的兴趣是会变化的计算用户粉丝相似度的时候每次都把所有新浪微博信息都聚合在一起不太合理。对此可以通过选取距离当前时间较近的N条新浪微博。比如对每个用户粉丝,选取距离当前时间最近的50条新浪微博聚在一起放到LDA中训练此处的N既不能太大吔不能太小。太大则不容易反映用户粉丝兴趣的时间变化太小则由于用户粉丝发表新浪微博的随机性容易引起兴趣的漂移。为了使效果朂好可以不拘泥于一个固定的N,比如可以考虑对每个用户粉丝按照其发表新浪微博的时间序列做N值的自适应

至此,在算法中还没有考慮新浪微博关系中由回复、转发、@等所构成的网络信息以转发为例,如果在用户粉丝的新浪微博中频繁的转发某个好友的新浪微博那麼用户粉丝和该好友的相似度相比其他好友来说应该会更高。这里可以看做是假设三:

用户粉丝转发某好友的新浪微博的频率越高用户粉丝与该好友的兴趣相似度越大。

相似的可以得到假设四:

用户粉丝新浪微博中@某用户粉丝的频率越高,用户粉丝与该好友的兴趣相似喥越大

由此就得到了计算相似度的另外的因素。有很多方法可以添加一个新的因素到原有的相似度计算方法中比如可以考虑将转发频率量化为值,作为权重添加到相似度的衡量中去

新浪微博社区是指在新浪微博中关系紧密的人组成的团体,社区内部的人之间联系紧密社区之间的联系则比较稀疏。这里所指的关系紧密有两层含义第一是社区内部的人之间的兴趣相似度大;第二是指社区内部的人之间的關系要近,比如要求社区内部的两个用户粉丝不能超过二度关联二度关联即好友的好友。

兴趣相似度在上文已有叙述关系相似度则需偠利用用户粉丝之间的关注关系来进行计算。以用户粉丝的关注关系为单向链可以将所有的新浪微博用户粉丝之间的关系表示为一个巨夶的有向图。用户粉丝之间的关系相似度可以简单的考虑比如使用用户粉丝间的最短路径的倒数。但是这种方法衡量的不精确我们知噵,在现实世界中存在着六度理论,在新浪微博网络及其他社交网络中往往关系会更加紧密。因而这种简单的关系相似度只能有至多陸个离散值显然不够精确

为了达到更好的效果,这里不仅以最短路径作为显式量度还要考虑一些隐式的量度。这里先给出两个假设汾别为假设五和假设六:

两个用户粉丝的共同粉丝越多,这两个好友的关系相似度越高

这里可以借鉴Jaccard相似度的计算方式,将这两种假设嘚量化函数表示为交集的大小与并集的大小之商以假设五为例,其量化指标又被称为共指向性相似度量化时使用两个用户粉丝共同好伖的数目除以两个用户粉丝所有好友的数目。假设六的量化指标被称为共被指向性相似度计算方式与共指向性相似度类似。从意义上讲这两种相似度不仅仅是关系上的度量,在一定程度上也衡量了用户粉丝之间的兴趣相似程度直观上看,两个用户粉丝共同关注的好友樾多他们的兴趣相似程度也越大。这两种相似度还有一个专业的名字是基于结构情景的相似度计算。

得到了最短路径相似度、共指向性相似度、共被指向性相似度后可以采用一种加权函数将它们融合起来,得到最后的相似度之后,可以采用一些聚类算法如K-Means、DBSCAN等进行聚类操作得到最后的社区簇。也可以采用相似度加权的标签传播算法把具有相同标签的人作为一个社区。

在社区发现中使用新浪微博中的关系网络可以提高相似度计算的精确度。但关系网络能做的事情还有很多影响力计算便是其中比较重要的应用。

说到影响力的计算这里借鉴了网页排名中的算法。网页排名中广为人知的算法当属PageRank了该算法由google创始人拉里·佩奇和谢尔盖·布林发明,随着google在商业上的荿功而声名鹊起。该算法根据网页之间的链接来确定网页的排名其核心在于一个假设,质量高的网页所指向的网页的质量必定也高

根據PageRank的思想,可以得到新浪微博上影响力的假设称之为假设七:

影响力高的用户粉丝关注的用户粉丝的影响力必定也高。

将用户粉丝看成昰PageRank中的网页将关注关系看做是网页中的链接关系。从而可以根据PageRank的算法流程得到在新浪微博关注网络上的影响力计算算法:

1)赋予所有鼡户粉丝相同的影响力权重;

2)将每个用户粉丝的影响力权重按照其关注的人数等量分配;

3)对每个用户粉丝来说,其影响力等于其粉丝分配给他嘚权重之和;

4)第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;因而需要使用一些归一化方法或指数族函数进行概率的更新

本文对新浪微博中常见的问题的对应算法进行了简单的介绍,在实际应用中的算法比介绍的要复杂的多当然,本文覆盖的主题并不全比如好友推荐、热点跟踪等就没有涉及到。但古人云“窺一斑而见全豹”希望本文的介绍能帮助大家更好的理解新浪微博这样的社交网络应用。

在文中可以看到黑体标出的假设,这些假设看起来都与我们的直观感觉一致而根据这些可以引申出很多有效的算法。所以有时候只要你肯发现,算法就在身边

}

为什么很多pvp游戏几个人有矛盾了罵骂就完事也不会闹多大很多pve游戏发生这种事就要挂贴吧微博?为什么很多pvp游戏几个人有矛盾了骂骂就完事也不会闹多大,很多pve游戏发生這种事就要挂贴吧微博? ,因为有些人觉得技术太强偶尔只要被同一个人击杀了很多次肯定也会觉得气 或者说人家开外挂之类的 这是常见的

}

有啥可怕的又不是只有微博这樣,你提醒你朋友把这个关了其他多余的就别说了他注册小号是不想让别人发现,没必要说出来让他尴尬

}

我要回帖

更多关于 微博热门会根据喜好推荐吗 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信