第91章 クレジットカード詐欺紛争のユースケース

金融業界は、いくつかの分野で意思決定に Pragmatic AI を使用しています。その 1 つは、クレジットカードの請求に関する紛争です。顧客がクレジットカードの請求書に誤った、または認識していない請求を特定した場合、顧客はその請求に異議を申し立てることができます。クレジットカード詐欺の検出に人間の介入が必要な場合もありますが、報告されたクレジットカード詐欺の大部分は、Pragmatic AI で完全にまたは部分的に解決できます。

このユースケースは、架空の Fortress Bank、銀行の顧客である Joe、およびビジネスプロセス管理 (BPM) 開発者の Michelle に関するものです。最初に、銀行が Red Hat Process Automation Manager デジタル意思決定を通じて AI を最初にどのように使用したかを見てから、Michelle が機械学習から作成された予測モデルマークアップ言語 (PMML) モデルで意思決定モデルをどのように強化したかを見ていきます。

Tensorflow™ および R™ などのマシンラーニングモデルは予測可能なモデルを生成します。この予測モデルは、PMML などのオープン標準で保存できます。これにより、Red Hat Process Automation Manager または PMML 標準をサポートする他の製品でモデルを使用できます。

Red Hat Process Automation Manager および Red Hat OpenShift Container Platform

Fortress Bank は、Red Hat OpenShift Container Platform で Red Hat Process Automation Manager を使用して、Fortress Bank デシジョンサービスを開発し、実行します。Red Hat OpenShift Container Platform は、コンテナー化されたアプリケーションを開発し、実行するためのクラウドプラットフォームです。これは、アプリケーションとそれらをサポートするデータセンターを、ほんの数台のマシンとアプリケーションから、数百万のクライアントにサービスを提供する数千のマシンに拡張できるように設計されています。Red Hat Process Automation Manager は、クラウドネイティブのビジネス自動化アプリケーションとマイクロサービスを作成するための Red Hat ミドルウェアプラットフォームです。これにより、企業のビジネスユーザーと IT ユーザーが、ビジネスプロセスおよび決定を文書化、シミュレート、管理、自動化、およびモニターできます。Business Central は Red Hat Process Automation Manager ダッシュボードです。

Red Hat Process AutomationManager でのクレジットカード紛争のデジタル決定

Joe は Fortress Bank の顧客です。毎月、請求書を支払う前に彼は Fortress Bank の Web サイトにログインして、請求書のすべての請求を確認します。今月、Joe が認識しているトランザクションを確認しましたが、金額が正しくありません。ベンダーは彼に 4.50 ドルではなく 44.50 ドルを請求しました。Joe は誤ったアイテムを含む行を選択し、Dispute をクリックします。

transaction history

このアクションは、紛争に関する一連の質問を開始します。

  1. これらのトランザクションを破棄する理由
  2. カードはずっと手許にあったか
  3. この異議申し立てについて他に何か伝えたいことはあるか

Joe が質問に回答すると、この Web サイトではインシデント番号 000004 が提供されます。

Fortress Bank は、人的調査なしに係争金額を払い戻すか、請求を手動で調査するかを決定する必要があります。人的調査にはより多くのリソースが必要であるため、異議が申し立てられた額の自動処理により、銀行の人的リソースのコストが削減されます。ただし、銀行が異議が申し立てられた金額をすべて自動的に受け入れる場合は、不正請求に対して支払われる金額が原因で、最終的に銀行が負担するコストが高くなります。誰かまたは何かが調査するかどうかを決定しなければなりません。

Credit Card Dispute プロジェクト

この決定を容易にするために、Fortress Bank は Business Central を使用して、その紛争プロセスをモデル化する fraudDispute ビジネスプロセスが含まれる CreditCardDisputeCase プロジェクトを作成します。

casefile

プロセス変数

Joe が論争を報告したとき、fraudDispute プロセスのインスタンスがケース ID FR-00000004 で作成されました。Process Variables タブには、CaseIDcaseFile_cardholderRiskRating (クレジットカード所有者のリスク評価)、および caseFile_disputeRiskRating (この異議申し立てのリスク評価) など、Joe のアカウントに固有のいくつかの変数と値が含まれています。

process variables 3

この表には、値が truecasefile_automated 変数も含まれています。これは、異議申し立てが自動的に処理される基準を満たしていることを示しています。

