基于微博影响力的评价模型(最终版)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于微博影响力的评价模型
摘要
本文研究的是微博用户和微博的影响力,以及最大好友圈和消息最佳发布问题。
对于问题一,首先,我们查阅相关文献,基于已给数据将用户粉丝数量,用户和粉丝的活跃度,粉丝的专注度作为我们评价微博用户影响力的指标。根据这些指标,我们对题目所给表格中的数据进行统计,将得到的结果作为各个用户在各指标下得到的分数。然后,我们建立了熵权模型,将这些数据进行标准化处理,对各个指标的权重进行了计算,分别得到了在不同人数的微博环境下各指标在评价用户影响力时所占权重。最后,将各指标下分数与权重相乘,再将各个用户的所有指标分数求和得到最终用户影响力评分。将其排序筛选后,得到影响力最大的十个大V编号。
对于问题二,首先,在问题一所建立模型的基础上,我们确立了将微博被转发次数和转发人的影响力作为我们评价微博影响力的指标。然后,我们统计了各条微博在各指标下的数据。其次,我们利用熵权模型将数据标准化处理,并求出了这两个指标在评价微博影响力时所占权重。最后,我们将各微博各指标下分数与权重相乘,并将所有指标分数求和得到最终微博影响力评分。将其排序筛选后,得到影响力最大的十条微博消息。
对于问题三,首先,我们根据题目对于好友圈的定义,将M={(i,j)}定义为关注情况矩阵,即第j用户关注第i用户的情况。进而将多人相互关注的关系用函数关系式表达出来,将所有符合条件的用户编号写入矩阵E中。然后,先通过对符合两两关注情况的用户进行筛选,再从筛选好的用户中逐步添加用户,判断是否为三人相互关注,四人相互关注,直至好友圈内不能再添加人为止。此时的好友圈为最大好友圈。最后,我们通过循环算法实现上述过程,得到了2000人微博环境下10人为最大好友圈,10000人微博环境下13人为最大好友圈,并求出了好友圈中所有用户的编号。
对于问题四,我们将其转化为优化问题,建立了0-1规划模型处理。首先,将用户发布消息与微博用户之间相互关注的情形转化为0-1矩阵(0表示用户未发布消息或表示微博用户之间未相互关注,1则反之),分别表示为x和A。这样若某用户能看到消息,则x与A转置后的矩阵乘积大于等于1。然后,我们将其推广至所有用户,将该问题转化为目标函数为发布消息的人数最少,约束条件为x与A转置后的乘积全部大于等于1的优化问题。最后,我们通过matlab中自带的遗传算法求得最小用户数。但发现效果并非很好。又采用了贪婪算法,求得了2000人微博环境下发布该消息的用户数最少为93人,10000人微博环境下则为249人。
本文建立的模型在已有文献的基础上有一定的改进,求解算法科学,定位速度更快,定位精度更高,有一定的实用和推广价值。
关键词:微博影响力熵权模型遗传算法贪婪算法
1 问题重述
1.1 问题背景
微博,作为互联网上新兴应用,由于智能手机的普及,使得其运用变得极其方便,从而吸引了大量的注意力。而微博上的大V用户往往有着很大的影响力,如何正确而有效的评价用户影响力是需要关注的应用问题之一。
1.2数据集
数据文件data1.xls和data2.xls分别包含了当用户总量为2000和10000时这些用户的相互关注数据,每一行为该行号对应的用户对其它用户的关注信息。
数据文件data3.xls和data4.xls分别为当用户总量为2000和10000时这些用户发布或转发的消息数据,每一行为该行号对应的用户发布或转发的消息编号。
1.3 提出问题
根据上述问题背景及数据,题目要求我们建立数学模型讨论下列问题。
(1)对具有较大影响力的大V定义合适的影响因子,并且找出影响力最大
的十个大V。
(2)某些微博消息,被大量的用户关注和转发,因而具有很大的影响,请
找出影响力最大的十条消息。
(3)在微博中,相互关注的用户被称为好友,对于一个群体,如果他们相
互之间均为好友,则称为好友圈,请找出人数最多的好友圈。
(4)假设一微博用户发布的消息,其粉丝都会看到,如果要发布一则消息,
确保所有用户都能看到(不考虑转发),请选择一种发布该消息的用
户数最少的方案。
2 模型假设
(1)用户之间不会因为消息的转发而对消息的原创者进行关注,即关注是在初始状态下不会改变的。
(2)忽略各条微博影响力的时效性,即微博影响力随时间是不变的。
(3)假设所有用户均非长期不上线用户。
(4)不考虑同一用户多次转发同一消息的情况。
(5)用户只能由关注对象发布后才能看到或转发消息。
3 符号说明
注:其余符号在文中使用时说明。
4 问题分析
4.1问题一
问题一要求我们分别在2000人和10000人的微博环境下,对用户的影响因子进行定义,并筛选出影响力前十的用户。
首先,经查阅文献[1],并基于已给数据,我们确定了用户的影响力指标可由名人指标和粉丝指标两项决定,将这两个指标作为一级指标。名人指标又由博主活跃度和粉丝数量两个指标决定。而粉丝指标又由粉丝活跃度和粉丝专注度两项指标决定。将这四个指标作为二级指标(如图1所示)。其中,活跃度由博主或粉丝发布或转发微博数量反映。
图1 用户影响力评价指标体系
其次,根据选好的指标,我们通过matlab程序对已给数据进行统计,求出各用户所关注的人数,发布或转发的微博数量,以及各用户被关注的人数。然后对各项指标下的数据进行标准化处理,作为各用户各项指标的得分,使用熵权法算出各项指标的权重。
最后,将各指标下的分数与权重相乘,再将各指标下处理后的分数相加,作为各用户影响力评判的最终得分。根据分数高低进行排序,筛选出影响力为前十的用户。
图2 问题一思路流程图
4.2 问题二
问题二要求我们确定评价微博消息影响力的指标,并依照这些指标进行评分,进而排序和筛选出影响力前十名的消息。
首先,由题意可知,微博消息影响力主要由微博被转发次数和转发人的影响力决定。所以,我们将这两个因素作为评价微博消息影响力的两个指标。并且,对各条微博消息被转发次数以及所有转发人的影响力进行统计,得到统计结果。
其次,我们将得到的统计结果进行数据的标准化处理,得到两指标下的处理后的分数。再利用熵权法求出两项指标的权重。
最后,将权重与各指标分数相乘,对各指标分数求和,得到各条微博消息的影响力评分,将其排列并筛选出影响力前十名的消息。
4.3 问题三
问题三要求我们求出2000人和10000人环境下的最大好友圈,这实则是最大团问题。
首先,根据定义好友圈中的每个人都和圈中其余的人互相关注,所以,构成好友圈的用户一定有好友,即和某人互相关注。由此,我们可以缩小数据规模,只考虑存在相互关注情况的用户,故可将两两关注的情况可以列出。本文则采用循环算法从小到大找到最大的好友圈。
其次,若已知两人构成好友圈,若有第三人与这两人构成好友圈,就说明第