2024.10.01
自社の社内情報を未来の“ゴミ”にしないための備え 「情報量が多すぎる」時代がもたらす課題とは?
メルペイでの不正決済検知への機械学習の活用事例と,グラフ理論を活用した実験について(全1記事)
リンクをコピー
記事をブックマーク
Hmj_kd氏:よろしくお願いします。メルペイのMachine Learningエンジニアをしています、工藤Hmj、はまじと申します。
今日は、メルペイでの不正決済に機械学習を活用しているところなのでそのご紹介と、個人的にグラフ理論を活用した事例の2本立てでお送りします。
まず先に自己紹介をさせてください。
ちょっと今日はスッピンでお送りするんですけど。
(会場笑)
北海道の釧路市出身で、実は大学のときは物理学科に所属していて、「ブラックホールの幾何学」というちょっとマニアックなところを……もしご存知の方がいたらぜひお話したいんですけど、そういうことをずっとやっていてました。社会に出て数学を使いたいなと思っていて、機械学習が世の中でちょっとブームになってきたので、徐々にそちらのほうにキャリアをチェンジしてきました。
それで、2018年に株式会社メルペイで、最初はクレジットスコアという与信モデルのモデリングを担当していたんですけど、去年の10月からAMLという不正決済の仕組みを作っているチームにアサインされまして、今はそこで機械学習の立ち上げをやっています。
好きなラーメンは蒙古タンメンとかラーメン二郎とか、そういう辛いラーメンとかコッテリしたラーメンが大好きです。
今日話すことは、去年の10月にAMLシステムの機械学習のチームが立ち上がったので、そこで私たちがどういったことをしたかという事例のご紹介と、その中で特化したグラフ理論を活用した実験というのがあったので、そのご紹介をしたいと思います。
まずは10月からやったことなんですけど、今日は弊社のエンジニアの方がインフルエンザで来れないのですが、去年プロダクトマネージャーがnoteに良い内容を書いてくれたので、ぜひこちらをご覧ください。
どういうふうに立ち上げたか。機械学習の立ち上げをやったことがある方は難しさを知っていらっしゃると思うので、簡単に何があったかと、どういうタイムラインだったかをご紹介したいと思います。
10~12月の3ヶ月でやったんですけど、不正決済というアンチマネーロンダリングの知識がないので、まずPMの方とブレストで「どういった課題があるんですか?」ということをヒアリングしながら「これは機械学習でこういうことをしながら解決できるよね」ということをやりました。
そもそも機械学習に対して期待値が高いというのはどの会社でもあると思うので、そこは「これは機械学習じゃなくていいんじゃないですか?」「これは分析をしてルールに落とし込めればきっと解決できると思います」というコスパの良い提案をしながら、ざっくばらんにPMの方と定期的にブレストをしたのが10月の頃ですね。
そこで徐々にこういう不正決済が起きて「ここを先に止めなきゃいけないね」「ここを先に解決しよう」「ここは後でもいいかな」というロードマップを敷きながら、今溜まっているデータ、Splunkのシステムで動いているんですけど、それを僕らも理解しながら同時に進めるというのが10月です。
11月と12月は、実際にその中でこの課題を解決しようというのを決めて、それに対してデータ分析とモデリングをして「こういうモデルができたらこういう性能評価で、このくらいの閾値だったらリリースできるね」ということをPMの方と一緒に決めながら、連携して進めたという流れになります。
実際にどういったことをやったかと言うと、そんなに外れたことはしていません。不正決済の想像はできると思うんですけど、正常標本と異常標本と考えると、全体の90何パーセントが正常な取り引きで、その中でちょっとだけ疑わしい取引があって、実際に「これは不正な取り引きだね」というのは本当に数パーセントしかないインバランスなデータなので、それに対応した教師あり学習のモデルの枠組みで解決しましょうというのがまず1個大きいところです。
実際にどういった不正が起きているのかは具体的に言えませんが、教師データを少しずつ使って機械学習の学習でモデルを作ってというのが、まず普通のところだと思うんですけど、ここを土台にしています。
ただ、ここだけだと既にわかっているリスク、不正しかキャッチできません。不正というのは常に変化をしていって、手口がたくさん開発されていくので、そこにも柔軟に対応できるシステムやソリューションが求められました。教師あり学習をやりながら、そこは別にブレストをしながら考えました。
そこで今回グラフ理論の話が出てくるので、ご紹介したいと思います。
なぜ私がブラックホールの幾何学をやっていたことを言いたかったかというと、ここで幾何学が出てくるからです。
モチベーションはすごくシンプルで、メルカリやメルペイで疑わしいお客様が疑わしい取り引きをしたときに適切なタイミングで検知して、それの決済を止めるだったり、アカウントに対して何かヒアリングをするといったことをしたいというニーズがまずありました。
もし、疑わしい人たちをメルカリの取り引きデータから事前に推定できたら、そこだけ手厚く検知のリソースを充てることで、効率的にキャッチできるんじゃないかというのが1つの仮説としてありました。
実際にそれができるのかというところですが、アイディアとしてはすごいシンプルです。これはイメージの例なんですが、メルカリでお客様の取り引きがたくさんあったら膨大なグラフができると思うんですけど、それに対して予め僕らがこの辺の人たちがきっと怪しいという印を事前に付けておく。そこで実際に特定の取り引きが行われたときに、ビビビッとアラートが鳴ってそこで検知する。そうするとその人たちが一気にガバッと取るという、すごくシンプルな話なんですけど、そういうことをやりたいというのがアイディアです。
グラフと出てきたのでグラフについて解説するんですけど、まずここですね。丸い円とそれを結ぶ線で抽象化したものをグラフで表したものがグラフ理論と言われているものです。
KPIとかのグラフではなくて、こういう数学のグラフ理論と言われているもののグラフになります。言い方は本によって違うと思うんですけど、丸い円はここではノードと言っています。線はエッジと言います。
これは抽象的な関係なので、例えば人を丸でノードにして、この人とその人は知り合いみたいな関係がエッジになる。他にも例えばノードを電柱にしてそこに電線が張っていたらということも表現できます。
グラフはけっこう抽象的なものなので、何をどういうふうに応用するかは使い手のアイディア次第でいろいろ膨らんでいくというのがおもしろいところで、今回はこれをメルカリ、メルペイの取り引きに応用したという感じです。
例えば具体的に、丸をメルカリのお客様の1アカウントとして見ると、ノードと見ることができます。もう1個、例えば実際にお客様がメルペイの加盟店さんで決済をする場合、丸を加盟店として見ることもできます。そうすると、例えばお客様が支払うという行為をエッジとして見ることもできるし、あとはメルカリには招待機能があるので、この人がこの方を招待したというのもエッジとして見ることができます。
あとは取り引きですね。この方が売り手で、この方が買い手で取り引きをしたという関係をエッジとして見ることもできるので、何をノードにして何をエッジにするかは、僕ら分析者のアイディア次第で膨らんでくるんですけど、例えばこういうものが考えられますということです。
こういうものを使ってグラフを作って、今回はとくにグラフの形状に着目しました。なぜ着目したかと言うと、そこには背景があって、詳細は言えないんですけど、ある不正取り引きがあって、そこでたまたま私がグラフを使って分析したところ、おもしろい形が見えてきたので、これはグラフ理論で何か使えるんじゃないかというのが1個目ですね。
あとは、昔グラフでいくつか分析したことがあるんですけど、グラフが膨大で分析するのは大変だなと思ったときに「もしかしたらグラフの形はトポロジー的には位相不変量で有限個で分類できるんじゃなかったっけ?」というのを思い出しました。
現実には証明して何個になるというのはやってないんですけど、有限個になるなというのを発見して、そこで実際にメルカリの取り引きをグラフにして、それを何個かの有限個にして分析したという解釈ですね。そこに形状に着目した理由があります。
よく登場する形というのはこういうものがあります。
例えばこれは本によって言い方は違うかもしれないんですけど、閉路という閉じているグラフとか、1個抜けていて道、パスとか。あとは二部関係とか、この赤と緑はつながっていないんですけど、こちら側では2つに分けられるグラフとか。あとは全部のノードがつながっている全員が知り合い関係のグラフ、1つのノードから各ノードに派生している星とかがあります。
グラフ理論は、こういう特殊なグラフにはいろいろ名前がついているんですけど、こういうものにメルカリのグラフを分類していくというのをやっています。
例えば、先ほど招待関係というのが1つあったと思うんですけど、左側は1人のお客様がたくさんの方に「メルカリを使ってください」と招待したグラフです。
片方はちょっと見づらいので矢印を書いたんですけど、これは右上から徐々に1人ずつ招待のリレーをしていって、真ん中で分岐して左と右に分かれてまた出ていく。つまり、招待して次の方がどんどん数珠状に招待していくという感じです。
これを見たときに、左側はわりと普通というか、1人の人がインフルエンサーというのが表現できているんですけど、右は特殊だなと思ったんです。異様な感じを受けて、不思議だなとずっと見ていて。これはもしかしたら形によっては何か起きている状況が違うんじゃないかというのをこのときに感じました。
これはちょっと違うんですけど、例えばこういうふうに分類した体ですね。
最初に、まずグラフにクラスターケースがあるかないかで分けました。ちょっと複雑なので一旦左に寄せておいて、次が1ペアだけのグラフとか木構造になっているグラフとか、道になっている、あるいはサイクルになっているとかを分けて、これでグラフを有限個に分けるというのを最初にやってみました。
そうすると、これは例なんですけど、右側がさっき言った星グラフというものに分類されるんですけど、左側はほぼ星ですね。微妙にここでつながっているのでスターではないんですけど、ほぼ星と言えるところです。
これをやると左側の、これは部分階層なんですけど、全体の中にこういう成分があって全体から見るとこういう形状は数パーセントしか発生しないんですけど、この中で疑わしい取り引きや疑わしいアカウントが存在する確率が右側のと比べると比較できないくらい高いというのが実験から見えてきました。
そういうのも他の普通のコンプリート系に比べると飛躍的に高くなるというのがわかって、グラフの形状に着目して検知エンジンのリソースを高い確率で検知できそうというのがわかってきたところです。
最後にまとめです。すごくおもしろい発見なんですけど、大きく課題が2つあって、1つはまだ捉えきれてないつながりもあるので、「この人とこの人はつながりだろう」とエッジを予測するのを機械学習でやっているところです。
もう1つは、変化する手口を実際に検知してもそれが何が起きているかわからないというのが意外に難しいんです。「今ここでこの人たちに何か起きてます」と言っても、ビジネスで考えたときに、「これ何が起きているんですか?」というのを実際にデータから見るのが難しくて、実際に事象が発生してから「こういう手口だったのか」とあとからわかるので、意外に変化する手口を検知しても、どう応用していくかがけっこう難しいかなというところです。
時間になりましたので、ご清聴ありがとうございました。
(会場拍手)
2024.10.29
5〜10万円の低単価案件の受注をやめたら労働生産性が劇的に向上 相見積もり案件には提案書を出さないことで見えた“意外な効果”
2024.10.24
パワポ資料の「手戻り」が多すぎる問題の解消法 資料作成のプロが語る、修正の無限ループから抜け出す4つのコツ
2024.10.28
スキル重視の採用を続けた結果、早期離職が増え社員が1人に… 下半期の退職者ゼロを達成した「関係の質」向上の取り組み
2024.10.22
気づかぬうちに評価を下げる「ダメな口癖」3選 デキる人はやっている、上司の指摘に対する上手な返し方
2024.10.24
リスクを取らない人が多い日本は、むしろ稼ぐチャンス? 日本のGDP4位転落の今、個人に必要なマインドとは
2024.10.23
「初任給40万円時代」が、比較的早いうちにやってくる? これから淘汰される会社・生き残る会社の分かれ目
2024.10.23
「どうしてもあなたから買いたい」と言われる営業になるには 『無敗営業』著者が教える、納得感を高める商談の進め方
2024.10.28
“力を抜くこと”がリーダーにとって重要な理由 「人間の達人」タモリさんから学んだ自然体の大切さ
2024.10.29
「テスラの何がすごいのか」がわからない学生たち 起業率2年連続日本一の大学で「Appleのフレームワーク」を教えるわけ
2024.10.30
職場にいる「困った部下」への対処法 上司・部下間で生まれる“常識のズレ”を解消するには