プロセスダイアグラム

Diagram タブには BPMN ダイアグラムが含まれており、自動的に処理されるか手動で処理するかを決定する際に銀行が使用するデシジョンパスが表示されます。

bpmn

Decision Task タスクには、caseFile_cardholderRiskRating 変数および caseFile_disputeRiskRating 変数の値に基づいて、この異議申し立てが自動的に Joe のアカウントに請求される (Milestone 1) か、さらなる調査が必要 (Milestone 2) かを決定するルールが含まれています。Joe の異議申し立てが自動承認の基準に一致する場合は、Milestone 1 が実行され、異議申し立てられた金額が彼の口座に請求されます。このサブプロセスは非常に無駄がなく効率的です。Joe の異議申し立てが手動評価を必要とする場合は、Milestone 2 のサブプロセスが開始します。これには、人間のアクターの関与が必要であり、処理により多くのリソースが必要になります。

この場合、Decision Task タスクは、Joe の異議申し立てを自動的に処理することを決定したため、Milestone 1: Automatic Chargeback に従いました。

DMN モデル

以下の簡単な DMN モデルは、fraudDispute Decision Task タスクの一部であるデシジョンプロセスを示しています。

simple dmn

入力変数は、Age (カード所有者の年齢)、Incident Count (このカード所有者の以前の異議申し立ての数)、Cardholder Status (スタンダート、シルバー、ゴールド、プラチナ)、および Fraud Amount です。

Red Hat Process Automation Manager は、デシジョンテーブルで入力変数を使用して、デジタルデシジョンをサポートします。デシジョンテーブルは、人間のビジネスアナリストが作成します。アナリストは、利害関係者がレビューおよび承認するドラフトビジネス要件分析ドキュメントまたはスプレッドシートを作成します。プロジェクトデザイナーは、Business Central DMN エディターを使用して、分析ドキュメントのデータを DMN モデルに転送します。Fortress Bank の Credit Card Dispute プロセスには、Cardholder Risk Rating テーブルと Dispute Risk Rating テーブルの 2 つのデシジョンテーブルがあります。Cardholder Risk Rating テーブルには、Incident CountCardholder Status、および Age の 3 つの入力変数が含まれます。Dispute Risk Rating テーブルには Cardholder Status 入力変数が含まれます。この表は、カード所有者のステータスと異議申し立ての金額に基づいて、異議申し立てのリスクを計算します。

riskrating

  • カード所有者のリスク評価

    Joe は、25 歳以上の Silver カードホルダーです。彼は以前に異議申し立てを 2 回以上行ったため、リスク評価は 2 です。Joe がこれまで異議申し立てを行わなかった場合、彼のリスク評価は 0 になります。

  • 異議申し立てリスク評価

    Joe はシルバーカード所有者であり、異議申し立て額は 40 ドルであるため、Dispute Risk Rating テーブルでの Joe の格付けは 1 になります。異議申し立てのあった金額が 140 ドルであれば、彼のリスク評価は 2 になります。

DMN モデルで Process Automatically の最終決定の一部として実装された以下の式は、異議申し立てが行われた額を自動的に返還する (Milestone 1) か、より詳細な調査が必要である (Milestone 2) かどうかを決定するために、この 2 つのデシジョンテーブルから得たスコアを使用します。

(Cardholder Risk Rating + Dispute Risk Rating) < 5

Joe の全体的なリスクスコアが 5 未満の場合、異議申し立てが行われた金額は自動的に返金されます (Milestone 1)。全体のスコアが 5 以上の場合、彼の異議申し立ては手動で処理されます (Milestone 2)。

Red Hat Process Automation Manager への機械学習の追加

Fortress Bank には、過去の取引や異議申し立ての履歴など、顧客に関する履歴データがあるため、銀行はそのデータを機械学習で使用して、DMN モデルの意思決定タスクで使用できる予測モデルを作成できます。これにより、ビジネスアナリストが作成したデシジョンテーブルと比較すると、リスクの評価がより正確になります。

Fortress Bank には、リスク予測をより正確に評価するモデルを含む 2 セットの PMML ファイルがあります。1 つのセットは線形回帰アルゴリズムに基づいており、もう 1 つのセットはランダムフォレストアルゴリズムに基づいています。

pmml models

