机器之心专栏

作者:赵亮

事件是基于特定地点、时间和语义发生的对我们的社会或自然环境产生重大影响的事情,例如地震、内乱、系统故障、流行病和犯罪。能够提前预测此类事件的发生以减少潜在的损害是非常重要的。虽然事件预测传统上极具挑战性,但它现在正成为大数据时代的一种可行选择并正在经历快速增长。当然,这也归功于高性能计算机和人工智能技术的进步。最近来自艾默里大学的教授赵亮博士首次对该领域进行了全面的综述和数据代码资源整理。该工作全面总结了事件预测的问题定义,方法,应用,测评,数据,以及未来发展方向。该工作刚刚发表在计算机综述顶刊 ACM Computing Surveys 上。

打开网易新闻 查看更多图片

  • 论文链接:https://dl.acm.org/doi/10.1145/3450287
  • 数据、代码和讲义链接:https://cs.emory.edu/~lzhao41/projects/event_prediction_site/

我们世界中的事件无处不在,大到疾病爆发和地震,中到系统故障和犯罪,小到网络行为和化学反应。事件的分析在不同的领域中已经有重要应用,诸如医疗保健、商业、网络领域、政治和娱乐,几乎影响着生活的每一个角落。因此,事件分析在过去几年引起了极大的关注,可以分为事件总结、检测和预测。其中总结和检测为回顾性分析,与它们不同,本综述专注的事件预测侧重于预测未来的事件。对未来事件的准确预测使人们能够最大限度地减少与未来某些事件相关的损失,可能为社会的诸多方面如疾病预防、灾害管理、商业智能和经济稳定性带来不可估量的收益。

事件预测历来在不同领域都极具挑战性,因为我们对大多数领域的事件发生的真正原因和驱动机制的了解一般并不完整。然而,大数据时代、高性能计算、以及人工智能技术的进步对上述挑战的解决提供了前所未有的机会。通过基于数据驱动的方式,比如例如机器学习、数据挖掘、模式识别、统计和其他计算模型,我们有了更多的机会弥补上述不足,甚至能够有机会帮助发现事件发生的动因和发展规律。该领域目前正经历高速发展,以期解决诸多事件预测领域独特的挑战:

  • 挑战 1: 异构多输出预测问题。事件预测方法通常需要预测事件的多个方面,包括时间、地点、主题、强度和持续时间,每个方面都经常使用不同的数据结构。除了异构性,多个输出之前也有很强的相关性。另外,复杂的输出也导致了训练数据标注的难度和精度,以及预测准确性评估的难度。
  • 挑战 2: 不同输出之间的复杂关系。不同于机器学习里经常使用的传统的独立性假设,真实世界的事件预测往往是互相影响甚至互为因果。因此,除了建立当前观测与未来事件的前瞻性映射,未来事件之间的相关性也需要考虑。
  • 挑战 3: 实时预测的需求。事件预测一般需要对观测进行实施持续监控从而及时预报未来事件。然而在这个过程中,经过训练的预测模型逐渐变得过时,因为现实世界的规则和概念是持续变化的,数据的分布也是在变化的,比如社交媒体数据的用户年龄分布、全球气候情况等。
  • 挑战 4: 事件大数据本身的挑战。上述提到的挑战在事件预测的任务中进一步导致收集和利用事件数据的困难。这包括诸如带有异构噪声、数据不完整、多模态,多分辨率这些常见问题。同时事件的发生一般属罕见现象,因此样本的不平衡性是重要问题。另外在很多情况下会有对抗性数据引入,比如舆论监管导致的定向性数据缺失。

