Oracle Advanced Analytic Option 12c を使用した不正と異常の検出 Sr. Director Product Management, Data Mining and Advanced Analytics Charlie Berger charlie.berger@oracle.com www.twitter.com/charliedatamine 1
医師 看護師 役員によるメディケアの不正行為 CNN International CNN Justice Producer Terry Frieden 2011 年 2 月 17 日午後 5 時 15 分 ( 東部標準時 ) 連邦当局は 100 名以上の医師 看護師 医療保険担当役員を告発 逮捕 米国史上最大の医療不正事件 合計 2 億 2500 万ドルにのぼる 横領を目的としたメディケアへの不正請求 2008 年から 2010 年までの医療保険の不正 悪用防止プログラムに対する連邦政府の投資対効果は 1 ドルあたり平均 6.80 ドルに上ります ( 保健福祉長官 Kathleen Sebelius) 2
全米公認不正検査士協会不正を検出するための 20 箇条 1. 普通ではない行動犯罪者がしばしば見せる変わった行動は 全体としてとらえると強力な不正の兆候になる 発覚を恐れて長期休暇や病気による休暇を取得しない者もいれば 仕事が多すぎても断らない者もいるだろう その他の兆候には 飲酒や喫煙 自己防衛の増加 異常な怒りっぽさと疑い深さなどがある 2. 不満頻繁に不満の声が聞こえる場合 これも不正行為の進行の現れと言える 不満は不正を引き起こす最大の原因の 1 つとして知られており 深刻に受け止める必要がある 不満を言う者の動機は疑わしいことが多いが 一般に その主張は詳しい調査に値する 3. 確認不可能な金銭銀行勘定調整で突合せに含まれない預金や小切手は横領につながる恐れがある 確認できない預金は犯罪者が資金を持って逃亡したことを意味する可能性があり 所在不明の小切手は偽の支払い先に支払われた可能性がある 4. 過剰な取消し販売伝票の取消しは 販売が達成されたにもかかわらず 支払い金が犯罪者に流用され 横領を隠すために伝票が取り消されたことを示す場合がある 5. 文書の紛失所在の確認できない文書は不正のサインになりうる 文書が置き間違えられた可能性もあるが 監査人はなぜ文書が紛失しており 必要な項目を見つけるためにどのような手段が取られたかついての説明を受ける必要がある 監査人は問題の存在を確認する前に 代替項目を選んだり 被監査者に選ばせたりすることが多い 6. 過剰な貸方伝票過剰な取消しと同様に このテクニックも現金の横領を隠すために使用される 偽の顧客宛てに貸方伝票を書き 現金を抜き取ることで合計現金残高のバランスを取る 3 http://www.fraudiscovery.com/detect.html http://www.auditnet.org/testing_20_ways.htm
実際の不正例クレジットカード明細 不正を見つけられますか? May 22 1:14 PM FOOD Monaco Café $127.38 May 22 7:32 PM WINE Wine Bistro $28.00 ガソリンスタンド? June 14 2:05 PM MISC Mobil Mart $75.00 June 14 2:06 PM MISC Mobil Mart $75.00 June 15 11:48 AM MISC Mobil Mart $75.00 June 15 11:49 AM MISC Mobil Mart $75.00 May 28 6:31 PM WINE Acton Shop $31.00 May 29 8:39 PM FOOD Crossroads $128.14 June 16 11:48 AM MISC Mobil Mart $75.00 June 16 11:49 AM MISC Mobil Mart $75.00 すべて75ドル? モナコ? 75 ドルが 2 回? 4
Turkcell 不正通信との闘い 目標 プリペイド カードの不正使用 - 数百万ドル / 年 極めて高速に膨大なデータを選別 不正対策にはスピードが重要 ソリューション 1 日あたり100 億の通話記録レコードの監視 1PBの準備のためにSQLを利用 低速なデータ移動プロセスのため TurkcellのITは DB 内モデルを構築およびデプロイ Exadata 上のOracle Advanced Analyticsによる最高のスピード アナリストはほぼ即時に不正パターンを検出可能 Turkcell は Oracle Exadata 上で 100 テラバイトの圧縮データ ( 圧縮していない状態では 1 ペタバイトの生データ ) を管理しています Oracle Advanced Analytics オプションのコンポーネントである Oracle Data Mining を利用することで 私たちはその他のどのツールよりも簡単かつ高速に大量の顧客データと通話記録レコードを分析し 不正な電話利用を素早く検出して対抗策を講じることができます Turkcell İletişim Hizmetleri A.Ş マネージャー Hasan Tonguç Yılmaz Oracle Advanced Analytics データベース内の不正モデル Exadata 5
オラクルのビッグ データ プラットフォーム Oracle Big Data Appliance Hadoop R NoSQL を使用した処理向けに最適化 Oracle Big Data Connectors Oracle Exadata DW/OLTP 向けに最適化された " 記録システム " Oracle Exalytics 分析およびインメモリ ワークロード向けに最適化 Hadoop オープンソース R Oracle NoSQL Database アプリケーション Oracle Big Data Connectors Oracle Data Integrator Oracle Advanced Analytics データウェアハウス Oracle Database データベース内分析 オラクルのエンタープライズ パフォーマンス管理 オラクルのビジネス インテリジェンス アプリケーションオラクルのビジネス インテリジェンス ツール Oracle Endeca Information Discovery ストリーム取得体系化検出と分析
Oracle Advanced Analytics スケーラブルな全社的予測分析をもっとも迅速に提供する手段 おもな機能 データベース内のデータ マイニング アルゴリズムとオープンソースR アルゴリズム SQL PL/SQL R 言語 スケーラブルな並列データベース内実行 ワークフロー GUIとIDE 統合データベース コンポーネント エンタープライズ分析アプリケーションの実現 7
Oracle Advanced Analytics データベース内の幅広いデータ マイニング機能と統計機能 データの理解と視覚化 サマリー統計と記述的な統計 ヒストグラム 散布図 箱ひげ図 棒グラフ R グラフィック :3D プロット リンク プロット R 固有のグラフ タイプ クロス集計 相関テスト (t 検定 ピアソン ANOVA) 一部の Base SAS の同等機能 データの選択 準備 変換 結合 表 ビュー データ選択 データ フィルタ SQL 時間枠 複数スキーマ サンプリング手法 再コーディング 欠落値 集計 空間データ R から SQL への透過層とプッシュ ダウン 分類モデル ロジスティック回帰 (GLM) Naive Bayes 決定木 サポート ベクター マシン (SVM) ニューラル ネットワーク (NN) 回帰モデル 重回帰 (GLM) サポート ベクター マシン クラスタリング 階層型 K-means 法 直交パーティショニング EM アルゴリズム 異常検出 特殊ケースのサポート ベクター マシン (1 クラス SVM) 関連性 / マーケットバスケット分析 アプリオリ アルゴリズム 特徴選択と特徴削減 属性の重要度 ( 最小記述長 ) 主成分分析 (PCA) 非負値行列因子分解 特異ベクトル分解 テキスト マイニング ほとんどの Oracle Advanced Analytics アルゴリズムで非構造化データ ( 顧客のコメント 電子メール 要約など ) をサポート トランザクション データ ほとんどの Oracle Advanced Analytics アルゴリズムでトランザクション データ ( 購入トランザクション 経時反復測定など ) をサポート R パッケージ - オープンソース実行機能 豊富な R の CRAN パッケージを R から SQL への透過層や組込み R モードを介してデータベース プロセスの一部として実行可能 8
金融部門 / 会計 / 経費異常検出 単純な不正検出手法 :1 クラス SVM より高度な不正検出手法 : クラスタリング +1 クラス SVM 9
不正予測デモ 自動化されたデータベース内分析手法 drop table CLAIMS_SET; exec dbms_data_mining.drop_model('claimsmodel'); create table CLAIMS_SET (setting_name varchar2(30), setting_value varchar2(4000)); insert into CLAIMS_SET values ('ALGO_NAME','ALGO_SUPPORT_VECTOR_MACHINES'); insert into CLAIMS_SET values ('PREP_AUTO','ON'); commit; begin dbms_data_mining.create_model('claimsmodel', 'CLASSIFICATION', 'CLAIMS', 'POLICYNUMBER', null, 'CLAIMS_SET'); end; / -- Top 5 most suspicious fraud policy holder claims select * from (select POLICYNUMBER, round(prob_fraud*100,2) percent_fraud, rank() over (order by prob_fraud desc) rnk from (select POLICYNUMBER, prediction_probability(claimsmodel, '0' using *) prob_fraud from CLAIMS where PASTNUMBEROFCLAIMS in ('2to4', 'morethan4'))) where rnk <= 5 order by percent_fraud desc; POLICYNUMBER PERCENT_FRAUD RNK ------------ ------------- ---------- 6532 64.78 1 2749 64.17 2 3440 63.22 3 654 63.1 4 12650 62.36 5 自動化された月次 " アプリケーション 次を追加するだけです Create View CLAIMS2_30 As Select * from CLAIMS2 Where mydate > SYSDATE 30 10
Oracle Advanced Analytics を選ぶ理由 差別化機能 エンタープライズ向けの予測分析アプリケーションを最短期間で提供 OBIEE と SQL 問合せを使用する任意のアプリケーションの統合 パフォーマンスとスケーラビリティ Oracle Database の性能とスケーラビリティを活用 最小限の総所有コスト 別個の分析サーバーは不要 11
実際の不正例クレジットカード明細 不正を見つけられますか? May 22 1:14 PM FOOD Monaco Café $127.38 May 22 7:32 PM WINE Wine Bistro $28.00 ガソリンスタンド? June 14 2:05 PM MISC Mobil Mart $75.00 June 14 2:06 PM MISC Mobil Mart $75.00 June 15 11:48 AM MISC Mobil Mart $75.00 June 15 11:49 AM MISC Mobil Mart $75.00 May 28 6:31 PM WINE Acton Shop $31.00 May 29 8:39 PM FOOD Crossroads $128.14 June 16 11:48 AM MISC Mobil Mart $75.00 June 16 11:49 AM MISC Mobil Mart $75.00 すべて75ドル? モナコ? 75 ドルが 2 回? 12
潜在的な不正を検出するための複数のアプローチ 1. 異常検出 (1 クラス SVM) フィードバック ループを追加して徐々に入力訓練データの質を高め モデル パフォーマンスを改善 2. 分類 訓練 / 学習に使用できる不正サンプルが多い場合 (25% 以上 ) 3. クラスタリング 特定のクラスタに当てはまる確率があまり高くないか クラスタの外れ値 / 境界にあるレコードを発見 4. 3 つ目と 1 つ目の組合せ (3 の次に 1) レコードを事前にクラスタリングして " 類似 " セグメントを作成してから 各クラスタに異常検出モデルを適用 5. 専門家の集団 5 つのモデルのうちの 3 つが 40% 以上の確率で異常を予測しているか または N 個のモデルのうち 1 つが異常なレコードとみなしている 13
課題 : 異常の発見 複数の属性を考慮 1 つだけでは " 正常 " に見えるかもしれない まとめてとらえることで レコードの異常が明らかになる " 異なる " 要素を探す X 1 X 2 X 1 X 2 X 3 X 3 X 4 X 4 14
Oracle Advanced Analytics SQL データ マイニング アルゴリズム R 分類 ロジスティック回帰 (GLM) 決定木 Naïve Bayes サポート ベクター マシン 従来の統計手法 " ルール " と透明性に対して一般的 簡単かつ高速で高いパフォーマンス 新しく多用途で高いパフォーマンス 回帰 重回帰 (GLM) サポート ベクター マシン 従来の統計手法 新しく多用途で高いパフォーマンス 異常検出 1 クラスのサポート ベクター マシン 対象分野のサンプルが足りない場合の異常検出と不正 属性の重要度 最小記述長 (MDL) 属性の削減 データ ノイズの削減 関連性ルール A1 A2 A3 A4 アプリオリ マーケットバスケット分析 リンク分析 クラスタリング 特徴抽出 A5 A6 A7 F1 F2 F3 F4 階層型 K-means 法 階層型 O-Cluster EMアルゴリズム 主成分分析 (PCA) 非負値行列因子分解 特異値分解 顧客のセグメント化 類似したレコード トランザクション クラスタの識別 特徴削減 ( 多数の入力 テキストの問題など ) 15
Oracle Advanced Analytics データベース内の幅広いデータ マイニング機能と統計機能 データの理解と視覚化 サマリー統計と説明的な統計 ヒストグラム 散布図 箱ひげ図 棒グラフ R グラフィック :3D プロット リンク プロット R 固有のグラフ タイプ クロス集計 相関テスト (t 検定 ピアソン ANOVA) 一部の Base SAS の同等機能 データの選択 準備 変換 結合 表 ビュー データ選択 データ フィルタ SQL 時間 複数スキーマ サンプリング手法 再コーディング 欠落値 集計 空間データ R から SQL への透過層とプッシュ ダウン 分類モデル ロジスティック回帰 (GLM) Naive Bayes 決定木 サポート ベクター マシン (SVM) ニューラル ネットワーク (NN) 回帰モデル 重回帰 (GLM) クラスタリング 階層型 K-means 法 直交パーティショニング EM アルゴリズム 異常検出 特殊ケースのサポート ベクター マシン (1 クラス SVM) 関連性 / マーケットバスケット分析 アプリオリ アルゴリズム 特徴選択と特徴削減 属性の重要度 ( 最小記述長 ) 主成分分析 (PCA) 非負値行列因子分解 特異ベクトル分解 テキスト マイニング ほとんどの Oracle Advanced Analytics アルゴリズムで非構造化データ ( 顧客のコメント 電子メール 要約など ) をサポート トランザクション データ ほとんどの Oracle Advanced Analytics アルゴリズムでトランザクション データ ( 購入トランザクション 経時反復測定など ) をサポート R パッケージ - オープンソース実行機能 豊富な R の CRAN パッケージを R から SQL への透過層や組込み R モードを介してデータベース プロセスの一部として実行可能 サポート ベクター マシン 16
Oracle Data Miner の GUI SQL Developer 4.0の拡張機能 :OTNから無料でダウンロード可能 使いやすさ Oracle Data Miner の GUI を使用したデータ分析 " ワークフロー " パラダイム 高性能 さまざまなアルゴリズムとデータ変換 100% データベース内で実行 モデルの構築 評価 適用 自動化とデプロイ デプロイ用 SQL スクリプトの生成 分析ワークフローの共有 17
違法な税申告に対する監査選別 シンプルな Oracle Data Mining の予測モデル 2011 年の履歴データに基づき 決定木を使用して不適合な納税申告を分類 ( はい / いいえ ) 18
違法な税申告に対する監査選別 デモに使用した納税データ 19
違法な税申告に対する監査選別 法律違反の可能性のある税申告パターンを発見 20
不正および違法の例法律違反の可能性に基づく経費の識別とドリルスルー Oracle Advanced Analytics データ マイニング モデルが 経費報告の不正の可能性とその他の重要な兆候を提供 21
Oracle Advanced Analytics R Enterprise コンピューティング エンジン 1 2 3 R R エンジン その他の R パッケージ Oracle R Enterprise パッケージ 結果 SQL Oracle Database R オープンソース ユーザー表?x R 結果 R エンジン その他の R パッケージ Oracle R Enterprise パッケージ デスクトップ上のユーザー R エンジン スケーラブルなデータベース内実行のため R-SQL 透過フレームワークが R ファンクションをインターセプト データ変換 統計ファンクション 高度な分析に対応したファンクション インターセプタ 標準 R と同様のフロー制御とインタラクティブな結果のグラフィカル表示 R スクリプト全体をデータベースによる実行向けに送信 データベース コンピューティング エンジン 大規模データセットに対応したスケーラビリティ 表 ビュー 外部表 データへの DB リンクを介したアクセス データベースの SQL 並列処理を利用 新規および既存のデータベース内統計機能とデータ マイニング機能を利用 Oracle DB によって生成された R エンジン データベースは複数の R エンジンを生成して データベース管理の並列処理を実行可能 生成された R エンジンへの効率的なデータ転送 マップリデュース方式のアルゴリズムとアプリケーションをエミュレート R スクリプトの " 完全自動 " 実行を実現 22
Oracle Adaptive Access Manager 信頼を前提とした検証 グローバルな ODM クラスタリング モデルが典型的な行動 / パターン / プロファイルを識別 各ユーザーを複数のクラスタ ノードに割り当てることで 全体で 85% の典型的な行動 / プロファイルを取得 ODM モデルのリアルタイム " スコアリング " により 複雑な Oracle Advanced Analytics リアルタイム セキュリティを強化 23
金融部門 / 会計 / 経費 Oracle Spend Classification: 購買カテゴリに対して支出を自動的に分類 経費項目の説明に対するテキスト マイニング 誤って分類された可能性のある経費の " デフラグ " " フラット パネル モニタ " = " 食事 " 24-24-
25