LogicalFactChecker: Leveraging Logical Operations for Fact Checking with Graph Module Network
About
Verifying the correctness of a textual statement requires not only semantic reasoning about the meaning of words, but also symbolic reasoning about logical operations like count, superlative, aggregation, etc. In this work, we propose LogicalFactChecker, a neural network approach capable of leveraging logical operations for fact checking. It achieves the state-of-the-art performance on TABFACT, a large-scale, benchmark dataset built for verifying a textual statement with semi-structured tables. This is achieved by a graph module network built upon the Transformer-based architecture. With a textual statement and a table as the input, LogicalFactChecker automatically derives a program (a.k.a. logical form) of the statement in a semantic parsing manner. A heterogeneous graph is then constructed to capture not only the structures of the table and the program, but also the connections between inputs with different modalities. Such a graph reveals the related contexts of each word in the statement, the table and the program. The graph is used to obtain graph-enhanced contextual representations of words in Transformer-based architecture. After that, a program-driven module network is further introduced to exploit the hierarchical structure of the program, where semantic compositionality is dynamically modeled along the program structure with a set of function-specific modules. Ablation experiments suggest that both the heterogeneous graph and the module network are important to obtain strong results.
Related benchmarks
| Task | Dataset | Result | Rank | |
|---|---|---|---|---|
| Table Fact Verification | TabFact (test) | Accuracy71.7 | 98 | |
| Fact Verification | TabFact | Accuracy74.3 | 73 | |
| Table Fact Verification | TabFact small (test) | Accuracy0.743 | 57 | |
| Table Fact Verification | TABFACT simple (test) | Accuracy85.5 | 39 | |
| Table Fact Verification | TABFACT complex (test) | Accuracy65.1 | 39 | |
| Table Fact Verification | TabFact (dev) | Accuracy71.8 | 28 | |
| Table-based Fact Verification | TabFact small 1.0 (test) | Accuracy74.3 | 26 | |
| Table Fact Verification | TABFACT (val) | Accuracy71.8 | 21 | |
| Table-based Fact Verification | TabFact simple 1.0 (test) | Accuracy85.4 | 12 | |
| Table-based Fact Verification | TabFact Small official (test) | Verification Accuracy74.3 | 10 |