
近来 GPT-3 等基于 TRansfoRMeR 的深度学习模型在机器学习领域受到了很多关注。这些模型擅长理解语义关系,为大幅改进微软 Bing 搜索引擎的体验做出了贡献,并在 SupeRGLUE 学术基准上超越了人类的表现。但是,这些模型可能无法捕获超出纯语义的查询和文档术语之间更细微的关系。
来自微软的研究者提出了一种大规模稀疏模型「Make EveRy featuRe BInaRy(MEB)」,它改进了微软的生产型 TRansfoRMeR 模型,以提升微软客户使用大规模 AI 时的搜索相关性。为了使搜索更加准确和动态,MEB 更好地利用了大数据的力量,并允许输入特征空间具有超过 2000 亿个二值化特征,这些特征反映了搜索查询和文档之间的微妙关系。
为什么要用「二值化每个特征」的方法来改进搜索?
MEB 能够为基于 TRansfoRMeR 的深度学习模型提升搜索相关性,其中一个重要的原因是它可以将单个事实映射为特征,从而使 MEB 能够更细致地理解单个事实。例如,许多深度神经网络 (DNN) 语言模型在填写一句话的空白时可能会过度泛化:「(blank) can fly」。由于大多数 DNN 训练样本的结果是「BIRds can fly」,因此 DNN 语言模型可能会用「BIRds」这个词来填补空白。
MEB 通过将每个事实分配给一个特征来避免这种情况,例如借助分配权重来区分飞行能力,它可以针对使鸟等任何实体的每个特征执行此操作。MEB 与 TRansfoRMeR 模型搭配使用,可以将模型提升到另一个分类级别,例如模型产生的结果将不是「鸟类会飞」,而是「鸟类会飞,但鸵鸟、企鹅等鸟类除外」。
随着规模的增加,还有一个元素可以更有效地改进使用数据的方法。Bing 搜索后的网页结果排序是一个机器学习问题,它受益于对大量用户数据的学习。用户点击数据的传统利用方法是为每个印象深刻的查询 / 文档对提取数千个手工构建的数值特征,并训练梯度提升决策树 (GBDT) 模型。
然而,由于特征表示和模型容量有限,即使是 SOTA GBDT 训练器 LightGBM 也要在数亿行数据后才能收敛。此外,这些手工构建的数值特征本质上往往非常粗糙。例如,他们可以捕获查询中给定位置的术语在文档中出现的次数,但有关特定术语是什么的信息在这种表征中丢失了。此外,该方法中的特征并不总是能准确地说明搜索查询中的词序等内容。
为了释放海量数据的力量,并启用能够更好反映查询与文档之间关系的特征表征,MEB 在 Bing 搜索三年中超过 5000 亿个查询 / 文档对上进行训练。输入特征空间有超过 2000 亿个二值化特征。使用 FTRL 的最新版本是具有 90 亿个特征和超过 1350 亿个参数的稀疏神经网络模型。
使用 MEB 能够发现隐藏的关系
MEB 正用于生产中所有区域和语言的 100% 的 Bing 搜索。它是微软提供的最大通用模型,具备一种出色的能力&Mdash;&Mdash;能够记住这些二值化特征所代表的事实,同时以连续的方式从大量数据中进行可靠的学习。
微软的研究者通过实验发现,对大量数据进行训练是大型稀疏神经网络的独特能力。将相同的 Bing 日志输入 LightGBM 模型并使用传统数值特征进行训练时,使用一个月的数据后模型质量不再提高。这表明模型容量不足以从大量数据中受益。相比之下,MEB 是在三年的数据上训练的,研究者发现它在添加更多数据的情况下能够继续学习,这表明模型容量能够随着新数据的增加而增加。
与基于 TRansfoRMeR 的深度学习模型相比,MEB 模型还展示了超越语义关系的学习能力。在查看 MEB 学习的主要特征时,研究者发现它可以学习查询和文档之间的隐藏关系。