線形回帰は、統計と機械学習の両方で最も広く使用されているアルゴリズムの 1 つです。これは、数値の入力値と出力値のセットを組み合わせた線形方程式を使用します。ランダムフォレストは、多くのデシジョンツリーを入力として使用し、予測モデルを作成します。

PMML ファイルの追加

Michelle は、PMML ファイル dispute_risk_linear_regression を自分のプロジェクトにインポートします。彼女は、Cardholder Risk Model ビジネスモデルナレッジノードを DMN モデルに追加し、PMML ファイル dispute_risk_linear_regression をノードに関連付けます。Red Hat Process Automation Manager は PMML ファイルを分析し、入力パラメーターをノードに追加します。Michelle は、Cardholder Risk Model ノードを Dispute Risk Rating に関連付けます。

次に、PMML モデル credit_card_holder_risk_linear_regression をこのプロジェクトに追加し、Dispute Risk Model モードの DMN ファイルを作成し、PMML ファイル credit_card_holder_risk_linear_regression を作成してこのノードに関連付けます。Red Hat Process Automation Manager は PMML ファイルを分析し、入力パラメーターをノードに追加します。

次のイメージは、Michelle の完成した DMN モデルです。これは、分析デシジョンテーブルを PMML ファイルの予測モデルに置き換えます。

DMN PMML 2

Michelle は、BPMN モデル fraudDispute に戻り、追加した PMML ファイルでモデルを更新します。その後、プロジェクトを再デプロイします。

スコアの精度の向上

Michelle が PMML モデルを使用して Fortress Bank プロジェクトを再デプロイしたこの新しいシナリオでは、Joe が Fortress Bank アカウントにログインし、同じトランザクションを正しくないと報告するとどうなるかを確認できます。Business Central で、Michelle は Process Instances ウィンドウに移動するように促され、新しい紛争インスタンスを確認します。Michelle は、Process Variables タブで、cardHolderRiskRating の値および disputeRiskRating の値を確認します。モデルは、PMML ファイルを使用するようになったため、変更しています。これにより、履歴データに基づく機械学習モデルを利用することで、リスクをより正確に予測できます。同時に、銀行のポリシーは引き続き DMN 意思決定モデルによって実施されます。リスク予測子は指定されたしきい値を下回っており、この異議申し立てを自動的に処理できます。

process variables pmml

モニターリング

最後に、Fortress Bank は、Prometheus を使用してクレジットカードの異議申し立てに関するメトリックスを収集し、Grafana を使用してそのメトリックスをリアルタイムで視覚化します。モニターの上のセクションには、ビジネスメトリックの主要業績評価指標 (KPI) が表示され、下のセクションには、運用メトリックの KPI が表示されます。

grafana

91.1. PMML モデルと DMN モデルを使用して、クレジットカード取引の異議申し立てを解決

この例は、Red Hat Process Automation Manager を使用して、PMML モデルを使用してクレジットカード取引の異議申し立てを解決する DMN モデルを作成する方法を示しています。顧客がクレジットカード取引に異議を唱えると、システムは取引を自動的に処理するかどうかを決定します。

前提条件

  • Red Hat Process Automation Manager が使用可能であり、次の JAR ファイルが Red Hat Process Automation Manager の ~/kie-server.war/WEB-INF/lib ディレクトリーおよび ~/business-central.war/WEB-INF/lib ディレクトリーに追加されている。

    • kie-dmn-jpmml-7.48.0.Final-redhat-00004.jar

      このファイルは、Red Hat カスタマーポータルの Software Downloads ページから利用できる Red Hat Decision Manager 7.10 Maven リポジトリーディストリビューションで利用できます (ログインが必要です)。このファイルのグループ ID、アーティファクト ID、およびバージョン (GAV) 識別子は、org.kie:kie-dmn-jpmml:7.48.0.Final-redhat-00004 です。詳細は、DMN モデルを使用したデシジョンサービスの作成 の Business Central の DMN ファイルへの PMML モデルの追加セクションを参照してください。

    • JPMML Evaluator 1.5.1 JAR ファイル
    • JPMML Evaluator Extensions 1.5.1 JAR ファイル

      これらのファイルは、KIE Server と Business Central で JPMML 評価を有効にするのに必要です。

      重要

      Red Hat は、Red Hat Process Automation Manager で PMML を実行するため、Java Evaluator API for PMML (JPMML) との統合をサポートしています。しかし、Red Hat は JPMML ライブラリーを直接サポートしません。Red Hat Process Automation Manager ディストリビューションに JPMML ライブラリーを含む場合は、JPMML の Openscoring.io ライセンス条件を確認してください。

