Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

用AI大模型「改造」QQ浏览器搜索,腾讯独家揭秘

1:引言

自从搜索引擎问世以来,信息检索算法历经多次技术更迭,其演进的历程可大致归纳为四个技术代际:1.0 文本索引 ->2.0 超链分析 ->3.0 机器学习 ->4.0 深度学习

2022 年底,ChatGPT 成为全球技术焦点,其具备的多轮对话、推理和对长文本的理解能力,解决了以往搜索引擎所无法有效解决的难题。

然而,由于 GPT 目前还面临着许多挑战,例如大模型幻觉问题、高额的千次搜索成本、变现模式的颠覆以及法律的强监管等问题,各搜索引擎暂时都没有实现用 GPT 替换现有引擎。即使是 NewBing 也只是将传统的搜索引擎结果作为 ChatGPT 的输入来增强效果。因此,搜索引擎是否会进入 5.0 GPT 技术代际,仍在探索中。

腾讯 QQ 浏览器作为一款国民级智能工具,用户通过搜索进行信息查询是其中一个重要的使用场景。本文主要探讨 QQ 浏览器・搜索在 4.0 时代 - 即深度学习模型方面的各种实践,以及在 5.0 时代 - 即生成式超大模型方向的尝试。

在这两个技术代际过程中,预训练语言模型是核心技术基座,模型性能的好坏通常由模型结构、样本数据、输入表示信息、模型规模和算力等因素共同决定,如图 1 所示。

图片                                    图 1

2:搜索匹配四大难题
语义匹配、内容命中、需求切换、多需求 PK

搜索引擎是一种智能化的信息检索工具,能够从互联网上的海量信息中为用户提供精准的搜索结果。在实际应用中,搜索引擎需要解决的关键问题是如何让用户快速、准确地找到所需内容。虽然通过字面匹配可以获得最相关的文档,但在大多数情况下,这种匹配方式会面临多种挑战,例如:

  1. Query 和 Doc 非直接命中,而是语义满足的,需要通过语义建模才能挖掘出最匹配的 Doc,如图 2。
  2. Query 和 Doc 的标题命中不好,但是和 Doc 的内容文本命中较好,需要对 Doc 的内容域进行建模,如图 3。
  3. 对于相同的搜索请求,用户会随着时间的变化产生不同的结果页需求,需要对需求切换进行建模,如图 4。
  4. 同一个搜索 Query 下,相同匹配的结果在满足用户需求上存在差异,需要对多需求 PK 进行建模,如图 5图片                               图2(左)和图3(右)图片                               图 4(左)和图5(右)
3:技术框架

如图 6 所示,QQ 浏览器整个搜索系统采用分层治理,返回结果条数呈现金字塔型,自下而上分别是:

  • 数据层:主要是抓取存储解析各种数据内容。
  • 召回层:从千亿级 Doc 中召回和 Query 相关的百万级目标,然后通过粗排模型进行进一步筛选获取十万级。
  • 精排层:在粗排召回的基础上引入更多的精细特征,引入更复杂的模型计算获得和 Query 最相关的百级 Doc,大量的深度语义模型都分布在这一层。
  • 混排层:主要是用于普通结果和卡片类结果进行插入混排。

为了解决搜索引擎面临的诸多挑战,在整个系统的多个模块中引入了深度语义匹配模型,典型的有:

  1. 精排层相关性模型,除去传统的字面匹配特征之外,重要特征是深度语义匹配。
  2. 精排层时效性模型,除去时间因子,爆发系数特征之外,重要的特征是深度语义。
  3. 深度点击模型,除了有点率,点击率,跳过率,时长之外,重要的特征也是深度语义。
  4. TOPK 模型,除相关性,时效性,质量,热度特征之外,也有内容深度语义匹配特征。

图片                                  图 6

4:训练 pipeline

如图 7 所示,QQ 浏览器・搜索构建了从预训练 ->post 预训练 -> 第一轮 finetune-> 第二轮 finetune 的 pipeline。

图片                                    图 7

A:预训练

