今天为大家介绍的是来自Fabio Petroni团队的一篇论文。可验证性是维基百科的核心内容政策之一:所有的陈述都需要有引用来支撑。维持和提高维基百科参考资料的质量是一个重要挑战。作者展示了如何借助人工智能(AI)来应对改善参考资料的过程,这一AI系统由信息检索系统和语言模型驱动。我们称这个基于神经网络的系统为SIDE,它能够识别那些不太可能支持其声明的维基百科引用,并随后从网上推荐更好的引用。
维基百科是最受欢迎的网站之一,它构成了当今最重要的知识来源之一。因此,维基百科上的任何知识都必须是可验证的:维基百科的用户应该能够通过可靠的外部来源查证维基百科上所提出的声明。为了便于这一过程,维基百科文章提供了内嵌的引用,指向支持声明的背景材料。对于质疑维基百科声明的读者可以通过这些引用来验证信息。然而,实际上,这一过程可能会失败:一个引用可能并不支持被质疑的声明,或者其来源可能是有问题的。这样的声明可能仍然是真实的,但仔细的读者不能仅凭引用的信息就轻易地验证它们。在假设一个维基百科声明为真的情况下,其验证是一个两阶段的过程:(1)检查现有来源的一致性;(2)如果失败,寻找新的证据。如上所述,验证维基百科声明需要深入理解语言和掌握在线搜索技能。机器能在多大程度上学习这种行为?这个问题对于基础人工智能的进展来说很重要。例如,验证需要能够检测自然语言中的逻辑蕴含,并将声明及其上下文转化为寻找证据的最佳搜索词——这两个长期以来主要在一些合成设置中被研究的问题。这同样从实用的角度来看也很重要。机器验证器可以通过标记可能触发验证失败的引用,并在它们当前不支持各自声明的情况下建议替换引用来协助维基百科编辑。这可能意义重大:搜索潜在的证据并仔细阅读搜索结果需要时间和高度的认知努力。将人工智能助手整合到这一过程中可以帮助这一个过程。在这项工作中,作者开发了SIDE,一个基于AI的维基百科引用验证器。SIDE找到维基百科上可能无法通过当前引用验证的声明,并为此在网页快照中扫描寻找替代项。其行为是通过使用维基百科本身来学习的:使用精心收集的英文维基百科声明及其当前引用的语料库,作者训练(1)一个检索组件,将声明和上下文转化为符号和神经搜索查询,优化以在网络规模的语料库中找到候选引用;和(2)一个验证模型,根据它们可能验证给定声明的可能性对现有和检索到的引用进行排名。
系统概述
图 1
图1提供了SIDE的高层次概览,展示了给定维基百科声明的决策流程示例。接下来,作者简要描述系统的所有主要组成部分及其相互作用。作者使用“声明”一词指的是维基百科引用之前的句子。被引用的文档被表示为一系列段落。当一个声明被人类编辑标记为“验证失败”,或者被作者的验证引擎标记时,SIDE需要检索一系列支持它的文档。人类验证者会通过(1)基于声明的上下文合成搜索查询;以及(2)对搜索引擎执行此查询来做到这一点。从根本上说,SIDE“学会”做同样的事情,使用稀疏和密集检索子系统。声明的上下文是使用引用之前的句子、章节标题以及包含声明的维基百科文章的标题来表示的。作者使用Sphere,一个用于网络规模数据的网络规模语料库和搜索基础设施,作为候选网页的来源。
众所周知,经典的稀疏和神经密集方法具有互补的优势,因此作者合并它们的结果以产生最终的推荐证据清单。稀疏检索子系统使用序列到序列(seq2seq)模型将引用上下文转换成查询文本,然后在Sphere的BM25索引上匹配结果查询——一个稀疏的词袋向量。作者用维基百科本身的数据来训练seq2seq模型:目标查询是现有维基百科引用的网页标题。网页或来源的标题通常包含内容内关键信息的总结或浓缩表示。通过使用标题来训练一个seq2seq查询扩展模型,作者利用这一简洁且有意义的信息来生成更好的查询扩展。
密集检索子系统是一个从维基百科数据学习的神经网络,它将引用上下文编码成一个密集的查询向量。然后,这个向量与Sphere中所有段落的向量编码进行匹配,返回最接近的段落。上下文和段落编码器被训练以使现有维基百科引用和证据对的上下文和段落向量尽可能相似。密集段落检索是一种学习将查询和文档嵌入为低维密集向量的方法。密集段落检索器(DPR)的基本构建块是一个类似BERT的神经编码器,它处理一系列令牌并预测一个密集向量。DPR由两个这样的神经编码器组成,一个用于查询,另一个用于文档的段落。然后,DPR在由(查询,正确文档)元组组成的数据集上进行训练。
给定一个声明和可能的证据文档,人类会仔细评估所提供的证据在多大程度上支持该声明。这就是作者的验证引擎所扮演的角色,它是一个神经网络,以声明和文档为输入,并预测它们支持声明的程度。出于效率的原因,它在每个段落级别上操作,并将文档的验证分数计算为其每个段落分数的最大值。验证分数是由一个经过微调的BERT计算的,它使用连接的声明和段落作为输入。验证引擎被优化为按可验证性顺序排列声明-文档对。这是由作者设想SIDE使用方式的动机:作者希望通过从那些当前证据不太可能支持的声明开始,优先为人类检查现有声明,并通过从更有可能支持该声明的文档开始,突出显示推荐证据。
实验部分
图 2
在图2中报告了搜索能力的评估结果。可以注意到,对于从网络检索来说,稀疏检索解决方案的表现优于密集方法,这与之前的观察一致。然而,作者通过结合每种方法的100个结果获得了最佳的指标,因为它们高度互补(见图2a)。值得注意的是,验证引擎组件将原始引用文档几乎50%的时间置于最高排名位置(见图2b)。通常,为特色文章中的声明检索证据比检索维基百科中其他声明的证据更具挑战性,例如,作者观察到特色与非特色文章之间存在大的差异——精确度在密集方法下降了7.0%,稀疏方法下降了10.4%。作者假设是存在与特色内容相关的内在流行偏见。特色内容往往与流行话题相关联,这反过来意味着网络上有更多源包含相关信息。相比之下,更小众文章中的声明在网络上的覆盖度要少得多,因此更容易找到。验证引擎模型显著提高了检索组件的准确性,并几乎消除了特色文章的差距,表明有更强的能力识别证据。这一表现可以通过它利用细粒度语言理解的能力来解释,因为模型可以直接使用交叉关注机制比较两段文本。
图 3
为了测试最终系统的性能,作者进行了两阶段的人类评估:(1)大规模的众包注释活动和(2)小规模的细粒度评估。首先,作者从测试集中选择那些SIDE输出的引用来源得分高于维基百科上的声明。然后,作者要求众包注释者表达他们对哪个引用(SIDE的建议或维基百科的)更好地支持了特定声明的偏好。此外,作者要求他们评估一个来源是否包含足够的证据来支持声明,部分证据(意味着只有声明的部分得到了支持),或者根本没有证据。作者在亚马上进行了注释活动,每次注释支付1.2美元,并为每个声明收集了五个注释。共有192名众包注释者参与了活动。对SIDE建议的来源(图3a)和维基百科证据注释(图3b)的偏好与现有维基百科引用的排名分数成正比——分数越低,对SIDE的偏好越多,维基百科中发现的证据越少。这些结果表明,排名分数可能是引用中证据存在的有效代理,并可能有助于突出需要人类关注的案例。为了验证自动选择每个来源的单个段落所引入的噪声,作者对500多个来源进行了对照研究,询问注释者是否更喜欢选定的段落(即得分最高的)而不是来源内的随机一个。作者发现,在超过80%的情况下,注释者更喜欢选定的段落,其中注释者间的一致性为0.27。最后,为了验证众包注释者的准确性,作者对超过100个未在维基百科引用中找到证据的案例进行了注释。在表1中,作者发现有时证据存在于来源中但不在抓取的文本中;其他时候,它分布在多个段落中(系统无法检测到,但作者计划在未来的工作中解决)。总的来说,超过40%的时间,在参考文献中找不到证据来验证声明。
图 4
为了在更现实的条件下进行评估并深入了解系统的性能,作者设计了较小规模、细粒度的评估,涉及维基百科社区。这种方法允许与真实的维基百科用户和完整的文档一起,密切评估系统,提供更全面和真实的分析,以找到最适合支持给定声明的来源。为此,作者构建了SIDE的演示,并与英语的维基百科社区接洽,询问用户是否会使用维基百科上的引用、SIDE推荐的排名第一的引用,或两者都不用来验证给定的声明。作者在用户界面中不显示引用的来源(即,维基百科或SIDE),选择在维基百科上可能验证失败的声明-引用对(验证器得分低于0),并允许访问每个引用的全文(而不是单个段落)。结果(图4)显示,SIDE确实可以验证失败的声明-引用对——用户仅在10%的情况下选择维基百科引用,与之相比,60%的情况下选择SIDE的推荐或两者都不选择。没有在30%的声明中找到多数意见的观察结果突显了任务的固有难度。造成这一难度的因素包括用户间不同的解释和偏好、声明的歧义、不同的专业知识以及对引用质量和相关性的熟悉程度不同。值得注意的是,21%的时间里,SIDE提供的排名第一的推荐被维基百科用户认为是合适的。
编译 | 曾全晨
审稿 | 王建民
参考资料
Petroni, F., Broscheit, S., Piktus, A. et al. Improving Wikipedia verifiability with AI. Nat Mach Intell 5, 1142–1148 (2023).
https://doi.org/10.1038/s42256-023-00726-1