近年来,大量研究致力于事件预测技术的开发和应用,以解决上述挑战。当前,事件预测技术整体上仍处于起步阶段,但事件预测的研究和应用已出现在非常广泛的众多领域中。现存最多的事件预测方法是为特定的应用领域设计的,然而不同领域中事件预测技术其实有很多共性和联系。不同的应用领域方法的相互参考和讨论目前仍然大量的缺失,然而这样的跨领域思考对于事件预测领域的技术进步极为重要。此外,事件预测结果的质量评估也缺乏统一标准。因此该领域需要系统性综述以确定其规范、技术分类、前沿问题、以及尚需解决的问题。本综述的发表正是为了满足上述需求,主要有以下几方面贡献:

  • 对现有技术的系统分类和总结。本文提供了事件预测方法的正式问题表述,并据此对当前技术进行系统性分类。同时本文讨论了不同子类别之间的关系、优点和缺点,以及每个子类别下技术的详细信息。稳重提出的分类法可以帮助领域专家找到合适的技术从而有针对性的解决问题。
  • 主要应用领域的综合分类和总结。本文提供了对事件预测的应用领域详细分类。阐明每个应用领域的实际意义、难点、常用技术以及数据。这将有望帮助数据科学家和模型开发人员搜索其他应用领域和数据集来评估他们提出的方法,并扩展他们的先进技术以涵盖新的应用领域。
  • 标准化的评估指标和程序。如前所述,事件预测的数据结构是复杂的,包含时间、位置、语义等。本文全面总结了事件预测的实验方法,从而标准化了事件预测的评估体系和方法。
  • 对该领域研究现状和未来方向的深入讨论。基于对现有的工作的调查,本文总结和划定了当前事件预测技术和应用的研究前沿。文章最后提出对当前瓶颈、长期挑战和未来方向的讨论。

这篇综述对事件预测的问题及方法归类如下:其首先按不同输出进行分类,分为时间预测,地点预测,主题预测,以及多输出预测。每个类别根据输出的数据形式进一步分类并给出相应的预测技术。

打开网易新闻 查看更多图片

图 1:文章提出的对事件预测技术分类方法。

下面将简要介绍综述的核心内容框架,详情请参阅原论文。

事件预测问题定义

我们可将事件定义为一个元组 ,其中元素分别表示未来事件的时间,地点 和主题 。这里、 和分别表示时间域、地点域和主题域。注意这里的域具有很广泛的意义,比如地点可以是任何可以确定表示事件位置的量,它可以是欧氏空间的坐标,区域,也可以是流形空间或者是网络空间等的位置表示。类似的,主题域 可以包含任何描述事件的语义特征比如事件发起者、接受者、事件类别、规模等。事件预测要求输入的观测量 具有能够暗示未来事件的信息。其中是时间和地点之外的特征区域。基于以上定义,事件预测问题可以表述如下:

给定观测量 以及历史事件数据,事件预测是一个预估未来事件 的过程,这里 是预测出的未来事件的集合。

事件预测精度的评估方法

不同于普通的监督学习预测的精度评估,由于事件数据本身的复杂结构,事件预测精度评估分为两个步骤,即 1)预测事件和真实事件的匹配。2)基于事件匹配结果的准确度指标计算。

1)预测事件和真实事件的匹配。目前有两种匹配方式,我们把它们命名为固定匹配以及优化匹配。在固定匹配中,时间域、地点域和主题域都会被栅格化,栅格空间中值为 “1” 的点代表有时间,否则为无事件。而后依此方法处理预测事件和真实事件。若预测结果中某个点的数值和真实值相同即为准确预测,反之为错误预测。虽然上述方式简单易懂,但是栅格化时间域、地点域和主题域一般会产生精度损失和误差。另外很多预测事件和真实事件没有办法做到完全匹配。比如假设我们有两个预测事件 Prediction 1: (“9am, June 4, 2019,” “Nogales, Sonora, Mexico,” “Worker Strike”), and Prediction 2: (“11am, June 1, 2019,” “Hermosillo, Sonora, Mexico,” “Student Protests”)和两个真实事件 Real Event 1: (“9am, June 1, 2019,” “Hermosillo, Sonora, Mexico,” “Teacher Protests”), and Real Event 2: (“June 4, 2019,” “Navojoa, Sonora, Mexico,” “General-population Protest”)。很容易看到所有的预测事件没有做到完全匹配任何一个真实事件,但是部分匹配在实际问题中更为常见且有重大意义。预测事件和真实事件的部分匹配问题是一个典型的组合优化问题。如下图 2 中左图所示,因为其复杂度为,很难直接解决。因此一些合理的约束和先验被用来加以利用简化匹配难度,比如图 2 的中图和右图所示的二分匹配以及非交叉匹配。

图 2 预测事件和真实事件的匹配.

