大規模言語モデル(LLM)は、文中の次の単語を予測することで文章を生成します。この特性を時系列データに応用した、LLMによる時系列予測に関する研究が盛んに行われています。今回は、時系列の異常検出に焦点を当てた論文「Large language models can be zero-shot anomaly detectors for time series?」を紹介します。この論文では、時系列データをテキストに変換し、LLMの言語処理能力を応用することで、「時系列の異常検出」という非言語的課題に対して、追加学習なし(ゼロショット)でどこまで対応できるかを検証しています。
時系列データをLLMで扱える形式に変換するため、以下の4つのステップで数値列を文字列へと変換します。
LLMによる時系列異常検出のため、以下の2つの手法が提案されています。
1. PROMPTER
テキストプロンプトを通じて、LLMに時系列の異常を直接問い合わせる手法。論文中では以下のようなプロンプトが使用されている。((x1, x2, ..., xw)は数値列)
You are an exceptionally intelligent assistant that detects anomalies in time series data by listing all the anomalies. Below is a sequence, please return the anomalies in that sequence. Do not say anything like ‘the anomalous indices in the sequence are’, just return the numbers. Sequence: {the input sequence (x1, x2, ..., xw)}
これにより、LLMに異常値のリストを出力させる。
2. DETECTOR
LLMを用いて次の時点の値を予測し、その予測値と実測値との差(残差)に基づいて異常を判定する手法。最も基本的な方法としては、残差に閾値を設定し、それを超えた場合に異常と判断する。
11種類の時系列異常検出データセットを用いて、F1スコアによる精度評価を実施しています。LLMとしてはMistral-7B-Instruct-v0.2(PROMPTER及びDETECTORで使用)とgpt-3.5-turbo-instruct(PROMPTERのみで使用)を用いています。
・PROMPTERの精度
MISTRALとGPTの両者ともにPrecisionが低く(=誤検出が多く)、F1スコアは低い。
・DETECTORの精度
PROMPTERと比較してF1スコアは2倍以上高く、DETECTORの方が高精度。
・他手法との比較
LLMによる異常検出の精度は、ベースラインである移動平均手法やTransformerベースの手法には優っているが、ARIMAなどのクラシックな手法やディープラーニングベースの手法には及ばない。
一定の精度は確認されたものの、以下のような課題も指摘されています。
1. コンテキストウィンドウの制限
LLMは入力可能なトークン数に制限があるため、長い時系列データは小さなウィンドウに分割して処理する必要がある。その結果、変化が緩やかで長期に渡って現れるような異常の検出は難しくなる。
2. 計算コストと実用性
DETECTORは、PROMPTERよりも精度が高い反面、計算時間が長くなる。平均でPROMPTERよりも約2倍の推論時間を要し、入力する時系列が長くなるほど計算時間も増大するため、場合によってはディープラーニングモデルの学習時間よりも長くなってしまう可能性がある。
今回はLLMで時系列の異常検出を行う手法について検討した「Large language models can be zero-shot anomaly detectors for time series?」を紹介しました。
次回は、この手法をサンプルデータに適用した結果について紹介します。