DeepCT:结合上下文信息的文档术语权重评估

Context-Aware Sentence/Passage Term Importance Estimation For First Stage Retrieval

概述

该篇论文利用BERT对文本中的token进行编码,得到具有上下文和句法信息的 token embedding,然后训练一个回归函数,将 token embedding 映射到一个权重值,用来表示这个 token 在该查询文本中的权重,将该权重用在传统的基于词匹配的算法中,例如BM25。作者把这个方法称为DeepCT(Deep Contextualized Term Weighting framework)。

DeepCT Framework

DeepCT框架分为两部分,使用BERT获取token embedding,然后通过一个回归函数将token embedding 映射到一个权重值。论文的创新点之一就是这个回归函数。BERT的参数可以使用已训练的参数进行初始化,然后再微调。回归函数的参数从零开始训练。回归函数的公式如下所示:
在这里插入图片描述

T_t,c 表示文本c中token t 对应的token embedding,即通过BERT编码得到的具有上下文信息的token embedding;w和b为回归函数的参数。得到这个回归函数就可以对每个在线查询的文本中的token进行打分,评估token的权重,然后用例如BM25算法检索相关文档。本文的核心创新点就是回归函数参数的训练。

DeepCT的训练目标为,最小化真实token权重和预测得出的token权重之间的均方误差(MSE),即如下公式:
在这里插入图片描述

token的真实权重怎么获得?

人工标注吗?当然不是。如果token的真实权重值需要人工标注获得的话,那这创新点未免也太弱了。

论文中提出,将 query term recall作为对文本中token的真实权重值,公式如下:
在这里插入图片描述

Q d Q_d Qd 是与文本d有相关性的查询集合; Q d , t Q_d,_t Qd,t Q d Q_d Qd 的子集,包含token t; Q T R ( t , d ) QTR(t,d) QTR(t,d) 表示文档d中token t 的权重。

采用这种方法做作为文本中的token的真实权重值的假设依据为:搜索查询的问题能够反映出相关文档中的核心思想,因此一篇文档中的词,若在多个相关查询中出现,则说明该词应该比该文档中的其他词具有更高的权重。再通俗一点用白话解释,一篇文档,有多个查询和这篇文档相关,即可以理解为多个查询可以从这篇文档中获取信息,则这些查询和该篇文档中共同出现的词就应该考虑赋予更大的权重值。

综上,得到有监督的训练数据,可以训练回归函数了。得到回归函数后,就可以给新来的查询中的token预测不同的权重,然后用于例如BM25算法的检索。

上述回归函数的训练,更多的是考虑从检索库中的文本来获取有监督的训练数据进行训练,没有很好的从查询文本的角度来考虑。作者将构建查询文本中的token的权重值的方法称为DeepCT-Query,用以构建查询文本中token的权重,然后用于训练回归函数。DeepCT-Query构建训练样本中查询token的真实权重的公式如下:
在这里插入图片描述

其中, D q D_q Dq 是和查询q有关的文档集合; D q , t D_q,_t Dq,t D q D_q Dq的子集,指包含token t 的文档集合。TR(t,q) 表示token t 在查询q中的真实权重,作者将其称为Term Recall。Term Recall的假设依据为:对于查询q中的token t,若在其相关文档中出现的次数很多,说明这个token t 反映了查询的核心信息,应该赋予更大的权重。

实验结果和分析

实验效果肯定是好的,效果不好肯定也不会发出来。。。作者在实验和分析上有几个方面值得后续的实验和论文写作进行借鉴。

  1. 将论文提出的方法和基于tf给token赋权重的方法进行比较,并和第二阶段的重排结合,从检索效率和检索效果的角度出发进行分析;如下图所示,在使用BERT Re-Ranker重排时,基于tf在1000的数据上重排,MRR@10的值为0.371;而基于DeepCT只需在200的数据上重排,MRR@10达到0.370;

在这里插入图片描述

  1. 可视化分析了DeepCT的对文档中token的加权效果;
    在这里插入图片描述

  2. 可视化了token权重分布,见图注;
    在这里插入图片描述

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值