この記事は、Merpay Tech Openness Month 2020 の17日目の記事です。こんにちは。メルペイのMachine Learningチームのhmjです。
と不正決済の検知への機械学習の適用の内容にて投稿してきました.今回は「集団的な不正の検知」がテーマとなります.
昨今,Web不正検知やセキュリティに関わるでもECサイトでの集団による不正の手口は多様化や複雑化してきていることが報告されています[1].
メルペイでも,今後起こり得る集団的な不正決済への対策を講じる必要があると考えています. 集団的な不正は検知できたとしてもその全体像がみえにくいこともあり,ソリューションとしては「検知できること」と「すばやく全体像を把握できる」を満たすものが求められています.
両者を満たす解決方法として,グラフ理論や複雑ネットワークの理論を活用しました.今回はそのお話をします.
グラフ理論や複雑ネットワーク
グラフは折れ線グラフや円グラフなどのグラフではなく,数学の1つの分野の「グラフ理論」のグラフのことを指しています.
グラフ理論の起源は,1735年に数学者 Leonhard Euler(オイラー) が,ケーニヒスベルクの街を流れるプレーゲル川にかかる7つの橋の一筆書き問題に,グラフの概念を用いたこととして知られています. (興味ある方は,「ケーニヒスベルク オイラー」で検索してみてください)
ここでは簡単にグラフの構成要素であるノードとエッジについて説明します. 丸い円と,それらを結ぶ線で抽象化されたものがグラフです.丸い円はノード(節点・頂点),線はエッジ(枝・辺)といわれています.
上図の場合は,ノードは4つ(1, 2, 3, 4),エッジは (1, 2), (1, 4), (2, 3), (2, 4) と4本あります. このような矢印で向きがあるグラフを「有向グラフ」といい,エッジに向きの関係がないものは「無向グラフ」とよばれています.
現実には下記のようなネットワークが存在しています.
- 社会ネットワークは,ノードを「人」,エッジを「人間関係」として捉える
- 神経ネットワークは,ノードを「ニューロン」,エッジをニューロン間のつながりと捉える
- 電力網ネットワークは,変電所などをノード,送電線をエッジとして捉える
これらのネットワークは,生まれる過程も構成される要素も全く異なりますが,ネットワークの構造には共通点があり,ネットワークの成長過程は共通の原理によって支配されています.このような現実世界の規模が大きく普遍的な性質を研究する分野を「複雑ネットワーク」といいます.
現実世界にどのように応用するかは,分析者のアイディア次第で膨らんでいき,腕の見せどころとなります.
取引のネットワークの可視化
今回はメルカリ内の取引に着目しグラフにしました.具体的にはメルカリでの取引は,ノードをメルカリのお客さまのアカウント、エッジを出品者から購入者への矢印とすると,グラフとしてみることができます.
下図は2020年以降の取引をグラフにして,その一部と抜粋したものを可視化したものです.
- (a) の部分は,2020年の取引全体の一部分の図です.詳細な数字は割愛させていただきますが,ノード数は数百万以上規模の巨大なネットワークになります.
- 非常に多くのエッジ数をもつノード(ハブ)が少数ながら存在しています(図中の大きな濃い青のノードがハブになっています).
- (b), (c)の部分は(a)の黒い丸で囲った部分を拡大したものとなります.(b, c)で約百以上の規模になります.
- それぞれ特徴的な形状をしていて,(b)はグラフの中心から樹形上に広がっています.
- 一方で,(c)は2つのノードが中心にあり,その周りに樹形上に広がっていて,まるで連星のような構造となっています.
可視化をすることによりネットワークの全体感について理解することできます.一方で不正検知という観点では,ネットワークの状態を常に可視化し監視するには,あまりにも広大な範囲の目視チェックとなり現実的ではありません. そこで,グラフ理論や複雑ネットワークの重要な各種の性質を定量化することで,疑わしい取引が生じていることを検知できる仕組みの構築を目指します.
ネットワークから特徴的な「形」をみつけて,ウォッチする
ネットワークの分析
ネットワークの重要な性質にはいくつかあり,たとえば
- 次数:ノードに張られているエッジの本数
- クラスター係数:ノードの近傍間でエッジが張られている確率
などのノードの局所的な特徴を表す量や,下記のようなネットワークの広域的な範囲に関する量などもあります.
- 平均ノード間距離:つながっているノード間の距離の平均
- 次数分布:次数の頻度分布
- フラクタル性:グラフの一部と,それが全体と似ている度合い
このような局所的,または広域的な量を用いて様々な角度から分析することにより,ネットワークについて理解することができます.
具体的な形状や特徴は不正決済検知の観点から記載できませんが,ネットワークに特徴的な形状が少数ではありますがいくつか存在し,そのような形状内で疑わしい取り引きや疑わしいアカウントが存在する確率が高いことがわかりました.そのため,もしこれらの特殊な形状を発見することで,比較的少ない範囲の観測により,疑わしい取引を行うアカウントを捕捉できるかもしれません.
機械学習APIとの組み合わせて検知する
ネットワークの特徴的な量はいくつもの示唆を含んでいてとても有意義です.一方で,仮に疑わしい取引が発見できたとしても,ノードやエッジのつながりに関する量だけでは,そこでどんな不正が発生しているかまではわかりません.ネットワークの特徴量だけを利用するだけでは,検知システムとして不十分であるといえます.
そこで,AlertFiltering, ChargebackML にて紹介した機械学習モデルAPIを組み合わせて,「架空取引性の高い取引かどうか?」,「カード不正が発生していそうな取引かどうか?」も考慮して検知する仕組みを構築しています.
こうすることにより,ネットワーク特徴量を用いて「どの範囲で疑わしい集団的な不正が起きているか」を検知し,機械学習モデルAPIによりそれらの取引や決済は「架空取引やカード不正などの不正決済かどうか」をスコア化しています.全体感としては「複雑ネットワーク×機械学習」というかたちになっています.
成長するネットワーク,新たにうまれる”つながり”たち
ここまで,取引や決済のつながりを分析することで,集団的な疑わしい取引の検知に活かせるかを紹介してきました. メルペイでは他にも「おくる・もらう」というサービスが最近リリースされています.エッジの種類としてこのようなデータをネットワークにすることも可能です.
上図を見ていただくと取引とは異なり,「おくる・もらう」ではトライアングルの形状で双方にエッジが多々あることがみてとれます.これらはおそらく知人同士で利用されている方が多いということが反映されていて,取引のエッジでつくるネットワークとはその様相が異なる点が特筆する点となります. 不正決済検知という文脈では,不正の手口は多様化や複雑化されることが想定されますので,今後はこのようなデータも不正検知に役立てていきたいと考えています.
メルペイでの複雑ネットワークの応用という面では,上記のようなエッジの種類がいくつかある点と,ノードが時間とともに増加していき,ネットワークがダイナミックに変化していく点も特筆すべき点としてあります.このあたりは Temporal Network のように時間発展する数理モデルとして扱うのか,MultiGraph を拡張して扱うのか,など理論的にもまだまだ発展中で,有用な結果が得られるかは今後の課題です.
おわりに
今回は,集団的な不正決済の検知に対する複雑ネットワーク応用の紹介でした. ネットワーク理論だけではなく,局所的な検知では前回のAlertFiltering, ChargebackMLで紹介した機械学習APIをコンポーネントとして組み合わせることにより,ソリューションを提供することができました. これからも高度化していくことが予想される不正決済に対して,各種の機械学習APIを柔軟に組み合わせながらも,メルカリ,メルペイの特徴的なデータを分析することで課題解決していきたいと考えています.
最後まで読んで頂きありがとうございました.