生成式信息检索(问答系统与信息检索的进步)

什么是问答系统(Question Answering Systems)

Question Answering Systems(问答系统)是一类计算机系统,专门设计用来回答用户提出的特定问题。这些系统通常利用一组预先定义的规则、算法或者机器学习模型来从一个或多个数据源(例如,数据库、文本文档、网页等)中检索或生成答案。

问答系统可以根据其应用场景和功能被分类为不同的类型:

  • 基于检索的问答系统:这类系统从一个预先构建的数据库或文档集合中检索信息来回答问题,常见的算法有 TF-IDF、BM25 等。
  • 基于规则的问答系统:这类系统使用一组预定义的规则来生成答案。
  • 基于机器学习的问答系统:这类系统使用机器学习算法(通常是深度学习模型)来理解问题和生成或检索答案。

以上内容来源于 ChatGPT 的回答。

问答系统的核心价值主张是使获得问题的答案变得容易——

  • 问答(QA)系统降低了获得所需答案所需的精神成本和时间。
  • 与传统检索系统相比,它们可以更直接地解决信息需求,但也存在用户过度信任和依赖此类系统的风险。

检索系统的演变

检索系统(Information Retrieval Systems)是一种用于查找、检索和组织信息的计算机系统或软件。它们的历史可以追溯到图书馆的卡片目录系统,但随着计算机和互联网的出现,检索系统已经发生了显著的演变。现代检索系统不仅用于图书和学术文章,还广泛应用于网页、多媒体内容、社交媒体信息等。

早期的检索,如 Fac-Tronic System 它是最早期的计算机基础检索系统之一,它为图书管理员提供了多种查询选项,包括按作者、DoD合同号、主题标题以及主题描述符进行搜索。该系统通过返回与查询匹配的文档的书架位置来辅助信息检索。在搜索匹配文档时,Factronic 采用了一种直接而简单的方法,即通过对所有可用文档列表进行线性扫描来找到匹配项。

Fac-Tronic 及其继承者们塑造了未来七十年信息检索领域的主导范式。在这一范式中,有信息需求的个体会将其需求转化为具体的查询语句,并提交给检索系统。作为响应,系统会提供一份可能符合该信息需求的文档引用列表。在理想情况下,这些文档引用会按照相关性进行排序,并附带与查询相关的段落的简要摘要。

经典检索系统

概念:经典检索系统(Classic Information Retrieval Systems)是一种早期的信息检索系统,主要用于查找和组织存储在数据库或文档集合中的信息。这些系统通常基于一组预定义的规则和算法,如布尔逻辑、向量空间模型(VSM)等,来匹配用户查询和文档。

在这里插入图片描述

图示展示了搜索引擎在三个不同年代的用户界面,从 1996 年到 2023 年。尽管 2023 年的用户体验相较于 1996 年有了显著提升,但其基础范式依然未发生改变。用户仍然通过提交描述其信息需求的查询,来获取一份可能相关网页的链接列表,这些链接通常会附带一个简短的“摘要”,以便用户在不访问网站的前提下估算其实际相关性。值得注意的是,现代搜索引擎已经能够直接回答某些特定类型的查询,比如关于天气或基础事实的问题,然而大多数查询的结果依然是 “10个蓝色链接”。

使用传统检索系统会产生一定的成本,不仅在时间上,还在认知负荷方面。用户需要将他们的信息需求精细化为查询语句,然后仔细浏览可能相关的文档结果列表,或者是少数几篇文档,以达到他们的需求。这一过程被安德烈·布罗德(Andrei Broder)和普雷斯顿·迈克菲(Preston McAfee)称为信息收集的“德尔菲成本”,涉及到++时间投入++、++认知负荷++ 和 ++互动成本++。

“Term” 文档搜素的最小单位

简单总结,“Term” 是搜索引擎用于索引和查询的基础信息单元。
之前提到的 Fac-Tronic 系统,它允许用户通过合同号、作者和主题标题及描述符来搜索文档。合同号和作者名对于定位已知内容是有用的,但对于探索未知的信息领域则不然。
在1952年,Taube、Gull和Wachtel提出了一种用于对文档中的单个词进行索引的方法,这包括文档的标题、主题描述符、关键词,甚至是摘要(当时全文索引还是不可行的)。这种方法被称为“Uniterm coordinate indexing”(Uniterm坐标索引),其核心思想是将文档视为一个词袋模型。

在信息检索和搜索引擎技术中,“Term”(术语或词项)通常被认为是搜索的最小单位。这意味着在搜索引擎进行索引、查询处理和相关性评分时,“Term” 是基础的信息单元。

倒排索引

Uniterm 的应用场景中,我们需要一种有效的方式来将查询词与文档相匹配。倒排索引就是这样一种高效的解决方案。在文档集合的词汇表里,每一个单词都会被映射到一个“倒排列表”,这个列表记录了该单词在所有文档中出现的位置。倒排索引不仅支持基础查询,还能处理更复杂的查询类型,如合取查询、析取查询、邻近查询、短语查询,甚至包括排除或否定查询。这些查询可以组合使用,从而提供了一种丰富的方式来表达用户的信息需求。作为附加优点,这种索引结构也便于计算如词频-逆文档频率(tf-idf)和BM25等词汇评分函数。

在这里插入图片描述

在这里插入图片描述

在倒排索引检索系统中,术语是未经解释的,这意味着系统并没有捕获术语之间的语义关联。比如说,尽管“turtle”(乌龟)和“tortoise”(龟)在英语中是近义词,索引系统会将它们视为两个完全不同的词。为了弥补这一缺陷,这类检索系统通常在预检索阶段使用同义词和权重来优化查询词,以便进行更准确的评分。

布尔和邻近运算可以高效地实现,仅需遍历查询词的倒排列表。倒排索引还具有很好的可扩展性,可以通过分片到多台计算机来处理大型语料库。索引还可以实时更新,通过创建多个层次并定期合并它们来实现。

与Salton的术语向量模型非常匹配,倒排索引的结构便于计算词频(tf)、逆文档频率(iDF)或BM25等评分指标。然而,这种方法在寻找语义上相似(而非仅在词汇上)的文档方面表现不佳。

Salton的术语向量模型(Salton’s Term Vector Model)是信息检索和文本挖掘中用于表示文档和查询的一种模型。该模型由Gerard Salton和他的同事们在20世纪60年代末至70年代初提出。在这个模型中,文档和查询都被表示为多维空间中的向量。每个维度对应一个术语(通常是单词),而该维度上的值通常是该术语在文档中的权重,这可以是词频(TF)、逆文档频率(IDF)或其他复杂的权重。

工作原理
假设有一个词汇表,其中包含所有可能出现在文档或查询中的术语。每个文档(或查询)都可以表示为一个向量,其中每个元素对应于词汇表中一个术语的权重。通过这种方式,文档和查询都被转换为同一空间中的点,从而可以使用各种相似度度量(如余弦相似度)来比较它们。

简单总结
Salton的术语向量模型是一种将文档和查询表示为多维空间中向量的方法,其中每个维度对应一个术语,而该维度上的值是该术语的权重。这种表示方式便于使用各种相似度度量来比较文档和查询。

