tara brn
tara brn
خواندن ۲۶ دقیقه·۱ سال پیش

کاربردهای علم شبکه‌های پویای پیچیده در پیشبینی تقاضای حمل و نقل

چکیده

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

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

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



مقدمه

در علم شبکه‌های پیچیده پویا، پیش‌بینی‌‌های مربوط به ترافیک مسئله‌ای مهم است که درک و پیش‌بینی نوسانات و الگوهای ترافیکی در شبکه‌های پیچیده را ممکن می‌سازد. شبکه‌های پیچیده پویا معمولاً از تعداد زیادی عنصر (مانند گره‌ها و اتصالات) تشکیل شده‌اند که با یکدیگر تعامل می‌کنند و در طول زمان تغییر می‌کنند. در محیط‌های شهری، شبکه‌های جاده‌ای به عنوان نمونه‌ای از شبکه‌های پیچیده پویا مطرح هستند. ترافیک در این شبکه‌ها تحت تأثیر عوامل مختلفی مانند تقاضا، رویدادها، مسیریابی و نیز عملکرد سیستم‌های حمل و نقل است. پیش‌بینی ترافیک به این شکل می‌تواند به مدیریت و بهبود کیفیت حمل و نقل کمک کند.

در علم شبکه‌های پیچیده پویا، روش‌های پیش‌بینی ترافیک از گستره‌ای از الگوریتم‌ها و مدل‌های مختلف بهره می‌برند. از روش‌های آماری و ساده‌تر مانند رگرسیون خطی تا روش‌های پیچیده‌تری مانند شبکه‌های عصبی، مدل‌های بازنمایی گراف و یادگیری عمیق استفاده می‌شود. این روش‌ها با تحلیل و پردازش داده‌های ترافیک، الگوها و نمونه‌های تاریخی را شناسایی کرده و بر اساس آن‌ها پیش‌بینی‌های دقیقی درباره ترافیک آینده ارائه می‌دهند. از این طریق، مدیران شبکه‌های حمل و نقل قادر خواهند بود تصمیمات بهتری برای بهبود جریان ترافیک و کاهش توقفات اتخاذ کنند. به طور مثال، با استفاده از داده‌هایGPS خودروها، می‌توان الگوهای حرکت خودروها را تحلیل کرده و پیش‌بینی‌هایی درباره جریان ترافیک در آینده ارائه داد. همچنین، با استفاده از داده‌های کنترل ترافیک می‌توان الگوهای تغییرات سیگنال‌های راهنمایی و رانندگی را بررسی کرده و ترافیک را در تقاطع‌ها پیش‌بینی کرد.

امروزه، یادگیری بازنمایی گراف در حوزه ترافیک، یکی از رویکردهای مورد توجه است که با استفاده از شبکه‌های پیچیده پویا و الگوریتم‌های یادگیری ماشین، نمایشی مناسب و قابل استفاده از ساختار گراف ترافیک را ایجاد می‌کند. هدف اصلی این روش، استخراج نمایش برداری از عناصر مرتبط با ترافیک، مانند تقاطع‌ها، خیابان‌ها، خودروها و شرایط رانندگی، در قالب یک گراف است. در این رویکرد، اطلاعات مرتبط با ترافیک در یک گراف مدل می‌شوند که گره‌ها معمولاً عناصر ترافیکی و یال‌ها نشان‌دهنده ارتباطات بین آن‌ها هستند. سپس، با استفاده از الگوریتم‌های یادگیری ماشین و یادگیری نمایش گراف، بردارهای نمایشی برای هر گره در گراف استخراج می‌شوند. این بردارها معمولاً ویژگی‌های مرتبط با هر عنصر ترافیکی را در خود جای داده‌اند. با استفاده از این نمایش برداری، می‌توان مسائل مختلفی را در حوزه ترافیک حل کرد. به عنوان مثال، با استفاده از شبکه‌های عصبی گراف می‌توان ترافیک را در تقاطع‌ها پیش‌بینی کرد و زمان‌های تاخیر را تخمین زد. همچنین، با استفاده از مدل‌های یادگیری ماشین بر روی نمایش برداری ترافیک، می‌توان الگوهای رفتاری خودروها را تحلیل کرده و مسائلی مانند تشخیص رانندگی ناامن و پیش‌بینی تصادفات را بهبود داد.

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


کمی پس‌زمینه برای همگام شدن!

بیایید قبل از شروع قسمت‌های بعد، کمی ادبیات این حوزه را مرور کنیم.

انواع مسائل پیش‌بینی ترافیک

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

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

مسائل جریان در سطح جاده

