Upgrade to Pro — share decks privately, control downloads, hide ads and more …

不正検知を可能とする弱教師あり学習手法「DevNet」の紹介 〜膨大なデータに潜む異常を最小限のラベリングで見つける技術〜

Cygames
September 01, 2021

不正検知を可能とする弱教師あり学習手法「DevNet」の紹介 〜膨大なデータに潜む異常を最小限のラベリングで見つける技術〜

2021/08/26 CEDEC2021

Cygames

September 01, 2021
Tweet

More Decks by Cygames

Other Decks in Technology

Transcript

  1. © Cygames, Inc. 自己紹介 株式会社Cygames ゲームマスターチーム 都築 圭太 2015年にCygames入社。 入社後はカジュアルゲームのクライアント開発、

    データ分析基盤の運用開発などを経て2019年から ゲームマスターチームに合流。現在は運用タイトル の不正対策の立案・運用業務に従事。 3/36
  2. © Cygames, Inc. ゲームマスターチームのミッション • 継続的な不正対策を実施し、 安心・安全なゲームプレイ環境を維持 • 快適なゲームプレイの維持を重要視し、 不正対策がプレイの妨げにならないようにする

    • 自社で運用しているゲームをやりこむことで、 ユーザー視点で判断できるようにする Cygames公式HPより 快適なゲーム体験をユーザーへ提供する 5/36
  3. © Cygames, Inc. ゲームマスターチームの業務内容 • データに基づいた不正対策の立案・運用 – 受け取ったデータがゲームロジックと矛盾しているものを検知する不正対策 • データに基づいた不正対策のイメージ

    (神経衰弱を例に) ID 取得ペア数 ※ 最大で26 プレイ秒数 お手つき数 1 26 0 0 2 26 140 5 3 9999 300 0 4 26 200 20 5 26 150 4 6 26 60 0 • 取得ペア数27以上や、0秒クリアなど、 実現不可能なものは不正と考えられる • お手つき数0クリア(ID:6)のような、 可能だが、実現性が疑われるものは 他データも参照して判断 6/36
  4. © Cygames, Inc. データに基づいた不正対策の難しさ① 不正かどうかの判断には文脈を考慮する必要がある • 神経衰弱の例で考慮すべきこと – 好スコア・好タイムを何回、どのくらいの頻度で出しているか。 一回ならまぐれかもしれないが、連続していたらどうだろうか?

    – カードの内容を透視できるスキルを持っているキャラがいたらどうなる? – 定期的にカードがシャッフルされるステージが実装されたら? – マルチプラットフォーム(例: PC版とスマホ版)で同じ基準でよいのか? • 実際の不正対策では、 これらの文脈が複数組み合わさった結果に対して、 不正かどうかの判断が必要になる 7/36
  5. © Cygames, Inc. データに基づいた不正対策の難しさ② 判断時に考慮しなければいけないことが、 時間と共に変化し増えていく 考慮すべき事項の例 • 新しいキャラクターやアイテムの実装 •

    攻略情報の共有によるプレイスタイルの変化 • UIの改善によるプレイ方法の変化 ゲームの変化に追従し続ける必要がある 8/36
  6. © Cygames, Inc. 現在の不正対策フロー • 事前に決めたルールを絞り込み条件として利用 • 絞り込みを越えたものは、 不正対応にあたるスタッフが一つ一つチェック –

    誤った対応をしてしまった場合、ユーザーに多大な影響を与えてしまうため 人手でチェック データを取得 ルールで絞り込み 10/36
  7. © Cygames, Inc. 機械学習による課題の解決 機械学習を導入して効率と安全性を両立 • 機械学習で学習したモデルを絞り込み条件に利用 – 入力データの「不正らしさ」を自動で求めることができ、絞り込み条件の作成を効率化できる •

    どの程度怪しいものを人手チェックに回すと、業務上最適かという部分の調整は別途必要 – 定期的に、最新のデータを用いてモデルを再学習することで環境変化にも追従 • 人手チェックは継続して実施 – 誤検知リスクを徹底して排除するため 人手でチェック データを取得 機械学習で絞り込み 12/36
  8. © Cygames, Inc. 課題: 良質なラベル付きデータの準備 機械学習の学習データは下記を満たすことが望ましい • データ量が十分であること – 基本的には自社で作成。ラベリング作業が必要で工数がかかる。

    • データが実態を反映していること – ユーザーの楽しみ方やプレイ環境は多岐に渡る – 特に不正ユーザーの実態を反映できていることが必要 • 例: 不正ユーザーも常に不正をしているとは限らない。 正常プレイと不正が混在したようなデータになる可能性がある • ラベルが正確であること 14/36
  9. © Cygames, Inc. 現実: 良質な学習データは手に入らない • 実際のデータを使う場合 – 不正データが不足する –

    「正常」となっているデータに見逃している不正が含まれる可能性がある。 そのため、不正確なラベルしか手に入らない • 人工データを利用する場合 – 検知できていない不正データの再現は難しい。 そのため、見逃し改善に有効なデータが作れない 15/36
  10. © Cygames, Inc. 教師なし学習ならラベル不要では? 典型的でないことと不正であることは異なる 何が不正なのかの事前情報は必要 実際は不正、ラベルなし 実際は正常、ラベルなし 必要としているシステムの要件 •

    既知の不正を高精度に検知すること • 未知の不正の発見は対象外 教師なし学習の得意なこと • 典型的でない振る舞いの提示 実際もラベルも正常 実際もラベルも不正 16/36
  11. © Cygames, Inc. 使いたい手法の要件 欲しい手法 手元の不正データを 最大限活用できる手法 教師あり学習 正確なラベル付き データが大量に必要

    教師なし学習 ラベリング不要だが 課題に対して不適 ノイズに影響されにくい 注目した不正のみ検知 ラベリングミスによる 見逃しリスクがある 不正ではない振る舞いの 誤検知リスクがある → KDD’ 19で発表されたDevNetならこの条件に合致する 正常-正常ラベル 不正-不正ラベル 不正-正常ラベル(ラベルミス) 不正-不正ラベル 正常-ラベル不明 不正-ラベル不明 正常-ラベルなし 不正-ラベルなし 17/36
  12. © Cygames, Inc. 自己紹介 株式会社Cygames ゲームマスターチーム 閔 正媛(みん・じょんうぉん) 画像処理・AI関連の受託開発会社で、産業界の様々 なデータを使った機械学習の経験を積み、2019年

    Cygamesに入社。2020年よりゲームマスターチー ムに合流し、機械学習を使った不正検知システムの 開発と業務自動化を担当している。 19/36
  13. © Cygames, Inc. DevNet • 論文 – Guansong Pang, Chunhua

    Shen, and Anton van den Hengel. "Deep anomaly detection with deviation networks." In Proceedings of the 25th ACM SIGKDD International Conference on Knowledge Discovery & Data Mining, pp. 353-362. 2019. • 概要 – 未知のデータは正常とみなして学習することで 異常検知問題をimbalancedな教師データにおける二値分類問題に落とし込む • 特徴 – 膨大なデータのうち、少量(1%未満)の異常データにのみラベリングすればよい – 入力から不正度合いのスコアまで一気に(E2Eで)学習できる – 公式の実装と論文で使ったデータセットが公開されているのでとっつきやすい https://github.com/GuansongPang/deviation-network • 任意のネットワークに適用できるので、手持ちのデータに合わせて改造可能 20/36
  14. © Cygames, Inc. DevNetの動作条件 • ゲームの不正データはDevNetが要求する要件を満たしている データの要求 現場の状況 特性が明確な少量の異常データと ラベルのない大量のデータで構成されている

    過去の不正対策の実績から、 明確に不正と言い切れるデータが存在 ラベルのないデータの絶対多数は正常である と仮定できる 多少の見逃しは存在するかもしれないが、 大多数のユーザーは正常と仮定できる 21/36
  15. © Cygames, Inc. DevNet導入による効果 • 検証内容 – 実際に稼働している不正対策において、 従来のフロー(ルールベース)とDevNetを利用したものを比較 –

    通常通りのルールと、DevNetでそれぞれ対象を絞り、複数人で精査して得られた結果を利用 – 比較には5期間分のデータを使用 • 結果 – 不正検知数が 平均21% 増加 • 元々ルールベースで検知したユーザーもほぼすべて検知できている – 人手のチェックにより、不正ではないと判断されるものが 平均 38 % 減少 • 本来ならチェック不要なものをチェックしなくてよくなり、不正対策が効率化できる DevNet導入により、不正対策の検知力と効率を同時に向上できる 22/36
  16. © Cygames, Inc. 論文で使われた仕組みとその応用 ①ミニバッチ ③ 損失関数 (deviation loss) 異常らしさ

    スコア 𝜙 𝑥; Θ 参照スコア 平均𝜇ℛ , 標準偏差 𝜎ℛ 𝐿 𝜙 𝑥; Θ , 𝜇ℛ , 𝜎ℛ ② 特徴量学習部 unlabeled labeled ⋮ ⋮ ⋮ 標本平均 𝑟1 , 𝑟2 , ⋯ , 𝑟𝑙 ∼ 𝐹 ① ミニバッチ: ラベルの不均衡を解消し、さらにラベルのない異常の影響を抑える部分 ② 特徴量学習部: 特徴量が学習される部分。データに合わせて変える必要がある ③ 損失関数(deviation loss): 標準正規乱数を参照し、偏差を元に損失を計算する損失関数 23/36
  17. © Cygames, Inc. ①ミニバッチの作りかた • ラベルなしデータと異常データが 1:1 で混ざるようにミニバッチを作成 – バッチサイズ=32なら、ラベルなしデータ・異常データそれぞれから16個ずつランダムに選択

    • 訓練データが極端に不均衡なので対策が必要 – 何もしないと全て正常判定するように学習してもLossが減ってしまう • ラベルのない異常の悪影響を抑える効果も – ラベルのない異常データはごく少量なので、その影響力はそこまで大きくない – さらに、各ミニバッチに、ラベル無しデータと同じ数だけ入っているラベル付きデータから 異常の特徴が学習され、ラベル付き異常データの影響力がさらに強くなる 24/36
  18. © Cygames, Inc. ②特徴量学習部 • ミニバッチからデータの特徴を学習する ニューラルネットワーク • 論文では全結合層を3層重ねて学習 (赤枠の部分)

    異常らしさ スコア 𝜙 𝑥; Θ ⋮ ⋮ ⋮ • 最終的に一つの値を出力させれば、他の深層学習の手法に差し替え可能 – 畳み込みニューラルネットワーク (CNN) – 回帰型ニューラルネットワーク (RNN) • 二値分類のネットワークだが、最終層がLinearであることに注意 – sigmoidではない 25/36
  19. © Cygames, Inc. ③損失関数: Deviation Loss • Deviation lossの仕組み –

    参照スコアとして、標準正規乱数を5000個とり、これらの平均を 𝜇ℛ 、標準偏差を 𝜎ℛ とする – 最終層の値 𝜙(𝑥,Θ)、ラベル 𝑦 に対して、損失関数𝐿(𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ )を次のように定義 𝐿 𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ = 1−𝑦 dev 𝑥 +𝑦max 0,5−dev 𝑥 ただし、 dev 𝑥 = 𝜙 𝑥,Θ −𝜇ℛ 𝜎ℛ (𝑧-score) で、ラベル 𝑦は、𝑦 = ቊ 0 (ラベルなし) 1 (ラベル付き) と定義されるもの – 𝜇ℛ , 𝜎ℛ がそれぞれ0, 1に近い数値となるため、 𝜙 𝑥;Θ とdev 𝑥 は概ね近い数値となる • Deviation lossのメリット – 正常と異常のスコアの差を開く – 分布を仮定することで、スコアを統計的に意味のあるものにできる 26/36
  20. © Cygames, Inc. ③損失関数: Deviation Loss • Deviation lossの仕組み –

    参照スコアとして、標準正規乱数を5000個とり、これらの平均を 𝜇ℛ 、標準偏差を 𝜎ℛ とする – 最終層の値 𝜙(𝑥,Θ)、ラベル 𝑦 に対して、損失関数𝐿(𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ )を次のように定義 𝐿 𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ = 1−𝑦 dev 𝑥 +𝑦max 0,5−dev 𝑥 ただし、 dev 𝑥 = 𝜙 𝑥,Θ −𝜇ℛ 𝜎ℛ (𝑧-score) で、ラベル 𝑦は、𝑦 = ቊ 0 (ラベルなし) 1 (ラベル付き) と定義されるもの – 𝜇ℛ , 𝜎ℛ がそれぞれ0, 1に近い数値となるため、 𝜙 𝑥;Θ とdev 𝑥 は概ね近い数値となる • Deviation lossのメリット – 正常と異常のスコアの差を開く – 分布を仮定することで、スコアを統計的に意味のあるものにできる 27/36
  21. © Cygames, Inc. ③損失関数: Deviation Loss • Deviation lossの仕組み –

    参照スコアとして、標準正規乱数を5000個とり、これらの平均を 𝜇ℛ 、標準偏差を 𝜎ℛ とする – 最終層の値 𝜙(𝑥,Θ)、ラベル 𝑦 に対して、損失関数𝐿(𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ )を次のように定義 𝐿 𝜙 𝑥;Θ ,𝜇ℛ ,𝜎ℛ = 1−𝑦 dev 𝑥 +𝑦max 0,5−dev 𝑥 ただし、 dev 𝑥 = 𝜙 𝑥,Θ −𝜇ℛ 𝜎ℛ (𝑧-score) で、ラベル 𝑦は、𝑦 = ቊ 0 (ラベルなし) 1 (ラベル付き) と定義されるもの – 𝜇ℛ , 𝜎ℛ がそれぞれ0, 1に近い数値となるため、 𝜙 𝑥;Θ とdev 𝑥 は概ね近い数値となる • Deviation lossのメリット – 正常と異常のスコアの差を開く – 分布を仮定することで、スコアを統計的に意味のあるものにできる 28/36
  22. © Cygames, Inc. ③損失関数: メリット • 同種のデータセットに対しては、同じ閾値を使い続けられる – データに依らず異常スコアの意味は同様に解釈可能 •

    異常スコアから、あるデータが 正常データと同じ方法で生成された確率が読み取れる – 例) 異常スコアが1.96以上の場合 • 正常データと同じ方法で生成された確率は5% • 信頼度95%で正常データとは異なると判断できる • GANなどで出した異常スコアに対しては、このような解釈はしづらい – 集計期間が変わるなどで対象のユーザーが変わると、 データセットの種類が同じでもその都度閾値を調整する必要がある 異常スコア 生成確率 29/36
  23. © Cygames, Inc. DevNetの動作例 • 仮想的なデータ例 – ハイスコアを狙うゲームを想定 – スコアが上乗せされる不正を検知したい

    – このゲームのスコアは レベル・スキルの強さ・ステージ値に依存 ※ 実際の不正対策においては、スキルの強さやステージ値は 定性的な指標で、数値化は難しい問題であることに注意 • このデータの傾向 – レベルが高く、スキルが強く、ステージ値が 低いほどスコアは高くなる – しかし、各パラメータとスコアを比較しても 正常と不正の線引きは困難 ID レベル スキルの強さ ステージ値 スコア 判定 1 96 1000 1500 3816 正常 2 124 500 2000 2410 正常 3 124 2000 1000 10697 不正 4 68 1000 500 7328 不正 ※ステージ値:点数の取りにくさを数値化したもの レベル スキルの強さ ステージ値 スコア 31/36
  24. © Cygames, Inc. データの割り振りとネットワーク • 学習・テストデータの割り振り – 学習データ • ラベルなしデータ:

    11,000件 – 正常データ: 10,000件 – 不正データ(見逃し): 1,000件 • 既知の不正データ: 100件 – テストデータ • 正常・不正ともに1,000件 • ネットワーク – 論文通りの3層ネットワーク • ハイパーパラメータは論文著者の実装に準拠 ⋮ ⋮ ⋮ 1000次元 250次元 20次元 異常 スコア 32/36
  25. © Cygames, Inc. 実行結果 • 一見分離しづらく見えるデータであっても、 DevNetを使うことで不正を精度よく検知できることを確認 • 学習データに見逃しが含まれていてもきちんと動作する 出力スコア

    TP (True Positive) TN (True Negative) FP (False Positive) FN (False Negative) 適合率 TP/(TP+FP) 再現率 TP/(TP+FN) 1.96 (有意水準 5%) 941 927 73 59 92.80% 94.10% 2.25 (有意水準 1%) 938 938 62 62 93.80% 93.80% 4 885 976 24 115 97.36% 88.50% 5 802 993 7 198 99.13% 80.20% 33/36
  26. © Cygames, Inc. DevNet利用上の課題 • データを大量に持っていないと活用できない – ラベル有のデータは少量でも良いが、ラベルなしデータは大量に必要 • モデルの検証時にも、人間による評価が必要で工数がかかる

    – 検証用データにも、見逃している不正ユーザーが混じっている可能性があり、 正しい検知結果は人手で確認する必要がある – 検証用データとの誤差だけで機械的に学習の度合いを判断することは困難 • 検証用データの推定結果に基づいて学習を自動的に止めるearly stoppingは使えない 34/36
  27. © Cygames, Inc. 本講演のまとめ • 不正対策における機械学習導入のモチベーション – 対象者を絞るための条件を設定・モニタリングしていくのに工数がかかるため • 不正対策において機械学習を導入するにはラベリングが課題

    – 教師あり学習導入のためのラベリングの工数は膨大 かつ 困難 – 教師なし学習だと、典型的でない挙動を不正と誤判定するリスクが存在 – 手元のデータを活用できる、中間的な手法が必要 • この課題を解決できる手法としてDevNetを紹介 – 少量の異常データと膨大なラベルなしデータから不正をモデリング – シンプルな構造のため種々のデータに対応させられる • DevNetを導入することで、検知力も効率も改善できた 35/36