采用百科,新闻,H5 等 1000 亿级别数据进行无监督预训练。预训练任务采用 Mask LM,将字级别 mask 升级为 Phrase + 词级别和实体级别 mask,同时以一定概率替换为同义或者近义词,增大模型区分的难度。Nsp 任务的前后句正负样本通常都来自于同一篇主题,进一步增大模型区分的难度。在位置编码中将绝对位置编码换成相对位置编码,让每个 term 更关注自身附近 term 的 attention。两阶段式训练任务,第一阶段以 max_seq_len=128 配置,第二阶段以一阶段产出模型热启动,之后以 max_seq_len=512 的配置完成第二阶段的预训练,达到训练加速。

B:post 预训练

采用搜索 100 亿级别的点展数据再做一次 post 预训练,让模型的效果更适应搜索场景。

C:第一轮 fine-tuning

同样还是采用 100 亿级别的点展数据,将 Q - 有点和 Q - 无点构造成 pairwise 对输入训练模型,采用有监督的方式对模型进行微调训练。由于搜索获取点展数据的成本相对较低,因此可以获得大量级的样本对模型进行 fine-tune 训练。

D:第二轮 fine-tuning

在人工标注的精标样本下,加上 meta-search 样本进行第二轮有监督微调,进一步提升模型精度。

同时为了让模型能同时学习好语义,文本匹配的能力,在第二轮 fine-tuning 过程中,同时加入了相关性匹配,词权分档进行多任务学习,如图 8 所示。训练的 loss 为相关性的 HingeLoss + 词权 Cross-Entropy Loss,其中 HingeLoss = max (0,-[y_i-y_j] + margin),Cross = -(ylog (p) + (1-y) log (1-p)),通过 2 个任务进行协同训练,防止模型过度偏向语义匹配而丢失文本匹配的能力。

图片                                     图 8

5:模型结构

BERT 模型采用全连接层,由于每层都涉及到全交互,因此效果较好。然而,在实际应用中,搜索引擎对在线应用有严格的响应时间要求,通常都在几十毫秒级别。QQ 浏览器・搜索采用 12 层在线推理模型,全交互结构无法满足响应时间要求,因此对该模型进行了升级,采用了如图 9 所示的模型结构。

  • 输入层:输入信息的来源,包括 Query、Title、Content(图文核心句,视频为 ASR+OCR)、ClickQuery、Anchor、Meta、标签域等。
  • 表示层:各个 filed 通过共享参数的方式学习各自的语义信息,模型结构深度 L=7,宽度 H=768,头数 = 12。
  • 匹配层:采用 SE-GATING 注意力机制动态分配 Doc 的各个域的匹配权重(可理解为 Attention 机制,是通过 SE-NET 网络实现),模型结构为全连接,深度 L=2。
  • 交互层:在考虑性能的前提下,进行更深层次的交互学习,模型结构深度 L=3,宽度 H=768,头数 = 12。

图片                                   图 9

6:多域动态匹配

搜索召回的 Doclists 中,有的 title 命中较好,有的 cont 命中较好,也有一些需要 title+cont 共同命中才能得到较好的结果。为了召回相关性较好的 Doc,通常需要叠加不同的匹配域,但不同的域在不同匹配时权重不同。当召回的 Doclists 中存在 title、cont、anchor、click 等不同域的命中时,如何分配各域之间的动态权重是搜索模型需要解决的一个典型难题。

如图 10 所示,标准的 transformer 将 query、title、cont 等域拼接后输入模型,然后整体进行全域交互计算,但不同的 Query 和 Doc 在命中域的权重分配不是固定不变的,而是一个动态分配的过程。

QQ 浏览器・搜索采用了如图 11 所示的结构,采用多塔交互,将 query 分别与 title、cont、anchor 等各自进行交互,而 title 和 cont 之间不进行 attention。这种结构借鉴了 CV 中的 SE-NET 注意力机制,在经过这个操作后得到每个域的 Channel,然后再进行 Query 和域的注意力计算,这样模型可以获得一个更宏大的视野,比如整个域不相关时,那这个域就直接不起作用,起到门控的功能,对比直接将 Doc 中不同域的 Term 全部输入模型的方式,虽然 Transformer 能够学习到 Term 间的注意力,但是不相关的 Field 中的 Term 还是或多或少影响得分,通过这个结构过滤不相关域的噪音,从而能够将不同匹配程度的域计算不同的权重。与标准结构相比,多域动态权重结构能带来相关性正逆序率 8% 的提升。

