研究一覧arrow
LLMで時系列データの異常検出を行う方法/論文紹介編

LLMで時系列データの異常検出を行う方法/論文紹介編

概要

大規模言語モデル(LLM)は、文中の次の単語を予測することで文章を生成します。この特性を時系列データに応用した、LLMによる時系列予測に関する研究が盛んに行われています。今回は、時系列の異常検出に焦点を当てた論文「Large language models can be zero-shot anomaly detectors for time series?」を紹介します。この論文では、時系列データをテキストに変換し、LLMの言語処理能力を応用することで、「時系列の異常検出」という非言語的課題に対して、追加学習なし(ゼロショット)でどこまで対応できるかを検証しています。

論文情報

  • タイトル:Large language models can be zero-shot anomaly detectors for time series?
  • 著者:Sarah Alnegheimish, Linh Nguyen, Laure Berti-Equille and Kalyan Veeramachaneni

時系列データの変換

時系列データをLLMで扱える形式に変換するため、以下の4つのステップで数値列を文字列へと変換します。

  • スケーリング
    • 目的:値の正負に依存せず処理できるようにすること、また、正負記号(+/−)に起因するトークン数を削減すること
    • 方法:各値から最小値を引き、すべての値が0以上になるように変換する
    • 例:[6.357, 12.760, 18.201] → [0, 6.403, 11.844]
  • 量子化
    • 目的:連続値を離散化すること、また、小数点に起因するトークン数を削減すること
    • 方法:数値を丸めて桁数を調整し、浮動小数点数から整数に変換する
    • 例:[0, 6.403, 11.844] → [0, 640, 1184]
  • 移動窓による分割
    • 目的:LLMの入力トークン数の制限に対応すること
    • 方法:所定の長さとステップ幅でスライディングウィンドウを適用して分割する
    • 例:[0, 640, 1184, 1561, …] → [[0, 640, 1184], [640, 1184, 1561], …]
  • 文字列化
    • 目的:数値列をトークン化可能な文字列に変換すること
    • 方法:数値列を文字列に変換する
    • 例:[0, 640, 1184] → ‘0,640,1184’

異常検出手法

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を用いて次の時点の値を予測し、その予測値と実測値との差(残差)に基づいて異常を判定する手法。最も基本的な方法としては、残差に閾値を設定し、それを超えた場合に異常と判断する。

PROMPTER(a)とDETECTOR(b)での異常検出のイメージ図

精度評価

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の方が高精度。

11種類のデータセットに対する平均の適合率・再現率・F1スコア

・他手法との比較

LLMによる異常検出の精度は、ベースラインである移動平均手法やTransformerベースの手法には優っているが、ARIMAなどのクラシックな手法やディープラーニングベースの手法には及ばない。

各モデルとベースラインモデル(移動平均手法)とのF1スコアの比較

課題

一定の精度は確認されたものの、以下のような課題も指摘されています。

1. コンテキストウィンドウの制限

LLMは入力可能なトークン数に制限があるため、長い時系列データは小さなウィンドウに分割して処理する必要がある。その結果、変化が緩やかで長期に渡って現れるような異常の検出は難しくなる。

2. 計算コストと実用性

DETECTORは、PROMPTERよりも精度が高い反面、計算時間が長くなる。平均でPROMPTERよりも約2倍の推論時間を要し、入力する時系列が長くなるほど計算時間も増大するため、場合によってはディープラーニングモデルの学習時間よりも長くなってしまう可能性がある。

まとめ

今回はLLMで時系列の異常検出を行う手法について検討した「Large language models can be zero-shot anomaly detectors for time series?」を紹介しました。

次回は、この手法をサンプルデータに適用した結果について紹介します。

No items found.

MAZINでは製造DXに取り組む生産技術者を募集しています

私たちと一緒に、新しい技術で製造業の新たな可能性を切り拓きませんか?詳細は以下のリンクをご覧ください。
MAZINでは製造DXに取り組む生産技術者を募集しています。
No items found.