這是ACL 2019論文“簡單有效的文本匹配與更豐富的對齊功能”的Pytorch實現。原始TensorFlow實現:https://github.com/alibaba-edu/simple-effective-text-matching。
RE2是通用文本匹配應用程序的快速而強大的神經體系結構。在文本匹配任務中,模型將兩個文本序列作為輸入並預測其關係。該方法旨在探索在這些任務中出現強大績效的足夠的方法。它簡化了許多慢速組件,這些組件以前被視為文本匹配中的核心構建塊,同時使三個關鍵功能直接可用於序列對齊:原始點的功能,以前的對齊功能和上下文功能。
RE2在四個基準數據集上與最先進的狀態(SNLI,SCITAIL,QUORA和WIKIQA)在自然語言推理,釋義識別和答案選擇的情況下,沒有或幾個任務特定於特定於任務的適應性。與類似執行的模型相比,它的推理速度至少要快6倍。

下表列出了主要實驗結果。該論文報告了10次運行的平均值和標準偏差。推理時間(以秒為單位)是通過處理英特爾i7 CPU上的8對長度20的批次來測量的。不包括CSRAN和DIIN使用的POS功能的計算時間。
| 模型 | snli | Scitail | Quora | Wikiqa | 推理時間 |
|---|---|---|---|---|---|
| Bimpm | 86.9 | - | 88.2 | 0.731 | 0.05 |
| Esim | 88.0 | 70.6 | - | - | - |
| 迪恩 | 88.0 | - | 89.1 | - | 1.79 |
| 克里斯蘭人 | 88.7 | 86.7 | 89.2 | - | 0.28 |
| RE2 | 88.9±0.1 | 86.0±0.6 | 89.2±0.2 | 0.7618±0.0040 | 0.03〜0.05 |
有關組件和實驗結果的更多詳細信息,請參閱本文。
pip install -r requirements.txtresources/本文中使用的數據如下:
data/orig 。cd data/orig/SNLI && gunzip *.gz )cd data && python prepare_snli.pydata/orig 。cd data && python prepare_scitail.pydata/orig 。cd data && python prepare_quora.pydata/orig 。cd data && python prepare_wikiqa.pymake -B命令在qg-emnlp07-data/eval/trec_eval-8.0中編譯源文件。將二進製文件“ TREC_EVAL”移至resources/ 。 要訓練新的文本匹配模型,請運行以下命令:
python train.py $config_file .json5示例配置文件以configs/ :::
configs/main.json5 :在論文中復制主實驗結果。configs/robustness.json5 :魯棒性檢查configs/ablation.json5 :消融研究編寫您自己的配置文件的說明:
[
{
name : 'exp1' , // name of your experiment, can be the same across different data
__parents__ : [
'default' , // always put the default on top
'data/quora' , // data specific configurations in `configs/data`
// 'debug', // use "debug" to quick debug your code
] ,
__repeat__ : 5 , // how may repetitions you want
blocks : 3 , // other configurations for this experiment
} ,
// multiple configurations are executed sequentially
{
name : 'exp2' , // results under the same name will be overwritten
__parents__ : [
'default' ,
'data/quora' ,
] ,
__repeat__ : 5 ,
blocks : 4 ,
}
]要僅檢查配置,請使用
python train.py $config_file .json5 --dry要評估存在的模型,請使用python evaluate.py $model_path $data_file ,這是一個示例:
python evaluate.py models/snli/benchmark/best.pt data/snli/train.txt
python evaluate.py models/snli/benchmark/best.pt data/snli/test.txt 請注意,Pytorch實施中尚未支持多GPU培訓。當隱藏尺寸200和批量512的塊<5塊<5的塊<5時,單個16G GPU就足以訓練。在紙上報告的所有結果都可以使用單個16G GPU複製穩健性檢查。
如果您在工作中使用RE2,請引用ACL紙:
@inproceedings{yang2019simple,
title={Simple and Effective Text Matching with Richer Alignment Features},
author={Yang, Runqi and Zhang, Jianhai and Gao, Xing and Ji, Feng and Chen, Haiqing},
booktitle={Association for Computational Linguistics (ACL)},
year={2019}
}
該項目在Apache許可證2.0下。