主なポイント
Binance は機械学習モデルを使用して、プラットフォーム上の不審なアクティビティを監視します。
古い特徴と呼ばれる問題は、このようなモデルのパフォーマンスに悪影響を及ぼし、不正確な予測や分類を引き起こす可能性があります。
私たちのストリーミング パイプライン、つまりリアルタイム データをモデルに継続的に供給するプロセスは、データ処理とデータ提供の 2 つの部分で構成されています。
データ処理はさらに、ストリーム コンピューティング、取り込み、シンクの 3 つのカテゴリに分類されます。
Binance エコシステムを保護するために機械学習をどのように使用しているかを学びます。
機械学習エンジニアとデータサイエンティストで構成される当社のリスク AI チームは、詐欺と闘い、Binance ユーザーを保護するために 24 時間体制で働いています。これを実現するために、チームは、ピアツーピア (P2P) 詐欺、支払い情報の盗難、アカウント乗っ取り攻撃 (ATO) など、潜在的な脅威を特定して対応できる AI 主導のソリューションを使用しています。
この記事では、リスク AI チームがストリーミング パイプラインを使用して、舞台裏で何が起こっているかに加えて、リアルタイムの応答を確実に行う方法について説明します。
機械学習に馴染みがない場合は、この記事全体で使用する用語の基本的な概要を把握するために、次のセクションを読むことをお勧めします。
バッチとストリーミング
機械学習エンジニアは通常、バッチとストリーミングの 2 種類のパイプラインを使用します。状況に応じて、どちらにも長所と短所があります。
バッチ パイプラインは、その名前が示すように、データをバッチで処理します。エンジニアは通常、大量のデータを処理するためにバッチ パイプラインを使用します。
一方、ストリーミング パイプラインは、収集されたデータをリアルタイムで処理します。そのため、ハッカーが盗んだアカウントから資金を引き出す前に検出するなど、ほぼ即時の対応が必要な状況に最適です。
両方のパイプラインは同等に重要であることに注意してください。ストリーミング パイプラインはリアルタイム応答の提供に優れていますが、バッチ パイプラインは大量のデータの処理に適しています。
不正行為防止の場合、「モデルの古さ」と呼ばれる状況(機械学習モデルが古くなったり不正確になったりする状況)を回避するために、リアルタイム データを優先する必要があります。
古さの重要性
人々が最新の情報や技術を常に把握しておかないとタスクの効率が低下するのと同様に、機械学習モデルも状況に応じて定期的に更新しないと精度が低下する可能性があります。
望ましくないことの 1 つは、不正行為を防止するために設計されたモデルが古くなることです。その結果、モデルが正当なトランザクションを不正であると誤って分類したり、侵害されたアカウントを識別できなかったりするなど、さまざまな問題が発生します。そのため、私たちはストリーミング パイプラインを使用して、不正行為防止モデルがリアルタイム データで機能するようにしています。
アカウント乗っ取り (ATO) モデルのコンピューティング
犯罪者が悪意を持って乗っ取ったアカウントを識別するようにトレーニングした ATO モデルの例を見てみましょう。このモデルが測定する特徴の 1 つは、特定の顧客が過去 1 分間に行ったトランザクションの数です。
ハッカーは、短期間に引き出しなどの多数の操作を行うなど、連続したパターンに従う傾向があります。潜在的な脅威が発生した場合に備えて、当社のシステムはできるだけ早くこの機能を計算する必要があります。つまり、ユーザーがアクションを起こしてから、このユーザーのアクティビティ データが当社のモデルによって処理されるまでの遅延を最小限に抑える必要があります。わずか数秒の違いが、ハッカーを阻止できるか、ユーザーがすべてのお金を失うかの違いとなる可能性があります。
遅延機能がモデルのパフォーマンスにどのように影響するかの詳細については、LinkedIn Engineering のこの記事「ほぼリアルタイムのパーソナライゼーションのためのほぼリアルタイム機能」を参照してください。
バッチコンピューティングの役割
機能の古さの重要性は、使用されているモデルまたは機能によって異なることに注意してください。たとえば、一部の機能は比較的安定しています。上記の ATO のケースでは、ユーザーの過去 30 日間の引き出しに関するデータを取得して、最新のトランザクションに基づいて比率を計算する必要もあります。
この場合、データがデータ ウェアハウスに到着し、バッチ ジョブが定期的に実行されるのを待つことで古さが増すにもかかわらず、毎日または毎時間などのより長い期間にわたるバッチ コンピューティングは許容されます。
鮮度と遅延のバランス
最終的には、ユースケースの特定の要件と問題の機能に基づいて、バッチ パイプラインとストリーミング パイプラインの選択を行う必要があります。これらの要素を慎重に検討することで、ユーザーを保護する効果的な不正防止システムを構築できます。

