事件模式归纳(event schema induction)是从未标记的文本中学习复杂的事件以及其论元的高级表示的一项任务[1]。事件模式归纳最早可以起源于1992年,当时是由美国DARPA资助的MUC-4会议中提出的MUC-4 scenario template task任务中提出了事件模板提取任务(event template task),该任务主要是以管道模型的方式将事件模板提取分解为字段分割和基于事件的文本分割任务[2]。
最早的事件模式自动归纳方法(automatic event schema induction)源自于Chambers and Jurafsky在2009年发布的一篇对于叙事事件模式和其论元的无监督学习的研究[3],在这篇研究中首次提出了利用文本中的类型叙事链来对事件模式进行自动归纳的研究方法。
由于事件模式并没有一个统一的定义,因此存在着众多的事件模式定义方法以及其相关的归纳方法。但是从大体上来说可以将事件模式归纳分为两类:一种是原子事件模式归纳(Atomic Event Schema Induction),另外一种是叙事事件模式归纳(Narrative Event Schema Induction)[4]。
下面将分别按照两种不同的事件模式归纳方法分别对其典型的研究进行介绍,最后介绍一种事件模式归纳的新思路——事件图模式归纳。
1.原子事件模式归纳
1.1 原子事件模式归纳简介
原子事件模式归纳重点关注于单一原子事件的事件类型以及论元。一般的原子事件模式是多个相似事件的一个模板:其中包括一个事件类型(如Elections)以及一组论元(如Date/Winner.....)。这里需要注意不同的论文中对于事件类型与论元有着不同的描述,在本文中将其统称为事件类型和论元。一个原子事件模式的示例如图1[5]所示。
图1:一个选举(Elections)的事件模式。可以看到对于多个相似的事件(图1中的nominate、vote等),他们对应的均为事件类型为elections的事件模式,并且这些相似的事件都具有事件模式所有的五个论元(Date、Winner、Loser、Position和Vote)以及论元对应的类型。
在介绍下面的典型研究之前首先要明确几个关键的语义学名词的概念:句法功能(Syntactic Functions):句法功能是指一种语言形式和同一句型中的其他部分之间的关系,常见的句法功能有主语、谓语和宾语等.
语义角色(semantic role):谓语和论元之间不同的语义关系可以把论元分为若干个类型,这些类型一般称之为"语义角色",如施事、受事等。
句法关系(Syntactic Relations):指句法结构的组成成分间产生的关系意义,如主谓关系、偏正关系等。
1.2 典型研究
一个典型的原子事件类型归纳的研究是Nathanael Chambers和Dan Jurafsky在2013年发表的一篇关于如何在没有预设模板的情况下进行基于模板的事件模式归纳的方法[1]。这篇文章的开创性部分在于文章着重于在无监督的情况下学习一个事件类型的事件模式结构。
对于无监督的事件模式归纳来说主要存在两个问题:第一个是不知道语料库中有多少个事件,第二个问题是不知道语料库中哪些文档描述了什么事件。作者采用了如下的三个步骤来解决这两个关键问题:
首先是通过计算事件单词之间的接近度来聚类训练集中的事件;
其次是针对第一步生成的每一个聚类从一个不相关的语料库中抽取文章来建立一个新的语料库;
最后采用第二步生成的新的语料库来归纳每一个事件模式的论元。
文章采用了MUC-4的恐怖主义语料库(terrorism corpus of MUC-4),选择该语料库的原因是语料库注释了包含事件与相关论元的模板,在最后的性能测试中可以将生成的事件模式的结构与语料库本身的模板结构进行比较。下面介绍作者的方法。
1.2.1 聚类训练集中的事件
首先需要对事件进行聚类。这里采用了两种聚类方法:LDA(隐含狄利克雷分布)和基于单词距离的层次聚类算法(agglomerative clustering based on word distance)。
LDA我们非常熟悉的聚类方法,该算法基于事件的离散分布来学习事件的类型,基于文档中的共现(co-occurrence)来聚类事件。 对于基于单词距离的层次聚类算法而言,采用余弦相似性的方法来计算距离这一方法并不适用。举例来说:引爆和摧毁属于代表爆炸的同一聚类,但是通过余弦相似性来学习到的聚类的同义词(clusters of synonymous words)经常不包括引爆和摧毁。因此作者假设单词之间的接近中心性(closeness)是由单词所在句子之间的距离来定义的,即不采用两个事件单词的出现频率而考虑两个事件单词的出现距离。 在这里作者定义为事件单词的出现距离(如1代表两个单词在同一个句子,2代表两个单词在相邻的句子),下式表现基于距离的两个单词的频率:
作者使用PMI分数(pointwise mutual information)对所有事件模式进行层次聚类。聚类合并的策略为两个事件聚类间所有新链接间的平均链接得分(average link score)。当聚类中事件个数超过40个以后停止聚类。
1.2.2 构建新的语料库
针对MUC-4没有提供足够的动词以及相关语义角色的情况,作者在一个更大的不相关语料库(美联社和《纽约时报》上的胃肠道语料库的一部分)上通过搜寻相关文章的方式针对每一个聚类分别来构建一个新的语料库。
具体搜寻方法如下:第一步中对每个聚类具有多个对应的事件词,在这里可以根据这些事件词在这个不相关语料库进行检索。通过聚类的事件词出现在文档中的次数以及文档中出现了几种聚类中的事件词进行筛选,最终得到了每一个聚类对应的语料库(IR-corpus)。
1.2.3 论元归纳
(1)聚类事件聚类对应的句法关系来表示论元:
在成功地聚类了事件词并检索了每个聚类的IR-corpus(指在第二步中生成的语料库)后,我们现在需要解决论元归纳的问题。
文章考虑一种基于向量的共指相似性的方法。首先考虑聚类C,代表着事件聚类C的句法关系,具体示例如下所示:
其中中的示例有如下的含义verb:s代表word是verb的主语,verb:o代表的是word宾语,p_word代表word是verb的介词。作者希望聚类句法关系(如 set_off:s)如下所示:
作者希望用句法关系来聚类主语、宾语和介词,注意在语料中所有的被动语态均被转化为主动语态。这里作者采用了关系相似性的两种观点:共指论元和选择偏好(coreferring arguments and selectional preferences)。共指论元表示了两个谓词之间的语义联系。
例如“他跑步和跳跃”,在这个例子中跑步和跳跃的主语均是“他”。所以“跑步”和“跳跃”很可能属于同一特定场景的语义角色。
在这里作者将一个句法关系表示为与该句法关系具有相同论元的所有句法关系的表示。
比如go_off:s这个句法关系和plant:o, set off:o and injure:s具有相同的论元,则将go_off:s表示为这三个句法关系的向量,称其为共指向量表示(coref vector representation)。
选择偏好技术(SPs)在测量相似性方面也很有用[5]:一个关系可以被表示为它在训练过程中观察到的论元的向量。
比如对于go_off:s的选择偏好来说包含{bomb, device, charge, explosion}。
在计算成对句法关系的相似性的时候,作者分别对成对句法关系的共指向量和成对句法关系的选择偏好的向量计算余弦相似性分数从而进行度量。由于共指论元和选择偏好的性质有所不同,为了更好的度量相似性,可以取两个句法关系向量的共指向量和选择偏好向量的余弦相似性分数的最大值(当最大值>0.7)作为其相似性度量;如果最大值小于0.7,则取两个向量的余弦相似性分数平均值作为训练惩罚。 (2) 聚类事件的句法功能 作者同样采用了层次聚类的方法来对上边的成对的句法关系的相似性度量进行聚类。聚类相似性是跨越两个聚类的所有新链接的平均链接得分score(ca,cb),对于两个聚类和来说,如果两个聚类之间的连接过少,则需要施加惩罚函数r(ca,cb)。惩罚函数r(ca,cb)的作用是:当两个聚类只共享几个评分较高的边时将惩罚两个聚类进行合并;当合并的聚类分数低于对训练集性能优化的阈值时,聚类停止。
对于事件的句法功能(句法功能:如主语、宾语)和事件的语义角色来说有如下的两个假设:第一个是对于一个动词的主语和宾语来说承担着不同的语义角色。
比如sell的主语是seller,而宾语是good,二者的语义角色是不同的;
第二个假设是每一个语义角色都有一个更高级别的实体类别。
比如seller的实体类别是Person/Organization,good的实体类别是Physical Object。
句法功能的聚类算法首先采用第一个假设进行约束,如果两个聚类的并集包含同一个动词的主语和宾语的话则防止其聚类(因为同一个动词的主语和宾语具有不同的语义角色,那么假设聚类后含有同一个动词的主语和宾语的话说明这两个聚类不能进行聚类,否则合并后的聚类就会代表两个语义角色,而不是应该的一个语义角色)。 第二个假设的实现则是对于聚类中每一个句法功能对应论元的类型对这个句法功能进行标注,这里论元的类型被简单的分为:Person/Org, Physical Object,或Other。如果一个事件的句法功能对应的20%的论元出现在相应的同义词集,则将这个句法功能标注为对应的论元类型。一旦标记,模型将分别为句法功能的每个论元类型分别进行聚类。
图2:根据算法生成的MUC-4恐怖主义语料库的部分事件模式,其中事件类型为蓝色,如Election Template,事件的论元为绿色,如Voter。
1.2.4 论元归纳对于事件模式归纳的测试
现在将我们学习到的模板与那些为MUC-4恐怖主义语料库手工创建的模板进行比较。MUC-4恐怖主义语料库共有6种事件模式,作者对于其中4种主要的事件模式进行了测评。图3是原先的MUC-4恐怖主义语料库包含的事件模式和论元,可以看到图3中包含了13种相关论元,本文的事件模式归纳算法寻找出了原先13种中的12种,并且寻找出了在Bombing/Kidnap/Arson中的一种新的论元Police or Authorities。对于论元的召回率92%,准确度是14/16。
图3:原先的MUC-4恐怖主义语料库包含的事件模式以及论元
2.叙事事件模式归纳
2.1 叙事事件模式归纳简介
叙事事件模式主要关注归纳叙事事件模式。一个叙事事件模式主要由一组相关事件(search/arrest/plead)、事件的时间顺序(search before arrest)以及特定的语义角色(Roles:Police/Suspect......)所构成[6]。图4是一个典型的叙事事件模式的示例[3]:
图4:一个典型的叙事事件模式。其中在左边的事件一列由一系列特定的语义角色(Police/Suspect/Plea/Jury)通过一系列相关的事件构成一个叙述(narrative)
最早的叙事事件模式自动归纳方法就是本文第一章中介绍的Chambers and Jurafsky在2009年发布的一篇对于叙事事件模式和其论元的无监督学习的论文[3]。下文将介绍这篇文章讲述的研究方法。
2.2 典型研究2.2.1 先导概念——叙事事件链本文借鉴了Chambers and Jurafsky在2008年提出的叙事事件链(Narrative Event Chains)这一概念[5]。叙事事件链由一个元组(L,O)所构成:其中L由一系列的event slot所构成,event slot的结构是一个由v和d组成的对
图5:叙事事件链的表示
图6:叙事事件链的图示化表示
对于叙事事件链的生成来说,作者首先对文本进行分析和共指消解(parsing and resolving coreference in the text),随后对进行无监督的学习来生成叙事事件链:首先计算在文章中有多少个成对的动词具有共同的论元(即为图5中的X),随后计算这些动词-论元对之间的PMI分数,算法通过PMI分数进行聚类从而生成叙事事件链。这里的叙事事件链仅针对于事件链中事件共同的论元,这里的论元指的是参与者,即主角(protagonist,如图5中的X),而不是一种类型。
2.2.2 类型叙事链
在Chambers and Jurafsky 2009年的研究中扩展了叙事事件链并提出了类型叙事链(Typed Narrative Chains)这一概念,相较于原先的叙事事件链来说,类型叙事链中共同的论元被替换为一种类型(如person/government)。一个典型的类型叙事链由一个三元组(L,P,O)所构成,其中L和O的概念与叙事事件链的概念一致,而新增加的P是一组表示单个角色的论元类型,类型叙事链的示例图7所示:
图7:类型叙事链的一般表示
如上文所述,叙事事件链的生成需要分析文本(parsing the text),共指消解(resolving coreference),提取具有共同参与者的事件生成叙事事件链。作者通过观察event slot的数量来计算论元的数量,对共指链中的每一个词建立引用集,然后用引用集中最频繁的中心词表示每一个论元。具体的示例如图8所示:
图8:一个具体的示例
对于图8的示例来说,算法通过共指来鉴别出四个粗体的短语,并选取短语中的中心词,随后选取频度最大的中心词作为最突出的描述。
比如在图8的示例中最突出的描述为workers,在这里这四个中心词则成为了共指集。在示例中如果任意成对的event slot具有相同的来自共指集的论元的话,则将其计算为workers。 在图8的示例中(X find),(X apply)具有相同类型的论元(workers,they)。因此在叙事事件链的归纳中((X find),(X apply))被计算,在论元归纳中((X find),(X apply),workers)被计算。
图9是一个犯罪场景的叙事事件链,其中P中为犯罪场景的类型叙事链中所有event slot对中4个频度最大的单词:
图9 一个犯罪场景的类型叙事链,这里没有O(事件的部分时序关系) 在叙事事件链中,需要计算新的event slot与原有的叙事事件链C中的所有的event slot的相似性,相似性的计算公式如下,其中sim
叙事事件链对于每一个待选的event slot进行相似性计算,选取相似性最高的event slot来加入叙事事件链中,对于类型叙事链来说也有类似的操作,只不过需要加入论元这一变量,具体方法是在特定论元a的上下文定义相似性,如下公式所示,其中freq是代表着两个event slot中对应论元为a的数量:
随后采用如下的公式对整个类型叙事链进行评分:
最后采用如下的公式来扩充类型叙事链:
2.2.3 叙事事件模式
在完成类型叙事链的定义与构建后,下面来定义具体的叙事事件模式。如果说叙事事件链是由一系列的event slot构成,那么叙事事件模式则由一系列的类型叙事链所表示。叙事事件模式N由一个二元组N=(E,C)所组成,其中E是一系列事件(动词)的序列,C是一系列类型叙事链。一个典型的叙事事件模式如图10所示。
图10:一个典型的叙事事件模式,左侧是类型叙事链,第一个是警察的类型叙事链,第二个是罪犯的,第三个是法官的;右侧是生成的叙事事件模式。
虽然叙事事件模式的表示为一组类型叙事链,但是实际上等价于如何将一个模式表示为event slot之间的约束满足问题(constraint satisfaction problem,简称CSP)。叙事事件模式使用了所有动词以及其相关论元的概括,如果一个动词的主语和宾语都以一个较高的置信度被分配给了叙事事件模式中的叙事链的话,那么这个动词就可以被分配到叙事事件模式中。
比如对于图11中的例子来说,有可能(警察,pull over)的得分较高,但是(pull over,A)这个event slot并没有出现在其他的叙事链中;假设有一个(警察,search)的event slot,同时也出现了(search,defendant)这个event slot,那么相较于pull over来说的话,search则更应该加入到叙事事件模式中。
图11:另一个叙事事件模式的示例
这种直觉引导作者找到了构建叙事事件模式的事件关联函数(event relatedness function)。不像构建叙事事件链那样需要考虑每一个event slot是否是最合适的,在叙事事件模式中我们要考虑事件v是否在叙事事件模式的所有event slot中是合适的,事件关联函数如下,其中CN是叙事事件模式中叙事链的集合:
对于事件关联函数来说,如果待选的event slot对于每一个叙事链的都没有足够的相似性的话,则为其构建一个新的叙事链,这个叙事链具有一个基础的参数β,也就是说参数β是平衡将event slot加入已有的事件链或者新构建一个事件链的一个分水岭。 最后对于叙事事件模式的构建来说是不断的加入事件v,并且最大化事件关联函数:
这样就完成了整个叙事事件模式的构建。2.2.4 实验作者采用了两种方式来对叙事事件模式进行测试:第一种是与FrameNet进行比较,作者采用了算法生成的top 20个叙事事件模式来和FrameNet在动词分组、链接结构(每个论元角色与语法主语或宾语的映射)以及论元角色(构成模式角色的实体集),图12是20个生成的叙事事件模式。
图12:算法生成的top 20个事件模式的其中几个实例,其中斜体字代表在FrameNet中被判别为错误,*号代表动词不在FrameNet中,而-号代表动词的词义不在FrameNet中
在动词分组评估中,作者首先将20个模式映射到与每个模式的六个动词重叠最大的FrameNet框架。我们能够将20个中的13个映射到FrameNet。13个事件模式每一个事件模式6个动词,一共78个动词,但是26个动词没有出现在FrameNet中。在剩下的52个动词中,有35个出现在最近的FrameNet frame或在距离最近的frame有一个链接(one link)的frame中,剩下的17个动词出现在不同的frame中(相较于叙事事件模式映射的frame)。 在链接结构评估中,主要来看为每个动词选择的语法关系。对于叙事事件模式中的每一个链,我们可以看到frame元素可以被链接到大多数的事件论元中。对于13个叙事事件模式中的78个动词来说,有156个对应的主语或宾语,其中对应正确的有151个,达到了96.8%的准确率。 在论元角色的评估中,我们首先为每个论元确定最佳的frame元素。随后我们评估(frame)论元集中top 10的论元是否适合填充角色。对于该评测来说有400个可能的论元(20个模式,每个模式2个链),289个被判断正确,精度为72%。 随后作者还进行了完形填空测试。对于叙事的完形填空测试来说,是从一个已知的叙事链中删除了一个event slot。这项任务的性能排序方法是来看缺失的event slot在排好序的猜测列表中的位置。 训练集选用Gigaword语料库,1994-2004年的纽约时报部分的动词和共同的论元,大约有100万篇文章。测试集选用在Gigaword语料库随机抽取的100篇纽约时报的文章。实验的结果如图13所示。
图13:叙事完型填空的实验结果
首先对于叙事事件链和类型叙事链进行比较,二者为图中的”chain”和”typed chain”。可以看到随着训练语料的增加,叙事事件链的结果开始恶化(排名顺序开始上升),而类型叙事链的结果得到了改进。 第二个是对于叙事事件链和叙事事件模式(采用不添加事件类型的叙事事件链,即采用公式1而不是采用公式5),可以看到叙事事件模式在所有的数据中都有更好的表现。最后对于叙事事件模式(采用类型叙事链)的进行了测试,结果显示叙事事件模式的效果由于其余的三个,相较于效果最差的叙事事件链(“chain”)来说,在训练完所有数据之后得到了10.1%的增益。 在后来的叙事事件模式的研究中,Mostafazadeh等人[7]在事件模式的事件顺序上引入了因果关系,此外像时序脚本模式(temporal script graph)这样的新思路[8]也被引入[4]。随着相关研究的不断创新,一些创新的事件模归纳方法也得到了研究,如下面将要介绍的事件图模式归纳。
3.事件模式归纳的新思路——事件图模式归纳事件模式的定义也在随着研究不断的进行扩展,最近的研究提出了事件实例图和事件图模式的概念[4],事件实例图的基础是假定如果出现在同一片文章中的两个事件实例的论元是共指的或者语义相关的话,那么两个事件实例是互相连接的。通过许多具有相同类型的事件实例对可以诱导出多条从一个事件类型到另外一个事件类型的路径,从而形成了一种新的事件模式——事件图模式。下面将简要介绍一下事件图模式归纳这一研究。图14介绍了事件图模式归纳的整体框架。
图14:事件图模式归纳的整体框架
对于事件图模式的构建来说的话首先需要构建事件实例图,首先采用OneIE工具[9]抽取文本中句子的事件以及其相关的论元。对于一个篇章中的两个事件实例v和v’来说,构建二者之间的路径如下所示,其中的定义是事件或者论元的类型: 对于一个事件实例图来说只需要将两个事件实例生成的所有路径进行组合即可生成事件实例图,对于图14中的事件实例图(a)和(b)来说,二者均具有相同类型的事件1和事件2(事件1的类型是Transport,事件2的类型是Attack)。要想将这两个(或者更多)的事件实例图归纳成一个事件图模式的话,我们需要选取两个事件实例图中路径具有显著的和语义连贯的路径作为新的事件模式图的路径,因此作者提出了自回归路径语言模型和邻居路径分类的任务来解决这个问题: 对于前面生成的事件实例图的路径实例来说,自回归路径语言模型估计路径实例中边和节点的概率分布,模型使用Transformer来学习概率分布,通过排列操作[10]来捕捉双向上下文,自回归路径语言模型的示例如图15所示。 在路径语言模型之上作者提出了新的任务——邻居路径分类:邻居路径是指在一个事件实例图中的两条路径,如果两条路径不在相同的事件实例图中的话,那么二者不是邻居路径。在实际的应用中作者分别创建了正采样(邻居路径)和负采样的数据(非邻居路径)的数据,并且采取了路径对互相交换来提升路径分类的一致性,从而更好的进行分类。邻居路径分类的示例如图15所示。作者同时训练这两个方法(自回归路径语言模型和邻居路径分类)。
图15:自回归路径语言模型和邻居路径分类。其中是类型嵌入,1代表节点,2代表边,0代表其他字符,如[CLS];邻居路径分类中如果两个路径是邻居的话则为1,不是的话则为0
在完成训练之后,事件图模式的生成则是对两个事件类型之间的所有路径进行排序,选取top k%的路径进行融合从而生成新的事件图模式。后续关于事件图模式这个概念还有加入了时序关系以及多个事件类型的相关工作[11]。 4.总结
本文首先介绍了事件模式归纳的历史以及相关概念,介绍了原子事件模式归纳以及叙事事件模式归纳的典型研究,最后介绍了事件模式归纳的新思路——事件图模式归纳。随着深度学习技术的不断发展,相信事件模式归纳这一研究能够取得更大的创新与突破。
审核编辑 :李倩
全部0条评论
快来发表一下你的评论吧 !