Skip to content

搞英语 → 看世界

翻译英文优质信息和名人推特

Menu
  • 首页
  • 作者列表
  • 独立博客
  • 专业媒体
  • 名人推特
  • 邮件列表
  • 关于本站
Menu

Grab如何构建AI基础模型以更好地了解客户

Posted on 2025-11-18

使用 Seer 代码审查减少生产中断(赞助内容)

Sentry 的 AI 代码审查利用 Sentry 的深度上下文,在发布代码之前捕获你真正关心的错误——而不会产生任何干扰。

上个月,它捕获了超过 3 万个可能影响用户的漏洞,节省了开发人员的时间并减少了回滚次数。此外,它的速度提高了 50% ,并提供代理提示,帮助您快速修复问题。

Sentry 将上下文信息融入到每一次审核中,让您更有信心地进行产品发布。

体验人工智能代码审查


免责声明:本文内容均来自Grab工程团队在线分享的信息。所有技术细节的版权均归Grab工程团队所有。原文链接和参考文献列于文末。我们已尽力分析这些信息并提供我们的观点。如果您发现任何不准确或遗漏之处,请留言,我们将尽力修正。

Grab运营着东南亚最复杂、数据最丰富的平台之一。多年来,其业务范围已远远超出网约车领域,拓展至食品配送、杂货、出行和金融服务等多个垂直领域。这种扩张产生了海量的用户互动数据,反映了数百万用户每天如何使用该平台。

直到最近,用户体验个性化还严重依赖于人工设计的功能。团队会针对特定产品和服务构建诸如订单频率、乘车记录或消费模式等功能。这些功能往往各自独立,难以维护,且扩展成本高昂。更重要的是,它们无法很好地捕捉用户行为随时间变化的特性。

为了克服这些局限性,Grab 工程团队采用了一种基础模型方法。这种方法不依赖于特定任务的特征,而是直接从两个核心数据源学习:表格数据(例如用户个人资料和交易记录)和序列数据(例如点击流交互)。通过直接从这些信号中学习模式,该模型为用户、商家和司机生成共享的嵌入向量。这些嵌入向量提供了一个统一的、通用的视角,帮助我们理解用户如何使用该应用程序。

这一转变使 Grab 能够摆脱碎片化的个性化流程,转向一个统一的系统,该系统为包括推荐、欺诈检测、客户流失预测和广告优化在内的多个下游应用提供支持。在本文中,我们将探讨 Grab 如何构建这一基础模型以及它所面临的挑战。

数据基础

Grab 基础模式的核心在于其能够处理各种各样的数据。

与专注于单一用例的平台不同,Grab 运营着一款超级应用,它整合了外卖、出行、快递和金融产品。每项服务都会产生不同类型的用户活动信号。为了构建一个单一、可靠的基础模型,Grab 工程团队必须找到一种方法,以结构化的方式整合所有这些信息。

用于训练模型的数据分为两大类。

第一种是表格数据,它记录了用户的长期个人资料和习惯。这包括人口统计属性、已保存的地址、消费趋势以及其他行为统计数据,例如用户每月订餐或乘车的频率。这些属性往往随时间保持稳定,使模型能够了解用户的整体身份和偏好。

第二种是时间序列点击流数据,它捕捉用户在应用上的短期实时行为。这记录了用户在一次会话中执行的操作序列(包括浏览、点击、搜索以及最终购买的内容)。它还包含时间信息,例如用户在完成操作前犹豫的时间,这可以反映他们的决策程度或兴趣。这类数据能够动态且实时地展现用户在任何特定时刻的意图。

为了使机器学习模型能够使用这些信息,Grab 将数据分组为多种模态,每种模态都有其自身的特征:

  • 文本:搜索查询、商家名称和用户生成的评论包含有关意图和偏好的丰富信号。

  • 数值:诸如配送价格、乘车费用、行驶距离和等待时间等数字有助于量化行为和背景。

  • 类别 ID:用户 ID、商家 ID 和司机 ID 等唯一标识符允许系统将各个实体与其历史记录和属性关联起来。

  • 位置:地理坐标和地理哈希值代表具有现实世界意义的地点。例如,特定的地理哈希值可能对应于购物中心、繁忙的交通枢纽或居民区。