ストリーミング パイプラインを使用すると、時間に敏感な機能のレイテンシよりも鮮度を優先できます。上の図は、機能を取得するための操作回数が 2 回ではなく 3 回になる必要があるため、この必要性を示しています。
そのため、リアルタイムの機械学習パイプラインは、リスクチームの日常業務にとって非常に重要です。
ストリーミングパイプラインの分析
Binance リスク AI チームのリアルタイム機械学習は、主に次の 2 つの部分で構成されています。
データ処理(図の上部)
データ提供(図の下部)

情報処理
データ処理に関しては、ストリーミング パイプライン (Flink ジョブ) をその役割に基づいて 3 つのカテゴリに分けることができます。
ストリームコンピューティング: 特徴エンジニアリング
ストリーム取り込み: 機能取り込み
ストリームシンク: データの強化
ストリームコンピューティング
パイプラインのストリーム コンピューティング コンポーネントは、生データから特徴を抽出するプロセスである、ほぼリアルタイムの特徴エンジニアリングを担当します。
機械学習モデルがオンライン予測に使用する特徴を事前に計算します。ストリーミング コンピューティング パイプラインには、時間ベースとイベントベースの 2 種類のコンピューティング方法があります。
時間ベース。10 分ごとにトランザクションの数を計算します。これにより、多少の古さが生じますが、レイテンシは短縮されます。
イベントベース。到着したイベントに基づいて特徴を計算します。これにより古さは減りますが、レイテンシがわずかに増加します。
私たちはリアルタイム計算をできるだけ使用しないことを好みます。その理由は次のとおりです。
レイテンシと古さの間にはトレードオフがあります。オンライン リクエストが到着したときに特徴を計算すると、計算ロジックが軽量なアプローチに制限されます。この方法では古さは減りますが、特徴の計算によって予測のレイテンシが増加します。
予測サービスとコンピューティング サービスは相互に依存しているため、個別にスケーリングすることは困難です。
リクエスト トラフィックに基づくオンデマンド コンピューティングでは、予測できないスケーリング プレッシャーが発生します。
特徴は中央データベース、つまり特徴ストアに保存されないため、リアルタイム計算はモデル監視 (トレーニング サービング スキュー) および特徴監視ソリューションには適応できません。
ストリームの取り込み
ストリーム取り込みコンポーネントは、機械学習プラットフォーム Kafka から機能ストアにほぼリアルタイムで機能を取り込む役割を担っています。機能ストアは、よく使用される機能を格納する集中型データベースです。機械学習パイプラインで重要な役割を果たします。詳細については、次の記事を参照してください: 機械学習機能ストアの詳細と、MLOps を使用してリアルタイムのエンドツーエンドの機械学習パイプラインを構築する。
ストリームシンク
ストリーム シンク コンポーネントは、プロジェクト要件に応じて、S3 などの高度に分散されたファイル システム (HDFS) や ElasticSearch などの他の外部データベースなどの特定の宛先にリアルタイム イベントをシンクする役割を主に担います。
当社のリスク AI チームでは、ユースケースに応じて、Kafka のリアルタイム データに適用できるデータ拡充パターンが一般的に 2 つあります。
静的データ。たとえば、Flink ジョブの P2P 関連のビジネス プロジェクト用に S3 に保存されている人気メーカーのリストを取得します。参照データは静的であり、月に 1 回未満の更新のみが必要です。
動的データ。たとえば、リアルタイムの為替レート (BTC から USD) は、Redis などの外部データベースから取得されます。レコードごとの検索により、参照データが変更された場合のレイテンシが低くなり、精度が高くなります。
データ提供
パイプラインのデータ提供コンポーネントは、オンライン予測とバッチ コンピューティングを担当します。
オンライン予測。これは、Decision Hub (リスク チームの内部ルール エンジン) を介してリクエストが届いたときに発生します。次に、関連サービスが機能ストアを呼び出して機能を取得し、スコアリングのために機械学習モデルに送信します。当社のリスク AI チームには、さまざまなビジネス要件に対応するように設計された 20 を超える機械学習モデルがあります。
バッチ コンピューティング。最大数日の遅延が発生する可能性がありますが、リアルタイムで計算された機能を補完するため、ここでは重要な役割を果たします。
終わりに
暗号市場は、始業時間と終業時間がある従来の金融市場とは異なり、24時間年中無休で運営されていることに留意することが重要です。毎秒、新しいデータ(引き出し、入金、取引など)が継続的に流入しており、ユーザーの資金や個人情報を盗もうとする悪意のある人物に注意する必要があります。
当社のリスク AI チームは、疑わしいアクティビティを効果的に検出できる高度な AI システムの開発と維持に精力的に取り組んできました。彼らの努力のおかげで、侵害された Binance アカウントを潜在的な損失から保護したり、被害を可能な限り軽減したりするために迅速に対応することができます。
当社の機械学習への取り組みに関するさらなる洞察については、引き続き注目してください。または、以下の過去の記事をご覧ください。Binance での機械学習のキャリアに興味がありますか? 求人情報については、キャリア ページの Binance Engineering をご覧ください。
参考文献
機械学習機能ストアの詳細
MLOps を使用してリアルタイムのエンドツーエンドの機械学習パイプラインを構築する
一貫性と不正検出における特徴エンジニアリングのケーススタディ



