什么是 Cross Encoder 架构?
Cross Encoder 是一种用于处理文本对(text pair)任务的深度学习模型架构,常用于 Rerank(重排序)、问答匹配、自然语言推理(NLI) 等任务。
与 双塔模型(Dual Encoder) 不同,Cross Encoder 会将两个输入(通常是 Query 和 Document)拼接在一起输入模型,进行联合编码和语义交互。
🧠 架构工作流程
假设我们有:
-
Query:
"中国的首都是哪?" -
文档候选:
"北京是中华人民共和国的首都。"
Cross Encoder 的处理方式是:
Input: [CLS] 中国的首都是哪? [SEP] 北京是中华人民共和国的首都。 [SEP]
→ 送入 Transformer(如 BERT、RoBERTa、DeBERTa)
→ 输出:[CLS] token 对应的向量
→ 用于分类 / 打分(如相关性得分)
🔍 Cross Encoder vs Dual Encoder
| 对比维度 | Cross Encoder | Dual Encoder (双塔) |
|---|---|---|
| 输入方式 | 拼接 query 和 document | 分别编码 query 和 document |
| 交互能力 | 强,能捕捉两者深层语义关系 | 弱,编码过程中无交互 |
| 模型输出 | 单个相关性得分或分类结果 | 向量(embedding) |
| 检索速度 | 慢(每次需对 query-doc 对做前向传播) | 快(doc 向量可预计算) |
| 应用场景 | 精排(Rerank)、匹配任务 | 粗排(向量检索) |
| 精度表现 | ✅ 高 |

最低0.47元/天 解锁文章
2355

被折叠的 条评论
为什么被折叠?