这种多样性使得Grab的数据生态系统与那些只有单一主要数据源的平台(例如视频或文本帖子)截然不同。Grab用户可能会先预订一辆车去商场,然后搜索日本料理,浏览几家餐厅,最后下单。这些操作都涉及文本、位置、ID和数值等多种信息的组合。

挑战不仅在于如何处理这些不同的数据格式,还在于如何在合并它们时保持其结构和关系。例如,下车地点不仅仅是一个坐标,它通常是一个信号,会影响用户接下来的操作。通过有效地整合这些异构数据类型,基础模型可以更深入地理解上下文、意图和行为。

模型设计中的关键挑战

为像 Grab 这样的超级应用构建基础模型面临着一系列独特的技术挑战。

Grab 工程团队确定了影响系统设计的四大挑战。

结合表格数据和时间序列数据进行学习

第一个挑战是表格数据和时间序列数据的表现方式截然不同。

表格数据,例如用户个人资料属性或汇总消费记录,并不依赖于任何特定顺序。“年龄”​​出现在“平均消费”之前还是之后,对其含义没有任何影响。

另一方面,时间序列数据完全依赖于顺序。点击、搜索和交易的顺序反映了用户实时尝试执行的操作。

传统模型难以整合这两种类型的数据,因为它们要么以相同的方式处理它们,要么将它们分开处理,从而丢失了重要的上下文信息。Grab 需要一种能够原生处理这两种数据形式并利用它们各自独特特性的模型,而不是强迫其中一种数据表现得像另一种。

处理多种模态

第二个挑战是模式的多样性。

文本、数字、ID 和位置信息各自承载着不同类型的信息,需要专门的处理方式。文本可能需要语言模型,数值数据可能需要规范化,而位置数据则需要地理空间理解。

简单地将所有这些数据视为同一种输入会模糊它们的含义。模型需要使用适合每种模态的技术进行处理,同时还要将它们组合成一个统一的表示形式,供下游应用程序使用。

跨多个任务进行概括

大多数机器学习模型一次只能用于一个目的,例如推荐电影或对广告进行排名。

Grab的基础模型必须同时支持多种不同的应用场景,从广告定向和美食推荐到欺诈检测和用户流失预测。如果模型训练时过于局限于某一特定领域,其嵌入向量就会偏向于该应用场景,从而降低其在其他领域的实用性。

换句话说,该架构需要学习可以有效迁移到许多不同任务中的通用模式。

扩展到大型词汇表

最后一个主要挑战是规模。

Grab平台涉及数亿独立用户、商家和司机。每个实体都有一个需要在模型中表示的ID。如果采用直接基于所有这些ID进行预测或分类的简单方法,则需要一个包含数十亿个参数的输出层,这将导致模型训练速度慢且成本高昂。

该设计必须找到一种方法,能够在如此大规模的规模下高效运行,同时又不牺牲精度或灵活性。

架构概述 – Transformer 主干网

为了将如此多种类的数据整合到一个模型中并使其发挥作用,Grab 工程团队在 Transformer 架构之上构建了其基础模型。

Transformer 已成为现代机器学习中的标准构建模块,因为它们能够处理数据序列并学习词元之间的复杂关系。但对于 Grab 而言,挑战却很独特:该模型必须同时学习表格数据和时间序列数据,而这两种数据的行为方式截然不同。

关键创新在于数据在进入转换器之前如何进行标记化和表示。

代币化策略

Grab 不会直接将原始表格或序列输入模型,而是将每条信息转换为键值对标记。以下是它处理表格数据和时间序列数据的方式:

  • 对于表格数据,键是列名(例如 online_hours),值是用户的属性(例如 4)。

  • 对于时间序列数据,键是事件类型(例如,view_merchant),值是所涉及的实体(例如,merchant_id_114)。

这种方法为模型提供了一种统一的语言,用于描述各种类型的信号,无论是静态属性还是动作序列。这里的“标记”可以理解为信息的小组成部分,Transformer 会逐一处理这些小部分。

位置嵌入和注意力掩码

Transformer 对标记的顺序非常敏感,因为顺序会影响含义。例如,在时间序列中,先预订乘车再点餐与反过来含​​义不同。但表格数据本身并没有自然的顺序。

为了解决这个问题,Grab 根据数据类型应用不同的位置规则:

  • 表格中的标记被视为无序集合。该模型不会尝试从列的顺序中寻找意义。

  • 时间序列中的标记被视为有序序列。该模型使用位置嵌入来理解事件发生的先后顺序。

