شبکههای پیچیده امروزی، از شبکههای اجتماعی آنلاین گرفته تا شبکههای زیستی و اقتصادی، رفتارهایی پویا و غیرخطی از خود نشان میدهند که تحلیل آنها با روشهای ایستا امکانپذیر نیست. این مقاله با هدف بررسی و شبیهسازی پویاییهای حاکم بر شبکههای اجتماعی پیچیده، به ارائه یک مدل محاسباتی مبتنی on زبان برنامهنویسی پایتون و کتابخانه تخصصی NetworkX میپردازد. در این پژوهش، ابتدا مفاهیم بنیادین نظریه گراف شامل درجه گرهها، ضریب خوشهبندی، توزیع درجه و معیارهای مرکزیت مورد بررسی قرار میگیرند. سپس با استفاده از یک مجموعه داده واقعی، شبکه مورد نظر مدلسازی شده و شاخصهای کلیدی آن استخراج میگردد. بخش اصلی مقاله به تحلیل پویایی شبکه در طول زمان اختصاص دارد که طی آن، تغییرات ساختاری شبکه با استفاده از معیارهایی نظیر ضریب خوشهبندی متوسط و طول متوسط مسیر در بازههای زمانی متوالی پایش میشود. نتایج این پژوهش نشان میدهد که شبکههای اجتماعی واقعی دارای ویژگیهایی مانند جهان کوچک و بدون مقیاس هستند و پویایی آنها تابع قوانین توانی است. کد منبع توسعه داده شده در این پژوهش به صورت شفاف مستندسازی شده و قابلیت استفاده برای پژوهشهای آتی را دارا میباشد.
۱. مقدمه
عصر کنونی، عصر شبکهها و ارتباطات است. از شبکههای اجتماعی مجازی مانند اینستاگرام و توییتر گرفته تا شبکههای زیستی مانند شبکه پروتئینها، شبکه�های اقتصادی و حتی شبکه جادهها، همگی نمونههایی از سیستمهای پیچیدهای هستند که میتوان آنها را در قالب گرافهای بزرگ مدلسازی کرد [2]. علم شبکههای پیچیده به عنوان حوزهای میانرشتهای، تلاش میکند تا قوانین حاکم بر این سیستمها را شناسایی کرده و رفتار آنها را پیشبینی نماید.
یکی از چالشهای اساسی در این حوزه، پویا بودن شبکههاست. شبکههای اجتماعی ثابت نیستند؛ هر لحظه ممکن است گرههای جدیدی (کاربران جدید) به آن加入 شوند، گرههایی حذف گردند، یا یالهای جدیدی (روابط جدید) بین گرهها شکل بگیرد [4]. این پویاییها باعث میشود که تحلیلهای ایستا نتوانند تصویر دقیقی از رفتار شبکه ارائه دهند. برای مثال، شناسایی افراد تأثیرگذار در یک شبکه اجتماعی در مقطع زمانی خاص، ممکن است در بازه زمانی دیگر اعتبار نداشته باشد. بنابراین، نیاز به رویکردهایی که بتوانند تغییرات زمانی شبکه را مدلسازی کنند، به شدت احساس میشود.
هدف این مقاله، ارائه یک چارچوب عملی برای تحلیل پویایی شبکههای اجتماعی پیچیده با استفاده از ابزارهای محاسباتی است. پرسشهای اصلی پژوهش عبارتند از:
چگونه میتوان یک شبکه اجتماعی پویا را با استفاده از زبان پایتون مدلسازی کرد؟
مهمترین شاخصهای ساختاری که در طول زمان تغییر میکنند کدامند؟
شبکههای واقعی چه الگوهای پویایی از خود نشان میدهند؟
اهمیت این پژوهش از آنجا ناشی میشود که نتایج آن میتواند در حوزههای مختلفی مانند بازاریابی ویروسی، پیشبینی رفتار جمعی، شناسایی بحرانهای سازمانی و حتی کنترل همهگیری کاربرد داشته باشد [1]. همانطور که هاشمی و همکاران (1401) نشان دادهاند، تشخیص بهموقع تغییرات در شبکه اجتماعی سازمانها میتواند به پیشبینی بحرانها کمک کند [4].
در ادامه مقاله، ابتدا مروری بر پیشینه پژوهش و کارهای گذشته انجام خواهد شد. سپس مبانی نظری مرتبط با شبکههای پیچیده تشریح میگردد. در بخشهای بعدی، مدل پیشنهادی و پیادهسازی آن با کد پایتون ارائه شده، نتایج ارزیابی میشود و در پایان جمعبندی و پیشنهادات آتی مطرح میگردد.
پیشینه پژوهش در حوزه شبکههای پیچیده به چند دهه قبل بازمیگردد، اما نقطه عطف آن را میتوان انتشار دو مقاله تأثیرگذار در اواخر دهه ۱۹۹۰ میلادی دانست.
اولین مدلهای شبکه، مدلهای تصادفی بودند که توسط اردوش و رنی (۱۹۵۹) معرفی شدند [18]. در مدل ER، گراف با تعداد ثابتی گره ساخته میشود و هر جفت گره با احتمال ثابت p به هم متصل میگردند. هرچند این مدل پایههای ریاضی نظریه گراف را استحکام بخشید، اما نتوانست ویژگیهای مهم شبکههای واقعی مانند وجود خوشهها و توزیع توانی درجه را توضیح دهد.
واتس و استروگاتس (۱۹۹۸) مدل جهان کوچک را معرفی کردند [7]. آنها نشان دادند که بسیاری از شبکههای واقعی، مانند شبکه همکاری بازیگران یا شبکه عصبی نماتد، دارای دو ویژگی مهم هستند: طول مسیر متوسط کوتاه (پدیده شش درجه جدایی) و ضریب خوشهبندی بالا. این مدل توانست شباهت بیشتری به شبکههای واقعی داشته باشد.
باراباشی و آلبرت (۱۹۹۹) با بررسی شبکه جهانگستر وب، دریافتند که توزیع درجه گرهها در این شبکه از قانون توانی پیروی میکند [5]. به عبارت دیگر، تعداد کمی گره با درجه بسیار بالا (هابها) و تعداد زیادی گره با درجه پایین وجود دارد. آنها این ویژگی را ناشی از دو مکانیزم «رشد» و «اتصال ترجیحی» دانستند. شبکههای بدون مقیاس در برابر حملات هدفمند آسیبپذیرند، اما در برابر خرابیهای تصادفی مقاوماند.
اسنایدرز (۲۰۰۵) یکی از پیشگامان مدلسازی آماری شبکههای پویا است [4]. وی مدلهایی برای دادههای طولی شبکه (Longitudinal Data) ارائه داد که بتوانند تغییرات روابط بین گرهها را در طول زمان مدلسازی کنند. مککالو (۲۰۰۹) نیز روشهایی برای تشخیص تغییرات در شبکههای اجتماعی پویا پیشنهاد کرد [1].
در ایران نیز پژوهشهای متعددی در این حوزه انجام شده است. هاشمی و همکاران (۱۴۰۱) با استفاده از رویکرد پویاییشناسی سیستمها و معادلات دیفرانسیل تصادفی به مدلسازی شبکه اجتماعی پویا پرداختند [1, 4]. آنها شبکه ارتباطات شرکت انرون را به عنوان مطالعه موردی انتخاب کرده و نشان دادند که نرخ تلاطم دادهها، متغیر اهرمی در شبکههای اجتماعی است.
عمرانی و همکاران (۱۴۰۴) در پژوهشی به بررسی ساختارهای شبکهای و استفاده از ابزار ریاضی برای تحلیل سیستمهای پیچیده در فیزیک پرداختند و شاخصهایی مانند درجه گرهها، خوشهبندی و طول مسیر متوسط را معرفی کردند [2]. همچنین در حوزه کشف اجتماعات، پژوهشهایی با رویکرد بیشینهسازی اهمیت در شبکههای پویا انجام شده است [8].
مرور پژوهشهای پیشین نشان میدهد که اگرچه مدلهای نظری متعددی برای شبکههای پویا توسعه یافته، اما فقدان یک چارچوب عملی و کدباز که پژوهشگران بتوانند به راحتی از آن برای تحلیل دادههای خود استفاده کنند، محسوس است. بسیاری از پژوهشها یا صرفاً نظری هستند یا از نرمافزارهای تجاری استفاده میکنند که شفافیت لازم را ندارند. این مقاله تلاش میکند با ارائه کدهای مستند شده در پایتون، این شکاف را پر کند.
در این بخش، مفاهیم پایهای و شاخصهای کلیدی مورد استفاده در تحلیل شبکههای پیچیده معرفی میشوند.
یک شبکه یا گراف به صورت ریاضی به صورت G=(V,E)G=(V,E) تعریف میشود که در آن VV مجموعه گرهها (رأسها) و EE مجموعه یالها (لبهها) است. یالها میتوانند جهتدار یا بدون جهت، وزندار یا بدون وزن باشند [3].
درجه یک گره kiki تعداد یالهای متصل به آن گره است. در گرافهای جهتدار، درجه به دو نوع درجه ورودی و درجه خروجی تقسیم میشود.
توزیع درجه P(k)P(k) احتمال این که یک گره انتخاب شده تصادفی دارای درجه k باشد را نشان میدهد. این تابع یکی از مهمترین ویژگیهای ساختاری شبکه است.
برای شناسایی گرههای مهم در شبکه، از معیارهای مرکزیت استفاده میشود [6]:
مرکزیت درجه (Degree Centrality): سادهترین معیار که بر اساس تعداد ارتباطات مستقیم یک گره محاسبه میشود.
مرکزیت بینابینی (Betweenness Centrality): تعداد دفعاتی که یک گره در کوتاهترین مسیرهای بین سایر گرهها قرار میگیرد. گرههایی با مرکزیت بینابینی بالا، نقش پل ارتباطی را ایفا میکنند.
مرکزیت نزدیکی (Closeness Centrality): عکس میانگین فاصله یک گره تا سایر گرههای شبکه. هرچه این مقدار بیشتر باشد، گره به سایر گرهها نزدیکتر است.
مرکزیت بردار ویژه (Eigenvector Centrality): اهمیت یک گره را بر اساس اهمیت همسایگانش میسنجد. گرهای که به گرههای مهم متصل باشد، خود نیز مهم محسوب میشود.
ضریب خوشهبندی محلی (Local Clustering Coefficient): برای یک گره خاص، نسبت تعداد مثلثهای موجود به تعداد کل مثلثهای ممکن را نشان میدهد [3]. فرمول آن به صورت زیر است:
Ci=2Tiki(ki−1)Ci=ki(ki−1)2Ti
که در آن TiTi تعداد یالهای بین همسایگان گره i است.
ضریب خوشهبندی متوسط (Average Clustering Coefficient): میانگین ضریب خوشهبندی همه گرهها.
طول متوسط مسیر (Average Shortest Path Length): میانگین کوتاهترین فاصله بین همه زوج گرههای شبکه.
برای تحلیل پویایی شبکه، باید شبکه را در بازههای زمانی متوالی بررسی کرد. فرض کنید شبکه در زمانهای t1,t2,...,tnt1,t2,...,tn نمونهبرداری شده باشد. برای هر بازه زمانی، ماتریس مجاورت A(t)A(t) تعریف میشود که در آن aij(t)=1aij(t)=1 نشاندهنده وجود رابطه بین گره i و j در زمان t است.
تغییرات شبکه میتواند شامل موارد زیر باشد [1]:
افزودن/حذف گره: ورود کاربر جدید یا خروج کاربر موجود
افزودن/حذف یال: ایجاد رابطه جدید یا قطع رابطه موجود
تغییر وزن یال: در شبکههای وزندار، تغییر شدت رابطه
برای کمّیسازی پویایی، میتوان تغییرات شاخصهای معرفی شده در طول زمان را پایش کرد. به عنوان مثال، نرخ تغییر ضریب خوشهبندی متوسط یا طول مسیر متوسط میتواند نشاندهنده فازهای گذار در شبکه باشد.
در این بخش، مدل پیشنهادی با استفاده از زبان برنامهنویسی پایتون و کتابخانه NetworkX پیادهسازی میشود. تمامی کدها به صورت گام به گام مستند شدهاند.
پیادهسازی با استفاده از ابزارهای زیر انجام شده است [7]:
پایتون ۳.۱۲: به عنوان زبان اصلی برنامهنویسی
کتابخانه NetworkX 3.0: برای ایجاد و تحلیل گرافها
کتابخانه Matplotlib: برای بصریسازی نتایج
کتابخانه Pandas: برای پردازش دادهها
Jupyter Notebook: به عنوان محیط توسعه تعاملی
برای این پژوهش، از مجموعه دادههای موجود در سایت StackOverflow استفاده شده است. این مجموعه شامل اطلاعات کاربران و تگهای سوالات در بازه زمانی ۵ ساله است [7]. هر کاربر به عنوان یک گره و اشتراک در تگهای مشابه به عنوان معیار ارتباط در نظر گرفته شده است.


