文献分享: 对ColBERT段落多向量的剪枝——基于学习的方法

原论文

1. 导论 & \textbf{\&} &方法

1️⃣要干啥:在 ColBERT \text{ColBERT} ColBERT方法中,限制每个段落要保留的 Token \text{Token} Token的数量,或者说对段落 Token \text{Token} Token进行剪枝

2️⃣怎么干:注意以下方法都是整合进 ColBERT \text{ColBERT} ColBERT训练的顶层池化层,而非在后期交互中进行改进

  1. 前 k k k位置 Token \text{Token} Token:只保留每个段落的前 k k k个 Token \text{Token} Token
  2. 前 k k k罕见 Token \text{Token} Token:选择段落中最罕见的 k k k个 Token \text{Token} Token,所谓罕见的 Token \text{Token} Token即 IDF \text{IDF} IDF高的 Token \text{Token} Token
  3. 前 k k k闲置 Token \text{Token} Token:在段落前添加 k k k个特殊 Token \text{Token} Token,这些 Token \text{Token} Token在 BERT \text{BERT} BERT词汇表中标为闲置(unused),最终只保留这 k k k个 Token \text{Token} Token
  4. 前 k k k得分 Token \text{Token} Token:用预训练模型的最后一层注意力机制给所有 Token \text{Token} Token一个注意力评分,选取注意力机制最高的 k k k个 Token \text{Token} Token
    • 注意力张量: P = { p 1 , p 2 , . . . , p m } P\text{=}\{p_1,p_2,...,p_m\} P={p1,p2,...,pm}的注意力为三维张量 A ( h , i , j ) A(h,i,j) A(h,i,j),表示在 h h h头注意力机制中 p i p_i pi与 p j p_j pj二者的注意力相关性
    • 注意力评分:以 p i p_i pi为例,其注意力评分为每个注意力头中与 p i p_i pi有关行的总和,即 a ( q i ) = ∑ h = 0 h max ⁡ ∑ j = 0 m A ( h , i , j ) a(q_i)\text{=}\displaystyle{}\sum_{h=0}^{h_{\max}}\sum_{j=0}^{m}A(h,i,j) a(qi)=h=0∑hmaxj=0∑mA(h,i,j)

2. \textbf{2. } 2. 实验概要

1️⃣训练方法: ColBERT \text{ColBERT} ColBERT使用 Mini-LM \text{Mini-LM} Mini-LM时无需归一化和查询扩展,大幅降低计算成本​

2️⃣检索性能:当 k = 50 k\text{=}50 k=50时,剪枝可减少 30% \text{30\%} 30%的段落索引,并且性能减少极小( nDCG@10 \text{nDCG@10} nDCG@10减小 0.01 \text{0.01} 0.01)

3️⃣方法对比:当普通剪枝( k =50 k\text{=50} k=50)时方法 1&3 \text{1\&3} 1&3最佳,剧烈剪枝( k =10 k\text{=10} k=10)时方法 3 3 3显著优于其它方法

相关推荐
2301_804774492 分钟前
算法题练习
java·开发语言·算法
LCY1332 分钟前
k8s系统学习路径
学习·容器·kubernetes
Doopny@4 分钟前
矩阵转置(信息学奥赛一本通-1126)
算法
敲上瘾30 分钟前
共享内存通信效率碾压管道?System V IPC原理与性能实测
linux·运维·服务器·c++·算法·信息与通信
lucky登1 小时前
Git学习
git·学习
UpUpUp……2 小时前
模拟String基本函数/深浅拷贝/柔性数组
开发语言·c++·算法
L_M_TY2 小时前
D. Bash and a Tough Math Puzzle
数学·算法·线段树·gcd
*.✧屠苏隐遥(ノ◕ヮ◕)ノ*.✧2 小时前
C语言_数据结构总结9:树的基础知识介绍
c语言·开发语言·数据结构·b树·算法·visualstudio·visual studio
charlie1145141912 小时前
Linux驱动开发框架基础——新旧字符设备驱动笔记整理(1)
linux·驱动开发·笔记·学习·操作系统·教程