“经典”网络搜索引擎的架构
在这里插入图片描述

上图展示了一个“经典”网络搜索引擎的架构。
该系统有两个部分,一个离线组件负责获取和预处理网络内容,一个在线组件负责接收查询并返回结果页面。
这两部分通过两个存储库连接在一起——++爬取的网页语料库++ 和 ++这些页面中所有术语(Term)的索引++。

网页内容由爬虫程序抓取,然后存储到语料库并加入到索引中。当用户发起查询时,前端首先从索引里找到相关文档的引用。接着,前端从语料库中拉取这些文档,并为每个结果生成一个摘要。

词嵌入的出现

在语料库(即大量文本数据集)中,语义相关的词语(或术语)更有可能在同一文档或上下文中一起出现,而与之不相关的词则相反。

在信息检索中,有两种主要的模型:
一是 潜在语义分析(LSA),它依赖于词语的共现性质;
二是由Salton提出的 向量空间模型,该模型假设所有词语是统计独立的。
这两种模型各有优缺点,但都受到其基础数据结构(如倒排索引)的限制。

2010年代初,出现了两个重要的突破:词嵌入向量数据库
词嵌入能够捕捉词语、句子、段落或文档之间的语义相关性。

“The advent of word embeddings”(词嵌入的出现)指的是自然语言处理(NLP)和机器学习领域中一种用于表示词语的高维向量模型的普及和应用。词嵌入模型如Word2Vec、GloVe等,能够捕捉词语之间的语义和句法关系,这是传统基于词袋模型或TF-IDF等方法所难以实现的。

工作原理
词嵌入通常是通过大量文本数据上的无监督学习得到的。这些高维向量能够捕捉词语之间复杂的关系,比如同义词、反义词、上下文关系等。例如,在词嵌入空间中,“king” - “man” + “woman” 接近于 “queen”。

向量数据库则能高效地进行最近邻搜索。

向量数据库 是一种专门用于存储和检索高维向量数据的数据库。这些向量通常是由机器学习模型(如词嵌入或图像识别模型)生成的。向量数据库的主要特点是能够高效地进行最近邻搜索,即在给定一个查询向量的情况下,快速找到数据库中与之最相似(或“最近”)的向量。

谷歌的研究人员在 2014 年的一篇论文中提出将词嵌入技术从单词级别扩展到可变长度词序列(如句子、段落或整个文档)

在原始的词嵌入模型中,每个单词都由一组固定长度的实数表示。这篇后续论文的创新之处在于,它将这种表示法扩展到了更长的文本单位,如句子或段落。尽管这些文本单位的长度是可变的,但它们的表示(即嵌入)仍然是一组固定长度的实数。

与Salton的术语向量模型的区别

  • Salton的术语向量模型主要关注词汇层面的重叠,即文档中出现了哪些词。而这种扩展后的词嵌入模型则更注重“软”语义相似性,即即使两个文档没有明显的词汇重叠,它们也可能在语义上是相似的。

语义相似性

  • 这种扩展后的模型能够捕捉到文本之间更为微妙的语义关系,因为它不仅仅依赖于单词的出现或缺失,而是考虑了文本整体的语义内容。

预训练语言模型

神经网络与语言模型

  • 用于将段落映射到嵌入的神经网络捕捉了训练数据中语言的各个方面,包括词汇、语法和形态。这些网络参数实质上构成了一个“语言模型”。

模型规模与准确性

  • 模型越大,对语言的理解就越全面。但这也带来了更高的计算成本。

预训练与微调

  • 由于训练大型模型计算成本高,因此一种常见的做法是先进行预训练,然后在特定任务上进行微调。这样可以更高效地适应不同的任务。

对于预训练与微调这一趋势的一个关键代表是 2019 年由谷歌发表的 BERT

BERT 模型
BERT(Bidirectional Encoder Representations from Transformers)是一种预训练的深度学习模型,用于自然语言处理(NLP)任务。它由谷歌发布,并迅速成为了多种NLP任务的标准模型。

BERT 的主要创新之处在于其双向编码器结构,这使得模型能够同时考虑一个词在句子中的左侧和右侧上下文 ++(这使得表示是上下文相关的——同音异义词将对其不同的含义有不同的表示)++ 。这与传统的单向模型(只考虑左侧或右侧上下文)相比,能够更准确地捕捉词义。

BERT 已经在多个任务上表现出色,包括搜索排名等。预训练语言模型的技术也在不断进步,如2022年发布的“PaLM”(Pathways Language Model)。

基于向量的文档表示,只有在我们能够有效地找到相似向量的情况下才有用。(给定一个向量,返回数据库中最接近的k个向量)



  当我们考察信息检索和搜索引擎的历史,我们可以看到它们经历了重要的演变。起初,它们主要使用基于词汇匹配的方法来工作。然而,随着时间的推移,搜索引擎朝着更为复杂和语义化的方向发展。

  这个演变导致现代搜索引擎越来越依赖机器学习和神经网络,特别是预训练的语言模型,以提供更准确和个性化的搜索结果。这个发展方向的目标是改进用户的搜索体验,使其更加满足个性化需求。

通过使用文档嵌入和向量数据库,我们可以改进传统检索系统,使其更加注重文本的语义含义而不仅仅是单纯的词汇匹配。传统的倒排索引被向量数据库取代,这意味着系统可以更好地理解文本的语义信息。在这种系统中,不再需要频繁地使用同义词来扩展查询词,因为系统可以更智能地处理查询,提供更准确的搜索结果。架构图如下:

在这里插入图片描述

比较 词汇表示 和 语义表示

词汇表示(词向量):

  • 高维度(数十亿)
  • 稀疏
  • 基于词向量的模型
  • 单词是未经解释的标记
  • 计算成本较低
  • 易于扩展倒排索引
  • 没有明确的语言模型(注意:可能在检索前后使用)

语义表示(嵌入)

  • 低维度(数百)
  • 密集
  • 基于分布语义的表示
  • 单词具有含义
  • 计算成本较高
  • 难以扩展神经网络索引
  • 更新语言模型非常昂贵

词汇表示通常在高维度空间中操作,每个单词都被表示为一个稀疏向量,它们仅包含关于词汇的信息,而不涉及语义含义。这种方法计算成本较低,易于构建倒排索引,但不考虑单词之间的语义关系。
相比之下,语义表示在低维度空间中操作,每个单词都表示为一个密集的向量,捕捉了单词之间的语义关系。这种方法更接近单词的真实含义,但计算成本较高,难以在大规模数据上扩展,并且更新语言模型的代价也很高。

  • 商业可用的向量数据库目前在可扩展性方面尚不如倒排索引,尽管它们之间的差距正在迅速缩小。这意味着倒排索引在处理大规模数据时仍然具有优势。
  • 倒排索引具有更高的局部性,因此索引不需要完全驻留在内存中。这有助于减少内存使用,提高性能。
  • 倒排索引非常适合进行"精准查询",即需要重视召回率的查询,例如查找非常独特和不常见的零件编号等情况。

基于此,创建混合检索系统,其中所有文档存储在倒排索引中,而语义上最有价值的子集存储在向量数据库中。在查询时,系统可以同时从这两个子系统中检索结果,然后将它们合并在一起,以提供更全面的搜索结果。这种混合方法充分利用了两种检索方法的优势,从而提高了搜索的效果。

