機械学習プロダクト開発をリードしています。エンジニアであり、ハーバード大学で応用数学の講師および博士研究員でした。数学の博士号を取得しています。事業、オンデマンドマーケットプレイス、非営利団体および各種プラットフォームのオンライン事業において使われています。オンライン決済における大きな問題の一つに不正使用があります(残念ながら頻繁に発生しています)。対面で決済を行うビジネスと比べ、インターネット上の決済は不正な購入に対し脆弱になりがちです。言え、オンラインでの購入者が不正使用に長けている訳ではありません。その結果として多くの企業が不正使用を分析する専用のチームを構え、システム開発を余儀なくされています。皆さんが不正使用対策ではなく、サービス開発と顧客満足度向上に注力していただきたいと考えています。いう、不正使用の検出および防止に向けた一連のツール群を開発しました。周辺ツールが皆さんのビジネスの収益をいかに最適化できるのかについても説明します。オンラインにおける不正使用の性質とその被害について触れておきたいと思います。初歩的なオンラインの不正決済は他人のクレジットカード番号を盗んだ上で利用するというものです。この不正使用を行う人は高価な商品(時計など)を10万円で購入し、オークションサイトなどで2万円程度で転売しているかもしれません。本当のカード保有者は後になって不正な決済を発見し、銀行に対してクレームや訴訟を起こすでしょう。これをチャージバックと言います。クレームは様々ありますが本ガイドでは不正使用を事由として争われる決済を取り上げます。取引が不正であったと認定された場合、カード保有者は保護されますが、事業者は不正使用によって発生した費用に対して責任を負います。この費用は販売された商品代金のみならず(事業者が時計を仕入れるのにいくらかかったかにも関わりなく)、クレームに費やされた追加手数料なども含まれます。不正使用を行う人たちの標的にされた事業は、当然財政にも大きな影響が出てきます。不正使用が事業に与える影響としては偽陰性(訴訟発生以前に防げなかった、特定できなかった不正使用)のみに限りません。偽陽性(正当ながら不正使用検出システムがブロックしてしまった取引)の費用も高いのです。買い物しようとした際にブロックされてしまったとしたら、事業は利益面および評判の面でも悪影響を受けます。後ほど詳しく説明しますが、偽陰性と偽陽性はトレードオフの関係にあります。前者を減らすためには後者の増加を受け入れる必要があります(逆もそうです)。偽陰性は一定の費用を発生させますが(販売された商品の費用やクレーム対応費用など)、偽陽性も同じです(販売された商品に係るマージン)。マージンが小さい事業では偽陰性は高く付きますが、偽陽性はそれほどでもありません。そのため潜在的な不正使用の防止を目指す場合は、偽陽性の増加に繋がったとしても網を大きく張ろうとします。マージンが大きい事業ではその逆です。このトレードオフは事業側で自由に設定できるものではないことを押さえておく必要があります。言ったカードネットワークはカード決済自体できなくするかもしれません。この不正使用率の厳密な定義や、深刻な措置がとられるかどうかはカード会社によって異なります。満たない時点では、事業側で自らのバランス感覚で不正使用とのトレードオフを行うしかありません。超えてしまうようなことがあれば、あらゆる手立てで不正使用率を下げるほかなくなります。それが経済合理性のない偽陽性率になったとしてもです。しなければ企業は決済手段の喪失という事業存続に関わるリスクを負うことになります。機械学習チームにおける長年のデータサイエンスやインフラ研究の成果です。アルゴリズムはすべての取引に対して不正使用リスクを評価し、適切な措置を取るところにあります。デフォルトでは高リスクの決済がブロックされるようになっていますが、ユーザが具体的に設定できるようになっています。組み込まれており、すぐに利用できます。一般的にこの手の不正使用を防止するサービスは事前または継続的に費用が発生するものです。利用者側において、決済データなどを送信し、査定情報を処理するための開発が発生します。機械学習によって不正使用かもしれないと判断された取引については数週間かけて決済が本当に不正であるかどうかの判断(ラベリング)をしなければなりません。してようやく不正使用検出システムが効果を発揮できるようになるのです。不正使用のパターンは常に変化しますので、継続的にラベリングしていかなければなりません。決済フローから直接に情報を受け取りながらカードネットワークおよびカード発行会社から取得したデータを活用していきます。10万を超える事業すべてから得た不正使用関連データを用いてシステムの改善が行われます(データの収集は自動的に行われます)。一つのカード決済から読み取れるデータとしてはカード発行国、決済を行ったIPアドレス、メールアドレスのドメインなどがあります。これらは決済が不正かどうか予測する上で重要なデータですが、最も予測に関連するのは膨大なデータから得られる行動データになります。一枚のカードがここ最近どれだけ多くの国で利用されたかは不正使用を突き止める上で重要な指標になります。ユーザ全体におけるクレジットカード決済を分析し、行動データベースを構築します。過去にカードが使われていることにより、リスク査定として十分なデータが確保できます。クレームや訴訟などに関する情報を銀行やカード会社などの金融パートナーから受け取っていることで、利用者側では継続的なラベリングが不要となっています。ラベリングは人海戦術で行われますが、その過程でラベリングを行う人のバイアスも入ってしまいます。分析者が甘かったり、逆に厳しかったりすると、不正使用検出システムのパフォーマンスに影響を及ぼす可能性があります。カード発行会社から取得した、網羅的かつ正式なクレームおよび訴訟情報に基づいて正確な不正使用情報を学習し、導入初日から機械学習による不正防止機能が使えるようになります。おける活用形態をさらに詳しく紹介します。機械学習とは、大量のデータを用いてあるデータの中にある様々な関係の符号化を行うモデルを作成する一連の技術を言います。機械学習の応用の一つに予測があります。ネットワーク上でそのカードを使った国の数)が与えられた時、ある決済が不正(True)であるか正当(False)なのかという真偽値で予測したいわけです。これから入力および出力に基づく予測をどのように行うのか紹介します。この予測問題は二種類のタスクに分割できます。クラス分類タスクでは、サンプルがあるクラスに属するのか、別なクラスに属するのか予測します(例えばある取引が不正な決済クラスなのか、正当な決済クラスに属するのか予測したい場合)。回帰タスクでは、入力と関連した数値的な出力を予測します(例えばドルを使っている新規顧客の生涯価値を予測したい場合)。クラス分類と回帰は異なる技術に見えますが、基礎的な部分で関連しています。クラス分類はあるサンプルがあるクラスに含まれる確率を予測するという回帰タスクと見なせます。いいえこの例では入力値は三つしかありませんが、実際には機械学習モデルが数百から数千の入力値を持つこともよくあります。この機械学習アルゴリズムによる出力では、次のような決定木のモデルになるかもしれません。新しい取引が行われる度にカードの発行された国や、過去にそのカードが利用された国の数、そして日本円の決済額に着目しつつ二十の質問型決定木を用いて、葉の一つに到着するまで辿るという方法があります。それぞれの葉は、決定木を下まで辿る際に通った質問と回答のペアを満たすデータセット(上記表参照)中のすべてのサンプルから成り立ちます。取引が不正である確率は、その葉の中のサンプルに含まれる不正取引をサンプル総数で割った数となります。別の言い方をすると、決定木は「この取引と類似した属性を持つデータセットに含まれる取引の内、実際に不正であった割合はどれくらいか」という質問に答えてくれるのです。機械学習の部分は決定木の構築と関連しています。どんな質問をどんな順番で行えば、これら二つのクラスを見分ける確率を最大化できるでしょうか。決定木は視覚化や推論が容易に行えますが、学習アルゴリズムは他にも数多く存在し、それぞれの方法でデータの関係性を表現しています。現在、機械学習モデルは社会に広く浸透しており、先ほどの簡単なモデルと比べて遙かに洗練されています。機械学習の活用には様々な形があり、音声の断片からテキストを予測するのをはじめ、質問の意味や意図を抽出するのに用いられています。これらは文字や音声の膨大な数のサンプルからモデルを生成しています。レコメンデーションシステムに機械学習を活用しています。特定の商品を買った人たちがその後何を購入しているかに基づいて、商品をいくつか推薦することで追加購入の確率を高めています。検索やニュースフィードにおいて、どのような広告を表示するかを機械学習で行っています。入力情報は広告の内容やその他の文脈情報(検索文字列や隣接するニュースフィードの内容など)が含まれ、モデルの出力として広告のクリック確率が得られます。ともにこのクリック確率を最大化したいと考えています。ベースであり、どの決済が不正なのか予測を試みるのも機械学習になります。機械学習はどういう仕組みで動いているのか?大学の機械学習コースではモデリングプロセスに焦点が置かれます。データ(例えば上記の表)をモデル(例えば決定木)に変換する方法のことです。このモデルは入力値(カード発行国、カード使用国など)を出力値(この取引が不正であるか否か)に展開するものです。上記表の入力データを使いつつ、ベストな決定木を作るプロセスが機械学習手法の一例になります。モデリングには多くのステップが含まれるので、あまり詳細には立ち入りませんが、大まかな概要を紹介します。最初にトレーニングデータを取得する必要があります。自動的に不正使用を検出する前に、不正使用の事例データを多数学習しておくためです。各事例から今後出力値に関する予測をする際必要になるであろう入力属性を多岐に渡り記録します。これらの入力属性は特徴、さらにサンプルとそれに関する入力値をまとめた集合データを特徴ベクトルと呼びます。前述の例では特徴ベクトルは三つの要素を持っていました(カード発行国、カードを過去に利用した国の数、日本円の決済額)。数百ないし数千の要素を持つ特徴ベクトルも珍しくありません。ネットワーク全体を通して算出した「行動的統計値」になります。出力値(実装例としては取引が不正であるかに関する真偽値)はターゲットやラベルと呼ばれることもあります。このようにトレーニングデータは大量の特徴ベクトルとそれに対応する出力値から成り立っています。優れた特徴を考えるのはデータサイエンスやエンジニアリング上の大きな問題で、後ほど詳しく取り上げます。続いてモデルのトレーニングが必要になります。トレーニングデータが与えられたので、次に予測モデルを作る方法が求められます。先に述べたように機械学習の予測タスクには回帰とクラス分類という二つの類型があります。回帰タスクは数の出力(例:不正使用損失額)の予測を目指します。クラス分類では対象となるサンプルが属するクラスの予測を目指します(例:対象の決済が不正決済のクラスに属しているかどうか)。機械学習における分類器(クラス分類問題向けのモデル)は単にクラスのラベルを出力するだけではありません。通常、対象のサンプルが想定されるそれぞれのクラスに属する確率の割り当ても行います。分類器の出力が、対象決済が不正である確率65%、正当である確率35%といった判定になることもあるでしょう。これら二つのタイプのタスクについて数多くの機械学習的技術が存在します。回帰に関しては線形回帰や回帰木といった従来型モデルも活用できます。クラス分類に関しても多数ありますが、ロジスティック回帰、決定木、ランダムフォレストなどが活用できます。モデル開発プロセスについてさらに知る脳の神経細胞構造からアイディアを得たニューラルネットワークとディープラーニングも両タスクへ応用可能です。(アルファ碁が李世乭棋士を下すといった同分野における近年の驚くべき進展もよく知られているでしょう。)しかし機械学習の産業的な応用のほとんどは従来型モデルでも十分対応できます。モデリングプロセスの実験や再実装を繰り返し行っていますが、ランダムフォレスト(前述の決定木を汎用化したものです)も私たちの機械学習に関する問題に対して十分機能することが確認できています。ようなサイト)によって、データから機械学習モデルを作成すれば、それで大変な作業は終わったと思ってしまうかもしれません。したサービスではどこからデータを入手するか、事業に対してモデルを運用するには何が必要かと言った内容は教えてくれません。モデルトレーニングの作業に入る前に、自分たちの事業のあちこちからデータを入手し、それをモデルのトレーニングに使える形で連携するデータインフラを構築しなければなりません。モデルを作成した後にもハードルが待ち受けています。新しいモデルを事業の業務フローに統合するのです。産業用機械学習において最も錯綜した領域の一つが特徴エンジニアリングです。特徴エンジニアリングは二つの要素から成り立ちます。一つは予測値を決めるための特徴の定式化で、もう一つは特徴値をモデルトレーニングおよびモデル評価に利用可能にするための開発です。特徴の定式化には問題領域における広範な知識が必要です。アドレスの内、どちらから来たものかを判定できる値が有用な特徴になるのではないかと考えたとしましょう(二つというのは通常、カードの利用は自宅と仕事場の二通りが考えられるからです)。この例ではアイディアは直感的なものですが、こうした思いつきは何千件もの不正使用の実例を精査してはじめて得られる場合が多いのです。特徴に使えそうなアイディアが得られたら、その特徴を組み入れた新しいモデルをトレーニングできるように、過去の値を算出しなければなりません。これはモデルを作成するために用いる「表」に新しい列を追加するということです。アドレスを算出する必要があります。使って分散して行うこともできますが、それでもジョブがあまりに多くの時間とメモリを要すると判明する場合もあります。そこで小さな確率的データ構造を用いて算出の最適化を試みることもあります。シンプルな特徴に見えても、モデルトレーニングのためのデータを作成するには相当な労力が必要になるかもしれないのです。新しい特徴を取り込んだモデルが作れたら(新しいモデルがどれくらい効果的か判断する仕組みについては後述します)、今度はそのモデルを本番環境に適用しなければなりません。呼ばれる度、リアルタイムにあらゆる新規決済の特徴値が算出できなければなりません。新しいモデルが適用された分類器が不正使用の可能性が高いと考える取引をすべてブロックできなければならないのです。この計算処理はトレーニングデータを作成したものとは全く別なものです。アドレスを常に最新の状態に保つ必要があります。フローの一環なので、件数の取得やデータ更新も迅速に行われなければなりません。すべてのアイディアに関して前述のプロセスを適用しようとしたら、目も当てられないほど非効率的な状況になるでしょう。宣言的に特徴を特定する方法があれば理想的です。サポートするインフラについてもレイテンシを十分に低く抑えた状態で、過去の値を訓練用に、現在の特徴値は本番環境において自動で利用可能になっていることが望ましくあります。機械学習チームのエンジニアが取り組んでいるインフラ問題の一つでもあります。書きます)と判断した際にこの決済をブロックするという方針を立てたとしましょう。ここでこのモデルと方針のパフォーマンスを推論するのに役立ついくつかの数値を挙げておきます。方針の適合率というのは、ブロックした取引のうち実際に不正使用であったものの割合を指します。適合率が高いほど偽陽性が少なくなります。なり、そしてその6件のうち実際に不正な取引が4件だったとします。P(不正使用)>0.7と判定された不正使用の割合)を指します。再現率が高いほど偽陰性は少なくなります。仮に10件の取引中、5件が実際に不正使用だったとしましょう。偽陽性率とは方針によって誤ってブロックされてしまったすべての正当な決済の割合です。仮に10件の取引中、5件が正当なものだとしましょう。分類器の評価に用いられる数値は他にもありますが、ここでは以上のものに集中することとします。次の疑問は適合率や再現率、偽陽性率に関してどのような数値が望ましいのかになります。1.0(すべての不正使用が不正使用であると特定されている)となります。実際には、適合率と再現率には常にトレードオフが存在します。(ブロックの基準がより厳格になったため)、再現率は減少します(高い確率基準に合致する取引が少なくなるため)。確率閾値を引き下げれば、基本的に逆のこと(適合率が減少し、再現率は上昇します)が起きます。モデルにおいて閾値を変化させたときの適合率と再現率のトレードオフは、適合率-再現率曲線により表されます。ネットワーク全体から得られるデータをトレーニングデータとすることで、より優れたものになっていきます。それに伴い、適合率-再現率曲線もまた、上記サンプルに示したように変化していきます。上の多数の事業に対するトレードオフを統制するものであり、データサイエンティストと機械学習エンジニアでモデルを修正する際には適合率-再現率曲線への影響を詳細にモニタリングします。適合率-再現率曲線グラフを参照する際には二つのパフォーマンス概念を理解しなければなりません。一般的にグラフの右上(適合率と再現率ともに1.0になるところ)の近くにあるほどモデルは優れていると言えます。ケースでは取引ブロックに関わる方針閾値になります)。した選択を通じてモデルの活用が事業に及ぼす影響を制御するのです。単純にいうと問題は二つあります。正しい特徴を追加し、優れた機械学習モデルを作成するというデータサイエンス問題と、機械学習モデルの出力を実行する方針選択というビジネス問題です。データサイエンスは適合率-再現率曲線の形状を制御し、ビジネス問題は曲線状のどこで事業を操業するかを制御します。(受信者動作特性)の略で、同曲線がもともと信号処理において用いられていたことから来ています。曲線は偽陽性率(X軸)と真陽性率(Y軸。これは再現率と同じです)を様々な方針の閾値に対しプロットしたものです。0.0)の近辺にあり、モデルが改善されるにつれて、さらに左上に近づいていきます。AUC)を算出します。どのように変化するかを注視します。1.0の値をランダムに割り当てるモデルがあるとします。これでは正当な取引と不正な取引とを区別できないので意味がありません。したランダム性はモデルのスコア分布、つまり可能性のあるスコアを獲得する割合によって示されます。完全にランダムな場合、スコア分布はほぼ一様になるでしょう。1.0モデルが不正使用に関する予測能力をまったく持たない場合、スコア分布は上記のように一様なものになるでしょう。特徴を追加し、トレーニングデータを用いることで、不正または正当な取引を判別する能力は向上し、スコア分布も双峰性が高まります。周辺にピークが表れてくるでしょう。1.0双峰性自体はモデルの優劣の直接関係ありません。確率を割り当てるようなモデルであっても同じようなスコア分布になります。低スコアな取引は正当、高スコアな取引は不正であるとする実証データが存在するならば、双峰性の高い分布はモデル効率改善の兆候になります。適合率と再現率は異なる場面で算出されます。モデルのトレーニング中にモデル開発に利用している履歴値を活用する場合と、モデルの開発後に本番環境のデータ(実際にモデルを使って不正使用をブロックしている際に得られるデータ)を活用する場合です。前者の場合、データサイエンティストはトレーニングデータを一部をトレーニングセットに、それ以外を検証セットに割り当てるといったことが良く行われています。最初の80%をトレーニングセットに、残りの20%を検証セットにすると言った具合です。トレーニングセットとはモデルを作成するために機械学習機能に適用するデータです。モデルが準備できたら、検証セットの中にあるサンプルデータに対してスコアを割り当てられるようになります。検証セットのスコアはその出力値と合わせてROC曲線や適合率-再現率曲線、スコア分布などを算出するのにも活用されます。データはトレーニングセットと検証セットに分割するのですが、これは作成したモデルの予測力を正確に計測するためです。トレーニングセットはモデルのトレーニングにすでに使ってしまっているため、新規データに対するパフォーマンスよりも優れています。そこで検証セットでテストすることで、モデルの検証がより正確なものになるのです。アプローチ検証セットでテストした結果、モデルが効率的であると判断されると本番環境への導入になります。モデルを本番環境に投入すると、次はモデルと方針のパフォーマンスをどう継続的にモニタリングするかという問題が出てきます。ブロックされなかった不正な決済についてはカード保有者からの訴えなどによって反応を測定できます。ブロックした決済については、万一ブロックしなかった場合にどんな問題が発生していたかをうかがい知ることができません。曲線を完璧に算出するには、こうした反実仮想分析が関わってくるので検証曲線の算出よりも複雑になります。ブロックされた決済に関して、万一ブロックされなかった場合にどうなっていたかを統計的な推定値を定める必要があります。そのための方法を開発していますが、そちらはこちらのセッションを参考にしてください。ここまでデータサイエンティストが機械学習モデルの開発時においてチェックするいくつかの測定値を説明してきました。次は不正使用予防について、事業側としてどのような考え方をすべきかを説明します。これまで検討してきた多くの内容(例えば適合率と再現率の相反関係など)は不正使用が皆さんの事業に対してどのような影響を及ぼすのか把握するのに役立つはずです。時に不正使用予防プラットフォームの効率は一つの数字でしか表されないことがあります。一つの数字に固執するのは事業にとって最適とは言えない結論に至る可能性があります。不正使用担当チームが持つ数字は不正使用関連のものばかりなためです。不正使用担当チームには収益損失の責任はありませんし、収益損失は不正使用損失よりも特定が難しいでしょう。トレードオフの現実世界における影響をいくつか示します。訴訟やクレームといった紛争を起こさないことだけを考えるならば、すべての決済をブロックしてしまえばゼロまで引き下げられるでしょう。これでは事業が成り立ちません。あり得ませんが、このようなモデルを使ったらすべての不正使用を差し止められますが、正当な取引もすべてブロックするために目も当てられない偽陽性率になってしまうことでしょう。他の要素を考えず、低い偽陽性率だけに固執するのも危険です。どんな不正使用をもブロックしなければ偽陽性率は確実にゼロになります。いくら偽陽性率が低くとも紛争率が1%に近くなったら何も意味がありません(これはほとんどのカードネットワーク全体で設定されています)。なると多くの偽陽性に繋がるとしても不正使用を大幅に削減しなければなりません。上記の例は机上の空論に思えるかもしれませんが、事業は時に偽陰性を過剰評価し、偽陽性を過小評価することが分かっています(見逃した不正使用に対して敏感になります)。この結果、例えば国際的なカードや特定領域のIPアドレス、あるタイプのカードをすべてブロックすると言った強引な対応を行うことがあります。機械学習システムはこのような処理に対して免疫があります。人が手動で行うラベリングに頼っているシステムでは、このような処理を再現する学習をしてしまいます。とって問題になりません。システムの効率性と関係がある例をもう一つ挙げます。皆さんの不正使用防止システムは、本当に収益につながっているでしょうか。多数の不正使用を見つけているとしても、そのシステムのせいで正しい取引も多数ブロックされているとしたら、機会損失になっているかもしれません。単純な例で計算してみます。生産に400円かかる製品を1000円で販売しているとします。正当な販売では利潤は600円です。不正な取引は400円(生産費)に加えてチャージバック手数料で1500円になり、計1900円の損失になります。1900円/600円=3.17件の正当な取引を諦めることもあり得ます。別な見方をすれば、ブロックする3.17件の取引について、1件が確実に不正使用である限り、不正使用検出システムによって利潤が上昇します。損益分岐適合率と言います。