چطور با شبکه‌های کانولوشنی عجیب‌غریب، ترافیک رو هم سریع‌تر پیش‌بینی کنیم هم دقیق‌تر!

Fall Back

یه موقع شده بخوای بدونی که توی یه شهر شلوغ، ترافیک قراره چجوری باشه؟ خب این دقیقاً همون چیزیه که سیستم‌های حمل‌ونقل هوشمند دارن روش کار می‌کنن! یعنی بتونی قبل از اینکه توی ترافیک بمونی پیش‌بینی کنی کجا گره می‌خوره.

معمولاً برای این کار، از مدل‌هایی استفاده میشه که داده‌های زمانی و مکانی رو پیش‌بینی می‌کنن؛ به اینا میگن پیش‌بینی اسپاتیو-تمپورال (یعنی هم زمان، هم مکان رو با هم بررسی می‌کنه). ولی یه مشکل خیلی بزرگ همیشه وجود داشته: مدل‌ها یا خیلی کند و سنگین میشن، یا نمی‌تونن همه تفاوت‌های مختلف شهرها و زمان‌های مختلف رو درست بفهمن.

تا الان بیشتر روش‌ها سراغ Graph Neural Networks رفتن، خلاصه بهش بگو GNN! اینا مدل‌هایی هستن که روی شبکه‌سازی گرافی کار می‌کنن، یعنی اطلاعات نقطه‌های مختلف شهر (مثل محله‌های ترافیکی، خیابون‌ها) رو به‌صورت یه گراف ذخیره می‌کنن. اما این مدل‌ها دو تا مشکل دارن:
یکیش اینه که باید از قبل بدونی چه نقطه‌هایی به هم وصلن (یعنی adjacency matrix می‌خواد، که یعنی ماتریسی که نشون بده کدوم نقطه‌ها، همسایه کدوم یکی‌ان)، و دوم اینکه وقتی داده خیلی زیاد میشه و شهر بزرگ باشه، واقعاً مدل از پسش برنمیاد و کند میشه.

حالا یه تیم جدید اومده یه مدل ساخته به اسم DDCN که واقعاً خفن به نظر میاد! DDCN مخفف Deformable Dynamic Convolution Network ـه. خلاصه بخوام بگم، یعنی شبکه کانولوشنی دینامیکی که فیلترهاش انعطاف‌پذیرن.

تا حالا شبکه‌های کانولوشنی (CNNها) رو شنیدی؟ همونا که تو تشخیص تصویر غوغا می‌کنن! اما مشکلشون اینه که مثل GNNها نمی‌تونن به‌خوبی ساختارهای عجیب و غیراروپایی (یعنی چیزی که صاف و خطی نیست، مثل پیچ و خم خیابون‌ها) رو مدل کنن.

DDCN اما یه کار ابتکاری کرده: فیلترهای کانولوشنی رو طوری طراحی کرده که خودشون رو بر اساس نوع و شکل داده‌ها تغییر بدن (بهش میگن deformable filters، یعنی فیلترهایی که مثل خمیر شکل می‌گیرن). این فیلترها با استفاده از چیزی به اسم offset یعنی انحراف ـ می‌تونن توجه مدل رو به جاهای مهم‌تر جلب کنن.

جالب اینجاست که مدل ساختارش رو هم خیلی باحال انتخاب کرده: یه چیزی شبیه Encoder-Decoder ساخته (یعنی بخشی که داده رو دریافت و تحلیل می‌کنه – Encoder – و یه بخش که آنالیز رو تکمیل و خروجی رو میده – Decoder). داخل بخش Encoder، کلی بلاک attention گذاشته که دادهای مکانی و زمانی رو با هم ترکیب کنه و چیزای مهم رو بولد کنه؛ attention یعنی «توجه ویژه» دادن مدل به قسمت‌هایی که مهم‌ترن.

یعنی چی؟ یعنی مثلاً اگر توی یه منطقه شهر همیشه جمعه‌ها ترافیک زیاده، مدل به اون نقطه خاص و اون بازه زمانی توجه ویژه می‌کنه و حساس‌تر میشه. Decoder هم با یه ماژولی که بهش feed-forward میگن (یعنی داده‌ها یه راست میرن جلو و پردازش میشن)، خروجی رو قشنگ و دقیق‌تر می‌کنه.

نتیجه چی شد؟ اومدن این مدل رو روی چهار تا دیتاست واقعی (یعنی داده‌هایی از شهرها و زمان‌های واقعی) تست کردن، و دیدن واقعاً هم دقیق پیش‌بینی می‌کنه و هم سریع و بهینه کار می‌کنه. جالب‌تر اینکه همین مدل ثابت کرد که میشه با استفاده از CNNها (همون مدل‌هایی که بیشتر واسه تصویر استفاده میشن)، پیش‌بینی ترافیک رو هم به‌روش‌های پیشرفته و خوبی انجام داد.

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

اگه دنبال مدل‌هایی هستی که هم مقیاس‌پذیر باشن (یعنی بشه راحت باهاشون داده‌های حسابی بزرگ رو مدیریت کرد) و هم دقت خوبی بدن، این روش واقعاً ارزش امتحان کردن داره.

منبع: +