在这里插入图片描述

下面截图的论文中,评估了这样一个混合系统
在这里插入图片描述

论文地址:https://arxiv.org/abs/2010.01195

这篇论文主要探讨了如何通过结合深度神经网络模型和词汇模型来提高文档检索系统在检索阶段的性能。论文提出了一种混合方法,该方法同时利用语义(基于深度神经网络)和词汇(基于关键词匹配)的检索模型。通过使用公开可用的TREC集合进行的实证研究,论文证明了这种方法的有效性,并深入探讨了语义方法、词汇方法以及它们的组合各自的特点。

在混合系统中,他们结合了词汇检索和语义检索的两个部分。对于词汇部分,他们使用了Lucene作为索引器,BM25作为排名模型。而对于语义部分,他们使用了ScaNN作为向量数据库,并采用了基于BERT的排名模型。最后,他们使用RM3方法来融合这两个子系统的结果。

通过在TREC新闻数据集上进行基准测试,他们发现混合系统的召回率明显高于任何一个子系统,并且精度也得到了提高。这意味着混合系统在搜索任务中表现更好,能够更全面地找到相关文档,并提高了搜索结果的准确性。这项研究为混合检索方法提供了有力的支持。

用于问答的语言模型

NLP 研究人员注意到,这些大型模型不仅能够学习语言的词汇、形态和语法,还能记住训练数据中的基础事实信息(即"factoids")

“Factoids” 是一个英文术语,通常用来指一小段简短、有趣但可能不完全准确或稍微歪曲的事实或信息。在不同的上下文中,这个词可能有不同的含义
在自然语言处理和机器学习的上下文中,“factoids” 通常指的是模型从训练数据中学到的基础事实或信息。这些事实通常是模型在回答问题或进行其他任务时所依赖的知识。

Google的团队特别研究了T5模型,这是一个继BERT之后、PALM之前的预训练模型。他们将不同大小的T5模型(针对问答任务进行了微调)与九个现代问答系统进行了比较。这些问答系统分为两类:一类是闭卷生成式系统(即T5模型),另一类是开卷抽取式系统(即基于数据库或其他外部信息源的系统)。

测试问题来自三个不同的问答数据集:Natural Questions、WebQuestions和TriviaQA。评估是通过算法检查和人工评估的组合进行的。

结果显示,最大的T5模型虽然没有达到最先进的抽取式问答系统的性能,但与许多系统相比表现相当出色。

由于观察到语言模型能够捕捉到常见的世界知识,研究人员提出了使用这些模型以生成方式回答问题。这种新方法可能会在多种信息检索任务中比传统方法更受欢迎,因为它减少了搜索者在寻找信息时所需的时间和精力,也就是所谓的"德尔菲成本"(Delphic cost)。这个成本包括搜索过程中的时间消耗、认知负担和与系统的互动成本。

"德尔菲成本"在这里指的是搜索者在信息检索过程中所需付出的时间、认知负荷和互动成本

“重新思考搜索” 提出关键需求:

  • 可靠性:搜索引擎或信息检索系统应该提供准确和可靠的信息。这意味着它应该从权威和可信的来源获取信息,并确保生成的内容与原始材料保持一致。
  • 透明性:系统应该明确地标明信息来源,最好是引用主要或原始的资料。这有助于增加用户对信息的信任。
  • 无偏见性:避免偏见是一个复杂和棘手的问题,因为偏见在社会和文化中无处不在。搜索引擎需要设计机制来最小化这种偏见。
  • 多样性:对于有争议或敏感的话题,系统应该提供多角度的信息,以便用户能够获得全面的了解,而不是仅仅看到一个观点。
  • 可访问性:信息应该以易于理解和接受的方式呈现,这可能需要系统了解用户的背景和需求。

在"Situating Search"(定位搜索) 中针对上面的愿景感知到的技术缺陷:

  • 不能处理结构化信息:这意味着语言模型在处理具有明确结构(如数据库、表格等)的信息时可能不够有效。它们更适合处理自然语言文本。
  • 容易产生幻觉:这是指语言模型有时会生成不准确或误导性的信息。这可能是因为模型在训练数据中没有足够的上下文来准确地生成信息。
  • 理解形式但不理解含义:这意味着虽然语言模型可能很擅长生成语法正确的句子,但这些句子可能在语义上是不准确或不可靠的。

Chirag Shaw和Emily Bender在2022年的CHIIR会议上发表了一篇批评“重新思考搜索”观点的文章。他们主张,++用户实际上并不是那么热衷于生成式问答系统。相反,人们更加关心如何提出有效的查询,如何判断哪些搜索结果是可靠和相关的,以及如何根据需要微调他们的搜索查询++。

这两位作者从技术和社会两个方面对生成式问答系统提出了质疑。技术上,他们不确定这样的系统是否能有效地处理结构化信息,或者是否能生成基于事实的可靠答案。虽然这些问题对于生成模型本身是个挑战,但对于那些依赖外部资源如检索系统、知识库和推理引擎来验证答案的更大型问答系统来说,这并不是不可逾越的难题。

设计方案选择:封闭式与开放式问答系统对比

方案A:封闭式生成问答

  • 语言模型是生成过程中唯一利用的知识源
  • 纯粹的方法可能允许所有系统组件的联合优化
  • 多个棘手问题:
    • 知识基础(产生幻觉的风险)
    • 透明度(归因于来源)
    • 可扩展性(捕获所有开放知识)
    • 可演化性(知识的增长和变化)
  • 可微搜索索引(DSI)是封闭式问答的一种尝试
    • 支持归因(在语言模型中捕获文档ID),在可演化性和可扩展性方面有所进展
    • 迄今为止的工作没有考虑实际生成(因此没有担心知识基础)

在封闭式问答系统中,所有需要的知识都由语言模型本身提供,不依赖于外部数据源。这种方法有优点,例如可以端到端地优化整个系统。但也有一些问题,比如如何确保信息的准确性,确保生成的答案是可靠的、如何追溯信息来源、如何扩展到更多的开放知识,以及如何适应知识的不断变化。

可微搜索索引(DSI)

“可微搜索索引(DSI)”是这种封闭式问答的一种实现尝试,它尤其在信息归因、可扩展性和可演化性方面有所改进。

DSI(Differentiable Search Index) 是一个特殊类型的语言模型,专门用于文档检索。它工作分为两个阶段:
第一阶段是“索引”,模型学习如何从文档内容预测文档的标识符;
第二阶段是“检索”,模型根据给定的查询预测相关文档的标识符。
这个模型在可扩展性和可演化性方面有一些进展,但还没有解决生成答案的依据问题。

DSI(Differentiable Search Index)是一种可微搜索索引,它是一种特殊类型的搜索索引,设计用于与神经网络或其他可微分模型直接交互。在传统的搜索引擎中,搜索索引通常是一个独立的组件,用于快速查找与查询相关的文档或数据。然而,在DSI中,搜索索引被设计为一个可微分的函数,这意味着它可以直接嵌入到神经网络模型中,并通过反向传播算法进行训练。

