سیستم تصمیم‌گیری دوسطحی: جداسازی سیگنال از نویز در داده‌های سیاق‌دار
مقاله حسین نریمانی ۱۴۰۵/۰۴/۰۸ Quant System Design

سیستم تصمیم‌گیری دوسطحی: جداسازی سیگنال از نویز در داده‌های سیاق‌دار

بیشتر سیستم‌های تصمیم‌گیری یک مشکل ساختاری دارند: هر دادهٔ ورودی را با وزن یکسان پردازش می‌کنند. سیستم نمی‌داند کدام سیگنال اطلاعات واقعی حمل می‌کند و کدام نویز است. نتیجه؟ تصمیم‌های پرهزینه بر اساس داده‌های بی‌معنی....

بیشتر سیستم‌های تصمیم‌گیری یک مشکل ساختاری دارند: هر دادهٔ ورودی را با وزن یکسان پردازش می‌کنند. سیستم نمی‌داند کدام سیگنال اطلاعات واقعی حمل می‌کند و کدام نویز است. نتیجه؟ تصمیم‌های پرهزینه بر اساس داده‌های بی‌معنی.

مشکل اصلی: داده‌های سیاق‌دار بی‌ساختار هستند

داده‌های سیاق‌دار (Contextual Data) — مثل رفتار کاربر، جریان سفارش در بازار، یا لاگ‌های عملیاتی — دو ویژگی مشترک دارند: حجم بالا و نسبت سیگنال-به-نویز (Signal-to-Noise Ratio) پایین. بیشتر پیپلاین‌ها این داده‌ها را مستقیم به لایهٔ تصمیم می‌فرستند، انگار همه‌شان به یک اندازه اهمیت دارند.

این اشتباه فنی نیست — اشتباه معماری است. وقتی لایهٔ فیلترینگ وجود ندارد، سیستم تصمیم‌گیر مجبور می‌شود همزمان هم نویز را مدیریت کند هم تصمیم بگیرد. این دو کار ذاتاً با هم در تضادند.

معماری دوسطحی: منطق جداسازی

رویکرد معماری که در سیستم‌های production استفاده می‌کنم بر یک اصل ساده بنا شده: سطح اول فقط فیلتر می‌کند، سطح دوم فقط تصمیم می‌گیرد. این جداسازی وظایف (Separation of Concerns) در طراحی سیستم‌های هوشمند یک الزام است، نه یک انتخاب.

سطح اول — لایهٔ استخراج سیگنال (Signal Extraction Layer): این لایه داده‌های خام را دریافت می‌کند و فقط یک سوال می‌پرسد: آیا این داده اطلاعات جدیدی نسبت به وضعیت پیشین سیستم دارد؟ ابزارهایی مثل فیلتر Kalman، آنتروپی اطلاعاتی (Information Entropy)، یا معیارهای آماری ساده می‌توانند این نقش را ایفا کنند. خروجی این لایه یک بردار فشرده از سیگنال‌های واجد شرایط است — نه داده‌های خام.

سطح دوم — لایهٔ تصمیم متا (Meta-Decision Layer): این لایه فقط با سیگنال‌های تأییدشده کار می‌کند. در اینجا می‌توان از مدل‌های Bayesian، درخت‌های تصمیم وزن‌دار، یا حتی قوانین ساده‌تر استفاده کرد — اما چون ورودی قبلاً پاک‌سازی شده، نرخ خطا (False Positive Rate) به‌طور قابل توجهی کاهش می‌یابد.

مثال عملیاتی: سیستم تصمیم در جریان سفارش

در یک سیستم معاملاتی که روی Order Flow کار می‌کرد، ورودی هر ثانیه شامل صدها تیک قیمت، داده‌های دفتر سفارش (Order Book)، و سیگنال‌های sentiment بود. اگر همهٔ این داده‌ها مستقیم به مدل تصمیم می‌رسیدند، تأخیر پردازشی و نرخ False Signal به‌قدری بالا می‌رفت که سیستم غیرقابل استفاده می‌شد.

با معماری دوسطحی، لایهٔ اول فقط تغییرات معنادار در عدم‌تعادل دفتر سفارش (Order Book Imbalance) را شناسایی و پاس می‌داد. لایهٔ دوم روی این سیگنال‌های فشرده‌شده تصمیم می‌گرفت. نتیجهٔ عملی: کاهش ۶۰٪ در حجم پردازش و بهبود دقت سیگنال‌های نهایی بدون تغییر در مدل تصمیم‌گیری.

محدودیت‌ها و هزینه‌های پنهان

این معماری هزینه‌های خودش را دارد. طراحی معیار صحیح برای لایهٔ اول — اینکه دقیقاً چه چیزی «سیگنال» است — مشکل‌ترین بخش کار است. اگر آستانهٔ (Threshold) فیلتر را خیلی بالا بگذارید، سیگنال‌های واقعی از دست می‌روند. خیلی پایین؟ نویز به لایهٔ دوم نفوذ می‌کند و هدف معماری از بین می‌رود.

علاوه بر این، این جداسازی یک لایهٔ نگهداری (Maintenance) اضافه ایجاد می‌کند. باید هر دو لایه را جداگانه مانیتور کنید. Drift در لایهٔ اول — که معمولاً با تغییر توزیع داده‌ها اتفاق می‌افتد — بدون اینکه خودش نمایان شود، کیفیت تصمیم‌های لایهٔ دوم را خراب می‌کند. این یکی از خاموش‌ترین نوع‌های شکست در سیستم‌های هوشمند است.

پیچیدگی را فقط وقتی اضافه کنید که سادگی شکست خورده باشد. اما وقتی حجم داده‌های سیاق‌دار از یک حد مشخص رد می‌شود، این معماری دیگر یک انتخاب نیست — تنها راه قابل اعتماد برای حفظ دقت تصمیم است.

سیستم‌هایی که سیگنال را از نویز جدا نمی‌کنند، در نهایت برای هر دو تصمیم می‌گیرند — و این دقیقاً همان چیزی است که «هوش عملیاتی» را از «پردازش دادهٔ صرف» متمایز می‌کند.

آماده‌ای این ایده را روی محصول خودت اجرا کنی؟ جلسه راهبردی رزرو کن و نقشه مسیر اسپرینت بعدی را دقیق کن.

نظرات (0)

اولین نفری باشید که نظر می‌دهد.
ورود / ثبت‌نام