如何用深度学习模型预测未来?

卷友们好呀,我是Carrie。

当我们环顾身边的世界,是不是会发现现实世界其实是由无数个相互关联的事件(Event)所构成的呢?而从古至今,人们也都希望自己拥有未卜先知、预测未来的能力。今天,就带大家了解一个关于事件预测的任务,一起成为小诸葛(doge.jpg)

今天带大家了解的任务叫做脚本事件预测(Script Event Prediction) 。何为脚本呢?脚本就是描述了特定人物一系列行为的一个事件序列[1]。如下图所示,该事件序列就是一个关于鲍勃(假定X就是鲍勃)去餐厅用餐的脚本。而脚本事件预测,就是需要大家根据已给出的事件序列,从候选的若干的事件里面,预测接下来会发生什么事件。

脚本事件预测图例[2]

然而,脚本事件序列任务并不仅仅是为了预测鲍勃饭后去做什么,作为一项重要的事件推理任务,它能够为对话系统、推荐系统等重要引用提供基础,更能够对人们的行为理解和社会发展起到重要作用。

在脚本中,每个事件通过一个由主语、谓语、宾语和间接宾语构成的四元组来表示。例如 serve(Waiter, Bob, food),表示 “The waiter serves Bot food (服务生送给鲍勃食物)”。多年以来,关于脚本事件预测已经诞生了不少的研究工作。今天,本文将现有工作划分为两大类(当然,这样的划分并不绝对,仅作参考)。这样的划分依据来源于,当我们把自己想象为要预测事件的小诸葛,我们的预测应该会总两方面出发。一方面,我们会认真挖掘已给定的事件序列,通过对当前事件序列不同层面上的语义挖掘与线索发现,来预测接下来发生什么。另一方面,当第一种方法仍不能带给我们很好的效果时,我们不得不寻找一些外挂,即借助外部的知识来辅助我们的预测。今天,我们将对这两大类工作进行梳理,并对其中的代表性工作进行简要介绍。对具体实现感兴趣的朋友,欢迎戳相关原论文进行查阅。

基于事件序列本身的事件预测

当我们拿到一个事件序列,我们想必会对它进行由浅入深的分析。最基本地,我们会分别考虑事件序列中的每个事件与候选事件之间的关系,即通过事件对之间的关联预测事件。

基于事件对关联建模的事件预测

基于事件对的预测方法,首先是将事件序列中的事件与候选事件形成事件对。在构成事件对后,早先的研究工作会通过概率与统计的相关算法(例如 PMI 算法[3])计算事件对的共现概率,再通过整个事件序列中事件对的概率综合来选择候选事件。

随着深度学习的发展,研究人员通过深度学习方法进行事件表示,并通过全连接网络计算事件间的相关性程度。例如,Granroth-Wilding等[4]在AAAI2016通过What Happens Next? Event Prediction Using a Compositional Neural Network Model[5] 一文年提出了基于事件对的EventComp方法。该文作者通过词嵌入方法进行事件元素的表示,使用全连接网络对事件对是否满足顺承关系进行分类。在训练过程中,作者通过随机采样构建满足顺承关系的正样本事件对和不满足顺承关系负样本事件对,通过交叉熵损失进行模型优化。

EventComp图示

基于事件序列建模的事件预测

然而,基于事件对的方法聚焦于两两单独事件之间的关联性,忽略了整个事件序列中的语义交互。因此,基于事件序列建模的预测方法被广泛提出。

事件序列级别的建模:SAM-Net: Integrating Event-Level and Chain-Level Attentions to Predict What Happens Next

对于一个事件序列来说,虽然它由若干个单独的事件构成。但单独的”事件”并不能完备地表述一件事情的发生。例如,“X读了菜单、XX下单了菜品、XX完成了付款”,这三个事件合起来构成的事件序列片段表述了一个语义更加完整的”事件”。因此,吕尚文博士于 AAAI2019提出了事件序列片段 (event segment) 的概念,即由事件序列中若干个语义关联较强的事件构成的事件子序列。事件序列片段可以是连续的若干个事件,例如图(a)中的“X读了菜单、XX下单了菜品、XX完成了付款”, 也可以是不连续的若干事件,例如图(b)中的“XX下单菜品”与”XX打包了食物、XX吃掉食物”。

事件片段示例

然而,事件序列中的事件片段并非天然标注出来的,因此这篇论文的关键问题就在于如何从事件序列中找到事件片段,以及如何通过事件片段的语义来进行事件预测。要解决这一关键问题,主要存在两项挑战:一是如何对事件进行有效的语义表示从而获取事件片段;二是融合事件序列中单独事件与事件片段的语义进行事件预测。

SAM-Net模型图示

关于第一项挑战,作者设计自注意力机制建模事件间的语义关联性,将关联性强的事件划分为一个事件序列,并通过DenseNet模型进行事件片段的特征提取。关于第二项挑战,作者通过事件层面和事件序列层面的注意力机制分别来衡量单个事件和事件片段对事件预测的影响,并在二者的结合下进行最终的事件候选事件预测。

论元级别的建模:WWW2021: Multi-level Connection Enhanced Representation Learning for Script Event Prediction