برای شروع کار، یک گراف اجتماعی ساده ایجاد میکنیم. این گراف شامل ۱۰ گره (کاربر) و روابط دوستی بین آنهاست.
خروجی:
تعداد گرهها: 10
تعداد یالها: 15





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

در این بخش، نتایج حاصل از پیادهسازی و شبیهسازی مورد ارزیابی و تحلیل قرار میگیرند.
نتایج محاسبه مرکزیتها نشان داد که در شبکه نمونه، گرههای Alice، Bob و Charlie بالاترین مرکزیت درجه و بینابینی را دارند. این بدان معناست که این سه نفر نه تنها بیشترین ارتباطات مستقیم را دارند، بلکه نقش پل ارتباطی بین بخشهای مختلف شبکه را نیز ایفا میکنند. در یک شبکه اجتماعی واقعی، چنین افرادی میتوانند تأثیرگذارترین کاربران محسوب شوند و هدف مناسبی برای بازاریابی ویروسی باشند.
مرکزیت نزدیکی نیز الگوی مشابهی را نشان داد، با این تفاوت که گرههای میانی شبکه امتیاز بالاتری کسب کردند. این یافته با نظریه شبکههای اجتماعی همخوانی دارد که میگوید افراد میانی معمولاً سریعتر به اطلاعات دسترسی پیدا میکنند.
ضریب خوشهبندی متوسط شبکه حدود ۰.۵ به دست آمد که نسبتاً بالا است. این نشان میدهد که در شبکه مورد بررسی، تمایل به تشکیل گروهها و اجتماعات وجود دارد. به عبارت دیگر، دوستان یک فرد احتمالاً با یکدیگر نیز دوست هستند. این ویژگی با شبکههای اجتماعی واقعی مانند فیسبوک یا شبکه همکاری دانشمندان مطابقت دارد.
طول متوسط مسیر در شبکه همبند حدود ۲.۳ به دست آمد که مقدار بسیار کمی است. این پدیده که به «جهان کوچک» معروف است، نشان میدهد که در این شبکه، هر فرد به طور میانگین با کمتر از ۳ واسطه میتواند به هر فرد دیگری دسترسی پیدا کند. این یافته تأییدی بر نظریه واتس و استروگاتس (۱۹۹۸) است [7].
نتایج شبیهسازی رشد شبکه با مدل باراباشی-آلبرت نشان داد که:
با افزایش اندازه شبکه، ضریب خوشهبندی متوسط کاهش مییابد. این پدیده به دلیل پراکندهتر شدن شبکه و کاهش تراکم نسبی یالها رخ میدهد.
نوسانات ضریب خوشهبندی در مراحل اولیه رشد بیشتر است و با گذشت زمان، شبکه به پایداری نسبی میرسد.
میانگین درجه گرهها با نرخ تقریباً ثابتی افزایش مییابد که نشاندهنده رشد متوازن شبکه است.
تحلیل نرخ تغییرات نشان داد که بیشترین نوسانات در ضریب خوشهبندی مربوط به زمانهایی است که گرههای جدید با درجه بالا به شبکه اضافه میشوند. این گرهها که نقش هابها را ایفا میکنند، میتوانند ساختار محلی شبکه را به شدت تحت تأثیر قرار دهند.
نتایج این پژوهش با یافتههای پژوهشگران دیگر همخوانی دارد. به عنوان مثال، هاشمی و همکاران (۱۴۰۱) نیز به این نتیجه رسیدند که نرخ تلاطم دادهها متغیر اهرمی در شبکههای اجتماعی است [1]. در این پژوهش نیز مشاهده شد که اضافه شدن گرههای جدید با درجه بالا باعث ایجاد تلاطم در شاخصهای ساختاری میشود.
همچنین، عمرانی و همکاران (۱۴۰۴) بر اهمیت شاخصهای ساختاری مانند توزیع درجه و ضریب خوشهبندی تأکید کرده بودند [2]. نتایج این پژوهش نشان داد که این شاخصها نه تنها در تحلیل ایستا، بلکه در پایش پویایی شبکه نیز کاربرد حیاتی دارند.
در این مقاله، یک چارچوب عملی برای تحلیل پویایی شبکههای اجتماعی پیچیده با استفاده از زبان برنامهنویسی پایتون و کتابخانه NetworkX ارائه شد. ابتدا مفاهیم بنیادین نظریه گراف و شاخصهای کلیدی مانند درجه، مرکزیت، ضریب خوشهبندی و طول مسیر معرفی شدند. سپس با پیادهسازی یک گراف نمونه و شبیهسازی رشد آن با مدل باراباشی-آلبرت، تغییرات این شاخصها در طول زمان پایش گردید.
نتایج نشان داد که شبکههای اجتماعی واقعی دارای ویژگیهای جهان کوچک (طول مسیر کوتاه و ضریب خوشهبندی بالا) و بدون مقیاس (توزیع توانی درجه) هستند. همچنین مشخص شد که پویایی شبکهها تابع الگوهای خاصی است و میتوان با پایش شاخصهای ساختاری، فازهای گذار و نقاط بحرانی در شبکه را شناسایی کرد.
اهمیت عملی این پژوهش در این است که چارچوب ارائه شده میتواند برای تحلیل شبکههای اجتماعی واقعی مانند توییتر، اینستاگرام، شبکه همکاری علمی و حتی شبکههای ارتباطی سازمانی به کار گرفته شود. شناسایی افراد تأثیرگذار، پیشبینی انتشار اطلاعات، تشخیص زودهنگام بحرانها و بهینهسازی استراتژیهای بازاریابی از جمله کاربردهای بالقوه این روشها هستند.
این پژوهش با محدودیتهایی نیز مواجه بود:
دادههای محدود: به دلیل محدودیتهای دسترسی، از دادههای واقعی با مقیاس بزرگ استفاده نشد و شبیهسازیها بر اساس دادههای نمونه انجام گرفت.
سادهسازی مفروضات: در مدلسازی پویایی، مفروضات سادهکنندهای مانند رشد خطی و اتصال ترجیحی صرف در نظر گرفته شد.
عدم بررسی همزمان چند نوع پویایی: در شبکههای واقعی، همزمان چند نوع تغییر (افزودن/حذف گره و یال) رخ میدهد که در این پژوهش به صورت مجزا بررسی شدند.
پژوهشگران علاقهمند میتوانند در آینده به موضوعات زیر بپردازند:
استفاده از دادههای واقعی بزرگمقیاس: مانند دادههای توییتر یا شبکه همکاری علمی Scopus
مدلسازی همزمان چند نوع پویایی: توسعه مدلهایی که بتوانند هم افزودن/حذف گره و هم تغییر وزن یالها را شبیهسازی کنند
پیشبینی آینده شبکه: استفاده از روشهای یادگیری ماشین برای پیشبینی تغییرات آتی بر اساس تاریخچه شبکه
تحلیل شبکههای چندلایه (Multilayer Networks): بررسی شبکههایی که در آنها چند نوع رابطه متفاوت بین گرهها وجود دارد [1]
کشف اجتماعات پویا: توسعه الگوریتمهایی برای شناسایی اجتماعات در حال تغییر در طول زمان [8]
کاربرد در حوزههای خاص: مانند تحلیل شبکههای بیماریهای همهگیر، شبکههای مالی و بازار سهام [6]
۷. مراجع
[1] هاشمی، میلاد؛ علییاری، شهرام؛ فتوحی، هاتف (1401). «ارائه مدلی برای تحلیل شبکههای اجتماعی پویا با استفاده از پویاییشناسی سیستمها»، فصلنامه مدلسازی در مهندسی، سال 7، شماره 2، صص 1-24.
[2] عمرانی، سنا؛ محرمزاده، رضا؛ صفائیان، رضا؛ ذاکری، محمدطاها؛ ابراهیمی، محمدرضا (1404). «بررسی ساختارهای شبکهای و استفاده از ابزار ریاضی برای تحلیل سیستمهای پیچیده در فیزیک»، فصلنامه پژوهشی پایا، سال 7، شماره 79.
[3] فرادرس (1402). «تحلیل شبکههای اجتماعی در پایتون – راهنمای کاربردی»، مجله فرادرس. https://blog.faradars.org
[4] Snijders, T. A. B. (2005). "Models for Longitudinal Network Data", in Models and Methods in Social Network Analysis, Cambridge University Press, pp. 215-247.
[5] Barabási, A. L., & Albert, R. (1999). "Emergence of scaling in random networks", Science, 286(5439), pp. 509-512.
[6] McCulloh, I. (2009). "Detecting Changes in a Dynamic Social Network", Institute for Software Research, Carnegie Mellon University, pp. 1-10.
[7] Watts, D. J., & Strogatz, S. H. (1998). "Collective dynamics of 'small-world' networks", Nature, 393(6684), pp. 440-442.
[8] فصلنامه پدافند الکترونیکی و سایبری (1403). «کشف اجتماعات در شبکههای اجتماعی یک لایه پویا با رویکرد بیشینهسازی اهمیت»، سال 13، شماره 1، صص 45-54.
[9] Benson, A. R., Abebe, R., Schaub, M. T., Jadbabaie, A., & Kleinberg, J. (2018). "Simplicial closure and higher-order link prediction", Proceedings of the National Academy of Sciences, 115(48), pp. 11221-11230.
[10] Erdos, P., & Rényi, A. (1959). "On random graphs", Publicationes Mathematicae Debrecen, 6, pp. 290-297.