۱. چکیده

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

در این پروژه قرار است جریان هایی که این افراد ایجاد میکنند را تشخیص و منشع آنها را نیز پیدا نمود.

۲. مقدمه

امروزه رشد سریع شبکه ای اجتماعی باعث شده افراد در زندگی شخصی خود زمان بیشتر را در این شبکه ها بگذرانند و به همین علت این شبکه معیاری برای مطالعه رفتار و انگیزه­ی افراد در چرایی استفاده از شبکه های اجتمایی قرار گرفته است. همچنین مطالعات بر روی این شبکه ها نشان داده است که خبر یا هر منبعی که باعث خوشی و شادی افراد میشود (که خود یکی از فاکتور های تاثیرگذار است) از اهمیت بالای برخوردار است[1].

۳. انگیزه برای داده کاوی در رسانه های اجتماعی

اطلاعات در دسترس از طریق رسانه های اجتماعی می تواند به ما بینش شبکه های اجتماعی و جوامعی که قبلا در هر دو فیلد مقیاس و انداره امکان پذیر نبوده را بررسی کنیم. این رسانه های دیجیتال می تواند از مرزهای دنیای فیزیکی به مطالعه روابط انسانی [2] و اندازه گیره محبوبیت اجتماعی و سیاسی افراد در یک منطقه بدون برری صریح و روشن برسانند[3، 4، 5]. رسانه های اجتماعی بزرگی مانند فیس بوک و توییتر منبع ایده آل برای مطالعه مکانیزم ها و روندهای تاثیر گذاری است. با این حال، این کاری بسیار دشوار است. برای به دست آوردن اطلاعات مفید از داده های رسانه های اجتماعی بدون استفاده از فن آوری های داده کاوی کاری بسیار سخت و طاقت فرسا است.

فرد تاثیرگذار

تعریفی که از فرد تاثیرگذار توسط یک جامعه از محققان درگیر در پروژه IARPA جمع بندی شده است شامل ویژگی های زیر است[6]:

  1. دارای اعتبار در گروه.

  2. تلاش برای متقاعد کردن دیگران حتی اگر دیگران با حرف او مخالف باشند.

  3. معرفی موضوعات یا ایده هایی که دیگران آنهارا انتخاب و یا پشتیبانی میکنند.

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

۴. مجموعه دادگان

طبق دیتاستی که در سایت کگل موجود است و از توییتر گرفته شده، باید الگوریتم خودآموزی پیاده سازی شود که بر اساس مقادیر و جواب داده شده در دیتاست train بتواند بین هر دو فردی که بعد از مرحله­ ی آموختن به برنامه داده میشود قضاوت کرده و فردی که تاثیر گذاری اش بیشتر است را اعلام کند. در واقع برنامه باید توانایی بدست آوردن درصد تاثیرگذاری هر فرد را داشته باشد و بین این دو عدد عمل قضاوت را انجام دهد.
لینک دانلود دیتاست.
این داده ها توسط Peerindex تهیه شده و با همکاری شرکت ماکروسافت مسابقه­ ای به نام influence in social networks با هدف قضاوت روی رفتار افراد در شبکه های اجتماعی و پیدا کردن موثر ترین فرد در این شبکه ها در تاریخ 13 آپریل 2013 به مدت یک روز برگذار شد. در این مجموعه دادگان، داده ­ها به صورت جفت جفت قرار دارد و در هر جفت با 11 المان از قبل محاسبه شده و مثبت،براساس فعالیت های آنها در توییتر (مثل تعداد پیروان، تعداد پست ها و ...) فراهم شده است. در هر جفت میزان تاثیرگذاری A و B با یک متغییر دودویی مشخص میشود. 1 مشخص کننده ­ی این است که A از B تاثیرگذارتر است و 0 نشان دهنده ­ی تاثیرگذاری بیشتر B نسبت به A است. همان طور که گفته شد هدف این کار پیاده سازی یک نرم افراز خودآموز ماشین است که سعی میکند این رفتار ها شناسایی و پیش بینی کند و استفاده از آن در موارد دیگر جایز نیست.
پارامتر های موجود و توضیحات آن در دیتاست:

  1. follower_count
    مشخص کننده ی تعداد افراد پیروی یک فرد را در شبکه اجتماعی است.

  2. following_count
    مشخص کننده ی تعداد افرادی است که فرد آنها را در شبکه اجتماعی دنبال میکند است.

  3. listed_count

  4. mentions_received
    مشخص کننده ی تعداد پست هایی است که فرد در آنها ذکر شده است.

  5. retweets_received
    مشخص کننده ی تعداد پست های به اشتراک گذاشته شده از پست های یک فرد توسط پیروان او است.

  6. mentions_sent
    مشخص کننده ی تعداد افرادی است که فرد آنها را در مجموعه پست های خود ذکر یا به آنها اشاره کرده است.

  7. retweets_sent
    مشخص کننده ی تعداد پست های به اشتراک گذاشته شده توسط فرد از مجموعه پست ها یا اخبار پیروان خود است.

  8. posts
    مشخص کننده ی تعداد پست هایی است که فرد از آغاز عضویت خود در شبکه اجتماعی ارسال کرده است.

  9. network_feature_1

  10. network_feature_2

  11. network_feature_3

