IDL 표현식: 자연어 생성용 압축 언어 모델
초록
IDL‑Expressions는 인터리브(Interleave), 디스정션(Disjunction), 락(Lock) 세 연산자를 결합해 제한된 자유 어순과 전제조건을 동시에 표현하는 형식이다. 이 논문은 해당 형식의 정의, 기존의 bag, word‑lattice, 비재귀 CFG와의 비교, 그리고 전통적인 Earley 파서를 확장한 다이나믹 프로그래밍 파싱 알고리즘을 제시하고 복잡도 상한을 증명한다.
상세 분석
IDL‑Expressions는 유한 언어를 압축적으로 기술하기 위해 세 가지 기본 연산자를 도입한다. ‘I’(Interleave)는 두 부분 문자열을 순서를 유지하지 않고 섞을 수 있게 하여 자유 어순을 모델링한다. 이 연산자는 전통적인 컨캣네이션과 달리 모든 가능한 순열을 생성하므로, 후보 문장 집합이 폭발적으로 커지는 NLG 상황에서 매우 효율적인 표현이 된다. ‘D’(Disjunction)는 선택적 대안을 제공해 동일 위치에서 여러 어휘나 구문을 교체할 수 있게 하며, 이는 기존의 word‑lattice가 제공하던 선택 기능과 동일하지만, 인터리브와 결합될 때 복잡도가 급격히 증가하는 문제를 완화한다. ‘L’(Lock)은 인터리브가 적용되는 범위를 제한한다. 즉, 특정 구문 블록 내부에서는 자유 어순을 허용하지 않고 고정된 순서를 강제함으로써, 전치 관계나 구문적 종속성을 정확히 기술한다. 이 세 연산자의 조합은 bag‑of‑words가 제공하지 못하는 전제(precedence) 제약과, word‑lattice가 갖는 자유 어순 부재를 동시에 보완한다.
논문은 IDL‑Expressions를 그래프 형태(IDL‑graph)로 변환한다. 그래프의 노드는 토큰을, 에지는 연산자에 따른 흐름을 나타내며, ‘cut’이라는 개념을 도입해 인터리브 과정에서 가능한 파싱 상태를 부분집합으로 표현한다. 이때 cut의 수는 그래프 구조에 따라 결정되며, 저자는 이를 ‘#cuts’라 두고, 파싱 알고리즘의 시간 복잡도를 O(|G|·#cuts·n³) (|G|는 문법 크기, n은 입력 토큰 수) 로 상한을 잡는다. 특히, lock 연산자가 많을수록 #cuts는 다항적으로 제한되며, 최악의 경우에도 지수적 폭발을 피할 수 있음을 증명한다.
알고리즘 자체는 Earley 파서의 아이템 집합을 그래프의 cut 위에 매핑하는 방식으로 구현된다. 각 아이템은 (비터미널, 시작점, 현재점) 형태이며, 인터리브 연산 시 여러 경로가 동시에 활성화돼 비터미널이 여러 위치에서 확장될 수 있다. 이를 효율적으로 관리하기 위해 ‘완료 아이템’과 ‘예측 아이템’의 재사용을 허용하고, lock 구간에서는 일반 Earley와 동일하게 순차적 확장을 강제한다. 결과적으로, 전통적인 문자열 파싱이 불가능한 다중 순열 집합도 동일한 파싱 프레임워크 안에서 처리할 수 있다.
표현력 측면에서 IDL‑Expressions는 비재귀 CFG가 생성할 수 있는 모든 유한 언어를 포함하면서도, 자유 어순을 자연스럽게 기술한다는 점에서 기존 형식보다 우월하다. 또한, 그래프 기반 표현은 메모리 사용량을 토큰 수와 연산자 수에 비례하게 유지하므로, 10¹² 규모의 후보 문장 집합을 실제 시스템에 적용할 수 있는 실용성을 제공한다.
댓글 및 학술 토론
Loading comments...
의견 남기기