注意力掩码正是在这里发挥重要作用。简单来说,注意力掩码告诉Transformer模型哪些词元应该相互关联以及如何关联。对于表格数据,掩码确保模型不会推断出任何虚假的顺序。对于时间序列数据,它确保模型遵循实际的动作顺序。

融合式统一学习设计

键值标记化、不同的位置处理和注意力掩码的结合,使得模型能够同时处理结构化的个人资料信息和序列行为。

在传统系统中,这两种类型的数据通常由不同的模型处理,然后再拼接在一起。Grab 的方法让 Transformer 模型能够同时直接从这两种数据中学习,从而获得更丰富、更准确的用户表征。

这种混合骨架构成了基础模型的核心。它确保无论信号来自稳定的特征属性还是快速变化的交互模式,模型都能以一致且有意义的方式对其进行解读。

基于适配器的模态处理

一旦 Transformer 主干架构搭建完成,下一个主要的设计挑战就是如何以保持其含义的方式处理不同的数据类型。

用户与Grab的交互可能涉及文本、数值、位置数据以及大量的ID。每种数据都需要不同的处理技术,才能被模型整合为一个共享的表示。如果所有数据都以相同的方式处理,重要的细微差别就会丢失。例如,对“鸡饭”的文本搜索不应该与经纬度坐标或用户ID的处理方式相同。

为了解决这个问题,Grab 工程团队采用了基于模块化适配器的设计。

适配器充当每种模态的专用微型模型。它们的作用是在数据到达主转换器之前,将其编码成高维向量表示,以捕捉其含义和结构。

以下是不同模式的处理方式:

  • 文本适配器:文本数据(例如搜索查询和评论)通过预先训练的语言模型初始化的编码器进行处理。这使得系统能够有效地捕获语言模式和语义含义,而无需从头开始训练语言模型。

  • ID适配器:诸如user_id、merchant_id和driver_id之类的类别标识符通过专用的嵌入层进行处理。每个唯一的ID都有其自身的可学习向量表示,从而使模型能够识别特定的用户或实体及其历史模式。

  • 位置和数值适配器:坐标、距离和价格等数据无法直接嵌入现有的语言或 ID 嵌入空间。为此,团队构建了自定义编码器,旨在保留数据的数值和空间结构。这确保模型能够理解两个邻近位置之间的关联性可能比两个遥远位置更强,或者价格差异如何影响用户行为。

每个适配器处理完输入后,生成的向量会经过一个对齐层。这一步骤确保所有不同模态的向量都被投影到同一个潜在表示空间中。这样,Transformer 就能对它们进行有意义的比较和组合,例如将文本查询与某个位置或特定商家关联起来。

无人监督的岗前培训

构建 Grab 基础模型时,最重要的决定之一是如何训练该模型。

许多机器学习系统都针对特定任务进行训练,例如预测用户是否会点击广告或他们接下来可能会购买什么商品。虽然这种方法对于特定问题效果良好,但它会导致嵌入向量存在偏差,从而在特定用例之外表现不佳。

由于 Grab 的模型需要支持跨多个垂直领域的各种应用,Grab 工程团队决定采用无监督预训练策略。

在监督学习中,模型针对特定标记任务进行优化。然而,Grab 的生态系统涵盖了外卖订餐、出行、杂货配送、金融交易等诸多领域。如果模型仅针对单一垂直领域(例如外卖订餐)进行训练,则最终会偏向于与该领域相关的信号,而忽略其他领域。

相比之下,无监督预训练可以让模型学习所有类型数据和交互的通用模式,而无需绑定到单一标签或任务。训练完成后,同一个模型可以进行调整或微调,用于许多下游应用,例如推荐系统、客户流失预测或欺诈检测。

第一种核心技术是掩码语言建模(MLM)。这种方法借鉴了大型语言模型中使用的一些方法,它将输入中的一些词元隐藏(或“掩码”),并要求模型预测缺失的部分。

例如,如果一个令牌代表“view_merchant: merchant_id_114”,模型可能只能看到 view_merchant:[MASK],因此必须根据用户的其他活动来推断哪个商户 ID 最匹配。这迫使模型更深入地理解用户行为之间的关联。