图片                                 图 10        

图片                                  图 11

7:模型簇 & 自训练

在预训练 -》finetune-》蒸馏范式下,teacher 模型的效果决定了蒸馏后的 student 模型的天花板。得益于 teacher 模型在海量参数下强大的语义捕捉能力,特别是对于长尾语义匹配的解决效果非常好,因此在检索匹配方向对于 teacher 模型的效果提升是首要的工作。

但是,随着多轮迭代之后单个 teacher 效果达到瓶颈,基于 transformer 结构,若想继续提升效果,需要扩大模型层数或者标注大量样本。然而,当 teacher 达到 48 层之后继续扩层会带来成本指数级增加,同时人工标注大量样本同样也意味着成本的大幅度增加。

为解决扩层带来的成本问题,QQ 浏览器・搜索采用模型簇的方式提升模型效果,如图 12 所示。采用不同的样本数据(如点展数据、人工标注数据、metasearch 数据),并采用不同的模型结构(如标准 BERT、QQ 浏览器・搜索预训练大模型、深度点击模型等)训练多个 48 层模型。

然后,将这些模型作为离线 XGB 模型的重要特征,在人工标注的百万级相关性样本下融合其他人工匹配等特征训练决策树模型。由于此模型引入了大量的效果较好的大模型做特征,因此对 Query-DOC 的相关性匹配打分效果较好,并且由于是离线部署因此没有响应速度的制约。

通过 XGB 模型对未标注的亿级 Query-DOC 进行打分预测,和人工标注样本相比,这种标签数据精度略低,但也能接近人工标注精度的 90+%。这种标签我们称之为伪标签,虽然伪标签的样本精度无法和人工标注相比,但是由于成本非常低,可以轻易获得亿级量级,通过量变产生质变带来搜索效果提升。

图片                                    图 12

在获得亿级伪标签样本之后,基于预训练模型,进一步 finetune 出一个 48 层的大模型作为 teacher,从而解决了标注样本成本高的难题。然后,在百万级的人工标注样本上蒸馏得到一个效果较好的 student。通过模型簇和伪标签样本进行自训练,未增加成本的情况下,最终实现了大幅度提升 teacher 和 student 模型的效果。

8:助教网络
在教授和本科生之间添加一位博士

搜索排序模型面临的挑战是模型效果和响应速度以及部署成本之间的矛盾。模型参数越大,效果越好,但响应时间会增加,同时成本会指数级增加。

为了满足亿级用户的海量搜索请求,工业界搜索引擎往往采用蒸馏技术来减小模型参数,并最大限度保留效果。

为了进一步提升蒸馏的 student 模型效果,最直接的手段是提升 teacher 模型的效果。但是,teacher 模型层数增加带来效果提升的同时,不代表 student 模型也会同步提升。大量的实验发现,teacher 模型参数扩大之后,在特定的任务下效果提升。然而,由于 student 和 teacher 两者之间的模型参数差异过大,学习能力相差过大,导致 student 并没有学会 teacher 新学习到的能力。因此,如何减少 student 和 teacher 之间的蒸馏损失,也是近年来工业界一直在研究的重要方向。

QQ 浏览器・搜索通过引入助教网络来解决这个问题。助教网络由多个模型组成,它们之间的关系如图 13 所示。具体而言,使用 48 层模型先蒸馏 24 层中间层模型,然后再用 24 层中间模型蒸馏 12 层 student 模型。这个 24 层模型就是助教网络。

这个过程类似于教授直接教本科生的情况,由于两者的知识储备差距较大,导致学生往往很难完全吸收教授想要传授的知识。而通过在中间增加博士节点,让教授先教会博士,再由博士去教学本科生,由于博士在知识接收能力上强于本科生,因此能较好的学会教授已经掌握的知识。同时,博士和本科生在学习能力上相差相对较小,能较好地将知识进行传递。