DSI的主要优点是它允许模型在训练过程中自动地调整搜索索引,以更好地满足特定任务的需求。这种方法在信息检索、推荐系统和其他需要高效搜索能力的应用中具有潜在的价值。

例如,在一个问答系统中,DSI可以用于捕获文档ID或其他元数据,这有助于提高系统在可扩展性和可演化性方面的性能。同时,由于DSI是可微分的,它也可以与其他神经网络组件共同优化,从而提高整体系统性能。

挑战:在 DSI 中添加新文档

• 方法:通过持续学习将新文档纳入DSI模型
• 挑战:简单地学习新文档会导致对旧文档的灾难性遗忘
• 分析揭示了在基础语料库的记忆过程中的隐性遗忘和在持续学习过程中的显性遗忘

DSI(可微搜索引擎)很擅长于找出答案来自哪里,这在自动生成答案的系统里是个大问题,但DSI处理得相当不错。

然后,我们面临的问题是如何让DSI适应不断更新的信息。想象一下,互联网上的信息是如何飞速变化的。如果每次都从零开始训练一个全新的模型,那简直是个无底洞。所以,++聪明的做法是让 DSI 持续学习,随时吸收新信息++。

但这里有个大坑:当DSI忙着学新知识时,它竟然会“忘掉”旧知识。这种遗忘有两种形式。一种是“隐性遗忘”,即在DSI还在学习基础信息时,就已经开始悄悄忘记旧的东西了。另一种是“显性遗忘”,这是当DSI在添加新信息时,会忘记它之前学过的东西。

避免在更新DSI(可微搜索引擎)时出现灾难性遗忘
  1. 隐性遗忘与显性遗忘:DSI(可微搜索引擎)面临两种类型的遗忘问题。隐性遗忘是在记忆基础语料库的同时遗忘先前的训练样本;显性遗忘是在整合新的文档更新时遗忘旧的训练样本。

  2. 锐度感知最小化(SAM):这是一种优化技术,用于缓解隐性遗忘。它通过优化更平坦的损失盆地来实现这一目标。

  3. 经验回放(Experience Replay):这是一种旧的强化学习概念,用于减轻显性遗忘。具体来说,它通过生成伪查询来重新呈现先前学习过的文档,并将这些文档与新文档一起用作训练样本。

评估与结果:这些方法在Natural Questions和MSMARCO两个数据集上进行了评估。结果显示,SAM在减缓隐性遗忘方面表现中等,而使用生成性记忆在防止显性遗忘方面表现出色。

持续学习的挑战:由于底层语料库的不断变化,简单地使用持续学习会导致对旧文档的灾难性遗忘,这是传统信息检索系统中不存在的问题。

挑战:将DSI扩展到大型文档集合

这篇论文: “How Does Generative Retrieval Scale to Millions of Passages?”,主要研究了生成式检索(Generative Retrieval)在大规模文本语料库(如 MS MARCO)中的可扩展性。
论文地址:https://arxiv.org/abs/2305.11841

  • 背景与目的: 生成式检索是一种新兴的检索范式,它使用单一的序列到序列(Sequence-to-Sequence)Transformer模型来完成检索任务。尽管在较小的语料库(如 Natural Questions 和 TriviaQA)上表现出色,但其在大规模语料库上的性能尚未得到充分评估。

  • 实验设计: 论文首次对 MS MARCO 语料库(包含 8.8M 篇文章)进行了全面的生成式检索实验。实验主要集中在评估由 Tay et al. (2022), Zhuang et al. (2022b), 和 Wang et al. (2022) 提出的各种技术。

  • 实验结果: 在较小规模的 Natural Questions 和 TriviaQA 上,论文展示了生成式和非生成式检索的最新结果,而无需使用许多先前提出的方法。

  • 未来方向: 论文提出了几个开放性问题,包括如何合理地利用大型语言模型和模型参数的扩展性,以及如何设计能够在计算权衡方面进行插值的架构。

闭环生成式问答系统架构

在这里插入图片描述

上图展示了一种闭环生成式问答系统(Closed-Book Generative Question-Answering Systems)的架构。在这种系统中,语言模型是唯一的知识存储库。这个模型由一个离线组件进行更新和训练,然后由一个在线组件用于实际的问题生成和回答

到目前为止,实际上还没有用DSI进行生成,所以就DSI而言,这仍然是“未来工作”

方案B:开放式生成问答

REALM(Retrieval-Enhanced Language Model)

  • 非生成式前驱:REALM(检索增强语言模型)
  • 给定一个问题,使用外部存储器(“知识检索器”,BERT & ScaNN)来检索一组可能相关的文档,并从问题和文档中提取答案(“知识增强编码器”,使用 BERT 进行范围预测)
  • 系统(KR 和 KAE)进行端到端优化
  • 在多个开放领域问题回答基准测试上进行评估

与闭环问题回答(closed-book question answering)相对的是开放式问题回答(open-book question answering),在这种模式下,生成模型可以在生成之前、期间和之后利用外部存储器。2020年,Google 的相关人员描述了一种名为 REALM 的此类系统的前身。REALM 执行的是抽取式而非生成式的问题回答。它有两个组件:一个检索器(retriever)和一个提取器(extractor)。

给定一个问题,REALM 使用 BERT 将该问题映射到一个嵌入(embedding)。然后,它使用 ScaNN 检索一组与查询相似的文档。接下来,它使用一个基于 BERT 的范围预测模型(span prediction model)来识别每个检索到的文档中最相关的段落,并返回整体上最相关的段落。

需要强调的是,检索器和提取器/排名器(extractor/ranker)都是可微分的,因此可以共同进行优化。REALM在多个开放领域的QA基准测试上表现良好。

这篇论文: “REALM: Retrieval-Augmented Language Model Pre-Training”,主要探讨了一种名为 REALM(Retrieval-Augmented Language Model)的预训练语言模型。
论文地址:https://dl.acm.org/doi/pdf/10.5555/3524938.3525306

论文主要观点:

  1. 序列到序列模型与注意力机制: 论文提到,在带有注意力机制的序列到序列模型中,文本是通过选择相关标记(tokens)来生成的。这产生了一组目标和源标记之间的无监督对齐。

  2. 检索与编辑: 为了更好地解释输入文本中的变化并实现可控制的生成,论文提出了一种检索与编辑(Retrieve-and-Edit)的框架。REALM 模型自主学习哪些文本对于降低困惑度(perplexity)最有用。

  3. 可扩展的基础神经记忆: 论文提到,文档索引可以被视为一种记忆,其中键是文档嵌入。这与诸如产品键记忆(Product Key Memory)这样的工作有共同的动机。

  4. 无监督语料对齐: 论文提出,REALM 也通过选择相关的文档来生成文本。这作为一种副产品,提供了预训练语料和知识语料之间文本的无监督对齐。

  5. 预训练和微调: REALM 在预训练和微调阶段采用了一种检索-然后-预测的生成过程。预训练任务是掩码语言建模(Masked Language Modeling),而微调任务是开放式问答(Open-QA)。

论文对未来工作持乐观态度,特别是在以下几个方面:

  1. 结构化知识的泛化。
  2. 多语言设置,例如,使用高资源语言来更好地表示低资源语言。
  3. 多模态设置,例如,检索可以提供文本中很少观察到的知识的图像或视频。

