每天微博上都会出现海量的信息,这些数据时时刻刻都在增加着。为了能够实时监控感兴趣的主题,我们需要有一套合适的方法来筛选这些大规模并且不断变化的数据。这篇IEEE VAST 2013的文章[1]设计了一套新颖的系统,让分析者能够交互的创建过滤器,并实时交互地监测微博上的热点事件。
系统设计
他们系统的工作流程如下图所示:
他们的系统一共分成了两个模块,过滤器创建模块和实时监控模块。对于源源不断的微博流,他们会先把原始微博存储在本地,然后利用这些既有的历史微博训练过滤器,训练过程既有自动学习又用用户干预。同时,对于微博流,他们可以动态选择训练好的过滤器来筛选最新的微博,并实时添加到监控界面上。用户可以进一步分析微博数据,并调整过滤器策略。
过滤器创建
该系统一共使用了两种类型的过滤器,扩展的关键词过滤和SVM分类器。
他们使用如下方法提取关键词:1. 用户针对事件类型给出几个初步的关键词列表,比如flu,headache,fever,用这些关键词筛选出相关的微博;2. 使用tf-idf方法获得高频关键词,作为备选列表。对于这些候选关键词,他们给出了以下两点限制:1. 移除只与某个特定事件相关的关键词。比如,他们在分析去年美国飓风的关键词的时候,Irene被提取出来。Irene是其中一场飓风的名字,因此具有很高的词频和相关性,但是用它作为飓风事件的关键词就不合理了。2. 添加关键词共同出现的约束。比如禽流感事件,他们提取出shot,但这个词本身是一个非常宽泛意义的词语,于是,他们限制shot要和flu共同出现才能作为关键词来使用。
针对SVM分类器,他们设计了一套用户可以交互训练的系统,如上图所示。该系统先用关键词过滤出来一些微博作为正样本,随机提取一些其他微博作为负样本,进行SVM训练,所有的微博按照位置分布在地图上,图标的颜色代表了这些微博是否已经被训练过。用户在地图上选择一些微博,在c窗口会显示出来该列表,可以把不想要的微博删除掉,然后对剩下的微博在g窗口中进行标注,确定是正样本或负样本,并更新分类器。用户也可以让系统进行自动迭代来更新分类器。通过手动和自动的结合,该系统就可以训练出针对特定主题的训练器。
实时监控
该系统包括两大组件,微博展示和过滤器控制。a窗口提供了微博的分布图,f是三个级别时间的密度图,b是某一区域的关键词云,c列出了选中微博的详细信息。该系统最大的亮点是右侧的过滤器控制窗口d。这是一个图的结构,最上面的方框代表了输入的微博流,下面的圆形图标代表了过滤器。对于微博流,施加过滤器得到一个新的数据流,通过修改过滤器的参数可以调整流的大小,多个流可以通过集合操作重新汇聚。对于一个过滤器,可以赋予一个图标(右边的图标列表),通过了该过滤器的微博就会增加一个图标标记,在地图界面上,图标密集的区域就会显示出来。
用户可以针对微博时间特征动态调整过滤器,主要有以下三种情况:
- 通过过滤器的微博太少或太多,那就适当调整过滤器的阈值;
- 在监控过程中发现事件新的特征,可以训练新的过滤器;
- 一些没有预测到的事件通过了过滤器,但它们和监控的事件并没有关联,那需要添加别的过滤器来事先把这些微博过滤掉。
案例研究
作者一共进行了两次实验,分别测试过滤器创建和实时监控。
第一个案例的数据是2012~2013年的冬天,美国流感爆发事件。他们一共进行了8次人工迭代和100次机器迭代获得较为满意的分类器,其中用户手动标注374条微博,用时20分钟左右。因此效率很高。
第二个案例是2012年英国和爱尔兰洪水事件。通过回放事件发生的六天以内的微博,他们发现了比较重要的几个时间节点(都在11月26日):
- 01:16,政府发布了第一条洪水警告通知。然后他们提高了过滤器阈值,从而关注后面更加精确的微博。
- 06:16,一位居民报告,里士满的一个河水堤坝垮塌。与此同时,关于交通状况的信息也通过了过滤器不断涌现。监控员对交通信息已经很熟悉,因此他添加了一个关于交通的过滤器,并和洪水过滤器进行差运算,从而过滤掉交通信息。
- 08:44,整个地图上都开始出现洪水的信息,分类器的图标也大致反映了信息的分布,但是仍然过滤笼统。因此监控员添加更加细致的过滤器,比如道路是不是堵塞了,从而在地图上显示更多类型的图标。
- 10:21,一个通用的紧急事件过滤器检测到了一场火灾。
- 11:07,通过地图上的分类器图标,监控人员发现英国的中南部道路已经瘫痪。
- 15:41,系统已经筛选出579条与洪水相关性很强的微博,研究人员可以对整个事件的态势进行全局分析了。他们发现都柏林附近school和dart关键词最多,然后通过查看具体微博发现,都柏林的
Sandycove DART (Dublin Area Rapid Transport) Station 发生了洪水,这个地区的学校也都在早上停课了。他们还发现伦敦的火车发生大量延误和取消,伍斯特也受到洪水的严重影响。
下图给出了最终的分析情况。
总结
这篇文章设计了一套完备的微博分析系统,能够动态实时的监控不断流入的微博数据。性能测试表明,一条微博通过所有过滤器检测的时间在100微秒以内,因此一秒钟处理1000条微博是没有任何问题的。通过动态调整过滤器,用户可以准确了解事件的发展。
引用
[1] Bosch, Harald, Dennis Thom, Florian Heimerl, Edwin Puttmann, Steffen Koch, Robert Kruger, Michael Worner, and Thomas Ertl. ScatterBlogs2: Real-Time Monitoring of Microblog Messages through User-Guided Filtering. IEEE Transactions on Visualization and Computer Graphics, 19(12): 2022-2031, 2013
评论关闭。