为进一步提升效果,助教模型往往不止一个,比如 48 层 teacher-> 助教 1-> 助教 2->……->student,通过多步蒸馏的方式,避免由于 teacher 和 student 模型在参数,layer 上的差异过大导致的蒸馏损失。

在搜索模型中,通过引入单个助教模型和传统的蒸馏相比,student 效果相对提升 5%。

图片                                    图 13

9:MatchMatrix 矩阵

自从 BERT 发布以来,搜索引擎的演进范式已经从重点关注人工特征转向了预训练 ->finetune->distillation 模式。随着深度语义特征在最终模型中的权重越来越大,这种大力出奇迹的方法在带来效果提升的同时,也会削弱字面匹配特征的作用。这导致了一些 CASE(语义飘移)的出现如图 14 所示,相关的结果排序较低,这些本应该可以通过原始字面匹配解决的 CASE 却出现了逆序的情况。

为了解决这个问题,行业采用了两种建模方法:

  • Semantic matching:建立单词、短语和句子之间的相似关系,例如 “出租车” 与 “的士”,着重解决句子级别的语义匹配。
  • Relevance matching:建立精确匹配关系,例如关键词命中、大片段命中以及紧密片断是否被拆散命中,着重解决 phrase 级别的精确匹配。

这种分类建模需要进行大量的人工匹配特征设计,并需要进行大量的人工调参,以及对两类特征的 balance 进行验证,这个过程的成本相对较高。

图片                                   图 14(左)和图 15(右)

QQ 浏览器・搜索系统采用了对深度语义模型进行升级改造的方法,如图 16 所示。

其中 BERT 模型的 CLS 向量用于捕捉更高级别的信息,如句子级相似度等。在输出 CLS 向量的基础上,构造 match matrix 矩阵,该矩阵通过将 Query 输出的 token 向量和 Doc 输出的 token 向量组合而成。

该矩阵利用了多层显式匹配,并使用了 CNN 和 Pooling 层来提取 match matrix 矩阵,提取 Q 中每个 TERM 在 Doc 中的命中信息。在构建匹配矩阵的过程中,充分利用不同 term 在 Q 中的词权重,以便为每个 term 构建独特的匹配权重。最后将匹配矩阵和 BERT 输出的 CLS 向量通过 Aggregator 进行合并,以获得深度语义模型隐式匹配打分和显式匹配特征的融合结果。通过将字面匹配特征显式地传递给深度语义模型,可以有效地纠正语义飘移。

图片                                        图 16

如图 15,17 所示,通过构造多层匹配矩阵,采用卷积核进行信息抽取,并采用最大池化将 QxTxK 转换为 QxK,然后再应用 term weighted 将多种匹配信息融合成向量。这种方法能够自动识别许多文本匹配的特征,例如连续命中、Bigram 逆序、散乱命中等如图 18 所示,不再需要大量的人工规则去设计这些特征。

图片                                 图 17(左)和图 18(右)

10:生成式大模型应用

ChatGPT 发布之后,各大互联网公司纷纷开始布局生成式大模型,作为其最匹配的应用场景之一,搜索引擎也受到了广泛关注,各大引擎都在积极尝试如何将自研的生成式大模型应用到搜索引擎系统之中。

  • 样本生成

如图 19 所示,搜索的匹配模型采用的是 BERT 模型下典型的预训练 ->post 预训练 -> 蒸馏的范式,而在蒸馏的过程中,往往需要人工标注千万级样本,成本高且耗时长。

而通过生成式模型可以快速的标注大量的自动化样本。标注的方法分为判别式,既输入 QT 问生成式模型结论,如 “都安气车到班领气车” 和 “都安汽车到班领汽车” 哪个是正确写法;也有通过生成式大模型生成样本如 “query = 北京” 可以扩充哪些需求词。通过生成式大模型低成本快速获得亿级别样本,大幅度提升了蒸馏模型的效果。

图片                                    图 19

  • 离线生成式应用

生成式大模型拥有强大的语言理解能力,如何将这种能力转化为搜索排序模型的效果是非常重要的研究。