FAIR(Facebook AI Research)

  • 检索增强生成(RAG)
  • 两个组件:检索器(类似于REALM)和生成器(类似于REALM的提取器)。与REALM一样,这两个组件是共同学习的。
  • 检索器:使用BERT和FAISS(DPR系统)进行段落(而非文档)检索。
  • 生成器:BART(Facebook的编码器-解码器语言模型)
  • 对每一对问题-段落进行单独的生成,产生一组答案(“假设”);返回最可能的答案。

受到REALM的启发,FAIR(Facebook AI Research)的一个团队构建并测试了一个生成式的等价物,他们称之为检索增强生成(Retrieval Augmented Generation),简称RAG。RAG和REALM一样都有一个神经检索器(neural retriever),但与REALM检索整个文档然后作为一个单独步骤进行段落提取不同,RAG在索引时进行段落分割,并在查询时进行段落检索。

每个候选段落(连同查询)都被送到生成器中,生成的答案根据其预测的相关性进行排序,然后返回最可能的答案。同样值得强调的是,RAG的所有部分都可以共同优化。

参考论文:Retrieval-Augmented Generation for Knowledge-Intensive NLP Tasks
地址:https://proceedings.neurips.cc/paper/2020/file/6b493230205f780e1bc26945df7481e5-Paper.pdf

RETRO

RETRO 的全称是 “Retrieval-Enhanced Transformer for Document Retrieval”,即“用于文档检索的检索增强变换器”。这是一种专注于文档检索任务的检索增强生成模型。

  • RETRO:检索增强生成模型
  • 外部存储器的容量比REALM和RAG大1000倍
  • 生成器单独处理问题和检索到的文档/段落(交叉注意力)。在生成过程中可能会多次进行检索

“Retrieval-augmented generation”(检索增强生成)使用外部记忆来引导生成过程,换句话说,它利用了参数化和非参数化知识。在REALM和RAG中,参数化和非参数化知识没有耦合 - 生成模型在训练时不利用检索机制。DeepMind 的人员探索了将检索引入训练过程中的可能性。在RETRO(Retrieval-Enhanced Transformer)中,训练数据中的文档被分割成句子片段,并存储在一个查找表中,其键是它们的BERT嵌入。在训练过程中,一个句子片段通过嵌入空间中的相邻句子片段进行增强。在检索过程中,RETRO使用一个外部存储器,其数据量大约比训练中使用的数据量多一个数量级。它以分块方式生成响应,从提示开始。对于每个块,它从外部存储器中检索相邻的句子片段以增强输入,生成一个响应块,然后迭代。

参考论文:Improving language models by retrieving from trillions of tokens
地址:https://browse.arxiv.org/pdf/2112.04426.pdf

检索增强型GQA系统的架构

REALM和RAG都使用了语义索引作为它们的检索组件。这样做的优点是可以共同优化检索、答案提取或生成,但目前尚不能扩展到千亿级文档的语境。我们可以通过增加一个词汇检索组件来增强语义检索,从而获得混合检索器,同时我们仍然可以与生成模型共同优化语义检索模型和结果融合模型。以下是这种系统的高级示意图:

在这里插入图片描述

超越记忆的知识

  • 语言模型擅长记忆,但不擅长算术
  • 思路:教会语言模型调用计算器 - 提取操作数(例如,从检索到的文档中提取)并选择运算符
  • 在DROP数据集上进行评估(与CoQa联合训练):相对于先前最先进的方法,有50%的相对改进。

语言模型擅长记忆信息,但不能进行我们所谓的算法推理,例如学习长除法算法并在推断时执行它。
因此,它们在进行算术推理方面表现不佳,比如从法国的人口中减去巴黎的人口以回答问题“有多少法国居民不住在巴黎?”。
谷歌的人员提出了一个想法,即教导语言模型如何使用外部工具,比如计算器。基本思路是教导模型从提示中提取数值量 - 即操作数,并训练模型调用正确的运算符。这一方法在“Discrete Reasoning Over Passages”(DROP)任务中表现出色,相对于先前的最先进方法,取得了50%的改进,而DROP任务是一个需要进行算术推理的阅读理解任务。

参考论文:Giving BERT a Calculator: Finding Operations and Arguments with Reading Comprehension
地址:https://aclanthology.org/D19-1609.pdf

泛化:工具增强的生成

  • 计算器是“工具”的一个实例,它是语言模型可以利用的不可微分子系统(另一个示例是词汇检索系统)
  • 学会将问题 x 翻译成工具调用 t,将工具结果 r 翻译成答案 y
  • 迭代自我对弈:在少量(x,t,r,y)元组用于引导启动和大量(x,y)对的情况下,学习两个文本到文本的映射关系
  • 可用于与推理引擎(例如 Wolfram Alpha)进行接口交互

谷歌的另一组人员概括了之前工作的核心思想:教导语言模型如何使用黑匣子工具

在这个背景下,工具是指一个非可微分的子系统,它接受输入并产生输出。示例包括符号推理系统,如Macsyma或Mathematica,或黑匣子检索系统,如SABRE航班预订系统。

一个核心假设是工具具有有限且可管理的一组操作,可以通过蛮力方法进行探索。学习任务是将问题映射到工具输入,将工具输出映射到答案。这是通过在一小部分(问题,工具输入,工具输出,答案)示例数据集上引导系统启动,然后在一个更大的(问题,答案)对数据集上继续训练来完成的,系统将通过迭代自我对弈发现适当的输入和输出映射,这是强化学习的一种方法。

参考论文:TALM: Tool Augmented Language Models
论文地址:https://browse.arxiv.org/pdf/2205.12255.pdf

关于增强语言模型的进一步阅读

最近由Meta的研究人员发表的非常全面的调查。从这篇文章中得出的主要结论是,语言模型是新的“中间件”——它们允许知识系统中的各个组件进行互操作,它们是将一切粘在一起的胶水。

参考论文:Augmented Language Models: a Survey
论文地址:https://arxiv.org/abs/2302.07842

关键挑战

答案的忠实性

在理想情况下,生成式问答系统应该提供真实的答案。但“真实”是一个难以准确定义的概念,因此我们可以将目标设定为系统要“忠实”,也就是说,它的答案应该建立在从语料库中检索到的可信证据之上,最好这些证据来自可信的信息源。

在这篇名为《Increasing Faithfulness in Knowledge-Grounded Dialogue with Controllable Features》的论文中,提出了知识驱动对话的概念,并明确了三个期望:

  1. 生成的答案应该以客观的方式呈现,不涉及个人趣事或情感。
  2. 生成的答案应该与潜在的证据具有高度的词汇相似性,以确保与支持信息一致。
  3. 生成的答案应该在语义上与证据相符,以保证答案与支持文本的意义一致。

为了实现这些期望,研究人员对两个预先训练的序列到序列模型(GPT-2和T5)进行了微调,并为每个期望引入了控制标记,以指导模型的行为。在生成答案时,他们将所需的行为控制标记添加到提示中,以确保生成的答案符合期望。

通过对“Wizard of Wikipedia”数据集进行人工评估,研究人员发现,该系统在忠实性方面表现明显优于基线预训练模型。这表示他们的方法在知识驱动对话中提高了答案的可信度。

