サーディン・ルールエンジンをご紹介します
創業当初から、Sardine は不正対策チームによって、不正対策チームのために作られてきました。同時に、データエンジニアによって、データエンジニアのためにも作られてきたのです。
私たちの本質は機械学習とデータサイエンスの会社ですが、新たなパターンや課題、そして異なるタイプの不正を検知するためには、柔軟で適応性の高いルールエンジンが依然として重要であることを理解しています。
私たちは、自分たちのルールエンジンは本当に優れていると思っています。
この記事では、次の内容を取り上げます。
- ルールエンジンとは何ですか?
- ルールエンジンはどのように動作しますか?
- Sardineルールエンジンの主な特徴
1. ルールエンジンとは何ですか?
ルールエンジンとは、不正対策やコンプライアンス業務のチームが論理式を作成するための仕組みです。最も単純なレベルでは「もしXが起きたらYを行う」というものです。より複雑なレベルでは、高度なリスクを検知・管理するための複雑な論理の連鎖を構築することができます。
ルールエンジンとは、次のようなものです。
- 人間が読んで理解できること:なぜ特定の取引が高リスクとしてフラグされたのかが明確であること
- より迅速な対応:新たな不正パターンが急増した際、リスクアナリストはモデルの再学習を待たずに、不正を即座にブロックするためのルールを作成できます
- 高い特異性:十分な学習データがない特定のユースケースに対しても、非常に細かいビジネス要件を正確に反映できます
2. サーディンルールエンジンはユーザーにどのように機能するか
以下は、Sardine のルールエディターを使って作成できるルールの一例です


💡 ルールはさまざまな入力から構成されています サーディンはリアルタイムで数千もの特徴量を計算します。これらには次のようなものが含まれます:
- 社内データシグナル(例:セッションでVPNが使用されているかどうか)
- サードパーティのデータ提供者から取得するデータ(例:クレジットカード発行国)
- リアルタイム集計(例:直近24時間で同じ電話番号から行われた取引件数など)
- 当社コンソーシアムからのシグナル(例:同じデバイスフィンガープリントから、これまでにどれだけの不正取引が検知されているか)。
💡 ルールの作成について: ルールは、上のスクリーンショットに示されているように、論理式として記述します。ルールの評価結果に基づいて、取引を高リスクとしてマークする、審査キューに回す、2FA を必須にするなどのアクションを割り当てることができます。等号 (==)、AND、OR、より大きい/より小さいといった演算子を組み合わせることで、上記のような複雑なルールも作成できます。
- セッションレベルが「高」と等しい
- 支払いカードにはカナダまたは米国が含まれます
- 過去24時間にそのデバイスで行われた取引回数が5回を超えている
- 集計率が30より大きい
💡 テストと「バックテスト」によるルールパフォーマンスのプレビュー:ルールを作成または編集する際、ユーザーは過去のデータに対してバックテストを実行できます。これにより、このルールが過度に多くの取引を却下しないことを確認でき、フィードバックラベルが提供されている場合は、時間の経過に伴う適合率と再現率の統計も確認できます。ルールの作成・編集後、変更内容は数分以内に反映されます。すべてのルール実行記録は保存され、ユーザーはその後、データとパフォーマンス指標を確認できます。


3. なぜSardineルールエンジンは優れているのか。
1. スコア合計
複数のルールから総合スコアを作成します。場合によっては、不正対策チームが複数ルールの評価結果を組み合わせて、ポイントを加算・減算したいことがあります。
例えば:
- アカウントの開設から90日を超えている場合は、リスクポイントを20点減算します。
- 新しいIPアドレスがある場合は、リスクポイントを20点加算します
- 異常な回数のコピー&ペーストが行われている場合は、リスクポイントを50加算します。

2. カスタム集計
Sardine(またはあなた)が必要な生データを持っていても、Sardine のルールエンジンがそれを集計して、この種の不正やリスクの類型を検知するために必要なルールを作成してくれるとは限りません。そこで役立つのがカスタム集計機能であり、ユーザーは自分のニーズに合うように集計方法を自由に定義できます。
以下に例を示します。
定義するのは、何を集計するか(例:カード)であり、どのような集計方法を使うか(例:件数)を決め、どの期間にわたって集計するか(例:時間単位)を指定し、さらにどのような論理条件を適用するか(例:取引金額が500を超える場合)です。

