Skip to main content
QUICK REVIEW

[논문 리뷰] Code4Struct: Code Generation for Few-Shot Event Structure Prediction

Xingyao Wang, Sha Li|arXiv (Cornell University)|2022. 10. 23.
Topic Modeling인용 수 14
한 줄 요약

이 논문은 Python 클래스 정의를 사용하여 이벤트 인자 추출(EAE)을 코드 생성으로 공식화하는 few-shot 이벤트 구조 예측 프레임워크인 Code4Struct를 제안한다. 프로그래밍 언어 기능인 상속과 타입 애너테이션을 활용하여, 단지 20개의 샘플만으로도 현재의 최고 성능(SOTA) 모델보다 29.5%의 절대 F1 점수로 뛰어난 성능을 달성한다. 이는 4,202개의 인스턴스로 훈련된 지도 학습 모델을 초월한다.

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.

연구 동기 및 목표

  • 대규모 언어 모델(LLM)의 코드 생성 능력을 활용하여 자연어 처리(NLP) 분야에서 자원이 부족한 이벤트 구조 예측 문제를 해결한다.
  • 구조적 예측 작업에서 텍스트 기반 프롬프트의 한계를 극복하기 위해 의미적 구조를 실행 가능한 코드로 매핑한다.
  • 상속과 타입 애너테이션과 같은 프로그래밍 언어 기능을 활용하여 이벤트 온톨로지 내의 구조적 제약 조건과 계층적 관계를 인코딩한다.
  • 상속을 통해 자원이 많은 형제 이벤트 유형에서 지식을 전이하여 자원이 없는 이벤트 유형에 대해 제로샷 예측을 가능하게 한다.
  • 충분한 컨텍스트 예시가 제공될 경우, 코드 기반 프롬프트가 텍스트 기반 프롬프트보다 소수의 예시 설정에서 더 뛰어난 성능을 보임을 입증한다.

제안 방법

  • 온톨로지에서 제공하는 이벤트 및 엔티티 유형을 Python 클래스 정의로 표현하며, 인자 역할은 클래스 속성으로, 타입 애너테이션을 통해 데이터 유형을 명시한다.
  • 상속을 사용하여 이벤트 유형 간의 계층적 관계(예: Transport는 Movement를 상속함)를 모델링하여 관련된 이벤트 유형 간 지식 전이를 가능하게 한다.
  • 프롬프트를 세 부분으로 구성한다: (1) 온톨로지 코드, (2) k-shot 컨텍스트 예시, (3) LLM이 완성해야 할 부분적으로 정의된 클래스 인스턴스 프롬프트.
  • LLM(예: code-davinci-002)을 전체 프롬프트에 조건부로 설정하여 대상 이벤트 클래스의 완전한 코드 인스턴스를 생성하도록 유도한다.
  • 생성된 코드를 분석하여 입력 문장에서 검출된 엔티티를 사용해 클래스를 인스턴스화함으로써 예측된 이벤트 인자를 추출한다.
  • 인자에 기본값(예: 빈 리스트)을 활용하여 동일 역할에 대해 0개 또는 다수의 필러를 자연스럽게 지원함으로써 구조적 유연성을 향상시킨다.

실험 결과

연구 질문

  • RQ1구조적 프로그래밍 언어 기능을 활용한 코드 생성이 텍스트 기반 프롬프트에 비해 소수의 예시로도 이벤트 구조 예측 성능을 향상시킬 수 있는가?
  • RQ2프로그래밍 언어의 상속 기능을 통해 자원이 많은 이벤트 유형에서 자원이 없는 이벤트 유형으로 지식 전이가 어느 정도 가능한가?
  • RQ3소수의 예시 설정에서 코드 기반 프롬프트와 텍스트 기반 프롬프트의 F1 점수 성능은 어떻게 비교되는가?
  • RQ4소규모 훈련 예시(예: 20개)만 제공될 경우, 코드 기반 접근 방식이 완전히 지도 학습된 모델과 경쟁할 수 있는가?
  • RQ5코드 내 타입 애너테이션과 기본값의 사용이 EAE에서 복잡한 인자 구조를 모델링하는 데 기여하는가?

주요 결과

  • 이벤트 유형당 단지 20개의 훈련 데이터만으로도 Code4Struct는 현재의 최고 성능(SOTA) 모델보다 절대 F1 점수로 29.5% 향상된 성능을 달성한다.
  • 20개의 샘플로 평가되었을 때, Code4Struct는 4,202개의 인스턴스로 훈련된 완전한 지도 학습 모델보다도 뛰어난 성능을 보였다.
  • 상속을 활용함으로써 형제 이벤트 유형에서 10개의 샘플을 사용할 경우, 자원이 없는 이벤트 유형에 대해 절대 F1 점수로 12% 향상된 성능을 기록했다.
  • 충분한 컨텍스트 예시가 제공될 경우, 코드 기반 프롬프트 접근 방식은 두 가지 변형된 텍스트 기반 프롬프트보다 다수의 LLM에서 일관되게 뛰어난 성능을 보였다.
  • 타입 애너테이션과 기본값을 활용하여 복잡한 인자 구조(예: 다수 또는 0개의 필러)를 자연스럽게 모델링할 수 있었다.
  • 이 방법은 강력한 일반화 능력을 보였으며, 제로샷 성능이 20개 샘플 및 50개 샘플 설정에서 모두 SOTA 모델의 성능을 뛰어넘었다.

더 나은 연구,지금 바로 시작하세요

논문 읽기부터 검토까지, 연구 시간을 획기적으로 줄여보세요.

카드 등록 없음 · 무료 플랜 제공

이 리뷰는 AI가 만들고, 인간 에디터가 검토했습니다.