美文网首页
课程总结

课程总结

作者: Sigma_Orange | 来源:发表于2018-12-05 18:43 被阅读0次

    1 比赛

    天池 新浪微博互动预测-挑战Baseline

    对于一条原创博文而言,转发、评论、赞等互动行为能够体现出用户对于博文内容的兴趣程度,也是对博文进行分发控制的重要参考指标。本届赛题的任务就是根据抽样用户的原创博文在发表一周后的转发、评论、赞总数,建立博文的互动模型,并预测用户后续博文在发表一周后的互动情况。

    数据分为训练数据和预测数据,训练数据包含2015-02-01至2015-07-31的博文数据,预测数据包含2015-08-01至2015-08-31的博文数据。

    训练数据包含有七个特征

    uid,mid,time,forward_count,comment_count,like_count and content.

    预测数据包含有四个特征

    uid,mid,time,content.

    需要提交的数据包含有五个特征

    uid,mid,forward_count,comment_count,like_count.

    2 数据分析

    2.1 观察数据

    用户标记:大多数用户发文不止一条,可通过训练集中的历史转发数,评论数,赞数来预测该用户的粉丝,以及粉丝的习惯。(比如更倾向于那个项目)

    博文标记:是微博的id,可看作索引。

    发博时间:可以提取出工作日,节假日。还有不同的时间段等特征。

    转发数,评论数,赞数:是需要预测的目标,也可用于计算用户的特征和分析其相关性。

    博文内容:可以提取的最多特征,如分词聚类,情绪分析,是否包含链接,是否包含表情,是否包含视频,是否自动生成,是否为广告,是否是联合推广,长度,是否@谁,是否为转发#,文章分类,是否含有【。等等

    2.2 统计数据

    测试集一共包含122,5088条(仅三条内容有缺失值)。涉及37251个用户,每个用户至少发一条博文,博文最多数量前十在4909~31015条。

    预测集一共包含17,7923条数据。

    在测试集中,37251个用户,人均发文33篇。

    平均每篇获得反馈个数是,转发:3.54,评论:1.26,赞:2.22。

    在对测试机的数据进行分析的时候,发现占绝大多数的反馈为0(转发评论点赞)

    把每个用户得到的转发,评论,点赞的均值加在一起,可计算出关注度,即下图中的黑线,按关注度对用户排序,下图分别显示了关注度和各种反馈之间的关系,以及分布,从中也能看到在30000多人里只有几十个人平均每篇的反馈之和超过100,且以转发为主。

    2.3 单个用户对比分析

    下面是对某两个用户的转发分析,第一位用户共发微博530+,但是几乎都是0转发,第二位用户他共发文730+,其中最多的一篇被转发将近9000次,但是其中有167篇文是0次转发,大多数分布在0-100次以内。可见,第二位用户存在活粉而且粉丝数量多,在情况这种下,反馈更多地取决于其博文的内容。

    2.4 评分标准

    其中:countfp为预测的转发数,countfr为实际的转发数

                countcp为预测的评论数,countcr为实际的评论数

                countlp为预测的赞数, countlr为实际的赞数

                counti为第i篇博文的总的转发、评论、点赞数之和

    2.5 评分分析

    反馈越多在评分中权重越大,比如反馈为100的文章,如果预测正确,贡献是反馈为0文章的100倍。

    但是反馈越多偏差越大,比如实际为200次转发,预测成了500次,偏差deviation=(500-200)/(200+5)=1.63;实际为2次,预测成5次,deviation=(5-2)/(2+5)=0.43。

    3.求解思路

    3.1 特征工程

    3.1 用户特征

          最大评论数、点赞数、转发数;最小评论数、点赞数、转发数;平均评论数、点赞数、转发数

    3.2 时间特征

          星期几;是否周末;是否是节假日;发文时间段(分24个时间段)。

          下图为发博时间对发博次数,最大、平均点赞、转发、评论数的影响

    用户最大的点赞、评论、转发数的用户频数分布:

    3.3 博文特征

    ('cn', 808376), ('http', 798366), ('红包', 151860), ('分享', 131366), ('一个', 112632), ('打车', 73878), ('自己', 71330), ('可以', 64141), ('我们', 59032),('数据', 54503), ('技术', 52336), ('微博', 51734), ('试试', 50799), ('中国', 48692), ('...', 47866), ('这个', 45377), ('IT', 44842), ('一起', 44461), ('就是', 44394), ('没有', 42142), ('今天', 41931), ('2015', 41918), ('手气', 41269), ('用户', 40654), ('什么', 40533), ('公司', 40376), ('已经', 37000), ('下载', 36897), ('大家', 36241), ('现金', 36223), ('使用', 35299), ('问题', 34967), ('学习', 34372)

    选用关键词:小伙伴、分享、转发、转给、教程、大家、技巧、方法、效果、学习、实用、简单、红包、免费、福利、奖(处理成含有关键字的数量);

    是否有主题(微博内容中含有##);是否有表情;是否@他人;是否是转发他人的微博(微博中含有“//”)

    主题、链接、@、表情的影响:

    3.2 随机森林

    随机森林是一种重要的基于Bagging的集成学习方法,可以用来做分类、回归等问题。它使用观测数据的子集和变量的子集来建立一个决策树。 它建立多个这样的决策树,然后将他们合并在一起以获得更准确和稳定的预测。 这样做最直接的事实是,在这一组独立的预测结果中,用投票方式得到一个最高投票结果,这个比单独使用最好模型预测的结果要好。

      在sklearn.ensemble库中,可以找到Random Forest分类和回归的实现,我选用的是RandomForestRegressor。

    随机森林有许多优点:

          具有极高的准确率

          随机性的引入,使得随机森林不容易过拟合

          随机性的引入,使得随机森林有很好的抗噪声能力

          能处理很高维度的数据,并且不用做特征选择

          既能处理离散型数据,也能处理连续型数据,数据集无需规范化

          训练速度快,可以得到变量重要性排序

          容易实现并行化

    随机森林的缺点:

          当随机森林中的决策树个数很多时,训练时需要的空间和时间会较大

          随机森林模型还有许多不好解释的地方,有点算个黑盒模型

    一共选取了包括'以往平均转发', '以往平均评论数', '以往平均赞数','关注度','活跃度','是否工作日', '是否是工作点''是否有链接','是否有标题','是否有表情','是否有@','文本长度'一共十二个特征,

    搜索模型

    由之前的数据统计可知,绝大部分的转评赞都是0,可见如果预测0,0,0也可以得到一个相对不错的分数。线上得分26.49%。(训练集是34.10%)

    由之前的评分分析可知:

    反馈越多在评分中权重越大,比如反馈为100的文章,如果预测正确,贡献是反馈为0文章的100倍。

    但是反馈越多偏差越大,比如实际为200次转发,预测成了500次,偏差deviation=(500-200)/(200+5)=1.63;实际为2次,预测成5次,deviation=(5-2)/(2+5)=0.43。

    以评判标准为导向,有两种方法:

          第一种方法:在训练集合上,用平均数、最小值、最大值、中位数预测。得到结果:(mean:38.01%)(min:34.17%)(max:8.08%)(median 40.94% )

    所以先把点赞和评论用median固定作为常数,然后循环转发的历史数据,得到得分最高的组合,根据此方法对点赞和评论数预测依次求得。对于每一个用户取使其评判值最高的数据,仅循环该用户已出现的所有组合。

          第二种方法:对于每一个用户取使其评判值最高的数据,仅循环该用户已出现的所有组合。

    将两种方法的预测集加权求和

    4.展望

    4.1阿里官方思路

    1.将预测值分为几档。如0-5,5-10,10-100等等,将预测连续值变为一个分类问题,然后利用置信度和权值计算出一个能够使最终得分数学期望最高的预测值。

    2.直接使用评分目标作为最终目标。我们的目标不再是提高一条微博的预测准确率,而是从宏观上提高整体的得分。不过这需要自己动手来改造或实现一个模型,GBDT,神经网络,遗传算法,或是自己设计的简单模型。但这个模型要做到:每迭代一次,都需要使用新产生的模型计算测试集一个月微博的得分,然后向着最优的方向继续迭代。

    4.2 文献启发

    (1)对抓取数据中提取的439607个转发样本,进行基于逻辑回归、朴素贝叶斯和贝叶斯网络的概率模型分析,证实社交类型对用户微博转发行为的影响最为显著。

    (2)针对微博转发预测问题提出笛卡尔积表示用户历史与微博内容关系的方法,有效利用了用户兴趣关系。实验结果表明,笛卡尔积对预测效果有显著提升。研究结果表明,利用用户历史的转发情感和微博的内容对转发情感预测能够取得较好的效果,得到了用户转发微博情感、相似内容微博转发情感基本一致的结论。

    基于主题模型的关系特征表示及情感特征融合方法,有效的降低了特征的维度。实验验证主题模型特征对转发预测结果有一定的提升。

    (3)在传统文本分类算法支持向量机的基础上,针对网络社交媒介引入特定的情感词典,并将其应用在特征选择方面,构造文本倾向性分类器,使用该分类器判别微博的情感极性(正向或负向)。

    (4)用GPA对BP神经网络的网格参数进行优化。

    主要参考文献:

    [1]田向国, 肖林鹏, 刘铁英, et al. 新浪微博信息传播路径阻碍因素分析及传播效果预测[J]. 情报科学, 2016, V34(5):91-94.

    [2]马莹莹. 微博用户转发行为及情感预测研究[D]. 2015.

    [3]孙培星. 基于情感倾向性的网络舆情分析及演化预测研究[D]. 2016.

    [4]张华. 基于优化BP神经网络的微博舆情预测模型研究[D]. 华中师范大学, 2014.

    相关文章

      网友评论

          本文标题:课程总结

          本文链接:https://www.haomeiwen.com/subject/vgiwcqtx.html