مسائل جریان در سطح جاده مربوط به حجم ترافیک روی جاده‌ها هستند و شامل جریان ترافیک جاده، جریان مبدأ-مقصد جاده و ظرفیت ترافیک تقاطع‌ها می‌شود. در مشکلات جریان ترافیک جاده‌ای، هدف پیش‌بینی، حجم ترافیکی است که از یک سنسور جاده یا یک مکان خاص در طول جاده در یک بازه زمانی مشخص (مثلاً پنج دقیقه) عبور می‌کند. در مشکلات جریان مبدأ-مقصد جاده، هدف، حجمی است که در یک زمان مشخص بین یک مکان (مبدأ) و مکان دیگری (مقصد) وجود دارد. مشکل ظرفیت ترافیک تقاطع، حجم ترافیکی که از طریق یک تقاطع عبور می‌کند را مد نظر قرار می‌دهد.


مسائل جریان در سطح منطقه

مسائل جریان در سطح منطقه، حجم ترافیک در یک منطقه را مورد بررسی قرار می‌دهند.

یک شهر ممکن است به بخش‌های منظم (که تقسیم‌بندی آن‌ها بر اساس شبکه مورد نظر مشخص است) یا بخش‌های نامنظم (مانند تقسیم بر اساس جاده‌ها یا کدهای پستی) تقسیم شود. این مشکلات بر اساس نوع حمل و نقل، به مشکلات جریان تاکسی منطقه‌ای، جریان دوچرخه منطقه‌ای، جریان سرویس اشتراکی منطقه‌ای و جریان مبدأ-مقصد تاکسی منطقه مربوط به حجم ترافیک در سطح منطقه هستند.

در مشکلات جریان سرویس اشتراکی منطقه‌ای، حجم ترافیک مرتبط با خدمات اشتراکی مانند خدمات حمل و نقل عمومی یا خدمات رایگان اشتراکی در یک منطقه خاص را بررسی می‌کند. برای مثال جریان مبدأ-مقصد تاکسی منطقه مشکلی است که حجم ترافیک بین یک مبدأ و مقصد در یک منطقه خاص را بررسی می‌کند.


مسائل جریان در سطح ایستگاه

در این بخش، مسائل جریان در سطح ایستگاه مورد بررسی قرار می‌گیرند. این مشکلات مربوط به حجم ترافیکی هستند که در یک ایستگاه فیزیکی مانند ایستگاه مترو یا اتوبوس اندازه گیری می‌شود. این مشکلات براساس نوع ایستگاه به مشکلات جریان مسافران مترو در سطح ایستگاه، جریان مسافران اتوبوس در سطح ایستگاه، جریان وسایل نقلیه اشتراکی در سطح ایستگاه، جریان دوچرخه در سطح ایستگاه و جریان مسافران راه آهن در سطح ایستگاه تقسیم می‌شوند.


سرعت ترافیک

سرعت ترافیک یکی دیگر از شاخص‌های مهم وضعیت ترافیک است که کاربردهای بالقوه‌ای در سامانه‌های حمل و نقل هوشمند Intelligent Transportation System (ITS) دارد. این شاخص به عنوان میانگین سرعت خودروها در یک واحد فضایی در یک بازه زمانی مشخص تعریف می‌شود. ارزش سرعت در جاده‌های شهری می‌تواند نشان‌دهنده سطح شلوغی ترافیک جاده باشد. به عنوان مثال،سرویس نقشه‌ی گوگل این سطح شلوغی را از داده‌های جمع‌سپاری جمع‌آوری شده از دستگاه‌های تلفن همراه و حسگرهای درون خودرو نشان می‌دهد. پیش‌بینی بهتر سرعت ترافیک همچنین برای مسیریابی و برنامه‌ریزی وقت ورود بسیار مفید است.

سرعت ترافیک در دو سطح مسائل سرعت در سطح جاده و سطح منطقه مورد بررسی قرار می‌گیرند. همچنین در این دسته بندی، پیش‌بینی زمان سفر و پیش‌بینی شلوغی نیز در نظر گرفته می‌شوند زیرا این موارد با سرعت ترافیک به طور نزدیکی مرتبط هستند. پیش‌بینی زمان سفر برای مسافران برنامه‌ریزی زمان سفر و برای رانندگان انتخاب مسیرهای سریع را آسان می‌کند. شلوغی ترافیک یکی از مهم‌ترین و فوری‌ترین مشکلات حمل و نقل در شهرها است که باعث از دست دادن زمان قابل توجه، آلودگی هوا و هدررفت انرژی می‌شود.


تقاضای ترافیک

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

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


