人民网
人民网>>传媒>>人民网奖学金>>清华计算机2015

众包天气预报信息深度整合系统研究

田天
2016年04月19日11:36 | 来源:人民网研究院
小字号

摘要:由于信息来源不同、处理方式差异等原因,来自不同气象台的天气预报信息经常会出现不一致的情况,这会给需要知道准确未来天气的人产生困扰。本文旨在通过机器学习和信息检索的方法,搜集来自不同气象台的天气信息,然后使用隐马尔科夫模型、众包模型、自回归模型等方法,对不一致的天气预报进行整合。通过提出统一的MO-HMM模型给出一个更加精确、可信度更高的天气预报。根据本文所提出的算法,我们搭建了一个众包深度整合天气预报系统,这一系统也提供了通过前三天天气预测未来更多天天气预报的方法,而且在本文实现的系统中,也提供了历史天气查询等丰富的功能。

1、研究背景

在生活中,天气是我们安排行程活动所不得不考虑的一个因素,而看天气预报则是很多人所坚持的生活习惯。如果天气预报第二天有雨,则需要提前准备好雨伞,而如果第二天大降温,则出门前要穿好厚衣服。如果提前知道接下来的几天都适合晴空万里,我们则可以安排一趟愉快的户外旅程。在这些场景中,对未来天气相对精确地把握可以说是至关重要的。

目前随着网络和智能手机的普及,人们获取天气预报的途径得到了很大的扩展,不同的网站,不同的信息渠道都能为我们提供丰富的天气信息,包括天气状况,最低气温,最高气温,风速,风力等等,很多网站还提供了包括PM2.5,生活指数等等丰富的信息。可以说在一定程度上满足了我们的需求,然而在信息的精确程度上,有的信息来源却无法保证,比如下图中出现的这种情况。同样是预测第二天的天气,第一家气象来源预报第二天为晴转多云,而第二家气象来源则预测为雷阵雨,另外包括最低气温,最高气温等信息也有明显的不一致。在这种情况下,必然有一家气象来源提供的信息不够准确,亦或者两家提供的信息都有错误。

观察到这一现象之后,我们做了一些先期的调研工作,通过查询一些天的天气信息,我们发现不同来源提供的天气信息不一致现象十分普遍,即对于同一地区,同一天的天气预报,他们往往会给出不一致的值,有时甚至是汇报完全相反的结果,这样导致的后果则是想要知道未来准确天气的我们无所适从,不知道从哪里获取信息。

这种在天气预报中出现的不一致现象实际上在很多领域都有出现,而在众包领域则对这一问题有着比较深入的研究。随着时代进步,互联网开始逐渐的影响到人类社会的方方面面,人们日常生活中的购物、就医、教育等大多数场景都在计算机技术和互联网的影响下得到了大幅度优化和改善。与此同时,互联网的便捷也使得数据的制造者从专家变为了普通网民。以新闻等网站为例,传统的互联网网站大都由专业的编辑采写新闻,然后通过审核后整版发出,网民能做的仅仅是通过互联网获取数据信息,直到BBS等信息发布类网站产生后,网民才有了在网上发表信息的机会,近年来,随着社交媒体的快速发展,互联网上由普通网民生成的数据量已经有了超越专业数据的趋势。互联网的发展为普通网民提供了方便快捷发表自己观点的机会,在任何时间、任何地点都可以通过电脑、手机等互联网终端获取和发布信息,这种人人都可参与的形式也使得通过互联网集合众人智慧解决复杂问题变得可能。“众包”(Crowdsourcing)正是在这一条件下产生的一种新型商业模式。

传统情况下当大型公司或个人面临复杂问题需要解决时,通常需要聘请相关领域的专家来处理,这种情况下往往需要花费大量的资金,同时解决问题的时间周期也比较长。然而现在通过“众包”网站,可以把问题发布到互联网上,供来自世界各地各个领域的人进行研究解决 [1],尽管大多数人并不具备相关领域的专业知识,然而当我们把他们给出的结果通过某种方式进行整合后,时常能够综合给出较好的结果,并且只需要付出相对较少的资金投入和较短的任务完成周期。“众包”这一概念最早由Howe和Mark Robinson [2] 于2006年在美国《连线》发表的文章中提出,它描述的正是这样一种基于网络的商业模式:公司或组织公开地把自己遇到的问题发布到一个分布式公共网络中,使得来自网络的各个个体可以协作的解决问题。这一方式在互联网逐步普及的今天相对于传统解决方式有很大的优势。目前,Amazon Mechanical Turk等“众包”网站已经得到了广泛的应用,而在国内,统称为威客的与“众包”类型相似的网站也在不断发展,有很大影响力。

