实验室参加SMP CUP用户画像评测并获得优异成绩
新闻来源:IR实验室       发布时间:2016/10/15 14:29:10

  近日,实验室同学李裕礞、费鹏、李恒超及徐博参加了全国社会媒体处理大会——“微众杯”技术评测(以下简称SMP CUP 2016)并获得第二名。本次技术评测由全国社会媒体处理大会(SMP)举办,评测题目是微博用户画像,参赛队伍利用给定的新浪微博数据(包括用户部分个人信息、用户微博文本以及用户粉丝列表),来推断用户的年龄(-1979/1980-1989/1990+)、性别(男/女)和地域(东北/华北/华中/华东/西北/西南/华南/境外)。本次技术评测提供了一个包含约256.7万用户、5.5亿条关注关系的微博社交网络数据集,其中4.6万用户带有微博文本,2000多用户含有年龄、性别和地域标签信息。


  本次竞赛吸引了来自中国大陆、香港、澳门、美国、加拿大、新加坡等国家或地区的100多家单位的565名选手报名参赛,共组建了197支参赛队伍。10月30日,本次技术评测的颁奖仪式将在2016全国社会媒体处理大会(SMP 2016:http://www.cips-smp.org/smp2016/)上举行。实验室同学将在SMP 2016大会的技术评测论坛上分享自己的算法和成果,并与其他参赛队伍及SMP 2016的参会者进行交流。


  我们在此次完成的任务中,在性别推断任务准确率为89.27%,年龄推断任务准确率为67.98%,地域推断任务准确率为69.76%。最终以综合评分73.129%获得第二名。在任务处理过程中,使用了四类特征:文本类特征、统计类特征、时间类特征及地理信息类特征,并应用了逻辑回归、随机森林、XGBoost、KNN、神经网络模型,应用了Bagging结合Stacking的模型融合方式,取得了不错的效果提升。我们针对每个任务,构建了差异化的模型结构。


性别模型

性别推断模型也由两级构成,第一级为用来产生stack特征的LR、RF等模型,第二级为将上述特征拼接上其他特征用来bagging融合的7个xgboost模型,整个模型结构如下图所示:

ef77af7d3adba778.png


年龄模型

在年龄推断任务中,模型集合在性别模型的基础上增加了两种结构的神经网络模型,分别为退化的CNN模型及Hierarchical Back-Propagating Neural Network(以下简称HBPNN)模型。

年龄.png


地域模型

在地域预测中,共使用了4种模型,分别为普通的BP神经网络、KNN、HBPNN模型以及融合了人工构建的地域特征的HBPNN2模型。最后经Bagging+Stacking+加权投票的方式进行模型融合,得到最终的结果。HBPNN模型结构如下图:


blob.png


Bagging模型融合

本文中使用的四种模型,均进行了Bagging模型融合,该融合方式不仅可以提高模型的稳定性,其输出的概率值还可传递给下一层模型进行再训练,实现Stacking方式的模型增强。具体融合方式如下:


如图所示,将训练数据集分为5块并每一块保证不产生id重叠,对于同一个模型,产生5个分类器实例,每个实例使用不同的1个数据块作为验证集,对应的其余4个数据块作为训练集。每个实例针对自己的验证集都可输出一个结果,并且这5个结果最终又可合并为整个数据集的大小。从而实现了所有数据从输入特征到输出特征的特征变换,而且因为每个分类器预测的数据块均未参与到该分类器的训练,因此可以有效防止过拟合的发生。


Stacking 模型融合


经过Bagging后,每种模型都会产生5个分类器实例,应用到测试集则会产生5个预测结果。因为本任务使用了4种不同的模型,因此共产生20个预测结果。对于这20个预测结果,采用如下的处理方式产生最终结果。


1. 对于每一种模型,采用相同的数据分块顺序进行Bagging融合,即保证4种模型的分类器实例$k$使用的验证集数据相同(k in [1,5])

2. 按照分类器实例序号进行分组,共有5组,使第$k$组中包含这4种模型的第k个分类器实例,训练得到该组中各个分类器实例的权重w。损失函数为:

blob.png

其中n为分类的类别数,m为模型个数,在本任务中,n=8, m=4。下表为在真实评测数据中产生的各模型在各组的权重值。


blob.png

因为各个模型对数据特征的抽取效果可能受到分组的影响。例如专注于地理信息特征的BP神经网络模型在遇到地理信息匮乏的分组时,会产生较差的效果;而在地理信息丰富的分组上,又能在各模型中脱颖而出。因此采用这种分组加权的Stacking方式,通过降低组内某个模型的权重减少其对结果的影响,可以有效避免因分组数据自身特点导致个别模型效果变差而影响到最终的预测效果。


在得到各分类器实例权重之后,对于每个分组进行组内的加权平均,使得每组输出一个分类的预测结果,即产生5个预测结果。由这5个结果进行投票,决定最终的预测结果。


地域模型实验结果

在3200条有标注的数据集中抽取20%的数据作为线下测试集,其余数据作为训练集并在训练集上使用5折交叉验证,得到如下结果:

blob.png

虽然单独使用HBPNN模型时,其准确率只有57%左右,但若在Stacking中删除该模型,会使最终结果有大幅下降。