「解析」の取り組み内容
ログの収集と可視化については一定の効果を得られましたが、可視化だけでは情報が落ちている、人の目に頼った判断となっているという状況を把握した石原氏は、次に「解析」についても改善のアクションを行っていきます。Hiveによる全アクセスログの集計とRの機械学習ライブラリ活用による傾向変化の検知が次のゴールとなりました。解析における作業の流れは以下構成図の内容となります。
まずは異常値に関連する指標を探すため、可視化した内容を確認することから始めた石原氏は、特定日時に特定のリクエストが集中していることを把握します。しかしこの時の内容についてはシンプルな指標変化(任意の閾値を超えた場合、異常と判定する)による異常値検出であったため、顧客環境によってはうまくいかないケースもありました。このため、機械学習のアルゴリズムを使い、閾値による検出からユーザー利用傾向の変化による検出を行なう「方向転換」を行いました。
機械学習の"適切なアルゴリズム"を選ぶための作業は試行錯誤の連続でした。LOF(Local Outliner Factor/密度ベースの外れ値検出法)は、外れ値としたい値が意図した結果とならなかったために不採用。
また、一定数あるはずの異常値と正常値の切り分け方を探すSVM(One-Class SVM)ではその結果から採用に踏み切るなど、アルゴリズムによって向き不向きがあることが分かりました。
これらの作業を通じて、石原氏は「どのアルゴリズムが目的実現に適切なものなのか、試行錯誤は大変でした」としつつ、「Rのライブラリは充実しており、簡単な機械学習の適用ならすぐに試せる。ぜひ皆さんも色々試してみて欲しい。そしてこの取り組みによって予防的なパフォーマンス改善ができるようになりました」とその効果について振り返りました。
そして最後にセッションのまとめとして「より客観的・継続的な改善のためにデータ分析を軸にした方法は有用だということが分かりました。今後はバックエンドのアプリログの解析や可視化、ストレージ容量の利用傾向分析についても範囲を広げて行きたい」と意気込み、セッション発表を締めました。