در تشخیص ناهنجاری گرافی باید هم ویژگیهای گرهها و هم ساختار روابط در نظر گرفته شود. خودرمزگذارهای گرافی نقطه شروع مناسبی هستند، اما طراحی امتیاز ناهنجاری و پروتکل ارزیابی به اندازه معماری مدل اهمیت دارد.
چرا ناهنجاری در دادههای گرافی متفاوت است؟
در داده جدولی معمولاً هر مشاهده را میتوان مستقل دید، اما در گراف یک گره علاوه بر ویژگیهای خودش با روابطش تعریف میشود. ممکن است یک گره از نظر ویژگیها عادی باشد ولی الگوی ارتباطی غیرمعمولی داشته باشد. همین تفاوت باعث میشود detectorهای گرافی همزمان به ویژگیها و ساختار روابط توجه کنند.
یک پایپلاین عملی با Graph Autoencoder
در یک GAE، encoder با استفاده از GNN نمایش نهفته گرهها را میسازد و decoder بخشی از ساختار یا ویژگیها را بازسازی میکند. خطای بازسازی میتواند یکی از سیگنالهای anomaly باشد. با این حال اگر ظرفیت مدل زیاد باشد، حتی نمونههای غیرعادی هم ممکن است خوب بازسازی شوند؛ بنابراین regularization و تعریف anomaly score اهمیت زیادی دارند.
نقش Attention
Graph Attention Network اجازه میدهد همسایههای مختلف وزن متفاوتی داشته باشند. این موضوع در anomaly detection مفید است، چون همه edgeها ارزش اطلاعاتی یکسانی ندارند. با این حال GAT یک ارتقای تضمینشده نیست و باید در کنار baselineهای سادهتر ارزیابی شود.
هندسه گراف و منظمسازی ساختارمحور
یکی از مسیرهایی که روی آن کار کردهام استفاده از یک تقریب هندسی برای حفظ بخشی از ساختار گراف در فضای نهفته است. برای مثال میتوان از ساختاری مبتنی بر Minimum Spanning Tree برای نزدیکشدن به مفهوم فاصله ژئودزیک استفاده کرد و embedding را طوری منظم کرد که روابط مهم ساختاری را از دست ندهد.
پیادهسازی عمومی این ایدهها در پروژه Graph Anomaly Detection قرار دارد.
ارزیابی درست
در این مسائل Accuracy معمولاً معیار مناسبی نیست. معیارهایی مثل ROC-AUC و مخصوصاً PR-AUC برای دادههای نامتوازن مفیدترند. همچنین باید مراقب threshold leakage، contamination و اثر ساختار transductive گراف بر داده test بود.
چکلیست عملی
- تعریف anomaly دقیقاً چیست؟
- مدل چه اطلاعاتی را هنگام آموزش میبیند؟
- decoder چه چیزی را بازسازی میکند؟
- مؤلفههای anomaly score چگونه نرمال میشوند؟
- hyperparameterها بدون استفاده از labelهای test چگونه انتخاب میشوند؟
- baseline غیرگرافی چقدر رقابتی است؟