【異常検知】Deep Learning for Anomaly Detection: A Survey を読んだ (後編)

Deep Learning for Anomaly Detection: A Surveyを読んだので備忘録を残しておきます。 前半は 深層異常検知 (Deep Anomaly Detection; DAD) のアーキテクチャの分類や長所・短所の紹介でした。後編は DAD の様々な領域への応用についてですが, 膨大な参考文献のため実質リンク集となっています。文献を徐々に読み進めて内容を追記する予定です。

Deep Anomaly Detection (DAD) の応用領域

Intrusion Detection

侵入検知システム (The intrusion detection system; IDS) はコンピュータシステムにおける悪意のある活動を検知するシステムである。
IDS は単一のホストにインストールされる Host Intrusion Detection (HIDS) と大規模ネットワークを監視する Network Intrusion Detection (NIDS) に分類される。

Host-Based Intrusion Detection Systems (HIDS)

ホスト上のシステムコールのログはプログラムやユーザの操作によって生成される。マルウェア等による悪意のある操作は通常の操作とは異なるシーケンスでシステムコールが実行されることに繋がる。
HIDS は主にシグネチャベース (signature-based) と異常ベース (anomaly based) の2種類がある。異常ベースは見たことのない攻撃を検出できる可能性がある一方で誤検知が多くなるが, シグネチャベースと組み合わせることで強力な防衛手段となる。 HIDS に適用される DAD は可変長かつ系列データを処理することが必要となる。
Chawla et al. [2018] では, システムコールのデータセット ADFA-LD に対して, システムコールの入力系列を32次元の固定ベクトルに埋め込み, 系列を短くする前処理と局所特徴の抽出器として 1D-CNN を利用し GRU に渡すモデル CNN-GRU を提案し LSTM に比べ訓練時間を短くしながら SOTA の性能を維持したことを報告している。

Network Intrusion Detection Systems (NIDS)

ネットワークトラフィックは volume, velocity, variety (3V) の点でビッグデータである。リアルタイム検出が必要な点や, 攻撃者が IDS に適応することで攻撃の性質が変化し続ける点が難しい。深層学習は非線形の性質を持つネットワークトラフィックの異常検知に有効であるが, 1D-CNN は LSTM や VAE より良い性能が得られず, また 1D-CNN の層を深くしても性能改善には至らなかった。 (Kwon et al. [2018]) または [1]

情報セキュリティの分野では, ラベル付きデータの欠如や絶えず進化し続ける攻撃, セキュリティアナリストが攻撃の調査に使える時間には限界があるという課題がある。Veeramachaneni et al. [2016] は AI squared というアナリストのフィードバックを取り入れたセキュリティシステムを提案している。AI squared では, まず教師なし学習ベースの外れ値検出 (行列分解ベース, 密度ベース, Replicator Neural Network (i.e. AE)) のアンサンブルから異常スコアに基づいたランク付けを行う。次に, この結果の上位のイベントに対してアナリストがフィードバックを行い, そのラベルを用いて教師ありモデルを構築し教師なしモデルと組み合わせ異常検知を行う。この手順を継続的に繰り返すことで SOTA の教師なし異常検知モデルに対して FP を 1/5 に減らすことができたと報告している。

Fraud Detection

Fraud Detection (不正検知) は様々な産業における違法な行為の検出を指す。

Banking fraud

ここ数年, クレジットカード不正検知のための技術が複数発表されている (Zhou et al. [2018], Suganya and Kamalraj [2015])。課題は不正に一貫したパターンがないことである。一般的なアプローチでは各ユーザのプロファイルや利用状況を監視するが数十億のユーザがいるため, このアプローチはスケールが難しい。従って DAD が広く使われている。

Mobile cellular network fraud

音声やメッセージによる振り込め詐欺などのモバイルネットワークの不正検知は, ネットワークトラフィックの量と速度のため簡単ではなく, 従来の特徴エンジニアリングでは日々進化する不正に適応することが難しい。

Insurance fraud

保険詐欺 (保険金の偽装請求) は従来の機械学習手法を適用したアプローチである程度成功している。課題は専門家によるロバストな特徴抽出を行う必要性がある点や, 全体の保険金請求に対して詐欺が占める割合が非常に低い点である。

Healthcare fraud

医療詐欺, 特に医療保険請求詐欺 (療養費詐欺) は医療費の増加に大きく影響している。 詐欺を検出することでこの影響を軽減できるため機械学習モデルが使われてきた(Bauder and Khoshgoftaar [2017])

Malware Detection

従来のマルウェア検出 (Malicious Software Detection) は特徴抽出とクラスタリング/分類の二段階に構成される。データが膨大で攻撃者の適応性が高く高度なテクニックでマルウェアの振る舞いを隠そうとする点が課題である。
マルウェアはデータセンター内で急速に拡散するため IaaS の提供においてマルウェア検知は重要な課題である。 機械学習によるマルウェア検知では, マルウェアがリモートの攻撃者から指示があるまでアイドル状態で待機し訓練段階では活動を開始しないミスラベリング問題 (mislabeling problem) が課題となっている。Abdelsalam et al. [2018]) では RNN よりシンプルで訓練が高速なことから CNN を選択し, PIDとプロセスごとの性能メトリクス に時間 (time-window で移動) を加えた 3D-CNN による二値分類で 90% の accuracy を達成したと報告している。

Medical Anomaly Detection