手順

  1. 「クレジットカード取引紛争の例 PMML ファイル」 の XML 例の内容で dtree_risk_predictor.pmml ファイルを作成します。
  2. Business Central で Credit Card Dispute プロジェクトを作成します。

    1. Menu → Design → Projects に移動します。
    2. Add Project をクリックします。
    3. Name ボックスに Credit Card Dispute と入力し、Add をクリックします。
  3. Credit Card Dispute プロジェクトの Assets ウィンドウで、dtree_risk_predictor.pmml ファイルを com パッケージにインポートします。

    import pmml

    1. Import Asset をクリックします。
    2. Create new Import Asset ダイアログで、Name ボックスに dtree_risk_predictor と入力し、Package メニューから com を選択し、dtree_risk_predictor.pmml ファイルを選択して OK をクリックします。

      dtree_risk_predictor.pmml ファイルの内容が Overview ウィンドウに表示されます。

  4. com パッケージで DMN モデル Dispute Transaction Check を作成します。

    dmn asset

    1. プロジェクトウィンドウに戻り、ブレッドクラムの Credit Card Dispute をクリックします。
    2. Add Asset をクリックします。
    3. アセットライブラリーで DMN をクリックします。
    4. Create new DMN ダイアログで、Name ボックスに Dispute Transaction Check と入力し、Package メニューから com を選択して OK をクリックします。

      DMN モデル Dispute Transaction Check で DMN エディターが開きます。

  5. tTransaction カスタムデータタイプを作成します。

    ttransactions

    1. Data Types タブをクリックします。
    2. Add a custom Data Type をクリックします。
    3. Name ボックスに、tTransaction を入力します。
    4. Type メニューから Structure を選択します。
    5. データ型を作成するには、チェックマークをクリックします。

      tTransaction カスタムデータタイプは、1 つの変数行で表示されます。

    6. 変数行の Name フィールドに transaction_amount と入力し、Type メニューから Number を選択してからチェックマークをクリックします。
    7. 新しい変数行を追加するには、transaction_amount 行のプラス記号をクリックします。新しい行が表示されます。
    8. Name フィールドに cardholder_identifier と入力し、Type メニューから Number を選択してからチェックマークをクリックします。
  6. Risk Predictor dtree_risk_predictor.pmml モデルを追加します。

    include model

    1. DMN エディターの Included Models ウィンドウで Include Model をクリックします。
    2. Include Model ダイアログで、Models メニューから dtree_risk_predictor.pmml を選択します。
    3. Provide a unique name ボックスに Risk Predictor と入力し、OK をクリックします。
  7. Risk Predictor モデルおよび DecisionTreeClassifier モデルで、Business Knowledge Model (BKM) ノード Risk Predictor を作成します。

    risk predictor function

    1. DMN エディターの Model ウィンドウで、BKM ノードを DMN エディターパレットにドラッグします。

      bkm

    2. Risk Predictor ノードの名前を変更します。
    3. ノードの左側にあるごみ箱の配下にある編集アイコンをクリックします。

      risk predictor node

    4. Risk Predictor ボックスで F をクリックし、Select Function Kind メニューから PMML を選択します。FP に変わります。
    5. First select PMML document ボックスをダブルクリックして、Risk Predictor を選択します。
    6. Second select PMML model ボックスをダブルクリックして、DecisionTreeClassifier を選択します。
    7. DMN エディターパレットに戻るには、Back to Dispute Transaction Check をクリックします。
  8. データ型 tTransactionTransaction 入力データノードを作成します。

    risk transaction

    1. DMN エディターの Model ウィンドウで、入力データノードを DMN エディターパレットにドラッグします。

      input node

    2. トランザクション ノードの名前を変更します。
    3. ノードを選択して、ウィンドウの右上隅にあるプロパティーの鉛筆アイコンをクリックします。
    4. Properties パネルで Information Item → Data type → tTransaction を選択し、パネルを閉じます。
  9. Transaction Dispute Risk デシジョンノードを作成し、データ入力用の Transaction ノードと、関数の Risk Predictor ノードを追加します。

    model3

    1. DMN エディターの Model ウィンドウで、デシジョンデータノードを DMN エディターパレットにドラッグします。

      decision node

    2. ノードの名前を Transaction Dispute Risk に変更します。
    3. Risk Predictor ノードを選択し、ノードの右上にある矢印を Transaction Dispute Risk ノードをドラッグします。
    4. Transaction ノードを選択し、ノードの右上にある矢印を Transaction Dispute Risk にドラッグします。
  10. Transaction Dispute Risk ノードで、Risk predictor 予測関数を作成します。

    transaction dispute risk

    1. Transaction Dispute Risk ノードを選択し、ノードの左側にある編集アイコンをクリックします。
    2. Select expression をクリックし、メニューから Invocation を選択します。
    3. Enter function ボックスに Risk Predictor と入力します。
    4. P1 をクリックします。
    5. Edit Parameter ダイアログボックスで、Name ボックスに amount と入力し、Data Type メニューから number を選択して、Enter キーを押します。
    6. Select expression をクリックし、メニューから Literal expression を選択します。
    7. amount の横にあるボックスに Transaction.transaction_amount を入力します。
    8. 1 を右クリックして、Insert below を選択します。パラメーターの Edit Parameter が開きます。
    9. Name ボックスに holder_index と入力し、Data Type メニューから number を選択し、Enter キーを押します。
    10. 2Select expression をクリックし、メニューから Literal expression を選択します。
    11. amount の横にあるボックスに Transaction.cardholder_identifier と入力します。
  11. データ型 number で、入力データノード Risk Treshold を作成します。

    model4

    1. DMN エディターの Model ウィンドウで、入力データノードを DMN エディターパレットにドラッグします。
    2. Risk Threshold ノードの名前を変更します。
    3. ノードを選択して、ウィンドウの右上隅にあるプロパティーの鉛筆アイコンをクリックします。
    4. Properties パネルで Information Item → Data type → number の順に選択し、パネルを閉じます。
  12. Can be automatically processed? デシジョンノードは、Transaction Dispute Risk ノードおよび Risk threshold ノードの入力として取ります。

    model5

    1. デシジョンノードを DMN エディターパレットにドラッグし、名前を Can be automatically processed? に変更します。
    2. ノードを選択し、ノードの左上にある編集アイコンをクリックします。
    3. Select expression をクリックしてから、メニューから Literal expression を選択します。
    4. ボックスに Transaction Dispute Risk.predicted_dispute_risk < Risk Threshold と入力します。
    5. Transaction Dispute Risk ノードを選択し、ノードの左上にある矢印を Can be automatically processed? にドラッグします。
    6. Risk Threshold ノードを選択し、ノードの左上にある矢印を Can be automatically processed? ノードにドラッグします。
  13. モデルを保存し、プロジェクトをビルドします。

    1. DMN エディターで Save をクリックします。
    2. 必要な場合は、表示されるエラーを修正します。
    3. プロジェクトウィンドウに戻り、ブレッドクラムの Credit Card Dispute をクリックします。
    4. Build をクリックします。プロジェクトが正常にビルドされるはずです。
  14. テストシナリオを追加して実行します。 AIScenarioSimulations

    1. Add Asset をクリックします。
    2. Test Scenario を選択します。
    3. Create new Test Scenario ダイアログで、Test Dispute Transaction Check の名前を入力し、Package メニューから com を選択して DMN を選択します。
    4. Choose a DMN asset メニューから Dispute Transaction Check.dmn を選択し、OK をクリックします。テスト用テンプレートがビルドされます。
    5. 以下の値を入力して Save をクリックします。

      注記

      Transaction Dispute risk 列に値を追加しないでください。この値は、テストシナリオにより決定されます。

      表91.1 テストシナリオパラメーター

      説明リスクのしきい値cardholder_identifiertransaction_amount自動的に処理可能か

      リスクしきい値 5、自動的に処理される

      5

      1234

      1000

      true

      リスクしきい値 4、合計 = 1000、未処理

      4

      1234

      1000

      false

      リスクしきい値 4、合計 = 180、自動処理

      4

      1234

      180

      true

      リスクしきい値 1、合計 = 1、未処理

      1

      1234

      1

      false

    6. テストを実行するには、Validate の右側にある Play ボタンをクリックします。結果は、画面の右側の Test Report パネルに表示されます。