Skip to main content
QUICK REVIEW

[论文解读] Code4Struct: Code Generation for Few-Shot Event Structure Prediction

Xingyao Wang, Sha Li|arXiv (Cornell University)|Oct 23, 2022
Topic Modeling被引用 14
一句话总结

本文提出 Code4Struct,一种少样本事件结构预测框架,将事件论元抽取(EAE)建模为使用 Python 类定义的代码生成任务。通过利用编程语言特性(如继承和类型注解),Code4Struct 仅用 20 个样本即达到最先进性能,超越在 4,202 个实例上训练的监督模型,并在 20 个样本的少样本数据上实现 29.5% 的绝对 F1 提升。

ABSTRACT

Large Language Model (LLM) trained on a mixture of text and code has demonstrated impressive capability in translating natural language (NL) into structured code. We observe that semantic structures can be conveniently translated into code and propose Code4Struct to leverage such text-to-structure translation capability to tackle structured prediction tasks. As a case study, we formulate Event Argument Extraction (EAE) as converting text into event-argument structures that can be represented as a class object using code. This alignment between structures and code enables us to take advantage of Programming Language (PL) features such as inheritance and type annotation to introduce external knowledge or add constraints. We show that, with sufficient in-context examples, formulating EAE as a code generation problem is advantageous over using variants of text-based prompts. Despite only using 20 training event instances for each event type, Code4Struct is comparable to supervised models trained on 4,202 instances and outperforms current state-of-the-art (SOTA) trained on 20-shot data by 29.5% absolute F1. Code4Struct can use 10-shot training data from a sibling event type to predict arguments for zero-resource event types and outperforms the zero-shot baseline by 12% absolute F1.

研究动机与目标

  • 通过利用大语言模型(LLMs)的代码生成能力,解决自然语言处理中低资源事件结构预测的挑战。
  • 通过将语义结构映射为可执行代码,克服文本提示在结构化预测任务中的局限性。
  • 利用编程语言特性(如继承和类型注解)在事件本体中编码结构约束和层次关系。
  • 通过继承机制从高资源同源事件类型迁移知识,实现对低资源事件类型的零样本预测。
  • 证明在提供足够上下文示例时,基于代码的提示优于基于文本的提示,在少样本设置下表现更优。

提出的方法

  • 将本体中的事件类型和实体类型表示为 Python 类定义,论元角色作为类属性,类型注解用于指定数据类型。
  • 使用继承来建模事件类型之间的层次关系(例如,Transport 继承自 Movement),从而实现在相关事件类型间传递知识。
  • 构建包含三个部分的提示:(1) 本体代码,(2) k 个上下文示例,(3) 部分类实例化提示,供 LLM 完成。
  • 将 LLM(如 code-davinci-002)条件化于完整提示,生成目标事件类的完整代码实例化。
  • 通过实例化类并结合输入句子中检测到的实体,解析生成的代码以提取预测的事件论元。
  • 利用参数中的默认值(如空列表)自然支持同一角色的零个或多个填充项,提升结构灵活性。

实验结果

研究问题

  • RQ1与基于文本的提示相比,使用结构化编程语言特性的代码生成是否能提升少样本事件结构预测性能?
  • RQ2编程语言中的继承在多大程度上能实现从高资源事件类型到零资源事件类型的迁移知识?
  • RQ3在少样本设置下,基于代码的提示与基于文本的提示在 F1 分数上的表现如何比较?
  • RQ4当仅有少量训练样本(如 20 个)时,基于代码的方法能否与完全监督模型相媲美?
  • RQ5在代码中使用类型注解和默认值是否能改善 EAE 中复杂论元结构的建模?

主要发现

  • 仅使用每事件类型 20 个样本的训练数据,Code4Struct 相较当前最先进模型实现了 29.5% 的绝对 F1 提升。
  • 在相同 20 个样本数据上评估时,Code4Struct 的性能优于在 4,202 个实例上训练的完全监督模型。
  • 通过利用继承,当使用来自同源事件类型的 10 个样本时,Code4Struct 在零资源事件类型上实现了 12% 的绝对 F1 提升。
  • 在提供足够上下文示例时,基于代码的提示方法在多个 LLM 上始终优于两种基于文本提示的变体。
  • 该方法通过代码中的类型注解和默认值,自然地建模了复杂论元结构(如多个或零个填充项)。
  • 该方法展现出强大的泛化能力,在零样本设置下的性能超过了最先进模型在 20 个样本和 50 个样本设置下的表现。

更好的研究,从现在开始

从阅读论文到最终审阅,大幅缩短您的研究时间。

无需绑定信用卡

本解读由 AI 生成,并经人工编辑审核。