2)基于事件匹配结果的精度指标计算。得到事件匹配的结果后,精度指标计算集中在两方面:一方面是成功匹配的 “预测 - 真实” 事件对的数量。另一方面是成功匹配的 “预测 - 真实” 事件对的平均质量。前者一般使用精度(precision),查全率(recall)等常用指标衡量。后者主要计算每一对预测事件和真实事件的距离(或相似性程度)。距离的计算指标主要取决于具体的数据形式,比如位置预测可利用空间距离,主题预测可利用自然语言处理领域的方式比如编辑距离,BLEU score,Top-K 精度等。

事件预测技术的分类简介

本节简略介绍用于每个类别的分类法和代表性技术,以及它们的子类别。由于预测输出的异质性,技术类型取决于要预测的输出类型,例如时间、位置和语义。如图 1 所示,所有的事件预测方法根据其目标进行分类,包括时间、位置、语义、以及这三者的各种组合。

1. 未来事件时间预测

事件时间预测侧重于预测未来事件何时发生。根据他们的时间分辨度,时间预测方法可以分为三类:(1)事件发生:关于事件在未来时间段内是否发生的二元值预测;(2) 离散时间预测:事件将在未来的哪个时间段发生;(3) 连续时间预测:未来事件将在哪个精确时间点发生。

  • 事件发生预测。它可以说是最广泛、最经典的 并且通常是最简单的事件时间预测任务类型。它侧重于识别是否 在未来的时间段内将有事件发生(正类)或不发生(负类)。因此这个问题通常被表述为一个二元分类问题,并用常见的分类器模型解决。当然也可由回归模型解决。另外,因为很多事件预测问题为非均衡(imbalance)样本问题,单分类模型或者是异常检测模型也经常被使用在极端稀有事件(rare event)的预测上。
  • 离散时间预测。在许多应用中,从业者除了想知道未来事件的发生之外,还想知道未来事件的大致时间(即日期、星期或月份)。为此,通常首先将时间划分为不同的时段和各种方法专注于确定未来事件可能发生在哪个时间段。现有的研究问题可以分为直接方法或间接方法。直接方法即为简单回归、整数回归、有序回归、或者自回归问题。间接方法分为两步:第一步利用自回归模型预测输入数据在未来的走势;第二步对预测的未来数据进行异常检测,检测为异常的时间窗即为预测事件发生的时间段。
  • 连续时间预测。离散时间预测方法,虽然简单却有几个弊端。首先它们的时间分辨率受限于离散化粒度;增加这个粒度会显着增加计算资源要求,这意味着分辨率不能任意高。此外,这种权衡本身就是一个对预测准确性敏感的超参数,这使得在训练期间进行调整变得困难且耗时。为了解决这些问题,一些技术直接预测事件精确时间 [163]。最简单的为简单的回归模型。简单回归的主要问题是高斯分布并不能反映时间量的本质,比如非负性。因而另一类方法比如点过程方法更擅长建模时间分布。最近,一些基于深度学习的方法尝试进一步提高传统的基于参数模型的点过程方法,降低学习时间的分布时对参数模型的依赖。另一个常用的方法为生存分析方法,它能够直接建模“还要多久发生”(time-to-event)的分布,并且能够有效利用训练数据里的删失(censoring)数据。

2. 未来事件地点预测