针对我们就在天气预报中遇到的情况,我们希望能够通过整合众包数据的思想,通过一个比较规整的模型以及大量天气预报数据的支持,来整合来自不同数据来源的天气预报,最终给出一个比较合理的预测结果。

2、气象整合问题分析

为了很好的解决天气信息整合的问题,我们首先需要分析产生预报差异的原因。天气预报源自各种天气观测数据,这些数据来自于分布全世界的气象观测站、卫星、雷达图像。所有的数据,使用天气数学模型又计算机来进行预报。由于地球自然条件复杂,对于大气的数据采集并不完整,自然天气预报的算法和模型也不会完美。而不同国家的气象局,使用不一致的预报算法,因此预报结果自然也会有差异。天气预报的结果,表现为大气压、温度、降水量在一定地区地图上的分布。性能更强劲的超级计算机,可以产生高分辨率的“预报”地图,针对某一个城市的预报结果可能更准确。气象台也从全球气象观测站网络和专用的计算机信息系统获取数据,根据他们的气象模型和数据,得出自己的预报。

另外天气预报结果,和预报员的经验以及他们如何解释气象模式也有关系。比如一些模型特别适合解释某种气象类型(比如飓风、暴雪),一些模型主要面向中长期预报,还有一些模型的精确度较差。气象预报员的职责之一,就是了解各种天气预报模型在行业内所共知的优劣,对预报结果进行调整。

总的来说我们认为天气预报信息有所差异的主要原因有以下几点:

1.不同气象站使用不同的天气预测模型,他们可能适合不同的情形。

2.不同气象站预测天气时在时间和空间上的粒度不同,因此在天气变化比较迅速的情况下很容易产生差异。

3.气象预报员自身有一定的出错概率,例如把特定天气预测错误。

因此当我们希望用一个统一的模型来整合这些天气来源时,需要考虑以上这些出错原因。这一模型借鉴了我们在处理众包标注整合问题中用到的思想,因此下文中将首先对众包标注整合问题进行介绍。

3、众包标注整合问题

当我们希望通过“众包”的方式处理问题时,往往需要面对许多与传统处理模式不同的困难。在传统模式下,我们聘请相关领域专家来处理问题,他们所给出的结果往往是很值得信赖的,换句话说,当专家给出确定的结果后,我们无需要再对这一结果进行质疑与修正,只需要在此基础上做进一步分析即可。如果一位专家无法给出肯定的答案,也可以通过多名专家商讨后给出一个最终的答案,然而在“众包”的模式下这一前提不再成立。

当通过开放、分布式的方式从大量人群中获取结果时,我们无法对这些参与者做精细的筛选,更无法判断他们是否具有解决问题的背景知识,而且由于问题的正确答案正是想要获知的,我们甚至无法对特定参与者给出的结果进行评价,更无法获知其正确与否。为了克服这种不确定性的影响,通过“众包”处理问题时一般情况下都会选择多个不同的人为同一问题给出答案,这种情况下多个不同人给出的结果一般会显示出某种一致的倾向,通过进一步分析就有可能得到一个较好的估计结果 [1]。

作为一个特例,我们把关注范围限定在机器学习领域使用“众包”对大型数据集做标注这一特定问题上。一般数据集由N条数据记录(或称作样例、项目)组成,每一条语音、文字或是图片,都可以使用一个数据向量xi来表示,我们的最终目标就是对每一条数据记录xi给出其真实标注yi,对于一幅图,其标注可能是图片中鸟类的真实类属,对于语音记录,标注可能是其所对应的文本信息,也可能是文章中中含有多少个表示喜悦的词语等等。为了通过“众包”的方式获得数据的真实标注,对每一条数据,我们都需要通过多个不同的标注者获取它的标注,这样对于每条数据记录xi,假设有Ti位标注者对它进行了标注,我们就会有wi1,wi2,wi3,一直到wiTi条对同一数据的标注,这些标注可能相同也可能不同,因此接下来要做的就是对所有这些数据通过特定方法进行整合,最终给出一个对真实内容的较好估计。这一问题严格的定义如下:

Dawid和Skene在1979年提出了一个多值混淆矩阵估计模型 [5],他们假定每一个标注者出现特定种类错误的概率是确定的,这样就可以用一个统一的混淆矩阵来描述所有情况出现的概率,最终通过最大似然估计就可以得到所有参数值,包括每张图片的真实标注。

在多值情形下,假设我们可以用一个定值来表示第n位标注者把本属于第d类别的图片标注为第l类别的概率,我们把所有{}称之为第n位标注者的个人错误率,也就是他的混淆矩阵,对于一个二分类问题,一个标注者的混淆矩阵可能具有如下表1中的形式。

在真实情形中因为每一类别的图像都有着其公共特征,并且与其他类别之间都有着确定的相似程度,因此以上假定一般情况下都可以认为近似符合。比如对于一般人而言,在鸟类标注问题中把鸭类错分为鹅的概率一定比错分为大雁的概率要大。这种类别之间的概率差异对于两个类别的个体而言也会在很大程度得到体现。基于这一假设,如果已知每一项目的真实标注,对的估值可以通过一个简单的式子得到:

公式(1)表示等于所有被第n位标注者标过,且属于第d类的项目中,被标注为l的项目所占的比例。由于假设我们可知,所有标注者在标注过程中的表现相互独立,并且同一标注者在不同的标注任务中的表现也相互独立,这样我们就可以通过以上公式给出这一假定下参数取值的似然概率如下:

上式中表示第d个标注出现的先验概率。在整个推算过程中,Dawid和Skene采用的是期望最大化算法,即EM算法。这一算法主要分为计算期望和最大化两部分。对应于在本算法中的应用,计算期望的(E)步骤对应的是通过一个给定的当前最优预测值来估计其它两个参数,即q以及p的表达式,而最大化(M)步骤则是再使用计算得到的q以及p的当前值,来估计最有可能的取值。

期望最大化算法适用于在参数较多的情况下,求所给概率表达式最大值的一类问题,分别控制隐含值和其它参数求解极值点,经过多次迭代最终获得全局最优点,这一算法可以通过理论严格证明其收敛性,每经过一轮迭代,其给出的值都更加接近最优解,选择合适的截止条件就可以高效的求得每张图片的估计标注以及每个标注者的混淆矩阵。

这一算法相对于多数投票模型增加了许多细节,它对标注者出错的来源有了一个初步的假设,并且通过概率的方法给出了一个较为严谨的问题表述,最终还提出了通过期望最大化算法求解问题的方法,总的来说是一套比较完整的思路,经过试验验证,其效果在大多数情况下都稳定的优于多数投票模型,特别当标注者偏差较大时,多数投票模型的效果迅速下降,而基于混淆矩阵的模型仍然有着相对较好的表现。下面我们介绍如何将这一算法应用于天气整合问题之中。

4、天气整合MO-HMM算法

为了更加准确的预测天气预报以及未来天气,我们采用了一个类似多观测值的隐马尔科夫模型(MO-HMM)来整合我们所获得的天气信息。隐马尔科夫链是描述离散空间时序信息的合适模型,在天气预报的场景里,不同的天气正好对应不同的隐状态,而观测值则对应气象台的预报信息。

在应用这一模型时,主要分为两部分,第一是基于众包的天气信息整合,第二部分是基于马尔可夫链的未来天气预测,下面将从这两部分来分别展开。

4.1众包思想的天气预报整合

众包是应用众人智慧来解决问题的一种思想,而在天气预报的应用中,则是通过多家气象台的信息来获取真是天气信息。在这一模型中,假定每一个气象台出现特定种类错误的概率是确定的,这样就可以用一个统一的混淆矩阵来描述所有情况出现的概率,最终通过最大似然估计就可以得到所有参数值,包括每张图片的真实标注。