ساختار گراف‌های ترافیکی در شبکه‌های عصبی گرافی

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

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

پژوهش‌های انجام شده

در اینجا بررسی می‌کنیم که چه پژوهش‌هایی اخیرا و یا کلا در این زمینه انجام شده است.

مدل‌های پیش‌بینی ترافیک

متوسط تاریخی (HA)

این روش Historical average یکی از روش‌های آماری پایه است که براساس میانگین تقاضای تاریخی سفرها در چهار هفته گذشته استوار است. به عنوان مثال، از میانگین تقاضای (OD (Origin-Destintion (مبدأ-مقصد) تاریخی در چهار هفته قبل برای پیش‌بینی استفاده می‌شود.

مدل درخت تصمیم گرادیانی (GBDT)

مدل GBDT (Gradient Boosting Decision Tree) یک الگوریتم درخت تصمیم گیری با گرادیان افزایشی است. این الگوریتم شامل تعدادی درخت تصمیم گیری با رویکرد ایجاد مدل به صورت متوالی است. در هر مرحله، یک درخت تصمیم گیری جدید به مدل اضافه می‌شود و تلاش می‌شود با بهبود خطاهای پیش‌بینی قبلی، دقت و کارایی مدل را بالا برد.

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

در این مطالعه، مدلGBDT با سه گروه عمق حداکثر مختلف (3، 5 و 7) تنظیم شده است و مشخص شده است که عمق حداکثر 7 باعث بهبود عملکرد بهتری در پیش‌بینی ترافیک می‌شود. این مدل با ترکیب تعدادی درخت تصمیم گیری قوی، قادر است الگوهای پیچیده تقاضای مبدأ-مقصد را در ترافیک شهری مدل کند و پیش‌بینی دقیقی را ارائه دهد.

مدل XGB
این مدل (XGBoost) یک پیاده‌سازی از درخت‌های تصمیم گرادیانی است که برای سرعت و عملکرد بالا طراحی شده است. این مدل برای حل مسائل پیش‌بینی طبقه‌بندی و رگرسیون با استفاده از درخت‌های تصمیم افزایشی کاربرد دارد. در آن، نسبت زیرنمونه‌گیری و عمق حداکثر درخت متغیر است و بهینه‌سازی مقادیر مناسب برای این پارامترها انجام می‌شود.

در این مطالعه، مقدار نسبت زیرنمونه‌برداری مدل ،XGB 0.8 است و حداکثر عمق درخت در محدوده‌های 3، 5 و 7 تنظیم می‌شود. بررسی‌ها نشان می‌دهد که عمق حداکثر 7 بهترین پارامتر برای مدل است. با استفاده از این مدل، قادر خواهیم بود الگوهای پیچیده‌تری را در داده‌های تقاضای مبدأ-مقصد ترافیک مدل کنیم و پیش‌بینی دقیقی را انجام دهیم.


مدل جنگل تصادفی (RF)

مدل RF Random Forest یک مدل است که با استفاده از نمونه‌های تصادفی از هر درخت تصمیم گیری آموزش داده می‌شود. تعداد درختان نیز از مقادیر 10، 100 و 200 تنظیم می‌شود که مقدار بهینه آن 200 است. با استفاده از این مدل، می‌توانیم یک مجموعه از درختان تصمیم گیری را آموزش داده و با اجتماع نتایج آن‌ها، یک پیش‌بینی قوی‌تر برای ترافیک را ارائه دهیم.


مدل LASSO

این روش نیز با استفاده از داده‌های تاریخی به عنوان ورودی، مانند رگرسیون عادی، آموزش داده می‌شود. اما با توجه به تابع هدفی که در آن تراکم کمینه مطلق و انتخاب عملگر مدنظر قرار می‌گیرد، پارامتری که تعادل بین خطاهای تجربی و پیچیدگی مدل را تعیین می‌کند، از مقادیر 0.1، 1 و 10 تنظیم می‌شود. بهترین پارامتر برای این مدل 0.1 است. با استفاده از این مدل، می‌توانیم با ترکیبی از متغیرهای مهم و حذف متغیرهای غیرضروری، یک پیش‌بینی دقیق‌تر از ترافیک را ارائه دهیم.


مدل شبکه عصبی چندلایه (MLP)

این مدل(Multi-layer Perception) شبکه عصبی پایه را نشان می‌دهد که شامل حداقل سه لایه است: لایه ورودی(Input Layer)، لایه مخفی(Hidden Layer) و لایه خروجی(Output Layer). این مدل با استفاده از الگوریتم انتشار برگشتی (Backpropagation) آموزش می‌بیند. در اینجا، دو لایه مخفی با اندازه ۱۲۸ و ۶۴ مشخص شده است و مقدار بهینه برای نرخ یادگیری نیز توسط تنظیم پارامترهای مختلف آزمایش مشخص می‌شود.


حافظه بلند مدت کوتاه مدت (LSTM)

این مدل (Long Short-Term Memory) یک شبکه عصبی بازگشتی مصنوعی است که از اتصالات بازخوردی برای حفظ و تنظیم اطلاعات یک دنباله استفاده می‌کند. در این مدل، دروازه‌ها و سلول‌ها برای کنترل و حفظ اطلاعات مورد استفاده قرار می‌گیرند. در مقاله‌ی یک ساختار با دو لایه LSTM ایجاد شده که به ترتیب شامل ۱۲۸ و ۶۴ سلول LSTM است. در این مدل، نرخ یادگیری را تنظیم می‌کنیم و نرخ بهینه آن ۰.۰۰۱ است.


مدل Spatial LSTM

این معماری شامل سه لایه مخفی است. هر لایه مخفی دارای واحدهای مخفی است که اندازه آن‌ها به ترتیب 256، 128 و 64 است. این لایه‌ها به ترتیب به عنوان لایه‌های اولیه، متوسط و نهایی شناخته می‌شوند. ورودی مدل Spatial LSTM شامل نقشه‌های ویژگی فضایی است که به عنوان یک دنباله از نقشه‌ها در نظر گرفته می‌شوند. هر نقشه ویژگی فضایی نماینده ویژگی‌های مکانی در یک زمان مشخص است سپس اطلاعات از ورودی فضایی به طور متوالی و با توجه به ترتیب زمانی در لایه‌های مخفی پردازش می‌شوند. در هر لحظه، لایه مخفی بر اساس ورودی فعلی و حافظه قبلی خود، اقدام به تصمیم‌گیری و تولید خروجی می‌کند. این عملکرد به مدل امکان می‌دهد تا الگوهای زمانی و فضایی را در داده‌ها تشخیص دهد و پیش‌بینی کند.

واحدهای LSTM از گیت‌ها برای کنترل جریان اطلاعات و حافظه خود استفاده می‌کنند. این گیت‌ها شامل گیت فراموشی، گیت ورودی و گیت خروجی هستند که به تنظیم جریان اطلاعات و حافظه مورد استفاده در مدل کمک می‌کنند.

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


مدل ED-MGC

مدل Encoder-Decoder Multi-Graph Convolutional یک ساختار شبکه عصبی است که برای پیش‌بینی تقاضای ترافیک استفاده می‌شود. این مدل شامل دو بخش کدگذار Encoder و کدگشا Decoder است که هرکدام از طریق لایه‌های متعددی اطلاعات را پردازش می‌کنند.

بخش کدگذار اطلاعات ورودی را دریافت کرده و با استفاده از لایه‌های چندگانه‌ی MGC (تصویر زیر) اطلاعات را در فضای گرافی تبدیل می‌کند. هر لایهMGC از واحدهای پنهان با سایز مشخصی تشکیل شده است و با استفاده از عملیات گراف کانولوشن، اطلاعات را در فضای زمان-فضا پردازش می‌کند. بخش کدگذار توانایی استخراج ویژگی‌های مهم از داده‌های ورودی را دارد و این ویژگی‌ها را به بخش کدگشا منتقل می‌کند.

بخش کدگشا با دریافت ویژگی‌های استخراج شده توسط بخش کدگذار، اقدام به بازسازی تقاضای ترافیک می‌کند. با استفاده از لایه‌های MGC، اطلاعات را در فضای گرافی بازسازی و به فرم اصلی خود برمی‌گرداند. بخش کدگشا توانایی بازسازی و پیش‌بینی تقاضای ترافیک را دارد و با استفاده از اطلاعاتی که از بخش کدگذار دریافت می‌کند، تقاضاهای آینده را تخمین می‌زند.

مدلED-MGC به عنوان یک ساختار کدگذار-کدگشا با لایه‌های MGC، قابلیت درک و پردازش الگوهای زمانی و فضایی در داده‌های ترافیک را دارد. با استفاده از این مدل، می‌توان پیش‌بینی دقیقی از تقاضای ترافیک در زمان‌های آینده ارائه داد. مدلED-MGC با استفاده از توانایی‌های کدگذار-کدگشا و استفاده از لایه‌های MGC، قادر است الگوهای پیچیده‌تر و وابستگی‌های زمانی و مکانی در داده‌های ترافیک را تشخیص داده و در پیش‌بینی تقاضا بهبود قابل ملاحظه‌ای ایجاد کند.


مدل Graph WaveNet

معماری مدل Graph WaveNet (مطابق تصویر زیر) شامل دو بخش اصلی است: بخش استخراج ویژگی و بخش پیش‌بینی.

در بخش استخراج ویژگی، ابتدا داده‌های فضایی-زمانی گرافی به عنوان ورودی به مدل داده می‌شوند. سپس با استفاده از یک شبکه عصبی بازگشتی، ویژگی‌های فضایی-زمانی از داده‌های گرافی استخراج می‌شوند. این شبکه عصبی بازگشتی، با استفاده از یک مکانیزم توجه، ویژگی‌های مهم فضایی-زمانی را در داده‌های گرافی شناسایی می‌کند و با استفاده از یک لایه پولینگ، این ویژگی‌ها را به صورت خلاصه شده در طول زمان مدل می‌کند.

در بخش پیش‌بینی، با استفاده از ویژگی‌های استخراج شده، یک شبکه عصبی بازگشتی دیگر برای پیش‌بینی داده‌های فضایی-زمانی گرافی استفاده می‌شود. این شبکه عصبی بازگشتی، با استفاده از یک مکانیزم توجه، ویژگی‌های مهم فضایی-زمانی را در طول زمان مدل می‌کند و با استفاده از یک لایه خطی، پیش‌بینی نهایی را ارائه می‌دهد.

با استفاده از این معماری، مدل Graph WaveNet قادر به پیش‌بینی دقیق داده‌های فضایی-زمانی گرافی، از جمله پیش‌بینی جریان ترافیک است.



شبکه ها گرافی پیچشی

معماری شبکه های گرافی پیچشی بر پایه شبکه های عصبی پیچشی بر روی گراف ها استوار است. در این

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


یادگیری نمایش گرافی (Graph Representation Learning)

یادگیری نمایش گرافی (یا همان Graph Representation Learning)، دسته‌ای از تکنیک‌های یادگیری ماشین است که هدف آن تولید بردار هایی با ابعاد کوچک، برای بازنمایی یک گره و یا یک زیر گراف، از یک گراف است. یادگیری نمایش گرافی به دریافت اطلاعات ساختاری و معنایی یک گره و یا یک زیر گراف و نشان دادن این اطلاعات در یک فضای پیوسته کمک می‌کند به طوری که گره‌های مشابه و یا زیرگراف‌ها نزدیک به یکدیگر نگاشته شده و گر‌ه‌های متفاوت از هم دور نگه‌داشته می‌شوند.


این تکنیک در زمینه‌های مختلف از جمله گراف های ترافیکی، کاربردهای متفاوتی دارد. در اینجا به اختصار به برخی از کاربردهای آن می‌پردازیم.

۱- تحلیل شبکه‌های اجتماعی: یادگیری نمایش گرافی می‌تواند برای کاربردهای متفاوتی از جمله یافتن انجمن‌ها مورد استفاده قرار بگیرد. همانطور که گفته شد این تکنیک تلاش می‌کند که گره‌ها و زیرگرافهای شبیه هم را نزدیک هم نگه دارد بنابراین اعضای یک انجمن ناخودآگاه کنار هم قرار دارند و به این ترتیب می‌توان آن‌ها را تشخیص داد، یعنی خوشه‌های متشکل از گره‌ها را با الگوهای اتصال مشابه در یک شبکه اجتماعی شناسایی می‌کند. مقصود از نزدیکی در اینجا، با به دست آوردن نمایشی با ابعاد کم از گره‌ها و بررسی اطلاعات ساختاری و معنایی آن‌هاست و می‌توان از توابع مختلف فاصله مثل فاصله‌ی اقلیدسی استفاده کرد. تا گره‌های نزدیک را در یک گروه قرار داد.

شناسایی گره‌های مهم یکی دیگر از کاربرد‌های یادگیری نمایش گرافی در تحلیل شبکه‌های اجتماعی است. با استفاده از این تکنیک و بررسی معیارهای مرکزیت هر گره، می‌توان میزان اهمیت و تاثیر هر گره در یک اجتماع را بررسی کرد. با گنجاندن معیارهای مرکزیت در node embedding می‌توان یک نمایش با ابعاد کم ساخت و رهبران و گر‌ه‌های تاثیرگذار در شبکه را شناسایی کرد.

۲- بیوانفورماتیک:‌ این تکنیک در تجزیه و تحلیل شبکه‌های بیولوژیکی مثل شبکه‌های برهمکنش‌های پروتئینی، شبکه‌های تنظیم کننده ژن و شبکه‌های متابولیک کاربرد دارد. همچنین برای پیش‌بینی عملکرد یک پروتئین و یا پیش‌بینی تعمالات دارو-هدف، می‌توان از یادگیری نمایش درختی استفاده کرد.

۳- سیستم‌های توصیه‌گر: سیستم‌های توصیه‌گر امروزه کاربردهای وسیعی پیدا کرده‌اند از جمله پیشنهاد موسیقی و فیلم و … با کمک این ابزار می‌توان مدل‌سازی گراف تعاملات کاربر- کالا را انجام داد. به شکلی که هر کاربر و کالا، یک گره در نظر گرفته می‌شوند و ارتباط میان‌ ‌آن‌ها یک یال در نظر گرفته می‌شود. با بررسی مشخصات ذخیره شده هر کاربر که تمایلات آن کاربر را بررسی می‌کند، می توان ترجیحات و واکنش کاربر به یک کالا حدید را پیش بینی کرد. همچنین با استفاده از این تکنیک می‌توان راه حل نسبتا خوبی برای مشکل "شروع سرد‌(cold-start problem)" ارائه داد. وقتی برای کاربری اطلاعات خوب و کافی برای پیشنهاد کالا وجود ندارد، می‌توان از اطلاعات کاربر های دیگر استفاده کرد تا به کاربر جدید پیشنهاد مناسب داده شود.

۴- پردازش زبان طبیعی: یادگیری نمایش گراف می تواند برای تجزیه و تحلیل و نمایش ساختار نحوی و معنایی متن زبان طبیعی، مانند درختان وابستگی، درختان تجزیه و نمودارهای معنایی استفاده شود.

۵- امنیت سایبری: یادگیری نمایش گراف می تواند برای شناسایی ناهنجاری ها و حملات در امنیت شبکه مانند تشخیص نفوذ، تشخیص بدافزار و تشخیص فیشینگ استفاده شود. با یادگیری جاسازی گره هایی که ویژگی های ساختاری و رفتاری آن ها را نشان می دهد، یادگیری نمایش گراف می تواند از این اطلاعات برای شناسایی گره‌هایی که رفتار غیرعادی از خود نشان می دهند و علامت گذاری آنها به عنوان تهدید بالقوه، استفاده کند.

روش‌ها

۱- روش‌های طیفی(Spectral methods): روش‌های طیفی، از مقادیر ویژه و بردارهای ویژه گراف ماتریس لاپلاسی یا ماتریس مجاورت، برای نمایندگی گراف استفاده می کنند. روش‌های طیفی در یادگیری نمایش گرافی، به خانواده‌ای از تکنیک‌ها اشاره دارد که از مقادیر ویژه و بردارهای ویژه ماتریس لاپلاسی گراف برای نمایش گره‌های گراف در فضایی با ابعاد کم استفاده می‌کنند. این تکنیک‌ها به‌طور گسترده در زمینه یادگیری ماشین بر روی گراف‌ها و درخت‌ها مورد استفاده قرار گرفته‌اند، زیرا رویکردی اصولی برای ثبت ساختار زیربنایی یک گراف ارائه می‌کنند و می‌توانند برای کارهایی مانند طبقه‌بندی گره‌ها، پیش‌بینی پیوندها و خوشه‌بندی گراف استفاده شوند.

ماتریس لاپلاسین یک گراف یک ماتریس نیمه مثبت معین وارون‌پذیر است که رابطه دو به دوی روابط بین گره‌های گراف را کدگذاری می‌کند. بردارهای ویژه ماتریس لاپلاسی با انواع مختلفی از تبدیلات رابطه دارند، در حالی که مقادیر ویژه میزان تغییر در هر حالت را اندازه‌گیری می‌کنند. با انتخاب زیرمجموعه‌ای از بردارهای ویژه که با بزرگترین مقادیر ویژه مرتبط هستند، می‌توان یک نمایش کم بعدی از گراف به دست آورد که ویژگی‌های ساختاری مهم آن را حفظ می‌کند.

برخی از روش‌های طیفی محبوب برای یادگیری نمایش گراف عبارتند از:

۱- خوشه‌بندی طیفی: این روش از بردارهای ویژه ماتریس لاپلاسی برای تقسیم گراف به خوشه‌ها بر اساس شباهت بین گره‌ها استفاده می‌کند.

۲- شبکه‌های کانولوشنی گراف (GCNs): این شبکه‌های عصبی از نمایش طیفی گراف برای انجام عملیات کانولوشنی بر ویژگی‌های گره‌ها استفاده می‌کنند.

۳- نقشه‌های ایگنومپس: این روش با استفاده از بردارهای ویژه ماتریس لاپلاسی، گره‌های گراف را به یک فضای کم بعدی نگاشت می‌کند.

۴- روش‌های تصادفی مبتنی بر پیاده‌روی(Random walk-based methods): روش‌های مبتنی بر پیاده‌روی تصادفی، پیاده‌روی‌های تصادفی روی گراف ایجاد می‌کنند و از دنباله‌های گره‌هایی که توسط پیاده‌روی‌های تصادفی بازدید می‌شوند برای نمایش استفاده می‌کنند. نمونه‌هایی از روش‌های تصادفی مبتنی بر پیاده‌روی شامل DeepWalk، Node2vec و GraphSAGE هستند.

۵- شبکه‌های عصبی کانولوشنال (CNN) روی گراف‌ها: CNN‌ها روی گراف‌ها، عملیات کانولوشنی را در همسایگی‌های محلی گره‌ها در گراف اعمال می‌کنند تا یک نمایش مناسب را یاد بگیرند. نمونه‌هایی از CNN بر روی گراف‌ها عبارتند از: شبکه‌های کانولوشن گراف (GCN)، شبکه‌های توجه گراف (GAT)، و شبکه‌های ایزومورفیسم گراف (GIN).

۶- کدگذاری خودکار گراف(graph autoencoders): کدگذارهای خودکار گراف، یک نمایندگی را با کدگذاری گراف در فضایی با ابعاد کم و سپس رمزگشایی آن به ساختار اصلی گراف یاد می‌گیرند. نمونه هایی از رمزگذارهای خودکار گراف عبارتند از رمزگذارهای خودکار گراف متغیر (VGAE) و رمزگذارهای خودکار متغیر گراف (GVAE).


پیاده سازی GCN

توجه به کاربرد گسترده‌ی یادگیری ماشین شبکه‌های پیچیده و گسترش GCN‌ها، بر آن شدیم که یک نمونه‌ی ساده از آن‌ها را به هدف آشنایی بیشتر پیاده سازی کنیم. برای شروع ابتدا کتابخانه های مورد نیاز را اضافه میکنیم:

import tensorflow as tf from tensorflow.keras import layers from tensorflow.keras.optimizers import Adam from tensorflow.keras.losses import SparseCategoricalCrossentropy

بطور خلاصه، کد بالا یک مدل GCN (Graph Convolutional Network) را با استفاده از TensorFlow برای آموزش روی مجموعه داده‌های گرافی تعریف می‌کند. الگوریتم GCN یک نوع شبکه عصبی است که برای یادگیری بر روی داده‌هایی با ساختار گرافی استفاده می‌شود.

در ابتدا، مدل GCN تعریف می‌شود که از دو لایه GraphConvolution تشکیل شده است. هر لایه شامل یک عملکرد GraphConvolution و یک عملکرد فعال‌سازی (اختیاری) است. در هر مرحله، ورودی‌های مدل (نشانه‌های گره و ماتریس مجاورت) را می‌گیرد و عملیات گراف کانولوشن را بر روی آن‌ها انجام می‌دهد.

سپس، داده‌های مورد نیاز برای آموزش (نشانه‌های گره، ماتریس مجاورت و برچسب‌های هدف) را تعریف می‌کنید و آن‌ها را در یک مجموعه داده TensorFlow قرار می‌دهید. سپس، داده‌ها را به صورت دسته‌ای (batch) و با ترتیب تصادفی (shuffle) آماده می‌کنید.

بعد از آماده‌سازی داده‌ها، مدل GCN را با تعریف ابعاد و ویژگی‌های مخفی و خروجی مورد نظر مقداردهی اولیه می‌کنید.

سپس، تابع هزینه و بهینه‌ساز را تعریف کرده و به مدل اعمال می‌کنید. در هر مرحله آموزش، داده‌های یک دسته را می‌گیرید و با استفاده از اعمال دسته‌ای (gradient tape)، خطا را محاسبه و گرادیان‌ها را نسبت به پارامترهای آموزشی مدل محاسبه می‌کنید. سپس بهینه‌ساز، گرادیان‌ها را با پارامترهای مدل هماهنگ می‌کند.

در پایان حلقه آموزش، می‌توانید روی مجموعه اعتبارسنجی ارزیابی انجام دهید و یا تمامی وظایف مورد نیاز را انجام دهید.

در نهایت، مدل آموزش دیده را می‌توانید ذخیره کنید تا بتوانید بعداً از آن استفاده کنید.

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

امیدوارم این توضیحات به شما در مورد آموزش یک مدل GCN بر روی مجموعه داده‌های گرافی کمک کند!

# Define your GCN model class GCN(tf.keras.Model): def __init__(self, input_dim, hidden_dim, output_dim): super(GCN, self).__init__() self.conv1 = GraphConvolution(hidden_dim, activation='relu') self.conv2 = GraphConvolution(output_dim) def call(self, inputs): x, adjacency = inputs x = self.conv1([x, adjacency]) x = self.conv2([x, adjacency]) return tf.nn.log_softmax(x, axis=-1) # Define the GraphConvolution layer class GraphConvolution(layers.Layer): def __init__(self, output_dim, activation=None): super(GraphConvolution, self).__init__() self.output_dim = output_dim self.activation = activation def build(self, input_shape): input_dim = input_shape[0][-1] self.kernel = self.add_weight( &quotkernel&quot, shape=[input_dim, self.output_dim], initializer=&quotglorot_uniform&quot, ) def call(self, inputs): x, adjacency = inputs x = tf.matmul(adjacency, x) x = tf.matmul(x, self.kernel) if self.activation is not None: x = self.activation(x) return x # Define your dataset # Assuming you have node features (x), adjacency matrix (adjacency), and target labels (y) x = ... # Node features adjacency = ... # Adjacency matrix y = ... # Target labels # Normalize the adjacency matrix (optional but recommended)adjacency = normalize_adjacency(adjacency) # Create a TensorFlow Dataset dataset = tf.data.Dataset.from_tensor_slices((x, adjacency, y)) batch_size = 32 dataset = dataset.batch(batch_size).shuffle(buffer_size=len(x)) # Initialize your GCN model input_dim = ... # Dimension of node features hidden_dim = ... # Dimension of hidden layer output_dim = ... # Dimension of output layer model = GCN(input_dim, hidden_dim, output_dim) # Define your loss function and optimizer loss_fn = SparseCategoricalCrossentropy(from_logits=True) optimizer = Adam(learning_rate=0.01) # Training loop num_epochs = 10 for epoch in range(num_epochs): for batch_data in dataset: with tf.GradientTape() as tape: logits = model(batch_data[:2]) loss = loss_fn(batch_data[2], logits) gradients = tape.gradient(loss, model.trainable_variables) optimizer.apply_gradients(zip(gradients, model.trainable_variables)) # Evaluate on validation set or perform any other necessary tasks # Save your trained model model.save_weights('gcn_model.tf')


متاسفیم که ویرگول عزیز پشتیبانی از سینتکس هایلایت را هنوز به پلتفرم خود نیافزوده‌است.


مجموعه داده


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


منابع


[1] A. Barabási and M. Pósfai. Network science. Cambridge University Press, 2016.

[2] M. Newman. Networks: An Introduction. Oxford University Press, 2010.

[3] W. Jiang and J. Lou, “Graph neural network for traffic forecasting: A survey,” Expert Systems

with Applications: An International Journal, vol.207, no.C, 2022.

[4] G. C. Chen T., “Xgboost: A scalable tree boosting system,” ACM-international conference on

knowledge discovery and data mining, no.22, pp.785–794, 2016.

[5] Y. R. Li Y. and S. C, “Diffusion convolutional recurrent neural network: Data-driven traffic

forecasting,” International Conference on Learning Representations (ICLR), 2018.

[6] J. Ke, X. Qin, H. Yang, and Z. Zheng, “Predicting origin-destination ride-sourcing demand

with a spatio-temporal encoder-decoder residual multi-graph convolutional network,” Elsevier,

no.C 122, 2021.

[7] Z. Wu, S. Pan, Guodong, and J. Jiang, “Graph wavenet for deep spatial-temporal graph modeling,”

28th International Joint Conference on Artificial Intelligence, no.28, pp.1907–1913,

2019.

[8] fenxiao chen, yun-cheng wang, bin wang, and c.-c. jay kuo, “Graph representation learning: a

survey,” Cambridge University Press in association with Asia Pacific Signal and Information

Processing Association, vol.9, pp.1–21, 2020.

[9] P. Graham Ganssle, Ph.D., “Node classification by graph convolutional network - tutorial,”

xperoinc resources, 2018.

[10] https://www.sciencedirect.com/science/article/pii/S2666651021000024

[11] https://inc.ucsd.edu/mplab/users/nick/dimensionalityReduction.pdf

[12] https://arxiv.org/abs/0711.0189

[13] https://arxiv.org/abs/1706.02216


حمل نقلیادگیری ماشینبرنامه نویسیشبکه عصبی
یه مهندس نرم‌افزار که داره تلاش می‌کنه بره سمت هوش >_<
شاید از این پست‌ها خوشتان بیاید