事件地点预测侧重于预测未来事件在特定(欧式或非欧式)空间中的位置。地点信息 可以表述为以下两种类型之一:(1) 基于栅格。这里会将连续空间划分成单元格网格,每个单元格代表一个空间区域。这个类型表示适用于事件的空间大小不可忽略的情况。(2) 基于矢量。在这种情况下,每个位置都由一个无限小的抽象点表示 大小。这种表示方式最适合的情况包括事件的空间大小可以忽略不计或者事件的位置区域只能在离散空间,如网络节点等。

  • 基于栅格的地点预测。基于栅格的事件位置预测技术包括多种类型,比如空间聚类、空间差值、空间卷积、轨迹目标预测等方法。这里空间聚类的目的是对表现出明显异常的大片空间区域进行识别和分组。这些方法通常是凝聚式的,即他们通常从原始最细粒度的空间栅格单元开始,并通过在每次迭代中合并特定单元的空间邻域来进行。空间聚类完成后,每个空间聚类会被送入分类器判断是否有与之对应的未来事件。另外,在过去的几年中,卷积神经网络 (CNN) 在学习和表现复杂的空间模式方面取得了巨大的成功 来自图像和空间数据。CNN 包含多个卷积层,用于提取图像的分层空间语义。此类别中的现有方法通常将空间图作为输入来预测另一个 表示未来事件热点的空间图 。这种公式类似于近年来在计算机视觉领域流行的 “图像翻译” 问题。具体来说, 研究人员通常利用编码器 - 解码器架构,其中输入图像(或空间图)由多个卷积层处理成更高级别的表示,然后通过反向卷积解码回相同大小的输出图像。轨迹目标预测方法通常侧重于基于人群的事件,例如 “聚集事件” 和“散布事件。这些方法共享一个统一的流程,包括两个步骤:首先根据观察到的轨迹预测未来的轨迹,然后根据预测的未来轨迹检测他们共同形成的诸如 “聚集” 和“散布”等事件。
  • 基于矢量的地点预测。不同于基于栅格的方法,基于矢量的预测可以关注离散的空间区域,这些区域可以分布在欧几里德(例如,空间区域)或非欧几里德空间(例如,图拓扑)。这些方法可以分为有监督和无监督的方法。在监督方法中,每个位置将被分类为关于未来事件发生的 “正作用” 或“负作用”。最简单的设置是基于位置之间的独立和同分布(i.i.d)假设,其中每个位置由分类器使用各自的输入特征独立预测。然而,鉴于不同位置通常具有很强的空间依赖性和异质性,该领域工作已经进一步提出研究根据不同位置的预测变量和输出来解决它们。这引出了两个主要研究方向:即空间多任务学习和空间自回归方法。多任务学习是一种流行的学习策略,它可以 共同学习不同任务的模型,这样学习的模型不仅可以分享他们的 知识,但也保留了特定任务的一些独特特征。这个特点与空间事件预测任务中的空间异质性非常吻合。空间多任务学习把不同的空间位置作为不同的任务,在对不同空间地点的数据进行共同训练的同时会考虑它们的空间依赖性和异质性。空间自回归模型已在地理和计量经济学等领域得到广泛探索,在这些领域中,不同地点的数据不符合独立同分布假设。一个地点的未来事件既可能由当前的观测影响也有可能由相邻地点的未来事件影响。空间自回归模型即被用来建模上述假设。为了减弱空间自回归模型对于空间相邻关系先验信息的依赖,最近一些工作可以在训练模型的同时自学习或部分学习空间相邻关系。

3. 未来事件语义预测。

事件语义预测主要解决时间和地点之外的信息预测,包括事件主题、描述或其他元属性。与时间和位置预测不同,事件语义预测中的数据通常涉及符号和自然语言。根据对历史数据的组织和利用方式可将方法分为三类。第一个为基于关联规则的方法,其中未来事件前兆是通过挖掘历史数据中的关联或逻辑模式来提取的。第二种是基于序列的,即通过时间事件的演化趋势链条来预测未来事件。第三种类型将事件链进一步泛化为事件图,一些工作尝试通过因果推断的方法。

  • 基于关联规则的方法。基于关联规则的方法是数据挖掘领域中最经典的事件预测方法之一,通常由两个步骤组成:首先学习前兆和目标事件之间的关联,然后利用所学的关联预测未来事件。
  • 基于因果关系的预测。这种方法通常共享一个通用的基本步骤:(i) 事件表示. 这种方法通常从提取使用自然语言处理技术从目标文本中提取事件,标记化、词性标签分析和名称实体识别; (ii) 事件图构建. 这里的目标是推断历史事件之间的因果关系。由于其组合优化的性质,缩小候选对的数量是至关重要的。现有的工作通常首先将事件聚集成事件链,每个事件链由相关语义下的一系列事件按时间排序组成,他们通常共享相同主题、参与者和对象。然后可以通过各种方式推断事件对之间的因果关系。最简单的方法是基于贝叶斯推断的方式。其他方法利用 NLP 技术以及知识图谱来识别和扩展因果关系。(iii) 未来事件推理。给定一个任意的种子事件,我们会用它查询它可能导致的未来事件。
  • 基于序列的预测。给定历史事件链的时间序列,这类方法的目标是预测使用序列预测的下一个事件。目前的方法来自两大类:全序列分类和序列预测。基于全序列分类的方法将事件语义预测表述为多类分类问题,其中有限数量的候选事件被排名,并且排名靠前的事件被视为未来事件语义。多类分类问题可以拆分为具有不同主题 / 语义含义的事件。当前方法主要分为如下三个子类,即基于特征的方法、基于原型的方法和基于模型的方法。序列预测主要探索如何预测序列的下一个元素,及其所代表的事件。序列预测方法主要分为两种类型,其中第一种需要人为定义关键属性,而更现代化的方法可以基于深度学习等学习序列的隐含表征以直接预测未来事件。