第二项关键技术是下一步行动预测,这与超级应用中用户行为的展开方式完美契合。例如,用户可能结束行程后搜索餐厅,或者浏览杂货,然后寄送包裹。模型需要预测用户接下来会做什么操作,以及涉及的具体价值。

这分两步进行:

  • 操作类型预测:预测接下来将发生哪种类型的交互(例如,点击餐厅、预订行程或搜索市场)。

  • 操作值预测:预测与该操作关联的实体或内容,例如特定的商户 ID、目的地坐标或文本查询。

这种双重预测结构反映了模型的键值对标记格式,并帮助模型学习不同模态的复杂行为模式。

不同的数据类型需要不同的方法来衡量模型的学习效果。为了解决这个问题,Grab 使用了特定模态的重建头,这些重建头是针对每种数据类型量身定制的专用输出层:

  • 类别 ID:使用交叉熵损失,这非常适合涉及大型词汇表的分类任务。

  • 数值:使用均方误差 (MSE) 损失,这对于价格或距离等连续数值效果更好。

  • 其他模态:使用与其特定特征最匹配的损失函数。

海量身份识别词汇的处理

Grab在构建其基础模型时面临的最大扩展挑战之一是处理庞大的ID词汇表。该平台服务于数亿用户、商家和司机。每个实体都有一个唯一的ID,模型需要理解这些ID,并在某些情况下进行预测。

如果模型直接基于包含所有这些ID的单个列表进行预测,输出层将需要同时处理数亿种可能性。这将需要数百亿个参数,使得系统训练成本极高,运行速度极慢。此外,由于在如此庞大的空间中进行预测计算量巨大,系统在训练过程中也容易出现不稳定。

为了解决这个问题,Grab 工程团队采用了分层分类策略。该模型没有将所有 ID 视为一个扁平列表,而是将预测任务分解为两个步骤:

  • 该模型首先预测目标 ID 所属的高级类别。例如,如果它要预测一家餐厅,则可能首先预测其所在的城市或菜系类型。

  • 一旦确定了粗略的分组,模型就会预测该分组内的具体餐厅 ID。例如,在预测出“日本料理”分组后,模型可能会从该分组中选择一个特定的餐厅 ID。

嵌入提取与微调

Grab 的基础模型在大量用户交互数据上进行预训练后,下一个问题是如何有效地将其用于实际业务问题。

Grab 工程团队依靠两种主要方法来最大限度地发挥模型的功能:微调和嵌入提取。

针对特定任务进行微调

微调是指将整个预训练模型在已标注的数据集上进行进一步训练,以用于特定任务。例如,可以对模型进行微调,以预测欺诈风险、估计客户流失概率或优化广告投放。

微调的优势在于,模型保留了预训练期间学习到的所有通用知识,并根据特定问题的需求进行调整。当需要专门的解决方案时,这种方法通常能带来最高的性能,因为模型会学习专注于与该特定任务最相关的信号。

将提取嵌入作为通用特征

第二种更灵活的方法是提取嵌入向量。Grab 无需重新训练整个模型,而是利用模型生成嵌入向量,这些向量是高维数值向量,分别代表用户、商家或司机。这些嵌入向量随后可以输入到其他下游模型(例如梯度提升机或神经网络)中,而无需修改基础模型本身。

这种方法将基础模型转化为特征生成器。它使公司其他团队能够使用嵌入向量作为输入特征,快速构建专用应用程序,而无需从头开始训练大型模型。这既节省了时间,也节省了计算资源。

双嵌入策略:长期和短期

为了全面捕捉用户行为,Grab 采用双嵌入策略,为每个用户生成两种类型的嵌入:

  • 长期嵌入:这部分内容来自用户 ID 适配器。它反映了随着时间推移而形成的稳定行为模式,例如消费习惯、偏好位置和服务使用频率。您可以将其视为用户的长期档案或“记忆”。

  • 短期嵌入:这是从用户最近的交互序列中提取出来的,经过模型的适配器和Transformer主干网处理。然后,序列聚合模块将序列输出压缩成一个单一向量,该向量捕捉用户当前的意图,或者说“他们现在想做什么”。

结论

Grab 的基础模型代表着大规模、多服务平台如何利用人工智能了解用户行为方面迈出的重要一步。

