Ruize Wang, Duyu Tang, Nan Duan, Zhongyu Wei, Xuanjing Huang, Jianshu ji, Guihong Cao, Daxin Jiang, Ming Zhou
We study the problem of injecting knowledge into large pre-trained models like BERT and RoBERTa. Existing methods typically update the original parameters of pre-trained models when injecting knowledge. However, when multiple kinds of knowledge are injected, the historically injected knowledge would be flushed away. To address this, we propose K-Adapter, a framework that retains the original parameters of the pre-trained model fixed and supports the development of versatile knowledge-infused model. Taking RoBERTa as the backbone model, K-Adapter has a neural adapter for each kind of infused knowledge, like a plug-in connected to RoBERTa. There is no information flow between different adapters, thus multiple adapters can be efficiently trained in a distributed way. As a case study, we inject two kinds of knowledge in this work, including (1) factual knowledge obtained from automatically aligned text-triplets on Wikipedia and Wikidata and (2) linguistic knowledge obtained via dependency parsing. Results on three knowledge-driven tasks, including relation classification, entity typing, and question answering, demonstrate that each adapter improves the performance and the combination of both adapters brings further improvements. Further analysis indicates that K-Adapter captures versatile knowledge than RoBERTa.
| Task | Dataset | Metric | Value | Model |
|---|---|---|---|---|
| Relation Extraction | TACRED | F1 | 72.04 | K-ADAPTER (F+L) |
| Relation Extraction | TACRED | F1 (1% Few-Shot) | 13.8 | K-ADAPTER (F+L) |
| Relation Extraction | TACRED | F1 (10% Few-Shot) | 56 | K-ADAPTER (F+L) |
| Relation Extraction | TACRED | F1 (5% Few-Shot) | 45.1 | K-ADAPTER (F+L) |
| Relation Extraction | TACRED | F1 | 71.3 | RoBERTa |
| Relation Extraction | TACRED | F1 | 72 | K-Adapter |
| Relation Classification | TACRED | F1 | 71.3 | RoBERTa |
| Relation Classification | TACRED | F1 | 72 | K-Adapter |
| Entity Typing | Open Entity | F1 | 77.6916 | K-Adapter ( fac-adapter ) |
| Entity Typing | Open Entity | Precision | 79.6712 | K-Adapter ( fac-adapter ) |
| Entity Typing | Open Entity | Recall | 75.8081 | K-Adapter ( fac-adapter ) |
| Entity Typing | Open Entity | F1 | 77.6127 | K-Adapter ( fac-adapter + lin-adapter ) |
| Entity Typing | Open Entity | Precision | 78.9956 | K-Adapter ( fac-adapter + lin-adapter ) |
| Entity Typing | Open Entity | Recall | 76.2774 | K-Adapter ( fac-adapter + lin-adapter ) |