主なポイント

  • 世界最大の暗号通貨取引所として、高速でありながら正確性を損なうことのないリスク検出システムを備えることは非常に重要です。

  • 私たちが直面した課題は、特に疑わしいアカウントアクティビティをリアルタイムで検出する際に、モデルが常に最新の情報を使用するようにすることです。

  • より強力な機能の一貫性とより優れた生産速度を実現するために、データについて合理的な仮定を立て、バッチ パイプラインとストリーミング パイプラインを組み合わせます。

当社の機能エンジニアリング パイプラインが、Binance プラットフォームでの不正な引き出しを検出するための強力で一貫性のある機能をどのように作成するかをご覧ください。

以前の記事で詳しくご紹介した当社の機械学習 (ML) パイプライン内では、最近、すべてのリスク関連モデルで共有できる再利用可能なオンライン機能に生データを集約する自動機能エンジニアリング パイプラインを構築しました。

このパイプラインを構築およびテストする過程で、データ サイエンティストは興味深い機能の一貫性の問題に遭遇しました。時間の経過とともに動的に変化するオンライン機能の正確なセットをどのように作成するか?

現実世界のシナリオを考えてみましょう。暗号通貨取引所 (この場合は Binance) は、資金がプラットフォームから出ていく前に不正な引き出しを検出しようとしています。考えられる解決策の 1 つは、ユーザーの最後の特定の操作 (ログインやモバイルのバインドなど) からの経過時間を検出する機能をモデルに追加することです。次のようになります。

ユーザー ID|最終バインド Google 時間差日数|...

1|3.52|...

実装の課題

オンライン機能ストアで機能を計算および更新するために必要なキーの数は非現実的です。Flink などのストリーミング パイプラインを使用すると、現時点で Kafka に入ってくるレコードを持つユーザーしか計算できないため、不可能になります。

妥協案として、バッチ パイプラインを使用して、ある程度の遅延を受け入れることもできます。モデルがオンライン機能ストアから機能を取得し、約 1 時間でリアルタイム推論を実行できるとします。同時に、機能ストアが計算とデータの取り込みを完了するのに 1 時間かかる場合、バッチ パイプラインは理論上は問題を解決します。

残念ながら、1 つの大きな問題があります。それは、このようなバッチ パイプラインの使用には非常に時間がかかることです。これにより、約 1 億人のユーザーを扱い、書き込みの TPS 制限がある世界最大の暗号通貨取引所の場合、1 時間以内に完了することは不可能になります。

ユーザーについて想定し、それによって機能ストアに流入するデータの量を減らすことがベストプラクティスであることがわかりました。

実用的な仮定で問題を緩和する

オンライン機能はリアルタイムで取り込まれ、環境の最新バージョンを表すため、常に変化しています。アクティブな Binance ユーザーがいるため、古い機能を備えたモデルを使用する余裕はありません。

疑わしい引き出しがあれば、当社のシステムでできるだけ早くフラグを立てることが不可欠です。たとえ数分でも遅延が長引けば、悪意のある人物が犯罪を逃れる時間が長くなることを意味します。

したがって、効率性を考慮して、最近のログインは比較的高いリスクを持つと想定します。

  • (250日 + 0.125[3/24遅延]日)は、(1日 + 0.125[3/24遅延]日)よりも比較的小さい誤差を生成することがわかります。

  • ほとんどの操作は、一定のしきい値(たとえば 365 日)を超えることはありません。時間とコンピューティング リソースを節約するため、1 年以上ログインしていないユーザーは除外されます。

私たちのソリューション

より強力な機能の一貫性を実現するために、バッチ パイプラインとストリーミング パイプラインを組み合わせたプロセスを伴うラムダ アーキテクチャを使用します。

解決策は概念的にはどのように見えるでしょうか?

  • バッチ パイプライン: 大規模なユーザー ベースに対して機能エンジニアリングを実行します。

  • ストリーミング パイプライン: 最近のログインのバッチ パイプラインの遅延時間を改善します。

バッチ取り込みの遅延時間の間にレコードがオンライン機能ストアに取り込まれるとどうなるでしょうか?

1 時間のバッチ取り込み遅延期間中にレコードが取り込まれた場合でも、当社の機能は強力な一貫性を維持します。これは、Binance で使用しているオンライン機能ストアが、値を取得するときに指定した event_time に基づいて最新の値を返すためです。

私たちのチームに参加してください!

機械学習を使用して世界最大の暗号エコシステムとそのユーザーを保護することに興味がありますか? 求人情報については、採用ページの Binance Engineering / AI をご覧ください。

詳細については、次の役立つ記事をお読みください。

  • (ブログ) MLOps を使用してリアルタイムのエンドツーエンドの機械学習パイプラインを構築する

  • (ブログ) 機械学習機能ストアの詳細