本篇博客介绍一篇发表在2024 NAACL上的文章:《TISE: A Tripartite In-context Selection Method for Event Argument Extraction》
方向:大模型事件抽取
本篇博客为个人阅读论文的总结与笔记,在这里进行简单的分享
摘要
上下文学习通过提供多个实例来增强LLM的推理能力。获取上下文实例的一种直接而有效的方法是根据与测试输入的语义相似度来选择top-k实例。然而,该方法在应用于事件论元提取(EAE)时存在两个缺点:1)它可能会选择几乎相同的示例,从而无法提供额外的事件信息,2)它忽略了事件属性,导致所选示例与测试事件类型无关。本文介绍了在EAE任务中选择无语境样例的三个必要条件:语义相似性、样例多样性和事件相关性。在ACE05数据集上的实验结果证明了TISE的有效性和满足这三个要求的必要性,并且我们惊奇地观察到TISE可以用更少的例子获得上级的性能,甚至超过一些有监督的方法。
一、简介
事件参数提取(Event Argument Extraction,EAE)是一种基于事件类型的文本数据中的事件参数识别和分类方法。该方法的标签是一个结构化的表,每个参数都需要注释。这导致训练数据的稀缺,限制了传统方法对未知样本的推广。
最近,以GPT-3(为例的大型语言模型(LLM)在低资源场景中表现出了卓越的能力。LLM通过输入和三个有标记的例子完成推理,即在上下文中学习ICL;然而,已经发现LLM的性能高度依赖于这些示例的选择,强调了选择适当的上下文示例的重要性。为了解决这个问题,一些研究人员计算示例和测试输入之间的语义相似度,并随后选择前k个示例作为上下文,产生可观的性能。
虽然这种语义选择方法已经显示出经验上的成功,但它在应用于EAE时表现出两个缺点:首先,它可能会选择具有重叠语义的示例,从而无法提供额外的事件信息。在图1中,第二和第三示例包括:同一事件("跨界")和相同的作用("Person"和"Place")。因此,上下文示例提供了有限的事件信息,主要有助于预测角色"Place"。其次,它没有考虑测试输入和示例之间的事件属性的相关性,这对于LLM做出合理的预测也是至关重要的。如图1所示,没有与测试事件类型("Die")相关的示例,因此LLM不能理解测试输入并预测相关角色,例如"Victim"和"Agent"。
图1:EAE任务的上下文学习示例,其中示例通过语义选择获得。每个句子的左上角是它的事件类型,参数[角色]是红色的,触发器是粗体的。
本文将TISE算法应用于实际系统中,提出了一种新的TISE算法(A Tripartite In-context Selection method for Event argument extraction),为EAE任务选择最优的上下文内的样例. TISE根据与上述不同因素相关的三个要求对样例进行评分.首先,它计算样例与测试输入之间的文本相似度,即语义相似度,这是一个基本的保证.其次,TISE通过计算实例间的相似度来计算实例多样性,避免了实例间的语义重叠,从而得到具有更多事件信息的多样性实例。最后,TISE为事件类型和事件角色设计了自然语言描述,并通过度量这些描述之间的相似性来计算事件相关性。TISE利用了行列式点过程(DPP)的核矩阵,将事件信息有效地传递给LLM,将这些得分进行组合,选择概率最高的样例集作为上下文样例,最后采用模仿提示在LLM上执行EAE任务,并在ACE 05数据集上评估所提出的方法。实验结果表明了我们的方法的有效性和鲁棒性。我们概述了我们的贡献如下:
1、本文首次提出了EAE任务的最优情境范例,并提出了范例选择的三个要求。
2、进一步提出了一种有效的选择方法,即从上述角度对实例进行评分,得到最优集合。
3、在公开数据集上,该模型以较少的样本获得了更好的性能,优于有监督的方法。
二、相关工作
2.1 事件参数提取
EAE是事件提取(EE)的核心子任务,早期的工作直接执行EE任务,其中包括EAE任务。最近,EAE已作为独立任务进行研究,并可分为3个主要范式:基于跨度的范式将EAE视为跨度分类问题;阅读理解范式为每个事件角色设计问题,并将EAE转换为问答问题以提取论点。文本生成范式在提示的帮助下使用自回归LM顺序生成参数。随着LLM的发展,生成范式得到了重视。研究者直接使用LLM提取论点,导致重大突破。
本文也采用了LLM方法来处理EAE问题,但TISE方法与LLM方法是正交的,本文的重点是如何选择最优的上下文内实例,并且我们的方法可以适应不同的提示。
2.2 上下文示例选择
受微调LLM的困难的约束,提出了上下文学习(ICL),通过在提示中提供几个标记的示例来模拟少量学习。然而,LLM对上下文示例的质量很敏感。为了获得高质量的演示,选择前k个相似示例成为最直观,简单,但有效的方法。更深入地考虑,研究人员发现考虑熵和例子之间的多样性也是有用的。
三、初步工作
3.1 问题定义
上下文内示例选择的目标是从训练数据集中选择几个示例以形成ICL的上下文。形式上,给定测试输入x和训练数据集T = t1,...,t|T| ,我们需要从T中选择k个例子来形成一个子集A,作为上下文内的例子,并且|A|= k。
3.2 行列式点过程
与单独选择top-k相似样本不同,DPP考虑样本的共现性,直接获得具有k个样本的子集,具体地,给定条件x,DPP被定义为分布P以度量每个子集的选择概率,我们使用核矩阵K ∈ R|T|×|T|以表示示例之间的同现,其中项Kij = k(ti,tj| x)评估ti和tj出现在同一子集中的可能性。因此,A的所选概率为:
其中KA ≡ [Kij ]i,j∈A是通过索引得到的子矩阵,det(·)是行列式,I是单位矩阵,在推理过程中,我们选择概率最高的子集来形成上下文例A *= argmaxA⊆T P(A| x)的情况下。
显然,这是一个NP-难的子模极大化问题,我们采用快速贪婪算法进行优化,如图2左下角所示,我们进行k步搜索,在每一步中,选择所选的示例,以最大化新旧矩阵行列式的增加:
并且我们使用A *= A *∪{t *}更新子集。
图2:TISE的总体结构,|T|= 3,k=2。该模型以主过程为中心,围绕子过程,主过程使用事件评分器和测试评分器计算每个需求的评分,然后将这些评分组合成核矩阵,利用快速贪婪算法获得上下文内的示例子集,最后引用代码模仿提示进行基于LLM的EAE.
四、方法
TISE的总体结构如图2所示,它使用文本评分器(SCORERT)来衡量语义相似度和示例多样性,使用事件评分器(SCORERE)来评估事件相关性,三个评分被集成到核矩阵K中,并在此基础上使用DPP来选择上下文内的示例,最后使用代码模仿提示来进行基于LLM的EAE
4.1 评分器和核矩阵
我们分别给出了每个需求对应的子模块,包括评分方法及其随后融合到核函数中。此外,我们引入超参数来平衡每个要求并证明核函数的影响。
4.1.1 语义相似性
确保x和ti之间的语义相似度是基本而有效的。如图2右上角所示,我们设计了一个文本评分器用于测量,它采用预训练语言模型作为编码器,并计算嵌入相似度作为文本得分sT:
其中,E(·)表示编码器,sim(u,v)= u T v/u·v是余弦相似度。对于Kij,我们同时考虑ti和ti
: k1(ti, tj |x) = sT(x, ti) · sT(x, tj ).的语义得分。
4.1.2 示例多样性
为了保证所选子集包含不同的例子,TISE对相似的例子赋予较低的分数,仍然使用文本评分器来衡量例子之间的相似性,对于训练样本ti和tj,我们计算分数sT(ti,tj),并将Kij修改为k2(ti,tj| x)= sT(x,ti)· sT(ti,tj)· sT(x,tj)。这个乘积形式的核函数可以同时减小sT(ti,tj)而增加sT(x,ti)的原因将在4.1.4中解释。
4.1.3 事件关联
我们提出了一个事件评分器来衡量事件的相关性。如图2左上所示,我们将事件属性划分为事件类型和事件角色。随后,我们为每个属性设计自然语言描述,并根据这些描述计算事件评分。
事件类型 事件类型描述包括两个与其父事件相关的句子,我们使用[CLS]标记的嵌入作为结果。事件类型及其本身,以表1为例,这种描述形式有两个优点:1.属于同一父类的事件类型会更接近; 2.具有相关含义的事件类型会有类似的描述。
表1:事件类型和事件角色的自然语言描述示例
在获得描述之后,我们计算描述相似度来对事件类型进行评分。假设x和ti具有事件类型描述d(x)和d(ti),我们可以获得事件类型评分sE(x,ti)为:
事件角色 对于每个事件角色,描述用于介绍其在事件中的含义。我们将描述设计为一个句子。见表12,它还提供了两个优点:1.同一事件类型下的角色表现出更紧密的关系。2.不同事件类型下的相同角色相似但不相同。
令Rti表示ti的非零角色集,Rx表示要预测的角色集。对于每个r ti i ∈ Rti,我们获得其描述d(r ti i),并将其与具有描述d(r x i)的r x i ∈ Rx进行顺序比较,角色得分计算为:
我们使用max-pool来选择最相关的r x i sE(x,r ti i)= max sE(r x i,r ti i),ti的最终事件角色得分为:
其中α = 0.1是一个超参数,用来奖励那些包含更有用角色的示例。我们将联合事件类型得分和事件角色得分结合起来,使最终的事件得分可以从两个角度反映事件相关性:
最终的核函数是:
4.1.4 平衡与证明
为了平衡每个要求,我们将超参数λ引入每个分数:sE ′(x,ti)= exp(sE(x,ti)2λ1)和sT ′(x,ti)= exp(sT(x,ti)2λ2),因此核矩阵K可以表示为:
其中<$K是对称矩阵。<$Kij = sT(ti,tj),S ′ Ei = sE ′(x,ti)和S ′ Ti = sT ′(x,ti)。注意等式(1)中的det(K + I)是归一化项,我们只考虑det(KA)的影响:
到目前为止,P(A| x)通过核矩阵与两个部分相关联,第一部分要求所选示例具有高的事件得分和语义得分,而第二部分由于行列式的特性,需要低的示例间相似度。
4.2 代码模仿提示
TISE采用代码模仿提示作为模板,以指示LLM基于测试输入和上下文示例提取参数。如图2的右下角所示,它由4个部分组成。1)实体类型定义将所有参数实体分为七种类型,并以测试输入中涉及的所有实体类型的描述开始。2)事件定义包括事件类型的层次结构、当前类型的角色定义以及这些角色在该事件中的呈现方式。3)在上下文中的例子单独演示了选定的例子。每个示例包含提取指令、输入语句和标签。4)事件实例化直接将提取的指令和测试输入提供给LLM。
五、实验
5.1 数据集和评估
我们在自动内容提取2005ace数据集上评估TISE,该数据集是一个事件级语料库。为了公平比较,我们将数据集预处理为8个父事件类型和33个子类型。
我们根据之前的工作使用两个指标来衡量性能:参数识别(Arg-I)表示参数的中心词与人类注释匹配,参数分类(Arg-C)表示参数也被正确分类到其注释角色中。我们使用F1得分报告它们。
5.2 实现细节
对于评分器和核矩阵,我们使用bert-base-uncased作为编码器,并设置λ1 = 0.5,λ2 = 0.055。对于LLM,由于Codex模型自20236年3月以来已被弃用,我们主要使用text-davinci-002作为LLM。该模型是从代码davinci-002中调整的,并支持4k输入token。我们通过OpenAI API 7访问LLM。对于提示符,因为代码提示符容易超过长度限制,我们利用代码模仿提示作为提示模板。
5.3 基线
我们将TISE与几个基线进行比较:RANDOM从训练集中随机选择样本,不重复。BM25是一种基于TF-IDF的有效稀疏检索器,BERT-TOPK和DPR-TOPK采用BERT和双塔密集检索器DPR作为编码器,并选择前k个示例。DPP-DIVERSITY在DPP的帮助下满足示例多样性。
5.4 主要结果
我们在表2中显示了不同样本数(k)的实验结果。正如我们所期望的,TISE在所有k值上都达到了最先进的性能,这验证了我们方法的有效性和鲁棒性。此外,TISE在更少的样本数下也达到了上级性能。例如,TISE在k=5时达到了58.95%/48.72%,而BERT-TOPK在k=15时达到58.34%/48.16%。这表明,在低资源或输入长度受限的情况下,TISE更强大。(BERT-TOPK/DPRTOPK)检索器的性能优于RANDOM,这证明了基于语义的选择对EAE是有用的。但不确定哪种检索器更好,表明更大的相似性不一定等同于更好的性能。此外,TISE的性能优于DPP-Diversity,而DPP-Diversity又优于语义检索器,证实了示例多样性和事件相关性的有效性。
表2:在ACE 05上的测试结果表明,该方法满足了哪些要求,TISE与 Semantic Retriever之间的差距是语义性,与DPP-DIVERSITY之间的差距是语义多样性。
5.5 原理探索
我们进一步探讨这些要求所选择的示例如何帮助LLM提取参数。example实际上是每个角色在当前事件类型中的含义。基于此,我们假设与测试输入具有较大角色重叠的上下文内示例将产生更好的性能。为了验证这一假设,我们为上下文内示例定义了一个称为“角色重叠率”的度量并进行了实验。表示每个选定的示例是t*∈ A *,t*的非零角色集是Rt*,x的角色集是Rx,我们将A*的角色重叠率定义为:
其中I(·)是指示函数。请注意,我们只考虑非无角色,并且我们计算不同事件类型的相同角色,因为它可以传达有用的信息(例如,“Life.Marry”和“Life.Be-Born”中的“Place”)。
图3中的结果表明,EAE性能与角色重叠率之间存在明显的正相关关系,这证明了更多的角色重叠确实可以帮助LLM提取参数。此外,我们还发现每个需求都有明显的影响:1)事件相关性显著提高了角色的重叠,因为它倾向于选择相同事件类型内的示例。2)语义相似性也证明是有益的,由于相似的句子倾向于描述具有重叠角色的相关事件。3)示例多样性对重叠率的贡献最小,它主要确保整个子集覆盖不同的角色。
图3:EAE性能与k=10和k=15时重叠率之间的关系。
六、讨论
6.1 消融研究
不同k的影响许多工作已经指出,LLM的性能对许多示例。在这里,我们评估了不同k下的拟议模型和基线,并在表2中报告了结果。我们有两个结论:1)随着k的增大,不同方法之间的差距也在拉大。原因是k较小的上下文示例无法提供足够的事件信息。然而,由于量变导致质变,样本的质量变得至关重要,并显著影响LLM的性能。2)增加k值可以提高提取性能,但这种好处正在减少。我们在图4中提供了TISE和DPR-TOPK在不同k下的性能。两种方法都表现出单调增加,但最终达到一个稳定。这一现象与Wang et al,2023相一致,并且我们验证了这一现象与语境中例子的选择无关。我们推测这一现象可能归因于ICL有效性的上限或提示模板的限制。
图4:TISE和DPR-TOPK在不同k下的性能。当k=20时,语义检索器可能会超过LLM的输入长度限制,导致性能下降。
不同要求的效果为了验证不同要求的有效性,我们进行了实验,去除了事件相关性、示例多样性以及两者同时去除。我们的结果(详见表3)显示,事件相关性比示例多样性具有更大的显著性,这与原理探索(5. 5)中得出的结论一致。而且,联合去除这两项要求导致下降幅度较小(3.3% < 2.1% + 1.5% / 3.9% < 2.9% + 2.1%),表明这两个要求之间相互加强。对于语义相似度,其有效性和鲁棒性在表2中得到了验证。此外,实验结果表明,事件角色对事件属性的影响(-0.6%/0.5%)小于Event Type(-1.8%/-1.7%),因为Event Type直接过滤具有类似事件类型的示例,而Event Role则更多可能会选择不相关的例子。
表3:k=10要求的消融结果
6.2 分析
文档级事件参数抽取TISE是一种通用的事件参数抽取方法,它也适用于文档级事件参数抽取,以验证其通用性和鲁棒性。我们使用F1得分作为基于精确匹配(EM)标准的评估指标,并使用一个简单的提取指令作为提示,例如“给定一个描述事件的文档,您需要标识该文档中的所有事件参数,结果如图5所示,TISE在不同k上过滤的示例集比基线更好,这反过来又有助于LLM提取参数。除此之外,我们还有两个其他观察结果:1.在进行文档级抽取时,LLM对显示的示例数(k)不敏感,2.不同的选择方法并不能显著改善抽取结果,尽管他们可以选择与测试输入更相关的例子。我们推测这可能是因为理解文档比理解句子难得多,需要一个更好的提示来帮助LLM理解如何提取示例中的参数。
图5:RAMS上的性能。文档级数据集中的示例很长,k=9将有超过LLM输入长度限制的风险。
适应性TISE可以适应各种LLM和提示符。为了验证它的适应性,我们选择代码提示符和代码模仿LLM作为提示符,选择text-davinci-002和text-davinci-003作为LLM。不同k的实验结果如图6所示,TISE在所有组合下都优于BERT-TOPK,证明了TISE在不同LLM和提示符模板下的鲁棒性。进一步地,此外,我们观察到text-davinci-003的性能始终优于text-davinci-002,并且代码提示符的性能优于代码模仿提示符,当不超过长度限制时,在较高k时,最佳组合应为TISE +代码提示符+ text-davinci-003。
图6:不同LLM和提示符上的性能。深色部分表示BERTTOPK的性能,浅色部分表示TISE的性能。
相同事件类型场景如果我们有足够的标记数据用于每个事件类型,选择具有相同事件类型的示例将更有效。为了验证TISE在此场景中的稳定性,我们进行了一个实验,将所选示例限制为具有与测试输入相同事件类型的示例。结果如表4所示,我们发现,具有高语义相似性的示例仍然有效,即使它们具有相同的事件类型(k=10时为+1.38%/+2.20%,k=15时为+1.44%/+1.65%)。此外,TISE在不同k下仍优于基线(k=10时为+2.60%/+3.07%,k=15时为+0.97%/+2.84%),我们将这一改进归功于示例多样性和事件角色模块,这确保了TISE可以在不同的数据分布中选择最佳子集。
表4:相同事件类型场景下的性能,请注意,某些测试输入无法找到具有相同事件类型的k个训练示例。
与有监督方法的比较有监督方法通过专门的训练,在有限的训练数据下取得了令人满意的结果。我们首先将TISE与竞争方法进行比较,我们从两个方面进行实验:1.缩小训练数据,TISE只能从有限的数据中选择示例。2. TISE可以从整个数据集中进行选择,我们计算实际使用了多少个不同的训练数据。结果如表5所示,当可用数据总量有限时,TISE超过DEGREE,并且,尽管训练数据足够,TISE仍然可以选择那些真正有用的一小部分来帮助LLM推理。这些表明TISE可以根据测试输入过滤有效的示例,以便在低资源场景中显示功能。在全场景中,我们将TISE与两个基线进行比较:DyGIE++。我们惊讶地观察到TISEk=15,加上text-davinci-003和代码提示符,可以优于监督方法(DyGIE++)。然而,TISE和DEGREE之间仍然存在性能差距因此,设计更好的样本选择方法仍然是未来研究的一个有前途的方向。
表5:TISE和监督方法之间的比较,%训练数据表示训练数据的比例。TISE†使用text-davinci-003作为LLM,代码提示符作为提示模板
案例研究我们在图7中展示了一个案例研究,以直观地显示每个需求的优点。例如Diversity,BERT-TOPK中的示例1和2都描述了具有事件角色“Place”的冲突/战争。因此,LLM正确地提取了“Place”的参数,而其他角色执行不正确的结果(注意,示例2中提到了一个“Victim”,所以“Victim”的参数不是“None”,虽然不完全准确)。另一方面,TISE的示例包含了标签中涉及的所有事件角色,使得LLM能够全面地提取参数,验证了示例多样性可以确保所选示例包含不同的角色信息。对于事件关联,BERT-TOPK选择一个不包含任何有用事件角色的“Transport”示例。相反,TISE的所有示例都具有“Die”事件类型,以确保每个示例都能传达有用信息。总体而言,示例多样性和事件相关性都可以帮助LLM更好地提取参数。
图7:BERT-TOPK和TISE的案例研究。每个句子的事件类型在开头使用(括号)标记,事件信息以粗体显示为Argument [Role],红色文本表示错误提取,绿色文本表示正确提取。TISE的“Victim”被认为是正确的,因为中心标记匹配。
七、结论
本文提出了使用LLM进行EAE任务时,对上下文内实例选择的三个必要条件,提出了TISE,它从三个角度对实例进行评分,并利用DPP融合这些评分,从而直接选择最优的上下文内实例。在ACE05上的实验表明,TISE可以选择比基线更有效的上下文内实例,对实例数量具有鲁棒性,TISE可以适应不同的提示和LLM,并且优于一些完全微调的监督方法。此外,我们还探讨了三个要求的有效性原理。
缺点
1)TISE的编码器是一个普通的BERT模型。除了用密集检索器替换它之外,一些方法使用由语言模型获得的排名标签来监督地学习检索器作为适应当前数据集的编码器.然而,检索任务和EAE任务之间存在差距,因此直接将排名标签作为监督信号并不合理.直觉上2)TISE的时间消耗很高,尽管我们将描述存储在字典中,这将事件评分器的时间复杂度降低到O(1)。但是,示例中的每个角色都需要单独查询测试角色,这增加了开销。