医学および生命情報科学 (bio-informatics) における深層学習の理論的および実用のためにいくつかの研究がある。(Min et al. [2017], Cao et al. [2018a], Zhao et al. [2016], Khan and Yairi [2018]).   医療分野の異常検出において不均衡データは大きな課題である。深層学習はブラックボックスの技術として考えられてきたが, 最近では優れた解釈性を持つモデルが提案され SOTA を達成することが示されている。 (Gugulothu et al., Amarasinghe et al. [2018b], Choi [2018])
Amarasinghe et al. [2018b] は DNN の予測に対して入力特徴の関連性スコア (relevance scores), 推定値の信頼度, テキストによる説明 (事前に設定された異常タイプの説明) を提示する explainable DNN based anomaly detection を提案した。NSL-KDD データセットで実験を行い, 関連性スコアを伴った上で accuracy 97% を達成している。人間が意思決定に関わるミッションクリティカルなシステムの監視において DNN ベースの異常検知は高い予測性能の一方で, 不透明で非線形な構造を持つことが導入の制限となる場合があるが, これにより DNN の予測結果を人間が直感的に評価する際の手助けとなる。

Deep learning for Anomaly detection in Social Networks

SNS 内の異常は, スパマーや偽のユーザなどによる不規則な振る舞いパターンとして現れる。ソーシャルネットワークにおける異常検知と課題のサーベイ論文は複数ある。(Liu and Chawla [2017], Savage et al. [2014], Anand et al. [2017], Yu et al. [2016], Cao et al. [2018b])
Castellini et al. [2017] は Twitter 上で経済や政治, 社会への影響力を高める目的で作成された偽のフォロワー (Fake followers) の検出に denoising autoencoder を用いる手法を提案した。本物のユーザのプロファイルを特徴量として denoising autoencoder を訓練し再構成誤差の大きいユーザを検出することで, 教師ありモデルよりも偽のフォロワーの変化に対してロバストであると報告している。
知識ベース (e.g. Wikipedia) などのオンラインプラットフォームではスパムや捏造などの荒らし行為を行うユーザが問題となっている。Wikipedia では ClueBot NG という荒らし行為を検出するツールが使われている。Zheng et al. [2018a] は荒らし行為を検出する one-class adversarial nets (OCAN) を提案した。OCAN は最初に LSTM-AE で良性ユーザ (benign users) のオンライン活動を潜在空間にエンコードしユーザ表現とする。次に, ユーザ表現を complementary GAN の識別器に渡す。識別器は通常の GAN の目的関数を修正し, 良性ユーザと悪意のあるユーザを表す complementary samples を分離するように訓練される。

OCAN は one-class 手法のため良性ユーザのみから訓練でき, LSTM-AE がユーザーの活動を逐次的に捉えることで早期検出を可能にする。実験では, 良性ユーザと悪意のあるユーザの両方を必要とする M-LSTM と比較し競争力のある F1-Score を示した。
データの不均質で動的な性質は DAD にとって課題であるが, 以下の手法は SOTA となることが示されている。

Log Anomaly Detection

ログファイルの異常検知はシステム障害の原因を示すテキストを見つけることが目的である。過去の経験から構築されるドメイン特有の正規表現 (regular-expression) のパターンマッチングを用いて障害を見つけるアプローチでは新しい障害の検出が難しい。(Memon [2008])
ログデータのフォーマットとセマンティクスの両方の非構造化と多様性は異常検知の大きな課題であり, さらにリアルタイム検出が求められる。
以下の DAD はログデータを系列として扱い異常検出に有効であることが示されている。

Internet of things (IoT) Big Data Anomaly Detection

IoT は相互接続されたデバイスによるネットワークであり, データは時系列データである。IoT ネットワークでの異常検知の課題は異種のデバイスが相互接続されているためにシステムが複雑になることである。 IoT における深層学習の利用は、Mohammadi et al. [2018] によって提示された。

Industrial Anomalies Detection

産業システムを構成する部品の故障・劣化・損傷を検知するために機械学習が使用されている。 (Ramotsoela et al. [2018], Mart´ı et al. [2015]) 
故障検知は異常検知の問題として定式化できる。課題はデータの動的な性質と量の双方の様々な要因によって異常が引き起こされる点である。  

Anomaly Detection in Time Series

時系列データは単変量と多変量時系列に分類することができる。単変量時系列は単一の変数が時間とともに変化する (e.g. 室内の温度センサ) 。多変量時系列は複数の変数で構成される (e.g. 3軸加速度センサ)。
時系列データにおける異常検知の課題は以下である。

  • ノイズがアルゴリズムの性能に与える影響
  • 時系列データの長さと共に増加する計算量
  • 時系列データの非定常性, 非線形性, 動的な変化への対処

時系列データの様々な異常検知のツール及びデータセットは rob-med/awesome-TS-anomaly-detection で管理されている。

深層学習は豊富な階層的な特徴を抽出できるため, 単変量時系列データの異常検知性能を大幅に改善できる。一方, 多変量時系列データの異常検知は難しいタスクである。Buda et al. [2018] により多変量時系列データの深層学習に基づく一般的なフレームワーク DeepAD が提案されている。RNN/LSTM ベースの手法 (pnnl/safekit) は多変量時系列データセット内の解釈可能な異常を検出できることが示されている。注意機構 (attention mechanism) を用いた異常検知システムは検出された異常の説明に効果的である。(Yuan et al. [2018b], Guo and Lin [2018])

単変量時系列に対する DAD は以下がある。

多変量時系列に対する DAD は以下がある。

Video Surveillance

映像監視システムではラベルのないデータが大量にある点や異常の明確な定義がない点が, 教師付き機械学習や深層学習にとって課題となる。Kiran et al. [2018] や Chong and Tay [2015] は映像の異常検知のための最先端の深層モデルを研究し, モデルのタイプ と検出基準に基づいて分類を行った。

[1] An Empirical Study on Network Anomaly Detection using Convolutional Neural Networks July 2, 2018 (Presented at SNTA 2018)