文献分享: 对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显著优于其它方法

相关推荐
Codingwiz_Joy11 分钟前
Day09 -实例:拿到加密密文进行解密
算法·安全·安全性测试
云上艺旅15 分钟前
K8S学习之基础二十九:K8S中的secret
学习·云原生·容器·kubernetes
云上艺旅15 分钟前
K8S学习之基础三十一:k8s中RBAC 的核心概念
java·学习·云原生·kubernetes
float_六七40 分钟前
双指针算法
算法
@黄色海岸1 小时前
【sklearn 02】监督学习、非监督下学习、强化学习
人工智能·学习·sklearn
BingLin-Liu1 小时前
图论之cruskal算法(克鲁斯卡尔)
数据结构·算法·图论
进取星辰1 小时前
PyTorch 深度学习实战(15):Twin Delayed DDPG (TD3) 算法
pytorch·深度学习·算法
strive-debug1 小时前
C语言之 条件编译和预处理指令
算法
虾球xz1 小时前
游戏引擎学习第164天
学习·游戏引擎
Sacuki2 小时前
BP神经网络公式推导与代码实现
算法