主要要点

  • Binance 使用机器学习模型来监控平台上的可疑活动。

  • 被称为陈旧特征的问题会对此类模型的性能产生负面影响,导致它们做出不准确的预测或分类。

  • 我们的流媒体管道(或不断向模型提供实时数据的过程)由两部分组成:数据处理和数据服务。

  • 数据处理又分为流计算、采集、下沉三类。

了解我们如何使用机器学习来保护币安生态系统。

我们的风险 AI 团队由机器学习工程师和数据科学家组成,他们昼夜不停地打击欺诈行为并保护币安用户。为实现这一目标,他们使用人工智能驱动的解决方案来识别和应对潜在威胁,例如点对点 (P2P) 诈骗、支付详细信息盗窃和帐户接管攻击 (ATO) 等等。

在本文中,我们将解释我们的风险 AI 团队如何使用流媒体管道来确保实时响应以及幕后发生的情况。

如果您不熟悉机器学习,我们建议您阅读以下部分,以了解我们将在本文中使用的某些术语的基本概述。

批处理和流式处理

机器学习工程师通常使用两种类型的管道:批处理和流式传输。两者各有利弊,具体取决于情况的需要。

批量管道,顾名思义,就是批量处理数据。工程师通常使用它们来处理大量数据。

另一方面,流式管道在收集数据时会实时处理数据。这使得它们非常适合需要近乎即时响应的情况;例如,在黑客从被盗账户中提取资金之前检测到他们。

请注意,这两个管道同等重要。流式管道非常适合提供实时响应,而批处理管道更擅长处理大量数据。

在防范欺诈的情况下,我们需要优先考虑实时数据,以避免出现所谓的“模型陈旧”的情况,即机器学习模型变得过时或不准确。

过时的意义

就像人们如果不及时了解最新的信息或技术,完成任务的效率就会降低一样,机器学习模型如果不根据情况定期更新,准确性也会降低。

您肯定不希望设计用于防止欺诈的模型变得陈旧。其后果包括模型错误地将合法交易标记为欺诈或无法识别受损账户。因此,我们使用流式管道来确保欺诈预防模型能够处理实时数据。

账户接管 (ATO) 模型的计算

让我们以 ATO 模型为例,我们训练该模型来识别被犯罪分子恶意劫持的账户。该模型衡量的特征之一是特定客户在过去一分钟内进行的交易次数。

黑客倾向于遵循连续模式,在短时间内进行大量操作,例如提款。我们的系统必须在潜在威胁发生时尽快计算此功能。这意味着尽量减少用户采取行动和我们的模型处理该用户活动数据之间的延迟。几秒钟的时间就可能决定阻止黑客和用户损失所有资金之间的差别。

有关延迟特征如何影响模型性能的更多信息,可以参考 LinkedIn Engineering 的这篇文章:近实时个性化的近实时特征。

批量计算的作用

请注意,特征陈旧性的重要性可能取决于所使用的模型或特征。例如,某些特征相对稳定。在上面提到的 ATO 案例中,我们还需要检索用户过去 30 天内的提款数据,以根据他们最近的交易计算比率。

在这种情况下,尽管等待数据到达数据仓库和等待批处理作业定期运行会导致更高的陈旧性,但较长时间段(例如每日或每小时间隔)的批量计算是可以接受的。

平衡新鲜度和延迟

最终,批处理和流式处理管道之间的选择应基于用例的具体要求和相关功能。仔细考虑这些因素使我们能够构建有效的欺诈预防系统来保护我们的用户。

对于时间敏感的特征,使用流式管道可以让我们优先考虑新鲜度而不是延迟。上图说明了这种需求,因为检索特征的操作数应该是三个而不是两个。

这就是为什么实时机器学习流程对于我们的风险团队的日常运营至关重要。

分解流媒体管道

币安风险AI团队的实时机器学习主要包括两部分:

  • 数据处理(图表上部)

  • 数据服务(图表下部)

数据处理

关于数据处理,我们可以根据流水线(Flink Job)的职责将其分为三类:

  • 流计算:特征工程

  • 流提取:特征提取

  • 流下沉:数据丰富

流计算

管道的流计算组件负责近实时的特征工程,即从原始数据中提取特征的过程。

它预先计算我们的机器学习模型将用于在线预测的特征。流式计算管道有两种计算方法:基于时间的和基于事件的。

  1. 基于时间。每 10 分钟计算一次交易数量。这会带来一些过时性,但会降低延迟。

  2. 基于事件。根据到达的事件计算特征。这可以降低陈旧性,但会稍微增加延迟。

我们倾向于尽可能不使用实时计算,原因如下:

  1. 延迟和陈旧性之间存在权衡。在线请求到达时计算特征会将计算逻辑限制为轻量级方法。虽然这种方法降低了陈旧性,但特征计算会增加预测延迟。

  2. 由于预测和计算服务相互依赖,因此独立扩展具有挑战性。

  3. 根据请求流量进行按需计算会产生不可预测的扩展压力。

  4. 实时计算不适用于我们的模型监控(训练服务偏差)和特征监控解决方案,因为特征不存储在中央数据库(即特征存储)中。

流摄取

流提取组件负责将特征从机器学习平台 Kafka 近乎实时地提取到我们的特征存储中。特征存储是集中式数据库,用于存储常用特征。它们在机器学习管道中起着至关重要的作用。您可以在以下文章中了解有关它们的更多信息:深入了解我们的机器学习特征存储和使用 MLOps 构建实时端到端机器学习管道。

流接收器

流接收器组件主要负责根据项目需求将实时事件发送到特定目的地 - 例如高度分布式文件系统(HDFS)如 S3 或其他外部数据库(如 ElasticSearch)。

对于我们的风险 AI 团队来说,通常有两种数据丰富模式可以应用于 Kafka 中的实时数据,具体取决于用例:

  1. 静态数据。例如,检索 Flink 作业中与 P2P 相关的业务项目的 S3 中的热门制作者列表。参考数据是静态的,每月只需更新不到一次。

  2. 动态数据。例如,实时汇率(BTC 兑换 USD)是从 Redis 等外部数据库获取的。如果参考数据发生变化,则按记录查找可确保低延迟和高准确性。

数据服务

管道的数据服务组件负责在线预测和批量计算。

  1. 在线预测。当请求通过决策中心(我们风险团队的内部规则引擎)时,就会发生这种情况。然后,相关服务将调用特征存储来检索特征并将其发送到机器学习模型进行评分。我们的风险 AI 团队拥有 20 多个机器学习模型,旨在处理不同的业务需求。

  2. 批量计算。虽然它可能会导致长达几天的延迟,但它在这里起着重要作用,因为它补充了实时计算的特征。

结束语

值得注意的是,加密货币市场全天候运营,不像传统金融市场有开市和收市时间。每一秒都有新的数据(提款、存款、交易等)不断涌入,这需要我们警惕试图窃取用户资金或个人信息的不良行为者。

我们的风险 AI 团队孜孜不倦地开发和维护一个复杂的 AI 系统,可以有效地标记可疑活动。 感谢他们的努力,我们可以迅速采取行动,保护受损的币安账户免受潜在损失或尽可能减轻损失。

请继续关注我们在机器学习方面的更多见解,或查看下面我们之前的一些文章。对币安的机器学习职业感兴趣?在我们的职业页面上查看币安工程的公开招聘信息。

进一步阅读

  • 仔细了解我们的机器学习特征商店

  • 使用 MLOps 构建实时端到端机器学习管道

  • 一致性和欺诈检测中的特征工程案例研究