答案的归因

当生成的答案与证据不符时,谷歌的研究人员在这篇 https://arxiv.org/abs/2210.08726 论文中介绍了一种名为“Retrofit Attribution using Research and Revision”(RARR)的机制,旨在主动修正不基于证据的生成文本。这一机制分为三个关键阶段:

第一阶段 - 研究阶段
在这一阶段,使用一个名为“全面问题生成”(Comprehensive Question Generation,简称CQGen)的子系统,生成一组查询,这些查询涵盖了给定生成文本的所有方面。这些查询旨在帮助系统了解生成文本的各个方面。

第二阶段 - 修订阶段
在研究阶段之后,通过使用标准的检索系统(在这里是Google),获取响应性文档。然后,从每个文档中提取最相关的段落。这些段落被用来与生成的文本进行比较,检查是否存在不一致之处。如果发现生成文本的某些方面与提取的段落不符,RARR将对生成文本进行编辑,直到不存在不一致之处。

第三阶段 - 归因阶段
最后一个阶段是归因阶段,其中RARR会标注生成文本的部分,以表明它们与哪些提取的段落相关。

总的来说,RARR的目标是通过生成问题、检索文档、比较和编辑生成文本,使生成的答案与支持证据相一致。这一机制通过三个阶段的交互来实现,以纠正生成文本中的不一致性,确保答案更具可信度。这些阶段中的协议模型和编辑模型都利用了一个生成模型,被称为“PaLM”。通过这一方法,论文中介绍了一种提高生成式问答系统忠实性的方法。

正如我们在“重新思考搜索”一文中所提出的,++生成式问答应该是透明的——答案应该包含对支持答案的来源的引用++。

在这篇 https://browse.arxiv.org/pdf/2212.08037.pdf 论文中,谷歌的研究人员提出了归因问题——即,在给定一个问题的情况下,系统会返回答案和归因,即答案的来源引用。

在这篇论文中,作者首先提出了一个重要观点,++即生成式问答应该具备透明性++,也就是说,生成的答案应该包含对支持答案的来源的引用。这个观点是基于他们在之前的文献中提出的,即搜索结果和答案的透明性对于用户的信任和理解至关重要。

接着,研究人员在论文中明确定义了归因问题,也就是在给定一个问题的情况下,系统应该返回两个重要元素:答案和答案的来源引用,以便用户能够追溯答案的来源。

为了解决这一归因问题,他们提出了一个评估框架,旨在评估生成式问答系统的性能。这个框架包括两个关键方面:

  1. 人工评估:他们将人工评估视为黄金标准,即通过人工评价来确定系统的性能。这涉及到人类评价员评估生成的答案是否与其来源相一致,并对透明性进行评估。

  2. 自动评估:为了扩展规模并更全面地评估不同系统的性能,他们还使用了自动评估方法,其中包括了在之前的研究中提出的方法(如RARR论文中的方法)。这些方法用于自动比较生成的答案与其来源之间的一致性。

为了验证他们的框架,研究人员对三类生成式问答系统进行了评估:

  • “先检索再阅读”:这类系统包括RAG和RETRO,它们首先执行信息检索,然后生成答案。

  • “事后检索”:这类系统受到RARR的启发,尝试在生成后修正不一致性。

  • “LLM作为检索器”:这类系统使用大规模语言模型(如DSI和NCI)作为信息检索器。

他们使用了自然问题数据集的部分内容和维基百科作为语料库,并采用了Exact Match、AIS(可归因于已识别来源)和AutoAIS等评估指标。

最终,研究人员得出结论,"先检索再阅读"的系统表现最佳,即检索增强生成仍然是生成式问答的最佳方法。这个发现对于指导生成式问答系统的发展和改进具有重要意义。

OpenAI

主要要点:

  • 基于网络的长篇问题回答系统
  • 采用Bing搜索API进行检索增强生成
  • 使用GPT-3作为预训练语言模型
  • 使用强化学习与人类反馈(RLHF)进行微调:人工编写的答案(“演示”)和人工两两比较评估(“比较”)
  • 答案带有参考来源(归因)
  • 预示了ChatGPT(但受到的关注较少)

在2021年12月,OpenAI发布了一篇关于WebGPT的论文。

论文地址:https://browse.arxiv.org/pdf/2112.09332.pdf

WebGPT是一个用于长篇问题回答的系统,使用GPT-3作为生成模型,并使用Bing网络搜索API作为信息检索器。

这个系统的核心组件是GPT-3,它是一个预训练的语言模型,以及Bing网络搜索API,用于检索相关信息。WebGPT的设计目标是能够在网络浏览环境中提供长篇问题的答案,并且可以充当用户在网络上搜索信息时的伴侣。

WebGPT的训练过程包括两个关键方面:演示和对比。

在演示方面,付费工作者会接收一个问题,并被要求使用网络搜索来找到潜在的答案,然后编写答案。这些搜索和答案被称为"演示",并且它们用于训练WebGPT,使其能够模仿这一过程。

在对比方面,WebGPT会被要求生成两个不同的备选答案,然后另一组付费工作者会被要求比较这两个答案并选择更好的一个。这种对比过程提供了不同类型的训练数据。由于人类更容易进行比较,因此可以生成更多的对比示例,这是训练中的一个重要方面。

总的来说,这种方法被称为"强化学习与人类反馈",它在训练生成式问题回答系统方面发挥了关键作用。值得注意的是,WebGPT在时间上早于ChatGPT,但在机器学习社区之外并没有受到太多关注。这一方法的推出为解决长篇问题回答提供了有力的工具和思路。

Google Research

  • 用于对话应用的大型(多达1370亿参数)语言模型;仅解码器架构
  • 经过微调以提高合理性、特定性、趣味性、安全性、事实性、工具增强以及多跳问答能力
  • 预告了 Bard

谷歌(其中有大量人员)发表了一篇关于LaMDA的论文。

论文地址:https://browse.arxiv.org/pdf/2201.08239.pdf

LaMDA 这是一个专为对话应用而设计的大型语言模型。LaMDA是一个由不同规模的模型组成的系列。它经过训练,旨在执行生成式和判别式任务。
给定一个问题,它生成潜在的回应,然后对这些回应进行安全性过滤,基于外部知识源进行支持,并重新排名以找到最高质量的回应。
该团队为对话系统引入了一系列关键目标,包括合理性、特定性和趣味性等质量指标;安全性指标;基于事实的度量指标;信息度量指标;以及引用准确性指标。
LaMDA 经过微调,以预测这些指标,从而使在生成式环境中能够引导所需的行为。

生成模型和网络生态系统

生成式人工智能对网络和搜索生态系统的影响

  1. 一些网站可能不再雇佣人来写内容,而是使用计算机生成内容。这种生成的内容有可能被用来训练未来的计算机程序,形成一种循环效应。

  2. 搜索引擎中的直接答案可能会减少人们通过搜索引擎访问其他网站的次数,尤其是当人们寻找信息时。这可能对那些靠搜索引擎引荐流量维持业务的网站产生影响,他们可能需要寻找其他赚钱的方式。

  3. 直接答案可能会改变人们与搜索引擎的互动方式,因为现在人们可以直接从搜索结果中获得答案,而不必再点击其他链接。这可能会导致人们更专注于从获取信息到实际购买的过程。