如图 20 所示,在现有的匹配模型输入域上,通过生成式大模型进行域提取升级如 Doc 的核心句提取,以及对缺失后验数据的 Doc 补充 Click-Query,同时也通过使用生成式大模型对原始标题进行标准化改写的方式扩充新的标题域,多种方式对输入信息域优化,提升输入域的质量进而提升模型效果。

图片                                    图 20

  • 涌现能力蒸馏

生成式大模型在参数量和样本量扩大之后,涌现了一些惊人的模型能力。如何将这种大模型的能力迁移到现有的搜索排序模型中?

搜索采用集成蒸馏的思想如图 21 所示,根据不同的数据集,不同的模型 BASE 训练多个 teacher,然后通过将多个 teacher 共同蒸馏 student 的方式,提升 student 模型的效果。由于生成式大模型和原有的 teacher 在参数量级和输入文本长度上都获得了一个极大的提高,因此能够带来蒸馏的 student 效果大幅度提升。

图片                                       图 21

  • 端到端生成

生成式大模型拥有巨大的参数量级进而导致较慢的推理速度,而搜索引擎往往需要在毫秒级时间内向用户返回搜索结果,因此如何将生成式大模型引入搜索引擎的在线检索系统是个难题,但是由于生成式大模型有惊人的效果,因此端到端的模型替换原有的系统将是一个趋势。

如图 22 所示,在纠错端到端方向,通过在生成式大模型 BASE 模型之上,通过人工标注数据做为样本集,采用 SFT 对模型进行微调产出微调之后的生成式大模型。然而此时的模型往往还有效果不佳,幻觉等方面的问题,因此通过挂载搜索结果,知识图谱库等方式对模型进行搜索增强,产出搜索增强之后的生成式大模型。

图片                                   图 22

11:评估效果

在搜索系统中,评估模型效果好坏的一个重要指标是 Query-Doc 的相关性正逆序比。计算方法是根据排出的结果进行从前到后两两组对,如果排在前面的结果比排在后面的结果更相关则是一个正序对,反之则为逆序对。正序对 / 逆序对为正逆序比,值越大越好。如图 23 所示,在 TOP350 条结果采样正逆序比从基线 2.5 优化提升到 4.0。

图片                                   图 23

当前,搜索系统正处于 4.0 深度学习阶段向 5.0 生成式大模型阶段的过渡,整个系统将在生成式模式下进行重塑,随着模型的参数越来大,未来的搜索效果将能获得进一步的大幅度提升,最终将会让智能化搜索成为可能。

作者团队介绍:QQ 浏览器搜索应用部搜索排序中心,承接用户天级几亿次搜索需求,负责搜索系统的排序优化工作,在千亿索引的基础之上,采用千亿级参数大模型为基座,叠加预训练,大数据挖掘,深度语义建模,智能摘要抽取,自动化热点发现,超大规模并行计算等技术,实现极致的用户需求满足。
工程QQ浏览器
相关数据
深度学习技术

深度学习(deep learning)是机器学习的分支,是一种试图使用包含复杂结构或由多重非线性变换构成的多个处理层对数据进行高层抽象的算法。 深度学习是机器学习中一种基于对数据进行表征学习的算法,至今已有数种深度学习框架,如卷积神经网络和深度置信网络和递归神经网络等已被应用在计算机视觉、语音识别、自然语言处理、音频识别与生物信息学等领域并获取了极好的效果。

信息检索技术

信息检索(IR)是基于用于查询检索信息的任务。流行的信息检索模型包括布尔模型、向量空间模型、概率模型和语言模型。信息检索最典型和最常见的应用是搜索引擎。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

注意力机制技术

我们可以粗略地把神经注意机制类比成一个可以专注于输入内容的某一子集(或特征)的神经网络. 注意力机制最早是由 DeepMind 为图像分类提出的,这让「神经网络在执行预测任务时可以更多关注输入中的相关部分,更少关注不相关的部分」。当解码器生成一个用于构成目标句子的词时,源句子中仅有少部分是相关的;因此,可以应用一个基于内容的注意力机制来根据源句子动态地生成一个(加权的)语境向量(context vector), 然后网络会根据这个语境向量而不是某个固定长度的向量来预测词。

