1. Background & Motivation
截断任务是为了平衡检索模型的表现力和效率。
案例检索任务查看排序列表中的内容比一般检索任务更费力,因为1. 用户倾向于检查更多搜索引擎返回的结果,以获取充分信息,统计信息见下图。2. 法律文书更长、更难读。
因此在案例检索任务中做截断是有意义的。
以前的截断模型主要关注传统ad-hoc检索任务traditional ad-hoc retrieval tasks1,仅使用排序分数和简单的文档特征(如文档长度、术语频率)为输入,忽略了建模过程中的高级文档语义。
LeCut则利用了检索任务中的隐藏层特征作为额外信息,用平行框架处理检索特征,以识别文档和排序列表级别的query-文档相似性。然后用RNN+Transformer层+positional embeddings捕获排序列表的序列依赖。
LeCut是第一个利用检索模型中语义特征和上下文信息的截断模型。
检索任务和截断任务都关注识别相似文档,因此彼此收集到的信息互有裨益。因此本文提出了JOTR框架联合优化这两个模型,分别用输出作为对方任务的新特征。为了将LeCut信息应用到法律检索模型上,用映射函数将LeCut原始输出转换为合理的截断特征,以加强检索任务。
本文通过改进已有指标构建了新的评估指标。
2. 模型介绍
c i 表示在位置 i 截断排序列表的概率。
2.1 LeCut
2.1.1 Feature Preparation
从query-文档对中抽取输入特征。
以前的方法大多用相似度和文档统计特征。
而LeCut抽取:相似度得分,文档统计特征(文档长度+相邻文档的TFIDF相似度),检索任务中句子级别的嵌入。
这个TFIDF是用所有candidates作为语料,然后计算每个candidate的相似度(二维向量):
(第一个和最后一个的开头和结尾都是1,感觉有哪里怪怪的)
除固定的文档统计信息外,queries-candidates对之间的动态信息也可能有效。
用在检索数据集上用NSP任务微调过的Transformer,喂query-candidate对,用最后一层隐藏层表征作为句子级别的嵌入。
2.1.2 Truncation Model
- Input Layer
- 输入:相似度得分 r i ,文档统计特征 d i ,句子级别的嵌入 s i
- 为了利用排序列表中的 list-wise relations
- 排行更高的文档应该有更多attention。
- Encoding Layer:利用序列依赖
(d i 有3维)
- Attention Layer
用Transformer encoder表示排序列表中的文档嵌入。用其多头注意力机制捕获文档间的长距上下文信息。
用可学习的additional positional embeddings p pp(用于区分不同位置的文档) 替换原始的sinusoidal positional values
- Decision Layer
DCG是一种搜索引擎算法的衡量指标可以直接参考百度百科:DCG_百度百科
在损失函数里怎么加这种离散指标我也很震惊
(y i 是文档i 的相似度标签)
2.2 JOTR
先纯排序,然后结合截断信息重新检索。
直接结合c 进来可能会导致效果变差,因为c 和r 分布不一致。因此本文提出映射函数ξ ,对齐c i 和r i :
3种映射函数:
(原理没仔细看,略)
迭代到指标稳定。
3. 实验
3.1 数据集
- LeCaRD
- CAIL2021-LCR
- COIEE2021-T1
3.2 baseline
- Fixed-k
- Greedy
- BiCut
- Choppy
- AttnCut2
- Oracle
3.3 实验设置
用于生成排序列表的神经网络检索模型:
- BERT
- RoBERTa
- Lawformer LFM
- BERT-Crime
其他配置细节略。
3.4 实验结果
指标:
检索任务:NDCG@k
截断任务:F1, DCG, and Negative Cumulative Impact (NCI)
(理由略)
3.5 模型分析
4. 代码复现
待补。