Deteksi Anomali Deret Waktu: Tinjauan 10 Tahun
(arxiv.org)- Seiring meningkatnya data streaming dan IoT, deteksi anomali deret waktu menjadi tugas analisis inti untuk membedakan normal dan tidak normal di bidang seperti keamanan siber, pasar keuangan, penegakan hukum, dan layanan kesehatan
- Dengan bercampurnya deteksi anomali tradisional yang berpusat pada statistik dan pendekatan machine learning terbaru, diperlukan taksonomi yang mencerminkan urutan waktu dan struktur deret waktu
- Anomali muncul bukan hanya pada satu nilai, tetapi juga pada subsekuens; anomali titik, anomali kontekstual, dan anomali kolektif hanya dapat dibedakan dengan melihat pola sekitar dan konteks waktu sekaligus
- Sebagian besar metode mengikuti pipeline prapemrosesan → model deteksi → pemberian skor → pascapemrosesan, mengubah deret waktu menjadi matriks dengan sliding window lalu menghitung skor anomali
- Tinjauan ini mengelompokkan metode menjadi berbasis jarak, berbasis densitas, dan berbasis prediksi, untuk mengurangi keterputusan perbandingan antar komunitas riset yang memakai dataset, baseline, dan metrik evaluasi berbeda
Mengapa deteksi anomali deret waktu sulit
- Deret waktu adalah urutan nilai riil yang dicatat seiring waktu; ketika urutannya bergantung pada dimensi seperti sudut, massa, atau posisi, bukan waktu, istilah seri data atau sekuens data juga digunakan
- Analisis deret waktu dibutuhkan di berbagai bidang seperti astronomi, biologi, ekonomi, ilmu energi, teknik, ilmu lingkungan, kedokteran, neurosains, dan ilmu sosial
- Kompleksitas proses pembangkitan data, ketidaksempurnaan sistem pengukuran, dan interaksi dengan pelaku berbahaya dapat menciptakan fenomena tidak normal dalam data yang dikumpulkan
- Seiring meluasnya aplikasi IoT dan meningkatnya deret waktu yang dihasilkan, anomali yang perlu ditemukan dalam koleksi deret waktu juga diperkirakan akan bertambah
- Anomali berarti titik data atau kelompok titik yang tidak sesuai dengan normalitas atau perilaku yang diharapkan berdasarkan data observasi sebelumnya
- Istilah seperti outlier, novelty, exception, peculiarity, aberration, deviant, dan discord juga digunakan
- Bergantung pada aplikasinya, anomali dapat berupa noise yang harus dihapus atau diperbaiki, atau event yang menarik untuk dianalisis lebih lanjut, seperti kegagalan atau perubahan perilaku
Definisi dan jenis anomali
- Tidak ada satu definisi presisi yang tunggal dan universal untuk anomali
- Secara tradisional, anomali adalah observasi yang menyimpang jauh dari sebagian besar sampel dalam distribusi, dan menimbulkan dugaan bahwa nilai tersebut mungkin dihasilkan oleh mekanisme yang berbeda dari data lainnya
- Jika pakar mengetahui secara tepat cara kerja sistem, mereka dapat menetapkan distribusi dan parameter kondisi normal, lalu menandai titik yang berjarak lebih dari 3 standar deviasi dari rata-rata sebagai anomali
- Dalam masalah nyata, distribusi pembangkkit data dan berbagai faktor hasil sulit diketahui secara tepat, dan distribusi praktis juga kompleks, sehingga sulit mengidentifikasi anomali hanya berdasarkan jarak dari rata-rata yang didefinisikan pakar
- Perkembangan kemampuan komputasi memungkinkan estimasi distribusi dari data mentah dan pendekatan di mana algoritme mendeteksi anomali tanpa pengetahuan pakar
- Metode seperti ini sangat bergantung pada kualitas dan konteks dataset
-
Tiga jenis anomali deret waktu
- Anomali titik (point anomaly): satu titik data yang menyimpang jelas dari data lainnya
- Anomali kontekstual (contextual anomaly): titik data yang masih berada dalam rentang harapan distribusi keseluruhan, tetapi menyimpang dari distribusi yang diharapkan dalam konteks tertentu seperti window tertentu
- Anomali kolektif (collective anomaly): sekuens titik yang tidak mengulang pola yang biasanya diamati
- Anomali titik dan anomali kontekstual diklasifikasikan sebagai point-based anomaly, sedangkan anomali kolektif diklasifikasikan sebagai sequence-based anomaly
- Deteksi sekuens utuh adalah kasus deteksi anomali subsekuens yang menjadikan seluruh deret waktu itu sendiri sebagai satu objek evaluasi, dan digunakan dalam lingkungan penyaringan sensor untuk menemukan sensor abnormal di antara sensor normal
Dimensi data dan pengaturan pembelajaran
- Deret waktu univariat berbentuk nilai riil yang tersusun berurutan dalam satu dimensi, dan anomali dideteksi berdasarkan satu karakteristik
- Deret waktu multivariat adalah kumpulan beberapa deret berurutan dengan panjang sama, atau deret berurutan dari vektor riil
- Dalam multivariat, tiap nilai fitur dapat tampak normal jika dilihat sendiri, tetapi keseluruhan sekuens bisa saja abnormal
- Subsekuens dapat direpresentasikan sebagai vektor pada univariat, dan sebagai matriks pada multivariat, dengan setiap baris merupakan subsekuens dari satu dimensi
-
Deteksi unsupervised, semi-supervised, dan supervised
- Metode unsupervised digunakan ketika tidak ada informasi pakar tentang anomali apa yang harus dideteksi
- Dapat beroperasi tanpa koleksi besar anomali yang sudah diketahui
- Dapat secara otomatis mendeteksi perilaku abnormal yang belum diketahui
- Dapat digunakan untuk pemantauan status sistem atau penambangan deret waktu historis
- Metode semi-supervised mendeteksi anomali berdasarkan contoh sekuens normal yang diberikan pakar
- Banyak literatur juga menyebut kategori ini sebagai metode unsupervised
- Ada pembedaan bahwa karena memerlukan pengetahuan awal tentang contoh normal, kategori ini sulit digabungkan dengan metode yang sepenuhnya unsupervised
- Metode supervised berlaku ketika pakar mengetahui secara tepat pola yang akan dideteksi dan tersedia koleksi deret waktu anomali berlabel
- Subsekuens abnormal dapat diprediksi menggunakan subsekuens sebelum subsekuens anomali
- Subsekuens pendahulu seperti ini dapat disebut precursor anomali
Pipeline deteksi umum
- Algoritme deteksi anomali deret waktu umumnya memiliki alur prapemrosesan → metode deteksi → pemberian skor → pascapemrosesan
- Pada tahap prapemrosesan, pendekatan berbasis window yang mengubah deret waktu menjadi matriks berisi baris-baris potongan sliding window umum digunakan
- Prapemrosesan tambahan berbeda-beda, seperti ekstraksi fitur statistik, fitting model machine learning, atau pembangunan jaringan saraf
- Pada tahap deteksi, diterapkan metode seperti perhitungan jarak, fitting hyperplane klasifikasi, atau perbandingan subsekuens yang dihasilkan dengan subsekuens asli di atas dataset yang sudah diproses
- Pada tahap pemberian skor, hasil deteksi diubah menjadi skor anomali bertipe riil yang menunjukkan tingkat abnormalitas tiap subsekuens
- Skor ini digunakan untuk menyimpulkan skor tiap titik
- Deret waktu skor hasilnya memiliki panjang yang sama dengan deret waktu asli
- Pada tahap pascapemrosesan, titik atau interval anomali diekstraksi dari deret waktu skor anomali
- Biasanya ambang batas ditetapkan, dan titik yang skornya melampaui ambang batas ditandai sebagai anomali
Taksonomi berbasis proses
- Metode deteksi anomali deret waktu secara garis besar dibagi menjadi berbasis jarak, berbasis densitas, dan berbasis prediksi
- Klasifikasi tingkat kedua tidak saling eksklusif
- Satu model dapat mengompresi data deret waktu sekaligus menggunakan strategi identifikasi berbasis discord
-
Metode berbasis jarak
- Metode berbasis jarak mendeteksi anomali dengan membandingkan nilai numerik deret waktu mentah menggunakan metrik jarak
- Umumnya didefinisikan jarak
d(A, B)antara dua sekuens dengan panjang yang sama, dan jika kedua sekuens sama, jaraknya 0 - Jarak yang banyak digunakan adalah Euclidean distance dan Z-normalized Euclidean distance
- Dynamic Time Warping(DTW) sering digunakan untuk menangani masalah ketidakselarasan alignment
- Subkategori utamanya adalah berbasis kedekatan, berbasis clustering, dan berbasis discord
- Berbasis kedekatan (proximity-based): menentukan apakah sebuah subsekuens anomali berdasarkan seberapa terisolasi subsekuens itu dari tetangga dekatnya
- Berbasis clustering (clustering-based): tingkat ketidakmasukan subsekuens ke cluster yang dipelajari, jarak cluster, kapasitas cluster, dan sebagainya dapat digunakan dalam perhitungan skor anomali
- Berbasis discord (discord-based): mencari secara efisien discord, yaitu subsekuens yang jaraknya ke tetangga terdekat paling besar di antara seluruh subsekuens
-
Metode berbasis densitas
- Metode berbasis densitas tidak melihat deret waktu hanya sebagai deret numerik sederhana, tetapi memprosesnya di atas representasi yang dapat mengukur densitas ruang titik atau subsekuens
- Representasinya beragam, seperti graf, tree, histogram, dan aturan induksi tata bahasa
- Subkategori utamanya adalah berbasis distribusi, berbasis graf, berbasis tree, dan berbasis encoding
- Berbasis distribusi (distribution-based): membuat distribusi dari fitur statistik titik atau subsekuens, lalu merekonstruksi model statistik terkait melalui distribusi fitur subsekuens normal untuk menyimpulkan abnormalitas
- Berbasis graf (graph-based): merepresentasikan deret waktu dan subsekuens sebagai graf, lalu mendeteksi anomali menggunakan fitur graf seperti bobot node/edge atau derajat node
- Berbasis tree (tree-based): membagi titik atau subsekuens dengan tree, lalu menentukan anomali menggunakan statistik dan fitur seperti kedalaman tree
- Berbasis encoding (encoding-based): menafsirkan deret waktu sebagai simbol diskret context-free atau sekuens status, lalu mendeteksi anomali menggunakan aturan tata bahasa dari simbol yang diekstrak, dan sebagainya
-
Metode berbasis prediksi
- Metode berbasis prediksi mendeteksi anomali dengan memprediksi perilaku normal yang diharapkan berdasarkan deret waktu atau subsekuens pembelajaran
- Metode ini bergantung pada asumsi bahwa data normal mudah diprediksi, sedangkan anomali berada di luar ekspektasi sehingga error prediksinya besar
- Asumsi ini valid ketika set pembelajaran tidak mengandung anomali atau hanya mengandung sangat sedikit anomali
- Metode berbasis prediksi biasanya lebih cocok dalam pengaturan semi-supervised
- Subkategori utamanya adalah berbasis forecasting dan berbasis reconstruction
- Berbasis forecasting (forecasting-based): menerima titik atau subsekuens sebelum waktu tertentu sebagai input untuk memprediksi nilai atau subsekuens berikutnya, lalu menggunakan selisih antara nilai aktual dan prediksi sebagai skor anomali
- Berbasis reconstruction (reconstruction-based): mengompresi deret waktu atau subsekuens input ke ruang laten yang lebih kecil lalu merekonstruksinya kembali, dan menggunakan selisih antara input dan hasil rekonstruksi sebagai skor anomali
Evaluasi dan keterputusan perbandingan riset
- Berbagai area riset sebagian besar terputus karena menggunakan dataset, baseline, dan metrik evaluasi yang berbeda
- Algoritme baru sering hanya dibandingkan dengan sebagian pendekatan yang kurang representatif, sehingga sulit menemukan pendekatan state-of-the-art untuk use case tertentu
- Taksonomi berbasis proses memungkinkan berbagai metode deteksi dikelompokkan ke dalam keluarga algoritme dengan pendekatan serupa agar dapat dibandingkan
- Statistik literatur menunjukkan tren jenis pendekatan dan area riset dari waktu ke waktu
- Benchmark yang sudah ada yang dapat digunakan sebagai basis evaluasi umum serta kelebihan, kekurangan, dan keterbatasan metrik evaluasi deteksi anomali deret waktu juga dirangkum
1 komentar
Opini Hacker News
Matrix Profile adalah salah satu alat yang kurang diapresiasi dalam analisis deret waktu, dan sangat efisien. Tidak seperti teknik tradisional, ia tidak perlu banyak penyetelan ukuran jendela dan ambang batas, cocok untuk menemukan motif dan outlier, serta bekerja dengan tangguh di berbagai bidang seperti data sensor manufaktur, analisis EKG, dan deteksi gempa
https://www.cs.ucr.edu/~eamonn/MatrixProfile.html
Yang ini, dari kelompok peneliti yang sama, adalah materi pengantar yang lebih baik
https://matrixprofile.org/
Karena penggunaan sistem sangat menunjukkan pola musiman mingguan, nilai suatu metrik dari 1, 2, 3, dan 4 minggu sebelumnya dirata-ratakan lalu dibandingkan dengan nilai saat ini. Dengan begitu ambang alarm bisa diatur secara dinamis sesuai siang/malam dan hari kerja/akhir pekan, lalu dibandingkan dengan rata-rata berdasarkan hari dalam minggu atau jam
Ada tulisan dari GitLab yang menjelaskan pendekatan ini lebih rinci
https://about.gitlab.com/blog/2019/07/23/anomaly-detection-u...
Kalau ada hari libur, ini jadi sedikit lebih rumit, tetapi benar-benar bisa diprogram di Prometheus
https://promcon.io/2019-munich/slides/improved-alerting-with...
Saya bukan ahli di bidang ini, tetapi peramalan dan deteksi anomali tampaknya cukup berkaitan. Bisa saja saya keliru
Misalnya, model berbasis deret waktu seperti Granite TS yang dibuat mantan rekan kerja saya bekerja cukup baik saat kami uji
Pencerahan tentang cara memikirkan model deteksi anomali adalah bahwa pada akhirnya kita memprediksi N langkah berikutnya, lalu melihat apakah nilai terukur aktual “cukup berbeda” dari nilai yang diharapkan. Pada sinyal tunggal ini mudah digambar di papan tulis, tetapi cukup menarik bahwa ini juga bekerja pada multivariat
[1] https://huggingface.co/ibm-granite/granite-timeseries-ttm-r1
[0] https://scikit-learn.org/stable/modules/generated/sklearn.en...
Perangkat ini dapat mendeteksi kebocoran dan memperkirakan penggunaan air di tingkat fasilitas. Deteksi kebocoran pada akhirnya adalah pekerjaan mengidentifikasi outlier deret waktu, dan deteksi anomali berbasis distribusi yang disebutkan dalam makalah relevan di sini. Menariknya, ruang hunian mungkin membutuhkan beberapa distribusi karena perubahan suhu pipa antara musim hangat dan dingin
Sejauh ini tidak terlalu buruk, tetapi ada beberapa kekurangan yang cukup besar
Saya kira pustaka C# dari Microsoft bisa melakukannya, tetapi ternyata benar-benar berantakan. Akan bagus kalau ada orang yang punya waktu dan kemauan untuk mengimplementasikan pustaka yang layak
Area ini sangat cocok untuk munculnya SaaS yang dapat dikonfigurasi atau alat open source dengan mekanisme pelaporan dan notifikasi tingkat lanjut. Datadog juga punya produk yang lumayan, tetapi cukup mahal
Secara khusus, kami pada dasarnya membuatnya berjalan secara offline. Kami mengintegrasikan AI ke dalam peralatan, dan tidak mengirim data ke server pihak ketiga maupun ke server kami sendiri. Alasannya, kami melihat banyak peluang pelanggan yang terlewat karena koneksi online tidak memungkinkan. Jika Anda sedang mencari solusi pemantauan mesin industri, atau tertarik pada perangkat lunak industri yang sensitif terhadap keamanan, kami ingin berbicara. Kami juga sedang mengembangkan data historian: www.sentineldevices.com
Saya membuat sistem yang mendeteksi dan merespons sebelum pengecualian terjadi; misalnya, dengan memperlambat laju permintaan secara proaktif sebelum berujung pada kehabisan sumber daya database, dengan harapan itu benar-benar lebih baik daripada sekadar membiarkan pengecualian terjadi
Saat itu saya merasa masih sangat banyak yang perlu dikerjakan di bidang ini, dan agak disayangkan saya belum sempat mengerjakannya lagi
Masalah inti lainnya adalah mendefinisikan secara ketat dan akurat apa itu anomali dan apa yang bukan
Meski bukan produk inti, dalam kebanyakan kasus ini membantu mengoptimalkan operasi. Di manufaktur, computer vision dapat menyeleksi produk cacat di lini perakitan; di operasi, analisis frekuensi dengan akselerometer/sensor suhu dapat mendeteksi tanda-tanda kerusakan untuk predictive maintenance. Di penjualan, analisis deret waktu atas angka-angka atau permintaan dukungan dapat menunjukkan sinyal naik/turun untuk arus kas, kepuasan pelanggan, dan sebagainya
https://youtu.be/vzPgHF7gcUQ?si=rKQvOjK_qjiSSvKE