我们难以准确预测生成模型对网络生态系统的完整影响,但其中一些变化已经开始显现。

首先,生成语言模型将改变作者的性质。作者们将使用生成模型来协助他们撰写流畅的文章。这本身并不是坏事,因为写出流畅的文章有助于读者。问题出现在生成内容大规模生产时,没有人类编辑参与的情况下。

目前,有一整个行业称为“内容农场”,雇佣低薪工人大量生产可盈利的内容。预测这个行业将成为首批采用无人参与的内容创作方式的企业之一,从而在互联网上涌现大量合成内容,这些内容可能属实性存疑。如果我们用这些内容来训练下一代语言模型,可能会出现问题,甚至可能导致“模型崩溃” 。

其次,直接答案有可能减少搜索引擎的流量引荐 - 即来自搜索结果链接的流量。内容创作者需要谋生,而且通常通过将对用户有用的内容与对内容提供商有用的内容捆绑在一起来实现谋生。换句话说,他们依赖于流向他们网站的流量。如果内容创作仍然是一个有盈利的业务,对所有人都有好处,这可能意味着商业模式需要发展和改进。

最后,直接答案将影响用户与搜索引擎的互动方式。用户在寻求信息时更不太可能离开搜索引擎;另一方面,由于降低了信息获取的成本,用户可能会进行更长更深入的搜索。预计将会出现更多关注更长更深入的搜索,包括从信息获取到采取行动的过程。

对生成的内容进行训练会导致模型崩溃

  • 最近的研究表明,对大量生成的内容进行训练会导致“模型崩溃”。
  • “模型崩溃”可分为两种情况:早期模型崩溃和晚期模型崩溃。
  • “模型崩溃”的两个根本原因是统计逼近误差和功能逼近误差。
  • 这揭示了递归训练生成模型存在固有的限制。

在最近发表的 https://browse.arxiv.org/pdf/2305.17493.pdf 这篇论文中,研究人员进行了一项关于使用生成内容来训练后继模型的研究。
他们发现,++许多不同类型的生成模型在递归训练其自身输出时会出现“模型崩溃”的问题++。
这种模型崩溃有两种表现形式,即早期模型崩溃和晚期模型崩溃,分别涉及信息丢失和分布收敛问题。研究人员提出了两个根本原因,分别是统计逼近误差和功能逼近误差,这些误差源于训练数据和模型表现力的限制。
研究的结论是,人工编写的训练数据对于训练生成式语言模型至关重要,因此需要一种方法来筛选出高质量的训练数据以改善模型的质量。既人工编写的训练数据对于训练生成式语言模型至关重要,我们需要一种机制来“分清是非”。

人类很难分辨语言模型(LM)生成的内容

  • 许多原因需要识别机器生成的内容,例如避免将其用作未来语言模型的训练示例。
  • 人类不擅长检测机器生成的内容 - 我们能否希望判别模型在这项任务上表现出“超人类”的性能?

在我们深入讨论基于机器学习的检测机器生成内容之前,你可能会好奇人类是否能够可靠地识别它。
事实证明,有一些证据表明这并不容易。康奈尔大学和斯坦福大学的研究人员曾研究过人们是否能够区分人类写的内容和机器人写的内容。
他们进行了一项研究,让4,600名参与者看一些自我介绍的文本(比如在LinkedIn或约会应用上的自我介绍),然后让他们判断哪一个是人类写的,哪一个是机器人写的。
结果显示,测试对象的准确率与随机猜测的准确率接近,也就是说他们无法很好地分辨。
然而,有趣的是,多个测试对象在如何判断自我介绍的性质上达成了一致,这表明人们可能采用了一些共同但不太准确的方法来识别机器生成的内容。
这本身并不是问题;毕竟,有很多任务在其中,机器表现出了超越人类的性能。
所以,问题是我们是否能够找到某种机器生成内容的“特征”或“痕迹”。

检测生成的内容

  • 每一代生成式语言模型都会引发一系列检测器,用来检测此类内容——经典的“军备竞赛”情景
  • DetectGPT:一种用于检测生成内容的“白盒子”检测器,假设模型生成最可能的文本
  • 需要文本在模型下的对数似然值(例如,通过得分API获得)。它会扰动文本(使用例如T5),然后比较对数概率
  • 在有少量由合作方训练的模型的情况下有效;如果有大量没有得分API的“流氓”模型存在,则不现实

在检测机器生成内容的问题上,已经进行了多次尝试。事实上,商业工具如ZeroGPT和Originality.ai已经用于检测GPT生成的内容。但如何将检测推广到多个生成器家族呢?斯坦福的研究人员开发了一种技术,该技术基于这样一个假设:一个生成器(我们称之为G)生成的文本最可能符合G的模型。对生成文本的轻微扰动在G的模型下可能性较低,而对来自不同来源(例如人类)的文本的轻微扰动在G的模型下可能性较高或较低。因此,如果我们有一种方法来确定文本T在G的模型下的对数似然值(例如,通过调用G提供的得分API),我们就有了一个测试协议:给定一个文本T,将T的对数似然值与许多T的扰动的对数似然值进行比较。这种方法适用于所有大型模型提供者都负责并合作的世界。如果存在大量没有得分API的“流氓”模型,这种方法就会失效;而且它不具备对抗措施(例如,对手扰动生成的文本)的鲁棒性。

参考论文地址:https://proceedings.mlr.press/v202/mitchell23a/mitchell23a.pdf
DetectGPT: Zero-Shot Machine-Generated Text Detection using Probability Curvature
主要观点

  • 论文关注了大型语言模型(LLM)生成的文本在某些情境下(如学生作文和新闻报道)可能替代人工劳动的问题。
  • 指出人们在分类机器生成与人类编写的文本方面的表现仅略好于随机选择。
  • 因此,研究者开始考虑使用自动检测方法,这些方法可能识别出人们难以识别的信号。

实验与结果

  • 论文进行了一个实验,模拟了对已经被大量修订的模型样本的检测问题。
  • 结果显示,即使在模型样本中近四分之一的文本已被替换,DetectGPT仍然能保持超过0.8的检测AUROC(Area Under the Receiver Operating Characteristic Curve)。

在这里插入图片描述

结论

  • DetectGPT在所有修订级别上都表现出最强的检测性能。
  • 熵基线在这种设置下表现出令人惊讶的强大性能,甚至在高达24%的替换率下稍微提高了检测性能。

内容质量可以用来检测生成的内容吗?

  • 巴赫里(Bahri)等人在 2021 年的研究中搜索了包含5亿个页面的 CommonCrawl 语料库,使用了针对 GPT-2 进行微调的检测器来寻找生成的内容。
  • 发现这些检测器也适用于检测低质量页面。
  • 尚不清楚这些结果是否适用于更新的生成模型,如GPT-4或PaLM 2。如果适用,语言质量是否可以用作检测“流氓”生成模型的信号?