4. 未来事件的多属性预测

很多方法不单独预测事件时间、位置、或语义,而是同时预测它们。现有的工作主要可以分为三类:(1)同时的时间和语义预测;(2) 同时的时间和地点预测;(3) 同时的时间、地点和语义预测。

  • 同时的时间和语义预测。该问题主要流行的有三种方法:最经典的为基于时间关联法则的方法。它们通过将额外的时间信息嵌入到普通的关联法则中,从而扩展了原有定义。比如两个关联事件必须发生在特定时间段才算做关联等等。基于时间序列预测的方法近年来也获得了一定不错的进展。基于时间序列预测的方法分为直接方法和间接方法。直接方法通常将事件预测问题定义为多变量时间序列预测问题,其中每个变量对应于事件类型的表示(比如 one-hot 表示或更复杂的表示),因此可以同时预测未来的事件类型和时间。
  • 同时的时间和地点预测。这类方法侧重于联合预测未来事件的地点和时间。这些方法可以分为两种子类型:第一种为基于栅格的方法,专注于对时段和位置区域的预测,另一种为基于点的方法,它可以预测精确的时间点和位置点。这些方法通常将数据表示成 “图片” 序列,这里的每一张 “图片” 为每一个时间段的空间信息。最简单的技术一般是对各个时间段的空间信息提取特征然后用传统的处理序列分类的方法解决。最近几年,尤其是深度学习在计算机视觉领域中的图片加速了上述时空数据端到端表征的发展。其中最有代表性的为基于卷机 - 循环神经网络(CNN+RNN)的架构。在此之上一些改进的技术比如 convLSTM,stack-convLSTM 之后进一步提出以更好的权衡模型表征能力和学习效率。基于点的方法主要采用时空点过程模型。时空点过程模型在空间和时间点对事件发生率进行建模。传统的时空点模型一般需要假设先验统计参数模型来建模数据的分布。最近几年深度学习的发展刺激了端到端的时空点模型来增强模型对未知分布的建模能力。
  • 同时的时间、地点和语义预测。这类方法可以分为以下主要类别:基于群体智慧的方法、基于对未来事件表述的检测方法以及基于张量分解的方法。

基于群体智慧的方法可以进一步按人工智能体的群体智慧以及人类的群体智慧划分。基于人工智能的群体智慧主要指模型集成(model ensemble)方法和系统。最直观的方式是利用诸如多数投票法整合多个上文中提到的预测器的预测结果。一些现有的系统经常强化各单独预测器的准确率(precision),弱化召回率(recall)因而在它们融合时同时实现高准确率和召回率。基于人类群体智慧的方法主要利用众包(crowdsourcing)技术来融合人类对未来事件做出的预测。例如当前一些基于推荐系统的方案可以针对所需预测的事件类型挑选具有合适技能的人类团队,以最大限度地提高其融合的准确性预测。

还有一类方法侧重于检测已经计划好的未来事件。这类信息广泛存在于各种媒体,例如社交媒体和新闻。通常我们依靠 自然语言处理技术和语言学原理能够有效找到这样的信息。之后对其进行解析,实现对未来事件的画像。

事件预测的应用领域及数据

事件预测的技术已经在各个领域得到广泛的应用,分布在社会科学、健康、工程、自然科学、互联网等等。本文对它们做了全面的调研,请阅读原文了解详细内容。下表列举了其中有代表性的应用以及标准数据集。

数据集地址:https://cs.emory.edu/~lzhao41/projects/event_prediction_site/

当前挑战及未来展望

尽管近年来事件预测取得了重大进展,并且取得了广泛的应用,但整体来说事件预测仍是一个处于起步阶段的领域,因为它本身极大的挑战性以及现存的许多开放的科研问题。本文主要列举一下几个方面,详细解释请查阅原文。

  1. 事件预测模型的透明性以及预测的可解释行和可问责性。
  2. 对于噪声和对抗性数据的敏感性。
  3. 深度融合先验知识、机理模型和数据拟合技术。
  4. 规范性分析及反事实分析的重要性。
  5. 多目标训练的重要性。