假设我们可以用一个定值来表示第个气象台把天气类别预测为天气类别的概率,因为每一天气类别都有着特定的属性,并且与其他类别之间都有着确定的相似程度,因此以上假定一般情况下都可以认为近似符合。比如对于气象站而言,把晴天错分为阴天的概率一定比错分为大雪的概率要大。这种类别之间的概率差异对于两个类别的个体而言也会在很大程度得到体现。基于这一假设,对的估值可以通过一个简单的式子得到:

式中表示所有取值中满足条件的值的个数。式(2-3)表示等于所有被第个气象台标为天气的天数中,属于天气类别的所占的比例。因此对于第个气象台,他给出特定预测的概率可以用来表示,具体公式如下:

由于假设我们可知,所有气象台在预测过程中的表现相互独立,这样我们就可以通过以上公式给出这一假定下参数取值的似然概率如下:

上式中表示气象台可能给出的天气总数。在推断的步骤中我们把每天的真实天气提了出来单独处理,这样实际上是把每天的真实天气各个值出现的概率在估计过程中当作了已知量,当其它通过最大似然的方法求得以后,也可以通过它们来表示,具体表达式如下:

求得的以及的表达式后,使以上似然概率函数取得最大值,即调整的取值,使得概率到达极值点,我们最终可以得到每天真实天气的预测值。

4.2马尔可夫链预测未来天气

在得到每天天气的预测值之后,我们可以使用马尔可夫链来预测未来天气。对于天气这种时序变化信息,在得到了前两天的天气之后,后一天天气情况可以通过一个概率分布来表示,具体表示如下图示意:

因此在预测过程中,我们可以发现,下一天的天气可以用以下式来表示:

后面所示的P矩阵为转移概率矩阵,他的值可以直接通过统计所有转移情况,计算相应比例即可得到。

4.3.自回归模型预测未来气温

在预测未来以及整合天气时,上述方法已经提出了一个很好地解决方案。然而天气预报中,气温、气压、湿度等信息都是连续变量,因此无法直接通过前述离散变量的做法来解决,因此我们在这里使用了自回归模型来预测未来的气温信息,即认为后一天的气温为前几天气温的线性组合,一般情况下,这一假设在气温预报情形下一致收敛,因此可以得到应用。

5. 系统功能描述

我们制作的天气预报信息深度整合系统中,主要实现了三大块内容:

1.搜集——多来源天气信息汇集,甚至整合历史天气预报。即把来自几个不同天气信息来源的天气预报统一格式,并列显示,以观察它们之间的差异,来让用户自己选择出更加可信的信息来源。历史天气部分是为了满足一些特殊的需求,通过制定城市和特定的历史信息,我们都可以给出当天的天气情况。

2.整合——天气信息深度整合,当不同天气来源汇报天气不同时,给出整合结果。通过我们的众包算法,对不同来源的天气信息按照出错概率来进行整合,最终给出一个算法预测的结果。

3.预测——预测未来天气情况,给出更多天的天气预报信息。在预测天气方面,使用马尔可夫链来表达天气的序列变化规律,从而预测未来的天气,在气温等连续性属性的变化上,我们使用了自回归模型来描述其内在规律。

下面在表2中我描述了后台实现的主要功能。

5.1.整体框架

为了使系统开发过程中,前端后端可以并行开发,另外也为了系统更具扩展性,应用后台开发过程中主要基于Web Service的思想。即前端和后端相对隔离,后端提供Web API,前端通过特定格式的Get请求来获得信息,然后再在页面上进行展示。

后台开发时使用了Python语言,这主要是因为Python的Web编程十分方便。为了实现网络功能,我们使用了Django平台进行后台与外界交互的相关操作。

整个后台API的编写符合WSGI API的规范,因此可以被更广泛的调用,也可以再后续的更复杂应用中发挥作用,返回给前台的信息采用JSON格式传输,易于解析。

5.2.后台接口

后台提供给前台的接口结构十分简单,主要由三部分构成。

其中第一部分areaname为需要查询的城市名称,按照中文格式输入即可。Date则是需要查询的天气日期,需要精确到分钟,这是因为在查询当前天气时,有的气象站可以按分钟来汇报天气。