知识图谱技术

知识图谱本质上是语义网络,是一种基于图的数据结构,由节点(Point)和边(Edge)组成。在知识图谱里,每个节点表示现实世界中存在的“实体”,每条边为实体与实体之间的“关系”。知识图谱是关系的最有效的表示方式。通俗地讲,知识图谱就是把所有不同种类的信息(Heterogeneous Information)连接在一起而得到的一个关系网络。知识图谱提供了从“关系”的角度去分析问题的能力。 知识图谱这个概念最早由Google提出,主要是用来优化现有的搜索引擎。不同于基于关键词搜索的传统搜索引擎,知识图谱可用来更好地查询复杂的关联信息,从语义层面理解用户意图,改进搜索质量。比如在Google的搜索框里输入Bill Gates的时候,搜索结果页面的右侧还会出现Bill Gates相关的信息比如出生年月,家庭情况等等。

最大池化技术

最大池化(max-pooling)即取局部接受域中值最大的点。

数据挖掘技术

数据挖掘(英语:data mining)是一个跨学科的计算机科学分支 它是用人工智能、机器学习、统计学和数据库的交叉方法在相對較大型的数据集中发现模式的计算过程。 数据挖掘过程的总体目标是从一个数据集中提取信息,并将其转换成可理解的结构,以进一步使用。

噪音技术

噪音是一个随机误差或观测变量的方差。在拟合数据的过程中,我们常见的公式$y=f(x)+\epsilon$中$\epsilon$即为噪音。 数据通常包含噪音,错误,例外或不确定性,或者不完整。 错误和噪音可能会混淆数据挖掘过程,从而导致错误模式的衍生。去除噪音是数据挖掘(data mining)或知识发现(Knowledge Discovery in Database,KDD)的一个重要步骤。

查询技术

一般来说,查询是询问的一种形式。它在不同的学科里涵义有所不同。在信息检索领域,查询指的是数据库和信息系统对信息检索的精确要求

多任务学习技术

信息抽取技术

信息/数据抽取是指从非结构化或半结构化文档中提取结构化信息的技术。信息抽取有两部分:命名实体识别(目标是识别和分类真实世界里的知名实体)和关系提取(目标是提取实体之间的语义关系)。概率模型/分类器可以帮助实现这些任务。

语言模型技术

语言模型经常使用在许多自然语言处理方面的应用,如语音识别,机器翻译,词性标注,句法分析和资讯检索。由于字词与句子都是任意组合的长度,因此在训练过的语言模型中会出现未曾出现的字串(资料稀疏的问题),也使得在语料库中估算字串的机率变得很困难,这也是要使用近似的平滑n元语法(N-gram)模型之原因。

腾讯机构

腾讯,1998年11月诞生于中国深圳,是一家以互联网为基础的科技与文化公司。我们的使命是“通过互联网服务提升人类生活品质”。腾讯秉承着 “一切以用户价值为依归”的经营理念,为亿万网民提供优质的互联网综合服务。 腾讯的战略目标是“连接一切”,我们长期致力于社交平台与数字内容两大核心业务:一方面通过微信与QQ等社交平台,实现人与人、服务及设备的智慧连接;另一方面为数以亿计的用户提供优质的新闻、视频、游戏、音乐、文学、动漫、影业等数字内容产品及相关服务。我们还积极推动金融科技的发展,通过普及移动支付等技术能力,为智慧交通、智慧零售、智慧城市等领域提供有力支持。

http://www.tencent.com/
相关技术
样本通机构

品冠天成是一支以「Mobile First」理念驱动的团队,致力于为企业,尤其是传统企业,打造移动互联网产品解决方案。 公司核心团队来自移动互联网、工业媒体、数据挖掘等多个专业领域,符合的行业背景和跨界的知识结构形成了品冠天成的独特优势。目前客户包含西门子、ABB、施耐德、三菱、东芝等多家全球 500 强企业。

http://www.yangbentong.com/
暂无评论
暂无评论~