Structure Before Generation: Invariant Graph Readout with Protected Completion
Abstract
Vision-language models often reconstruct document structure by generating serialized graphs, coupling structural decisions to output ordering, identifier copying, and syntax. Direct graph predictors remove this serialization step but do not by themselves specify how an existing prediction can be revised or extended without disturbing already-correct structure. We introduce Invariant Graph Readout, a non-autoregressive framework that combines direct graph prediction from frozen visual representations of a pretrained vision-language model with state-preserving correction and protected completion. A trainable query head predicts typed nodes, bounding boxes, and relations, while operation-specific preservation contracts define which attributes each graph-edit operation may modify and which state it must preserve. Complementary proposals, anchor-preserving selection, and endpoint-consistent attachment recover missing structure without rewriting protected objects. On 600 held-out OracleGraph pages, the complete system achieves a Graph F1 of 0.3988 ± 0.0023 versus 0.3872 ± 0.0072 for Strict JSON Generation (mean ± standard deviation over three training seeds). On a 100-page subset at batch size one on an A100 GPU, it reduces mean end-to-end latency by 22.3× relative to greedy Strict JSON Generation (3.60 vs. 80.14 s per page), whose outputs average approximately 1,157 tokens per page. Under supervised target-domain training on GraphDoc, mean Graph F1 on 1,000 held-out pages improves from 0.0443 for a global-and-local graph readout baseline to 0.1069 across three independently trained pipelines. These results indicate that preservation-aware graph editing built on direct prediction is a practical alternative to autoregressive structural generation, and that contract-guided completion can be reused across document domains under supervised training.
est. 32% chance this paper gets accepted at ICLR 2027.
What do you think this paper will get?
All positions stay anonymous.