TREC比赛中的Pooling方法

Posted

技术标签:

【中文标题】TREC比赛中的Pooling方法【英文标题】:Pooling Method in TREC competitions 【发布时间】:2021-12-26 09:41:33 【问题描述】:

这是一个非常基本且愚蠢的怀疑。我读过,为了防止在 TREC 比赛中进行大型相关性评估 (reference),排名靠前的文件 参与系统返回的数据被汇集起来,以创建用于相关性评估的文档集。但是,我的疑问是:

如果大多数系统使用通用模型或具有相同参数的类似模型。例如,如果多个系统使用 LSA,其 rank 减少到 100,120,150,105 等。那么有两个问题。第一,合并这些结果可能不会真正给出与每个查询相关的文档,因为返回的文档可能会严重重叠。第二,根据参与系统使用的模型,要评估的文件实际上是有偏差的。因此,相关性判断不会真正与方法无关。

我知道我在这里遗漏了一些东西,如果有人可以指导我找到丢失的链接,那将非常有帮助!

【问题讨论】:

【参考方案1】:

是的,这些问题是可能的,但如果运行集足够多样化并且池深度足够深,则在实践中往往无关紧要。 Justin Zobel 早在 1998 年就研究过这个问题:https://ir.webis.de/anthology/1998.sigirconf_conference-98.38/

TREC-7 和 TREC-8 的 TREC 概述论文还提供了有关为早期 TREC 临时集合创建的池的大量详细信息(TREC 会议论文发布在 trec 网站 trec.nist 的出版物部分.gov)。我们还记录了汇集不成功的案例。请参阅“偏差和池化的限制”https://www.nist.gov/publications/bias-and-limits-pooling-large-collections

构建公平、通用且负担得起的大型测试集合是一个持续的研究问题。

艾伦·沃里斯

NIST

【讨论】:

感谢艾伦的指点...【参考方案2】:

你是对的。池化有其自身的问题,我们必须忍受它。

但是,有一些方法可以使池化过程不那么偏向于一组特定的检索模型。

使用一组不同的检索模型不同的检索设置(例如使用标题或标题和描述作为查询)通常有助于减少检索到的重叠文件集。重叠并不总是一件坏事,因为最终在多个列表中检索一个文档(对应于不同的设置或检索模型)实际上可能会加强将该文档包含在池中的信念。

TREC 采用的另一种方法是鼓励参与系统包括手动后处理运行,以确保向评估员显示的文档涉及某种手动过滤,而不是纯自动化的输出算法。

虽然顶部检索的集合确实是特定检索模型的函数,但池化使用的想法是,在 足够的深度(比如 depth-100)的情况下,这是极不可能的真正相关的文档不会在任何检索模型的前 100 名中被检索到。因此,一个人使用的设置(模型和查询制定策略)数量越多,深度越高,丢失真正相关文档的概率就越低。

但是,当然可以为检索模型扩展评估池,该模型的特征与构建初始池所使用的现有模型完全不同。

【讨论】:

感谢您的回答。您能否详细说明最后一点:“但是,对于具有与构建初始池所使用的现有模型完全不同的特征的检索模型,当然可以扩展评估池。”同样在手动后处理运行中,参与者是否删除和添加不相关的相关文档? 示例:考虑到 90 年代的 TREC 评估不包括神经方法......因此,如果神经方法确实能够找到“新”相关文档,则评估将对此进行惩罚,因为这甚至没有对文档进行判断(但是没有判断意味着不相关!)......因此,理想情况下,可能需要重建池以用于与用于构建池的方法非常不同的排名方法......希望现在清楚了吗?是的,在手动处理的运行中,他们手动从前 1000 个文件中删除不相关的文档... 非常感谢,我现在很清楚了。 @Arup 如果一个答案可以帮助您解决问题,那么在 *** 中通常的做法是对答案进行投票并接受它作为正确答案...

以上是关于TREC比赛中的Pooling方法的主要内容,如果未能解决你的问题,请参考以下文章

caffe与tensorflow中的pooling

SciPy / Numpy的Pooling / Convolution比Tensorflow的Convolution / Pooling更快?

图神经网络中的Graph Pooling

HBase Connection Pooling

pooling的原理与Python实现

神经网络中的池化层(pooling)