Grab 工程团队通过精心设计的转换器架构统一了表格数据和时间序列数据,创建了一个能够提供用户、商家和司机跨模态表示的系统。

这种转变的影响已经显现。个性化变得更快、更灵活,使团队能够更快地构建模型并取得更好的性能。这些嵌入技术目前正为关键用例提供支持,包括广告优化、双应用预测、欺诈检测和用户流失建模。由于基础模型只需训练一次即可在多个地方重复使用,因此它能够对 Grab 生态系统中的用户行为提供一致的理解。

展望未来,Grab 计划将“嵌入即产品”的愿景推向新的高度。其目标是提供一个集中式的嵌入服务,不仅涵盖用户、商家和司机,还包括位置、订单和市场商品。通过将嵌入作为核心平台功能,Grab 可以让公司各团队立即获得高质量的行为表征,而无需从头开始训练自己的模型。

为实现这一愿景,该路线图包含三个关键优先事项:

  • 统一数据流,以创建更清晰、噪声更低的训练信号。

  • 不断改进模型架构,使其能够从更丰富、更复杂的数据源中学习。

  • 随着平台的扩展,需要扩展基础设施以处理不断增长的流量和新的数据模式。

参考:

  • Grab 用户基础模型

  • 变形金刚架构


赞助我们

让您的产品触达超过 100 万名科技专业人士。

我们的新闻简报会将您的产品和服务直接推送给重要的受众——数十万名工程领导者和高级工程师——他们对重大的技术决策和大宗采购具有影响力。

名额有限,立即预订!

广告位通常提前约 4 周售罄。为确保您的广告触达这一极具影响力的受众群体,请立即发送电子邮件至[email protected] 预订您的广告位。

原文: https://blog.bytebytego.com/p/how-grab-built-an-ai-foundation-model

本站文章系自动翻译,站长会周期检查,如果有不当内容,请点此留言,非常感谢。
  • Abhinav
  • Abigail Pain
  • Adam Fortuna
  • Alberto Gallego
  • Alex Wlchan
  • Anil Dash
  • Answer.AI
  • Arne Bahlo
  • Ben Carlson
  • Ben Kuhn
  • Bert Hubert
  • Big Technology
  • Bits about Money
  • Brandon Skerritt
  • Brian Krebs
  • ByteByteGo
  • Chip Huyen
  • Chips and Cheese
  • Christopher Butler
  • Colin Percival
  • Cool Infographics
  • Dan Sinker
  • David Walsh
  • Dmitry Dolzhenko
  • Dustin Curtis
  • eighty twenty
  • Elad Gil
  • Ellie Huxtable
  • Ethan Dalool
  • Ethan Marcotte
  • Exponential View
  • FAIL Blog
  • Founder Weekly
  • Geoffrey Huntley
  • Geoffrey Litt
  • Greg Mankiw
  • HeardThat Blog
  • Henrique Dias
  • Herman Martinus
  • Hypercritical
  • IEEE Spectrum
  • Investment Talk
  • Jaz
  • Jeff Geerling
  • Jonas Hietala
  • Josh Comeau
  • Lenny Rachitsky
  • Li Haoyi
  • Liz Danzico
  • Lou Plummer
  • Luke Wroblewski
  • Maggie Appleton
  • Matt Baer
  • Matt Stoller
  • Matthias Endler
  • Mert Bulan
  • Mind Matters
  • Mostly metrics
  • Naval Ravikant
  • News Letter
  • NextDraft
  • Non_Interactive
  • Not Boring
  • One Useful Thing
  • Phil Eaton
  • PostHog
  • Product Market Fit
  • Readwise
  • ReedyBear
  • Robert Heaton
  • Rohit Patel
  • Ruben Schade
  • Sage Economics
  • Sam Altman
  • Sam Rose
  • selfh.st
  • Shtetl-Optimized
  • Simon schreibt
  • Slashdot
  • Small Good Things
  • Steph Ango
  • Stephen Wolfram
  • Steve Blank
  • Taylor Troesh
  • Telegram Blog
  • The Macro Compass
  • The Pomp Letter
  • thesephist
  • Thinking Deep & Wide
  • Tim Kellogg
  • Understanding AI
  • Wes Kao
  • 英文媒体
  • 英文推特
  • 英文独立博客
©2025 搞英语 → 看世界 | Design: Newspaperly WordPress Theme