Type则是请求的类型。当类型为forecast3d时,将返回几家气象站对于未来3天的天气预报,这里主要采用了百度天气和open weather两家信息来源,以及天气网提供的历史天气信息。而类型为cforecast3d时,将提供未来三天天气预报的整合输出。而hmmforecast5d返回的结果则是通过查询到的信息和隐马尔科夫模型预测的第四和第五天天气预报。

这里提供一个样例的查询地址来做参考:

这个地址请求的是西安在2015年9月15日的天气预报。返回的结果是通过机器学习模型整合得到的天气信息。

5.3.输出格式

对于不同的请求,返回值都将通过JSON的格式提供,由于返回内容较多,这里在表3中只以请求未来3天天气的返回值进行详细解释。

通过此表可以看出,我们的返回结果十分丰富,包括了风力,风速,温度,湿度,气压等等,但是由于前端展示空间的限制,很多信息并没有展示。

6. 效果评价

总的来说,经过我们的测试,天气预报整合系统基本达到了我们制作的初衷。实现了我们包括信息集成展示、信息深度整合、未来天气预测等三大块内容,并且后台的机器学习算法也得到了完整的实现,给出了相对符合预期的结果。

我们将系统的相关服务都部署在Sina App Engine上,这一服务目前在线,可以通过地址http://tianweather.sinaapp.com/static/iisstart.htm访问来查看效果。经过对过去一个月的天气进行回测,我们可以评价天气预报算法的准确程度。然而由于天气比较存在内在的困难性,我们无法通过数值的方法算出我们的算法在准确率上的领先程度。为解决这一困难,我们只统计我们的众包整合算法优于其他天气预报的天数,经过人工验证,我们的算法在过去30天中,至少20天可以比Open Weather 和百度天气提供更准确的天气预报。这一结果验证了我们算法的有效性。

参考文献

[1] A. P. Dawid and A. M. Skene. Maximum likelihood estimation of observer error-rates using the em algorithm. J. Roy. Statistical Society, Series C, 28(1):20–28, 1979. 1, 2, 5, 6

[2] D.M. Green and J.M. Swets. Signal detection theory and psychophysics. John Wiley and Sons Inc, New York, 1966. 5

[3] V.C. Raykar, S. Yu, L.H. Zhao, A. Jerebko, C. Florin, G.H. Valadez, L. Bogoni, and L. Moy. Supervised Learning from Multiple Experts: Whom to trust when everyone lies a bit. In ICML,2009. 1, 2

[4] V.S. Sheng, F. Provost, and P.G. Ipeirotis. Get another label? improving data quality and data mining using multiple, noisy labelers. In KDD, 2008. 1, 2

[5] P. Smyth, U. Fayyad, M. Burl, P. Perona, and P. Baldi. Inferring ground truth from subjective labelling of Venus images. NIPS, 1995. 1, 2

[6] M. Spain and P. Perona. Some objects are more equal than others: measuring and predicting importance. In ECCV, 2008. 1, 2

[7] L. von Ahn, B. Maurer, C. McMillen, D. Abraham, and M. Blum. reCAPTCHA: Human-based character recognition via web security measures. Science, 321(5895):1465–1468, 2008. 2

[8] PeterWelinder and Pietro Perona. Online crowdsourcing: rating annotators and obtaining costeffective labels. In IEEE Conference on Computer Vision and Pattern Recognition Workshops (ACVHL), 2010. 1, 2, 3

[9] T. D. Wickens. Elementary signal detection theory. Oxford University Press, United States,2002. 5

[10] Neal, Radford M. "Markov Chain Sampling Methods for Dirichlet Process Mixture Models." Journal of Computational & Graphical Statistics9.2(2012):249-265.

[11] Zhou, Dengyong, et al. "Aggregating Ordinal Labels from Crowds by Minimax Conditional Entropy." Proceedings of International Conference on Machine Learning (2014).

[12] Zhou, Dengyong, John Platt, Sumit Basu, and Yi Mao. "Learning from the wisdom of crowds by minimax entropy." In Advances in Neural Information Processing Systems 25, pp. 2204-2212. 2012.

(责编:王妍(实习)、燕帅)

分享让更多人看到

传媒推荐
  • @媒体人,新闻报道别任性
  • 网站运营者 这些"红线"不能踩!
  • 一图纵览中国网络视听行业
返回顶部