3. ルールテンプレート
何でも構築できることは強力ですが、最も難しいのはしばしば「どこから始めるか」を知ることです。Sardine では、本番環境でどの種類のルールが良いパフォーマンスを発揮しているかについて、クライアントからのデータを確認できます。
私たちは、ルールテンプレート のバンク機能を提供しており、お客様は実績のある何百ものルールテンプレートのデータベースから閲覧・インポートすることができます

4. ルール開示ツール(最近のハッカソンプロジェクト)
不正対策チームは、どのルールが発動したのか、そしてなぜそのルールが発動したのかを、ルールの有効性を評価する際に把握しておく必要があります。
理由を明らかにするために、各ルールごとに、そのセッション時点での特徴量の値とルール定義を表示し、調査を行いやすくし、ルールが意図どおりに機能しているかを監査しやすくしています。

5. ルール変更履歴(最近のハッカソンプロジェクト)
ルールの誤設定はビジネスにとって大きなコストにつながる可能性があるため、変更履歴を遡れる監査ログを残しておくことが重要です。そのため私たちは、誰がどのような変更を行ったかを含めて、各変更の前後を簡単に比較できるユーザー体験(UX)を構築しました。

6. ルーチン(またはバッチルール)
デフォルトでは、当社のルールエンジンは約25msのレイテンシでルールロジックをリアルタイム評価しますが、ユースケースによっては、(日次のコンプライアンスレビューのように)日次・週次・月次で実行する必要があるものもあります。こうした用途のために、あらかじめ設定したスケジュール(日次・週次・月次)で、SQLクエリビルダーまたは生のSQLを使ってカスタムSQLを実行できる機能「Routines」を構築しました。

7. カスタム変数(独自データの利用)
多くの場合、加盟店やフィンテック企業は、すでに自社のビジネス要件に特化したデータ(例:ユーザーのランクや口座履歴など)を保有しています。そのため、当社のルールエンジンでは、お客様から渡された任意のカスタム変数を取り込み、ルール内で活用することができます。
8. 分析および経営情報(MI)。
当社のダッシュボードでは、ルールのヒット率、適合率、再現率など、幅広い分析指標を提供します。
しかし時には、クライアントは自社のデータと当社のルール評価結果を結合して、より深い分析を行いたいと考えることがあります。そうした作業を容易にするために、当社ではルール評価のあらゆるコンテキストと履歴を含むデータウェアハウスサービスも提供しています。
9. ネストされたルール
ほとんどのルールエンジンでは、演算子として AND しか利用できません。私たちのシステムでは、1つのルールの中で AND と OR の両方を利用できます。また、複数階層のネストで AND と OR を組み合わせることができるため、より複雑なルールを作成できます
10. Jaro-Winkler のような高度な文字列クエリ。
「contains」や「not contains」のような組み込み関数を使うことで、開発者やアナリストの作業時間を何時間分も節約できます。2つの文字列の類似度を測定する Jaro-Winkler のような高度な検索機能も、ルールビルダーで利用可能です。最も高度なユーザーは、私たちが提供する多様なツールを駆使して、非常に洗練されたルールセットを作成しています。

4. すべてのルールエンジンが同じように優れているわけではない
ルールエンジンには、最大限の柔軟性と高い処理能力を備えつつ、導入や利用開始が容易であることが求められます。最近、あるエンタープライズのお客様から次のようなお話を伺いました。

私たちにとってルールエンジンは、不正対策チームのパズルを構成する一要素にすぎませんが、その中核をなす存在でもあります。
すべてのルールエンジンが同じように優れているわけではありません。ウェアハウスの活用や独自データの持ち込み、バッチルール、スコアサム、シャドウモードといった柔軟性が加わることで、フロードオペレーションチームはまさに必要なものを手に入れられます。
不正対策チームによるものです。
不正対策チーム向け 🐟


