
摘要
深度预训练双向变压器在多个应用中取得了显著进展(Devlin等人,2018年)。对于需要对序列进行成对比较的任务,即将给定输入与相应的标签匹配,通常采用两种方法:一种是跨编码器(Cross-encoders),它对成对序列执行完整的自注意力机制;另一种是双编码器(Bi-encoders),它分别对每个序列进行编码。前者通常表现更好,但速度过慢,难以实际应用。在这项工作中,我们开发了一种新的变压器架构——Poly-encoder,该架构学习全局而非令牌级别的自注意力特征。我们对这三种方法进行了详细的对比分析,包括哪些预训练和微调策略最为有效。我们展示了我们的模型在三个现有任务上达到了最先进的结果;Poly-encoder比跨编码器更快,且比双编码器更准确;并且通过在类似于下游任务的大数据集上进行预训练可以获得最佳结果。
代码仓库
fangrouli/Document-embedding-generation-models
pytorch
GitHub 中提及
sfzhou5678/PolyEncoder
pytorch
GitHub 中提及
Alexey-Borisov/3_course_diary
GitHub 中提及
i2r-simmc/i2r-simmc-2020
pytorch
GitHub 中提及
llStringll/Poly-encoders
pytorch
GitHub 中提及
csong27/collision-bert
pytorch
GitHub 中提及
chijames/Poly-Encoder
pytorch
GitHub 中提及
基准测试
| 基准 | 方法 | 指标 |
|---|---|---|
| conversational-response-selection-on-douban-1 | Poly-encoder | MAP: 0.608 MRR: 0.650 P@1: 0.475 R10@1: 0.299 R10@2: 0.494 R10@5: 0.822 |
| conversational-response-selection-on-dstc7 | Bi-encoder | 1-of-100 Accuracy: 66.3% |
| conversational-response-selection-on-dstc7 | Bi-encoder (v2) | 1-of-100 Accuracy: 70.9% |
| conversational-response-selection-on-rrs-1 | Poly-encoder | NDCG@3: 0.679 NDCG@5: 0.765 |
| conversational-response-selection-on-ubuntu-1 | Poly-encoder | R10@1: 0.882 R10@2: 0.949 R10@5: 0.990 |