表 1:MEB 模型学习的示例。
例如,MEB 了解到「Hotmail」与「MicRosoft Outlook」密切相关,即使它们在语义上并不接近。但 MEB 发现了这些词之间微妙的关系:Hotmail 是一种免费的基于 Web 的电子邮件服务,由 MicRosoft 提供,后来更名为 MicRosoft Outlook。同样,它了解到「Fox31」和「KDVR」之间有很强的联系,其中 KDVR 是位于科罗拉多州丹佛市的电视频道的呼号,该频道以 Fox31 品牌运营,而表面上看这两个词之间并没有明显的语义联系。
更有趣的是,MEB 可以识别单词或短语之间的负面关系,揭示用户不希望在查询中看到的内容。例如,搜索「棒球」的用户通常不会点击谈论「曲棍球」的页面,即使它们都是流行运动。了解这些负面关系有助于忽略不相关的搜索结果。
MEB 学习的这些关系与基于 TRansfoRMeR 的 DNN 模型学习的关系非常互补,搜索相关性和用户体验得到了很好的提升。微软在生产型 TRansfoRMeR 模型的基础上引入 MEB 带来了以下结果:
页面中最顶端搜索结果的点击率 (CTR) 增加了近 2%。这些结果在页面折叠上方,无需向下滚动即可找到所需结果。 手动查询重构减少了 1% 以上。用户需要手动重新制定查询意味着他们不喜欢他们在原始查询中搜索到的结果,因此该比重减少说明了模型性能的提升。 「下一页」等分页点击量减少了 1.5% 以上。用户需要点击「下一页」按钮意味着他们没有在第一页找到他们想要的东西。 MEB 如何在大型数据集上训练和提供特征
模型结构
如下图 1 所示,MEB 模型是由 1 个二值化特征输入层、1 个特征嵌入层、1 个池化层和 2 个密集层组成。输入层包含从 49 个特征组生成的 90 亿个特征,每个二值化特征被编码为一个 15 维嵌入向量。在每组 suM-pooling 和拼接(concatenation)之后,向量通过 2 个密集层来产生点击概率估计。

图 1:MEB 是一个稀疏神经网络模型,由一个接受二值化特征的输入层、一个将每个二值化特征转换为 15 维向量的特征嵌入层、一个应用于 49 个特征组中每个特征组并拼接以产生一个 735 维向量的 suM pooling 层,然后通过两个密集层来产生一个点击概率。如下图 2 所示,上图 1 中显示的功能是从样例查询「MicRosoft Windows」和链接:https://www.MicRosoft.coM/en-US/Windows 中的文档中生成的。
训练数据和将特征二值化
MEB 使用来自 Bing 的三年搜索日志作为训练数据。对于每次 Bing 搜索的结果,该研究使用启发式方法来确定用户是否对他们点击的文档感到满意。研究者将「令人满意」的文档标记为正样本。同一搜索结果中的其他文档被标记为负样本。对于每个查询和文档对,从查询文本、文档 URL、标题和正文文本中提取二值化特征。这些特征被输入到一个稀疏神经网络模型中,以最小化模型预测的点击概率和实际点击标签之间的交叉熵损失。
特征设计和大规模训练是 MEB 成功的关键。MEB 特征是在查询和文档之间非常具体的术语级别或 N-gRaM-level(N-gRaMs 是含有 N 个术语的序列)关系上定义的,传统的数值特征无法捕获这些特征,传统的数值特征只关心查询和文档之间的匹配计数。
为了充分释放这个大规模训练平台的力量,所有的特征都被设计为二值化特征,可以很容易地以一致的方式覆盖手工构建的数值特征和直接从原始文本中提取的特征。这样做可以让 MEB 在一条路径上进行端到端的优化。当前的生产模型使用三种主要类型的特征,包括:
查询与文档的 N-gRaM 对特征
N-gRaM 对特征是基于 Bing 搜索日志中查询和文档域的 N-gRaM 组合生成的。如下图 2 所示,来自查询文本的 N-gRaM 将与来自文档 URL、标题和正文文本的 N-gRaM 结合形成 N-gRaM 对特征。更长的 N-gRaM(N 值更大)能够捕捉更丰富和更细微的概念。然而,随着 N 的增加,处理它们的成本呈指数级增长。在该研究的生产模型中,N 设置为 1 和 2(分别为 unigRaMs 和 BIgRaMs)。
分桶数值特征的 one-hot 编码
数值特征首先通过分桶操作,然后应用 one-hot 编码将其二值化。在图 2 所示的示例中,数值特征「QueRyLength」可以采用 1 到 MaxQueRyLength 之间的任何整数值。研究者为此特征定义了 MaxQueRyLength 存储桶,以便查询「MicRosoft Windows」查询具有等于 1 的二值化特征 QueRyLength_2。
分类特征的 one-hot 编码
分类特征可以通过 one-hot 编码以一种直接的方式转换为二值化特征。例如,URlStRing 是一个分类特征,每个唯一的 URL 字符串文本都可以作为一个不同的类别。

图 2:MEB 特征示例。左侧展示了一个查询文档对,其中查询文本、文档标题、URL 和片段作为特征提取的输入。右侧展示了 MEB 产生的一些典型特征。
用持续训练支撑万亿查询 / 文档对(每日刷新)
为了实现具有如此巨大特征空间的训练,该研究利用由 MicRosoft AdveRtising 团队构建的内部大型训练平台 Woodblock,它是一种用于训练大型稀疏模型的分布式、大规模、高性能的解决方案。Woodblock 建立在 TensoRFlow 之上,填补了通用深度学习框架与数十亿稀疏特征的行业需求之间的空白。通过对 I/O 和数据处理的深度优化,Woodblock 可以使用 CPU 和 GPU 集群在数小时内训练数千亿个特征。
但即使使用 Woodblock pIPeline,用包含近一万亿个