尽管基于事件对、事件片段的建模方法取得了良好的实验效果,但上述方法都停留在粗粒度的事件级别的建模,而忽略了事件要素所呈现的复杂语义特征。基于此,岳聚微博士于WWW2021提出,通过同时建模事件要素级别事件级别事件序列级别的多粒度特征来进行事件预测。

在具体的实现中,主要包括两个模块。一是事件要素表示模块,该模块以整个事件序列为输入,通过带掩码的多头自注意力机制学习事件要素间的隐式关联,得到细粒度的事件要素级别的表示;然后,作者将事件要素向量拼接,通过全连接层和激活函数的特征变换输出事件级的特征表示。得到初始的事件表示后,作者设计事件特征抽取模块,借鉴Li et al.[6] 于IJCAI2018提出的基于图结构建模事件间演化关系的思想,将事件序列转化到图结构上,通过图神经网络学习事件序列层面上的事件的特征表示,再进行预测。

多粒度级别建模:IJIS2022:  What happens next? Combining enhancedmultilevel script learning and dual fusionstrategies for script event prediction

上一篇WWW2021的工作融合的是要素级别和事件级别两个层面的语义信息,而这一篇发表于International Journal of Intelligent Systems的工作则通过同时建模事件级别、事件序列级别和事件片段级别三种粒度的语义来实现事件预测,取得了优异的实验性能。

基于图结构建模的事件预测

IJCAI2018-Constructing Narrative Event Evolutionary Graph for Script Event Prediction

尽管上述基于事件序列的建模方法卓有成效,但仍旧存在难以处理的情况。如下图所示,图中包括A,B,C,D,E五个事件,图(a)要求预测事件C的后续事件为D。然而,根据图(b)的训练数据,事件C 的后续事件是E的概率大于为D的概率,这可能导致图(a)中做出错误的预测。然而,如果我们以图结构来组织数据,就可以发现事件B、C和D往往同时出现,也就是说,图结构能够刻画一种更加复杂的事件间演化关系,这为图(a)中的事件预测提供了重要线索。

从上述思想出发,哈工大李忠阳博士构建了叙事事件演化图(Narrative Event Evolutionary Graph, NEEG) , 如下图所示 。该图中的节点为具体的事件有向边表示事件间的演化关系边上的权重表示该演化关系出现的频率

叙事事件演化图示例

在完成演化图构建后,作者对门控图神经网络(Gated Graph Neural Networks, GGNN)进行拓展,实现了可以适应于小规模子图结构的Scaled Graph Neural Network (SGNN)在图结构上进行事件表示的学习,再进行事件的预测。

在后来的研究中,基于图结构进行事件预测的工作仍在继续。在COLING2020中,来自国防科大的学者通过 Heterogeneous Graph Neural Networks to Predict What Happen Next[7] 一文提出基于异质图建模的事件预测;在ACL2022中,来自哈工大的杜理博士将图结构(Graph)与BERT模型结合,在 A Graph Enhanced BERT Model for Event Prediction[8] 一文提出了能够自动预测事件图结构信息的方法GraphBERT,避免了测试事件不被事件图覆盖的问题。

基于外部知识增强的事件预测

因为脚本中的事件是通过元组表示的,这导致它吧 在脚本中,每个事件都由四个单词/词组构成的元组表示,这导致较之传统的自然语言文本,由事件元组构成的事件序列所能提供的语义信息非常有限。因此,研究人员开始考虑从外部资源库中 提取知识来增强事件表示。根据引入知识的不同,基于外部知识增强的事件预测工作大体可分为三类。

话语关系增强的事件预测

ACL2019-Multi-Relational Script Learning for Discourse Relations

第一类是基于话语关系建模事件间关系的事件预测。为什么需要事件间的关系来推理后续事件的发生呢?

如下图所示,对于Step1的事件“Jenny went to her favorite restaurant”,若基于传统的事件共现性建模,Step2中的事件“She was very hungry”和“It was raining outside”都可能是Step1的后续事件。然而,如果给定了Step2的事件是Step1事件的原因(即因果关系) ,则可以推出Step2中被选定的事件为“She was very hungry”。因此,如果能挖掘事件之间的关系(例如,原因、时序、转折等),则能为事件预测提供强有力的线索。

基于上述思想,来自普渡大学的学者 I-Ta Lee 在ACL2019引入了话语数据库PDTB中的话语关系,设计了一种基于细粒度多关系建模的事件表示方法。具体地,作者合计引入了三大类共11种关系:1)COREF_NEXT,指是同一指代链上的事件序列关系;2)NEXT,指特定大小上下文窗口之间同时发生的事件;3)Discourse Relations(话语关系),包括原因、结果和条件等如下表所示的合计9种话语关系。基于事件间的关系类型,分别通过TransETransR策略进行事件表示学习,从而进行相关任务的预测。

后续,I-Ta Lee 在其发表于EMNLP2020 的 Weakly-Supervised Modeling of Contextualized Event Embedding for Discourse Relations[9] 一文中再次通过引入话语关系建模事件间关系进行任务预测,取得了良好的效果。