在一项 2021 年的研究中,Google 的研究人员研究了生成内容与低质量内容之间是否存在关联。他们训练了两个检测器,用于识别 GPT-2 生成的内容,并将这些检测器应用于 CommonCrawl 语料库中的一个包含5亿个网页的子集。他们的发现是,用于检测机器生成内容的这些检测器也能预测网页的质量,具体来说是文章的正确性和流畅度。然而,随着生成语言模型的不断发展,例如 GPT-4 或 PaLM 2,目前尚不清楚这些发现是否同样适用。如果适用,我们是否可以将语言质量作为一种预测特征,用来识别并标记由“流氓”模型生成的内容,尤其是那些我们无法深入了解其内部机制的模型。

论文地址:https://dl.acm.org/doi/pdf/10.1145/3437963.3441809
“Generative Models are Unsupervised Predictors of Page Quality: A Colossal-Scale Study”
主要观点

  • 论文提出,用于区分人类和机器生成文本的检测器可以有效地预测网页的语言质量,其性能超过了基线的监督式垃圾邮件分类器。
  • 通过对五亿个网页进行低语言质量检测,论文观察到了低质量内容的有趣的主题和时间模式。
  • 论文发现,许多低质量内容要么是(1)机器翻译的文本,(2)论文工厂,(3)搜索引擎优化尝试,或者(4)不适合工作场所(NSFW)的内容。

论文希望研究人员能从其大规模的网络分析中找到有用的信息,并希望他们能利用一个合理的语言质量分类器可以仅通过人类文本语料库来构建的见解。

直接答案会如何影响引荐流量?

  • 内容创作者或提供者通常将有价值的内容与盈利手段相结合,如广告、推广链接、产品推广、捐赠请求、免费模式、许可、忠诚度奖励等。

  • 许多免费网络内容的创作者依赖搜索引擎的引荐流量来支持他们的努力。

  • 悲观观点:直接答案减少了内容提供者的引荐流量,影响了他们的盈利能力。

  • 乐观观点:直接答案中的归因会导致更高质量的引荐,总体上更有价值。

  • 现实观点:预计会有各种多样的商业模式和收入来源。

许多内容创作者采用一种叫做“内容捆绑”的策略:他们通过提供对用户有用的内容来吸引用户访问他们的网站,同时也在此过程中为自己提供有益的内容,比如广告、产品推广、电子商务合作链接、募捐请求、免费与高级内容混合等多种方式。

正如前面提到的,如果搜索引擎直接回答更多问题,这将减少用户通过搜索引擎访问内容创作者网站的机会。如果被切断的流量主要是质量较低的,也就是不太可能对网站上的捆绑内容产生兴趣的用户,那问题就不太大。实际上,如果搜索引擎能够提供更相关的引荐,那么整体流量的价值可能会增加。

总的来说,我认为内容创作者将越来越多地依赖多种收入来源,而不仅仅是广告收入。关于这个主题的学术研究有限,我认为这是一个被忽视的机会,因为在这个领域有许多有趣的技术问题等待解决。

更好的支持决策过程

  • 更好地支持购买流程的示例:产品比较
  • 了解产品类别中的有趣特性
  • 为每个产品提取特性值
  • 对于给定的一对产品,对比最相关的特性

为了提升搜索引擎对用户和整个网络环境的价值,建议不仅仅关注解决单一问题,而应该全面考虑用户在寻找信息时的整个过程。以产品比较为例,用户通常会在多个方面对不同选项进行对比,这些选项可能是各种产品、服务,甚至是政治选项等。

为了更好地满足这一需求,开发了一个名为“STRUM”的原型系统。这个系统能自动找出某一产品类别中用户关心的各个方面,并从各种信息源中提取这些方面的具体信息。最终,系统会突出显示那些在两个不同选项之间有显著差异的方面,以帮助用户做出更加全面和明智的决策。

这只是一个例子,但它展示了如何可以通过深入地支持用户在一个可能会持续一段时间并最终可能导致实际交易的信息寻求过程中,来增加搜索引擎的价值。

总结

  1. 直接回答降低了信息检索的Delphic成本:通过使用生成模型和信息融合,系统能够更直接、更准确地回答用户的问题,从而降低了用户在寻找信息时的成本和复杂性。

  2. 回答定位和来源归因:系统不仅能生成答案,还能准确地指出答案来自哪里,这对于用户信任和验证信息非常重要。

  3. 系统将变得更加有状态:未来的信息检索系统将能记住用户的过去互动,并可能使用这些信息来提供更个性化的服务。

  4. 传统信息检索的重要性:尽管有了新的技术和方法,传统的信息检索技术(如索引和语义检索)仍然非常重要,并且在某些方面还有很多未解决的问题和新的研究机会。

首先,信息检索研究的很大一部分都集中在降低信息寻求过程的Delphic成本上。直接回答能降低Delphic成本,而生成模型极大地提高了我们提供直接回答的能力,因为它们使我们能够将来自多个源文档的信息融合成一个单一的答案。
其次,我们在回答定位和来源归因方面取得了很大进展,相应的基准测试也正在出现,以衡量这些方面的进展。第三,从问题回答系统的未来来看,这些系统将变得更加有状态。它们将支持多轮互动,支持您在长期的旅程中,并且能够与其他系统进行互动——无论是第一方还是第三方系统。
最后,也是最重要的一点,传统信息检索并没有死!生成系统将继续依赖外部存储,包括传统和神经检索系统。语义检索是一个充满活力的研究领域,有很多尚未解决的研究问题。许多传统的信息检索问题应该重新审视,特别是考虑到检索增强生成。例如,检索增强系统更多地从多样性的结果集中受益,而不仅仅是精度为1的结果。同样,段落提取现在用于提供最有用的提示,而不是让用户快速跳过不相关的结果。

  • 18
    点赞
  • 22
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
首先需要了解得物网站的数据结构和爬取方式,得物网站比较复杂,需要使用Selenium+BeautifulSoup进行爬取。 以下是一个简单的得物爬虫Python代码实现(注:仅供学习参考,请勿用于商业用途): ```python import time from selenium import webdriver from selenium.webdriver.chrome.options import Options from bs4 import BeautifulSoup options = Options() options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在报错的问题 options.add_argument('window-size=1920x3000') # 指定浏览器分辨率 options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面 options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度 options.add_argument('--headless') # 无界面 driver = webdriver.Chrome(options=options) url = 'https://www.dewu.com/' driver.get(url) # 等待页面加载完成 time.sleep(3) # 模拟鼠标点击,展开商品列表 driver.find_element_by_xpath('//div[text()="全部商品"]').click() # 等待页面加载完成 time.sleep(3) # 获取页面源代码 html = driver.page_source # 解析页面 soup = BeautifulSoup(html, 'html.parser') # 获取商品列表 items = soup.find_all('div', {'class': 'item-card'}) for item in items: # 获取商品标题 title = item.find('div', {'class': 'title'}).text.strip() # 获取商品价格 price = item.find('div', {'class': 'price'}).text.strip() # 获取商品链接 link = item.find('a', {'class': 'item-link'})['href'] print(title, price, link) # 关闭浏览器 driver.quit() ``` 这里的代码仅仅是一个简单的爬虫示例,如果想要更加深入地了解得物网站的数据结构和爬取方式,需要结合具体的需求进行更加详细的分析和实现。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Stack Stone

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值