لینک گیت هاب پروژه.

۵. نحوه پیاده سازی

برای پیاده سازی این برنامه با زبان پایتون می­توان از کتاب خانه های آماده ­­ای نظیر numpy که برای محاسبات علمی به کارمیرود، sklearn که برای خودآموزی ماشین در زبان پایتون است استفاده نمود.
روش اول: مدل خطی
در ابتدا باید یک رفتار خطی از این پارامتر ها پیدا کنیم یعنی ساختن مدلی شبیه
ax + by + cz + ... = 0 یا {\sum^{m}_{i=1}(a_i x_i) }= 0

که در اینجا میتوان بازه های a_i
را با حل دستگاه معدالات خطی پیدا نمود.

روش دوم: اف اف تی یا Fast Fourier transform
در این روش با فرض اینکه ما توابعی داریم کاملا مستقل خطی هستند و با ضرب آنها در هم به یک معادله شبیه

U(x, y, t, ...) = P(x) F(y) M(t) ... = 0

به دست می آید. حال تنها کاری که باید انجام داد بدست آوردن توابع است که می توان آنهارا با روش اف اف تی و استفاده از سری فوریه محاسبه نمود.
خوبی روش فوریه این است که میتوان این توابع را به صورت سینوسی و کسینوسی نوشت و با یک سیکما محاسبه نمود و همچنین در مواقعی که صورت صریح توابع موجود نباشد سری فوریه میتواند آنها را به صورت توابع پایه بیان کند،
هر یک از این توابع به صورت زیر می باشد:
F(x) = \frac{a_0}{2} + {\sum_{i=1}^{\infty}(a_i \cos(\frac{n\pi}{l}x) + b_i \sin(\frac{n\pi}{l}x))}

روش سوم: مدل چند جمله ای
در این روش در ابتدا فرض میشود که یک چند جمله ای از درجه ی n داریم، که n به تعداد نقاط (پارامتر های) ورودی برنامه است و قرار است با این تعداد نقطه منحنی رسم شود که از تمام این نقاط بگذرد در نتیجه فرمولی که بدست می آید را میتوان به عنوان فرمول کلی درنظر گرفت و با استفاده از روش های مختلف برون یابی و درون یابی نقاط دیگر را پیش بینی نمود.
روش های درون یابی :
روش اول - لاگرانژ:
در این روش برای پیدا کردن تابع مورد نظر طبق زیر عمل میکنیم [7]:

(x_0, y_0), (x_1, y_1), ... ,(x_n, y_n)
L(x) = {\sum_{j = 0}^{k}(y_j l_j(x)}
l_j(x) = \prod_{0\leq m \leq k , m \not= k } (\frac{x - x_m}{x_j - x_m})

روش دوم - برازش منحنی:
در این روش سعی میشود یک چند جنله ای مرتبه n حدس زد که
\sum_{i = 0}^{N} (y_i - P(x_i))^{2}
کمترین مقدار شود.
برای این منظور از روش ماتریس کمترین مربعات استفاده میشود [8].

۶. نحوه ارزیابی برنامه

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

راه های پیدا کردن افراد تاثیرگذار

در آینده تکمیل میشود

کار های مرتبط

در آینده تکمیل میشود

۷. آزمایش و نتایج

نتایج آزمایش اولیه
در پیاده سازی اولیه که از روش اول (مدل خطی یا linear) بهره گرفته شده است و با استفاده از کتاب خانه numpy و sklearn سعی شده با پارامتر های مسئله مدل خطی ای را بدست آورد که با آن داده های تست مورد آزمایش قرار داد و میزان تاثیرگذاری هر فرد محاسبه نمود. وزن این مدل خطی 0.8946 است یعنی 89.46% داده های درون مجموعه دادگان با خروجی برنامه با تقریب 0.0000001 واحد، برابر است. وزن برابر تعداد جواب درست به تعداد جواب اصلی است.

۸. منابع

[1]. Kuan-Yu Lin, Hsi-Peng Lu National Taiwan University of Science and Technology, No. 43 Keelung Road, Sec. 4, Taipei 106, Taiwan, ROC
[2]. H. Lauw, J. C. Shafer, R. Agrawal, and A. Ntoulas. Homophily in the digital
world: A livejournal case study. Internet Computing, IEEE, 14(2):15–23, march-april 2010
[3]. S. Kumar, N. Agarwal, M. Lim, and H. Liu. Mapping socio-cultural dynamics
in indonesian blogosphere. In Proceedings of the Third International
Conference on Computational Cultural Dynamics (ICCCD 2009),2009.
[4]. J. Ritterman, M. Osborne, and E. Klein. Using prediction markets and
twitter to predict swine 􀃀u pandemic. In F. M. Carrero, J. M. Gomez,
B. Monsalve, P. Puertas, and J. C. a. Cortizo, editors, Proceedings of the
1st International Workshop on Mining Social Media, pages 9–17, 2009.
[5]. B. Ulicny, M. Kokar, and C. Matheus. Metrics for monitoring a socialpolitical
blogosphere: A malaysian case study. Internet Computing,
IEEE, 14(2):34 –44, march-april 2010.
[6]. Proceedings of the 2012 Workshop on Language in Social Media (LSM 2012), pages 37–45,
[7]. Lagrange polynomial as visited on may 16th 2015.
[8]. # Minimum mean square error as visited on 16th may 2015.

خسته نباشد ، خیلی خوب بود ، فقط یک سری نکته برای بهبود روند انجام پروژه:
1-در یک جای متن یک جمله را به 3 مورد از منابع اشاره داده اید که معلوم نیس چرا
2-سعی کنید بیشتر از کلمات فارسی استفاده کنید و معدل انگلیسی آن را در پاورقی بیاورید.
3-یک جای متن کامل به سمت راست شیفت داده شده است ، حتما در بررسی نهایی این اشکلات را برطرف کنید .
4-در مورد روش هایی که آورده اید فقط اصول روش را توضیح داده اید و نحوه ی استفاده از آنها در این پروژه را نگفته اید.
موفق باشید.

تایید شده

خسته نباشید
چکیده و مقدمه به خوبی بیان شده است و فرد را متقاعد می کند که وارد بحث اصلی شود.این بسیار خوب استروش اول در پیاده سازی یعنی مدل خطی به خوبی توضیح داده نشده است یعنی روش اول: مدل خطی
در ابتدا باید یک رفتار خطی از این پارامتر ها پیدا کنیم یعنی ساختن مدلی شبیه
ax+by+cz+...=0 یا ∑mi=1(aixi)=0
که در اینجا میتوان بازه های ai
را با حل دستگاه معدالات خطی پیدا نمود.
آیا می توان بین 11 پارامتری که ذکر شده است رفتار خطی پیدا کرد ؟
3 مورد آخر از پارامتر ها،توضیحی درموردشان ذکر نشده نکته بعدی این که برنامه های جانبی زیادی فراهم شده است که به صورت غیر واقعی پست ها را retweet و یا تعداد follower ها را زیاد می کنند
راهکار شما برای این مشکل چیست؟

محمد غضنفری

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