知识库增强的事件预测

基于事件知识库的语义增强:COLING2020-Integrating External Event Knowledge for Script Learning

较之话语关系,事件知识图谱则更直观表达了事件间语义关系的信息。例如图所示,通过<He is hungry, Result, He has lunch>的事件三元组可以非常明确地作为事件”Jack felt hungry”的后续事件是”He had lunch”。同理,当我们预测整个事件序列的后续事件时,根据知识库中<He does receives a call, Precedence, He departs away>的三元组,便可以判断当前脚本的后续事件是”He left home”。

基于上述思想,COLING这篇论文的关键问题就在于融合外部的事件知识来帮助解决脚本事件预测问题,具体包括两个核心的阶段:知识抽取阶段以及知识融合阶段。在知识抽取的阶段,作者以脚本序列中的事件作为查询,在事件知识库中检索对应的事件及其对应的事件三元组;在知识融合阶段,作者设计了融入尾实体 (Tail only)事件模板转换 (Event Template)关系嵌入表示 (Relation Embedding) 三种知识融合方法获取外部知识感知的事件表示。最后,基于事件表示进行相应的任务预测。

基于常识知识库的语义增强 EMNLP2019: Event Representation Learning Enhanced with External Commonsense Knowledge

除了事件知识图谱,常识知识库也能为事件预测提供有效的线索。哈工大丁效老师于EMNLP2019的论文指出:客观事件的发生会被人类的主观情感所影响,而不同的事件背后所体现的意图和情感也互不相同,因此通过EventMind[10]和 ATOMIC[11]两个常识知识库引入情感和意图知识来增强事件表示的语义信息,从而辨别易混淆的事件。

原文本增强的事件预测

第三类被引入的外部知识是脚本事件本身的原始文本。正如前文分析,导致脚本事件语义稀疏的重要原因之一就是事件脱离了其本身的上下文,那么,最直观可以用来增强语义的外部知识就是脚本事件本身的原始文本。

原始文本增强的事件预测 AAAI2023: Rich Event Modeling for Script Event Prediction

在AAAI2023, 中科院计算所的白龙博士指出,脚本事件预测任务的挑战主要体现在两方面:一是事件描述,这体现了事件应当包含了怎样的信息;二是事件编码,这体现在如何将事件编码为机器可计算的有效表示。关于事件描述,现有工作中的事件都通过一个由主语、谓语动词、宾语和间接宾语构成的四元组来表示。由于缺失事件所处的上下文,可能导致谓语动词的语义模糊(例如,动词 fall 可能表达”被击败”或”落下”的语义),且主语、宾语和间接宾语无法准确描述事件内涵的问题;关于事件编码,现有的编码器仅局限于对固定数量论元的事件进行编码,导致无法处理论元数量不等以及论元间灵活交互的问题。

为了解决上述问题,作者设计了名为 Rich Event Prediction 的方案:通过 Abstract Meaning Representation (AMR) 对事件原属文本进行解析,从而获取 rich event prediction,并通过Transformer编码器来捕捉事件论元间的关联关系,取得了良好的实验效果。

总结

上文从两个方面梳理了现有的脚本事件预测的相关工作,并介绍了代表性的相关工作。其实,除了上文介绍的论文,还有许多非常精彩关于事件预测的工作,感兴趣的小伙伴可以尽情挖掘,大家一起成为未卜先知的小诸葛(doge.jpg)

参考资料

[1]

Scripts, plans, goals, and understanding: An inquiry into human knowledge structures: https://www.taylorfrancis.com/books/mono/10.4324/9780203781036/scripts-plans-goals-understanding-roger-schank-robert-abelson

 

[2]

SAM-Net: Integrating event-level and chain-level attentions to predict what happens next: https://ojs.aaai.org/index.php/AAAI/article/view/4655

 

[3]

Unsupervised Learning of Narrative Event Chains: https://aclanthology.org/P08-1090/

 

[4]

SEP相关论文整理: https://github.com/carrie0307/DL_EventExtractionPapers/blob/master/Category/Script%20Event%20Prediction.md

 

[5]

What Happens Next? Event Prediction Using a Compositional Neural Network Model: https://ojs.aaai.org/index.php/AAAI/article/view/10344

 

[6]

Constructing narrative event evolutionary graph for script event prediction: https://dl.acm.org/doi/abs/10.5555/3304222.3304354

 

[7]

Heterogeneous Graph Neural Networks to Predict What Happen Next: https://aclanthology.org/2020.coling-main.29.pdf

 

[8]

A Graph Enhanced BERT Model for Event Prediction: https://aclanthology.org/2022.findings-acl.206.pdf

 

[9]

Weakly-Supervised Modeling of Contextualized Event Embedding for Discourse Relations: https://aclanthology.org/2020.findings-emnlp.446/

 

[10]

EventMind: http://aclweb.org/anthology/P18-1043

 

[11]

ATOMIC: https://dl.acm.org/doi/abs/10.1609/aaai.v33i01.33013027

作者:极客石头

在搞事情的路上越走越远。

发表评论

您的邮箱地址不会被公开。 必填项已用 * 标注