本文作者:ad2024

我们为什么要使用实时机器学习来监控币安平台上的欺诈活动,以及我们如何实现目标

ad2024 2023-09-20 154
我们为什么要使用实时机器学习来监控币安平台上的欺诈活动,以及我们如何实现目标摘要: 要点币安使用机器学习模型来监控平台上的可疑活动。而如果出现“陈旧特征”的问题,可能会对此类模型的性能产生负面影响,导致它们做出不准确的预测或分类。我们的流式数据处理管道(strea...

要点

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

  • 而如果出现“陈旧特征”的问题,可能会对此类模型的性能产生负面影响,导致它们做出不准确的预测或分类。

  • 我们的流式数据处理管道(streaming pipeline,即持续向模型提供实时数据的过程)由两部分组成:数据处理和数据服务。

  • 数据处理进而分为三类:流计算、采集和落库。

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

我们由众多机器学习工程师和数据科学家组成的风险AI团队全天候工作,致力于打击欺诈并保护币安用户。为了实现这一目标,他们使用AI驱动的解决方案来识别和应对潜在的威胁,例如,点对点(C2C)诈骗、盗窃支付详情和账户接管攻击(ATO)等。

在本文中,我们将说明风险AI团队如何使用流式数据处理管道来确保实时响应,以及背后的工作原理。

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

批处理和流式处理

机器学习工程师通常使用两种类型的数据处理管道:批处理和流式处理。二者各有利弊,适用于不同的情况。

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

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

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

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

陈旧度的重要影响

就像人们如果没有及时了解最新的信息或技术,就会有损工作效率一样,如果不根据情况定期更新,机器学习模型的准确性也会打折扣。

没有人想要过时的防欺诈模型,它可能带来严重的后果,比如模型“误杀”合法交易,甚至未能识别出被盗账户。因此,我们使用流式数据处理管道来确保预防欺诈模型能够处理实时数据。

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

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

黑客往往会在短时间内连续进行大量操作,例如提现。我们的系统必须尽快计算出此特征,以防出现潜在威胁。这意味着最大限度地减少用户操作与我们的模型处理该用户的活动数据之间的延迟。想要成功阻止黑客,避免用户损失所有资金,可能只有几秒钟的机会。

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

批量计算的作用

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

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

平衡新鲜度和延迟

归根结底,我们应根据用例的具体要求和相关特征,来选择是用批处理还是流式数据处理。仔细考虑这些因素,能让我们构筑有效的欺诈预防系统来保护我们的用户。

使用流式处理管道可以让我们将时间敏感型特征的新鲜度(而不是延迟)置于首位。上图说明了这种需求,因为检索特征这个过程的操作次数应为三次而不是两次。

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

分解流式数据处理管道

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

  • 数据处理(图表的上半部分)

  • 数据服务(图表的下半部分)

数据处理

对于数据处理,我们可以根据自己的职责将我们的流式数据处理管道(Flink 作业)分为三类:

  • 流计算:特征工程

  • 流采集:特征采集

  • 流落库:数据扩充

流计算

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

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

  1. 基于时间的计算方法:计算每10分钟的交易数量,这会带来一些陈旧度,但会降低延迟。

  2. 基于事件的计算方法:根据即将到来的事件计算特征,这可以降低陈旧度,但会稍微增加延迟。

我们倾向于别一味使用实时计算,原因在于:

  1. 在延迟和陈旧之间需要权衡取舍。在线计算需要在短时间内完成,因此只能用轻量级的方法来计算特征。虽然这种方法可以降低陈旧度,但特征计算会增加预测延迟。

  2. 由于预测和计算服务相互依赖,因此独立扩展并非易事。

  3. 基于请求流量的按需计算会产生不可预测的扩展压力。

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

流采集

流采集组件负责近乎实时地从机器学习平台Kafka将功能提取到我们的特征平台中。特征平台是包含常用特征的中心化数据库。它们在机器学习管道中起着至关重要的作用。您可以参与以下文章,了解有关它们的更多信息:详细了解我们的机器学习特征平台和使用mLOP构建实时端到端机器学习管道。

流落库

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

对于我们的风险AI团队来说,在不同的用例中,通常有两种数据扩充模式可以应用于Kafka中的实时数据:

  1. 静态数据:举例来说,在Flink作业中检索C2C相关业务项目在S3中的热门制造商名单。参考数据是静态的,每个月只需要更新一次。

  2. 动态数据:例如,实时汇率(BTC兑USD)是从Redis等外部数据库获得的。为了保证数据的低延迟和高准确性,每个记录都会进行查找操作以确保参考数据(汇率数据)的实时性。

数据服务

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

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

  2. 批量计算:尽管批量计算可能导致长达几天的延迟,但它起着重要的作用,因为它可以补充实时计算的特征。

结语

值得注意的是,与有开盘和收盘时间的传统金融市场不同,加密市场是全天候运转。每秒都有无数新的数据(提现、充值、交易等)不断涌入,我们必须加倍防范试图窃取用户资金或个人信息的不法分子。

我们的风险AI团队努力开发和维护着可以有效标记可疑活动的复杂人工智能系统。在他们的努力下,我们可以迅速保护被盗的币安账户免受潜在损失或尽可能减轻损失。

请继续关注有关我们机器学习工作的更多见解,或者阅读下方列出的之前文章。有兴趣在币安从事机器学习?敬请在我们的招聘页面上查看技术研发的空缺职位信息。

延伸阅读

  • 深入探究我们的机器学习特征平台

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

  • 一致性与欺诈检测特征工程案例

推荐阅读:

使用您的优选支付方式买卖TetherUS (USDT)

全面了解区块链和加密货币知识

通过学习区块链赚取加密货币