تشخیص انجمن در مقیاس کلان داده

37
ندادهن در مقیاس ک تشخیص انجم نوید صدیقپورستاد سمینار ا: بدی دکتر میشاور سمینارا و مد راهنمستا ا: دکتر باقریسی ارشد سمینار کارشناابستان ت95

Upload: navid-sedighpour

Post on 16-Jan-2017

80 views

Category:

Data & Analytics


5 download

TRANSCRIPT

Page 1: تشخیص انجمن در مقیاس کلان داده

تشخیص انجمن در مقیاس کالن داده

نوید صدیق پوردکتر میبدی: استاد سمینار

دکتر باقری : استاد راهنما و مشاور سمینار

95تابستان –سمینار کارشناسی ارشد

Page 2: تشخیص انجمن در مقیاس کلان داده

فهرست

مقدمهانجمنتشخیصچالش هایکالن داده(Spark)GraphX

ارزیابیروش هایجمع بندیمراجع

2 / 37

Page 3: تشخیص انجمن در مقیاس کلان داده

مقدمه

Page 4: تشخیص انجمن در مقیاس کلان داده

تعریف انجمن

بیشترگرافسایربهنسبتآن هابیناتصاالتتراکمکهگرافدررئوسازگروهیبه.می شودگفتهانجمناست،

استاسپارسگراف،درانجمن هابیناتصاالت.

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

4 / 37

Page 5: تشخیص انجمن در مقیاس کلان داده

گرافساختارمطالعهگرافتحلیلگرافازمعنی داراطالعاتکسب

چرا به دنبال ساختار انجمنی باشیم؟

5 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 6: تشخیص انجمن در مقیاس کلان داده

رشد بسیار سریع داده

استنماییصورتبهداده هارشد.

1ازداده هاامسال،تا2008سالازZB11بهZBسالتامی شودپیش بینیورسیده اند1ZB).باشیمداشتهداده45ZBتقریبا2020 = 1021 bytes)

6 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 7: تشخیص انجمن در مقیاس کلان داده

رشد گراف شبکه

می شودتربزرگوبزرگهمگرافساحتارجهان،دردادهرشدباهمراه.

2009سال 2015سال 7 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 8: تشخیص انجمن در مقیاس کلان داده

تشخیص انجمن(چالش ها)

Page 9: تشخیص انجمن در مقیاس کلان داده

هم پوشانی

باشندمشترکراسدارایانجمن هاکهصورتیدر.هستندهم پوشانانجمندارایپیچیده،شبکه هایازبسیاری.

معروفالگوریتمارائهباهم پوشان،انجمنکشفclique percolationپسوشدآغاز.شدارائه...وCopra،Conga،Eagleالگوریتم هایآناز

9 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 10: تشخیص انجمن در مقیاس کلان داده

پویایی

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

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

10 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 11: تشخیص انجمن در مقیاس کلان داده

l-partitionمدل

𝑃𝑖𝑛:همانرئوسبهراس،یکاینکهاحتمالpartitionباشدمتصل.: 𝑃𝑜𝑢𝑡باشدمتصلخارجیرئوسبهراس،یکاینکهاحتمال.رئوس،تمامازایبهکهزمانیتا𝑃𝑖𝑛 ≥ 𝑃𝑜𝑢𝑡،واستانجمنیساختاردارایگرافباشد

.می شودگفتهانجمنیکpartitionآنبه

ساختار انجمنی داردساختار انجمنی ندارد11 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 12: تشخیص انجمن در مقیاس کلان داده

کالن داده(اسپارک)

Page 13: تشخیص انجمن در مقیاس کلان داده

مفاهیم پایه

اطالقهادادهازمجموعهبهمعموالدادهکالنیابزرگهایداده:کالن دادهتعریفدرراآن هابتوانمعمولافزارهاینرمباکهاستحدیازفراترآنهااندازهکهمی شود

.کردپردازشومدیریتدقیق سازی،اخذ،معقولزمانیکدادهموازیپردازشچارچوب:اسپارک

پذیرمقیاسخطابرابردرمقاومازاستفادهRDD

باالسرعتاسکاالزبانازاستفاده

13 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 14: تشخیص انجمن در مقیاس کلان داده

RDDمفهوم (Resilient Distributed Dataset )

RDDاستماشین هامیانتوزیع شدهوخواندنیفقطاشیایازمجموعه ایبیانگر.RDDشودبازسازیمی تواندجزءیکرفتنبینازصورتدر.RDDمانندمختلفعملیاتازپسهاmap،group-byمی آیندبوجود...و.مثال؛عنوانبهRDD (visitID, URL)می توان.می دهدنشانراوبسایتیکازبازدیدها

RDD(URL, count)اشت،نگتابعکهطریقبدینکرد؛محاسبهکاهشنگاشتطریقازرا(URL, .می دهدکاهشURLاساسبرراآن هاسپسومی کندمحسابهرا(1

val visits = spark.hadoopFile("hdfs://...")

val counts = visits.map(v => (v.url, 1))

reduceByKey((a, b) => a + b)

14 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 15: تشخیص انجمن در مقیاس کلان داده

خانواده اسپارک

کرده اندارائهکالن دادهآنالیززمینهدربسیاریقابلیت هایکهاسپارکمفیدکتابخانه های.

Spark SQL:یافتهساختداده هایباکاربرایاسپارککتابخانهSpark Streaming:جاریداده هایباکاربرایاسپارککتابخانهMllib:اسپارکماشینیادگیریمقیاس پذیرکتابخانهGraphX:گراف هارویموازیمحاسباتانجامبرایاسپارککتابخانه

15 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 16: تشخیص انجمن در مقیاس کلان داده

GraphX

Page 17: تشخیص انجمن در مقیاس کلان داده

GraphX

آن هارویموازیمحاسباتانجاموگرافتعریفبرایاسپارکابزاراستدهشپیاده سازیابزارایندرگراف هاباکاربرایمفیدومرسومتوابعازبسیاری.

17 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 18: تشخیص انجمن در مقیاس کلان داده

Graph Parallel vs. Data Parallel

سیستم هایgraph parallelگرافرویبربازگشتیالگوریتم هایپیاده سازیبرای.هستندبهینه

سیستم هایdata Parallelعملیاتمانند)موازیداده هایرویمحاسباتانجامبرایmap،join،filterهستندبهینه(...و.

18 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 19: تشخیص انجمن در مقیاس کلان داده

Graph Parallel vs. Data Parallel(ادامه)..

GraphXخواصData ParallelوGraph Parallelبه.استکردهترکیبهمباراصورتبهراشبکهآن،(duplicate)تکراریادادهجابجاییبدونمی تواندکهطوریgraph)گراف parallel)جدولصورتبهیا(data parallel)دهدنمایش.

19 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 20: تشخیص انجمن در مقیاس کلان داده

RDG (Resilient Distributed Property Graph)مفهوم

درGraphX،RDDبهRDGاستیافتهگسترش.RDGآن،دریالوراسهرکهاستچندگانهجهت دارگرافیکpropertyخودخاص

.داردرا

یکراسهرidبایالهروداردفردبهمنحصرidشناساییخودمقصدومبدابهمربوط.می شود

Propertyصورتبههاscala objectمی شوندذخیره.

20 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 21: تشخیص انجمن در مقیاس کلان داده

GraphXتوابع مرسوم در

Vertices RDDصورتبهرارئوسمجموعه :() [(Id,V)]برمی گرداند.Edges RDDصورتبهرایال هامجموعه :() [(Id, Id, E)]شاملکهبرمی گرداندId

.است(E)مربوطهیالهایattributeومقصدراسIdمبدا،راسmapVertices(f):تابعابتداfمرتبزوجدرتابعایندرکهمی کنداعمالگرافرویرا

(Id,V)مرتبزوجبه(Id,V2)برمی گرداندراجدیدگرافانتهادرومی شودنگاشت.mapEdges(f):تابعابتداfمرتبزوجدرتابعایندرکهمی کنداعمالگرافرویرا

(Id, Id, E)مرتبزوجبه(Id, Id, E2)راجدیدگرافانتهادرومی شودنگاشت.برمی گرداند

filterVertices(pred)وfilterEdges(pred):شرطاعمالباpred،گرافاززیرگرافی.برمی گرداندرااصلی

updateVertices(tbl,f):می کنداضافهگرافبهراراسچندیایک.reverseEdgeDirection():می کندعوضراگرافیال هایجهت.degree():برمی گرداندلیستیکصورتبهراگرافرئوسدرجه.

21 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 22: تشخیص انجمن در مقیاس کلان داده

روش های تقسیم گراف

Edge Cut:اشین هامبینمی توانندیال هاکهحالیدرمی شوند؛تقسیمماشین هابینرئوسروش،ایندر

.باشندگسترده

Vertex Cut:اشین هامبینمی توانندرئوسکهحالیدرمی شوند؛تقسیمماشین هابینیال هاروش،ایندر

Edgeبهنسبتبهتریعملکردروشاین.باشندگسترده Cutدارد.

22 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 23: تشخیص انجمن در مقیاس کلان داده

Vertex Cutاز GraphXنمایش جدولی

hash tableو ذخیره سازی آن ها با استفاده از GraphXتقسیم یال ها بین ماشین ها در

23 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 24: تشخیص انجمن در مقیاس کلان داده

الگوریتم های موجود

ده اندشپیاده سازیکاهش-نگاشتچارچوبدرکهانجمنتشخیصالگوریتم هایتعداد.استکم

الگوریتمSPB-MRA(Shortest Path Between MapReduce Algorithm)

الگوریتمموازینسخهGirvan-Newman (GN)

الگوریتمDEPOLD

الگوریتمMR-CPM(MapReduce Clique Percolation Method)

الگوریتمموازینسخهclique percolationهم پوشانرئوستشخیصقابلیتبا

24 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 25: تشخیص انجمن در مقیاس کلان داده

ارزیابی

Page 26: تشخیص انجمن در مقیاس کلان داده

معیارهای مرسوم

Speedup

Scalability

Algorithm’s Order

Coverage

Modularity

Conductance

Precision

Normalized Mutual Information

26 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 27: تشخیص انجمن در مقیاس کلان داده

GN(Girvan and Newman)گراف شاخص

ازمدلیکl-partitionاست.می شوندتقسیمتایی32گروه4بهگرافاینرئوس.

Danonتشخیصالگوریتم هایکاراییمقایسهوکاراییآزمایشبرایمدلایناز2005سالدرهمکارانو.کردنداستفادهزمانآندرانجمن

مدلایناساسیعیبدو:استنادراتفاقیچنینواقعیتدرکهحالیدر.دارندمساویانتظارمورددرجهرئوسهمه.هستندیکسانیسایزداراسانجمن هاتمام.

37 / 27با درجات مورد انتظار متفاوت برای رئوسGNگراف شاخص

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 28: تشخیص انجمن در مقیاس کلان داده

LFRگراف شاخص

ازخاصمدلیکl-partitionباشدمتفاوتمی تواندانجمن هاسایزورئوسدرجهآندرکه.

LFR28 / 37یک نمونه از گراف شاخص

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 29: تشخیص انجمن در مقیاس کلان داده

..(ادامه)LFRگراف شاخص

یاهم پوشانراس دارایوجهتبدونیاجهت داربی وزن،یاوزن دارمی تواندگرافاین.باشدغیرهم پوشان

N:شبکهرئوستعداد

𝐾𝑖𝑖𝑛:گرههمسایه هایتعدادiعضوکهcهستند

𝐾𝑖𝑜𝑢𝑡:گرههمسایه هایتعدادiعضوکهcنیستند

𝐾𝑐𝑖𝑛:انجمنداخلدرممکناتصاالتتعداد𝐾𝑐

𝑜𝑢𝑡:انجمنازخارجدرممکناتصاالتتعدادμ:می دهدنشانراکلدرجهبهراسخروجیدرجهنسبت.

29 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 30: تشخیص انجمن در مقیاس کلان داده

..(ادامه)LFRگراف شاخص

انجمنیساختاروجودشرط:𝑃𝑖𝑛 ≥ 𝑃𝑜𝑢𝑡

حسببرمی توانراعبارتاینμکردمحاسبه:

𝑃𝑖𝑛 ≥ 𝑃𝑜𝑢𝑡

μ < (𝑁 − 𝑛𝑐𝑚𝑎𝑥 Τ) 𝑁

30 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 31: تشخیص انجمن در مقیاس کلان داده

NMI (Normalized Mutual Information)معیار

الگوریتمکیفیتتعیینبرایاستمعیاری

مسئلهیکگرافدرانجمن هادقیقتشخیصNP-Completeبنابراین.استکیفیتیینتعبرایمناسبیمعیاربایدکههستندتقریبیعموماحوزهاینالگوریتم های

.شودارائهآن ها

اگرXوYباشند،شبکه هاتصادفیمتغیرmutual informationاگرکهمی دهدنشانXبهراجعچقدربدانیم،راYاستصورتاینبهآنرابطه.برعکسوداریماطالع:

{1,2,3} {1} {2,3} {4,5,6}{4,5,6}

Ground Truthجمننتیجه اجرای الگوریتم تشخیص ان

𝐼(𝑋, 𝑌) =

𝑥

𝑦

𝑃 𝑥, 𝑦 𝑙𝑜𝑔)𝑃(𝑋, 𝑌

)𝑃 𝑋 𝑃(𝑌31 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 32: تشخیص انجمن در مقیاس کلان داده

..(ادامه)NMI (Normalized Mutual Information)معیار

ایدهNMIپیرایبگروهیکباشند،همبهشبیهبسیاررئوس،ازگروهدواگرکهاستاین.داردنیازکمیاطالعاتبهدیگرگروهبهبردن

تابعH(X)،شانونآنتروپی:

𝐻 𝑋 = −

𝑥

𝑃 𝑥 𝑙𝑜𝑔𝑃 𝑥

Mutual informationشانونآنتروپیبهتوجهبا:

𝐼 𝑋, 𝑌 = 𝐻 𝑋 − 𝐻(𝑋|𝑌)

کهزمانیبرایمعیاراین𝐻 𝑋|𝑌 = تعریفNMIبنابراین.نمی دهدمطلوبیپاسخاست،0:شد

𝐼𝑛𝑜𝑟𝑚 𝑋, 𝑌 =2𝐼(𝑋, 𝑌)

𝐻 𝑋 + 𝐻(𝑌)

باشند،مساویهمبادقیقاپارتیشندواگرNMIهیچکهصورتیدروبودخواهدیکبابرابر.استصفربابرابرباشند،نداشتهتشابهی

32 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 33: تشخیص انجمن در مقیاس کلان داده

GNآزمایش الگوریتم ها با استفاده از گراف شاخص

متدهایبهمربوطکاراییبهترینsimulated annealingوclausetاست.

33 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 34: تشخیص انجمن در مقیاس کلان داده

LFRآزمایش الگوریتم ها با استفاده از گراف شاخص

بی وزنوجهتبدونشاخصگرافدرآزمایشنتایجLFR:متدهایکهمی دهدنشانsimulated annealingوclausetسایزبابزرگگراف هایبرای

.نمی کنندکارخوبیبهکوچکانجمن

34 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 35: تشخیص انجمن در مقیاس کلان داده

جمع بندی

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

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

35 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 36: تشخیص انجمن در مقیاس کلان داده

مراجع اصلی

1. S. Fortunato, "Community detection in graphs ," Physics reports, vol.486, pp. 75-174, 2010.

2. M. Zaharia, M. Chowdhury, M. J. Franklin, S. Shenker, and I. Stoica,"Spark: Cluster Computing with Working Sets," HotCloud, vol. 10, pp.10-10, 2010.

3. R. S. Xin, J. E. Gonzalez, M. J. Franklin, and I. Stoica, "Graphx: Aresilient distributed graph system on spark," in First InternationalWorkshop on Graph Data Management Experiences and Systems,2013, p. 2.

4. L. Danon, A. Diaz-Guilera, J. Duch, and A. Arenas, "Comparingcommunity structure identification," Journal of Statistical Mechanics:Theory and Experiment, vol. 2005, p. P09008, 2005.

5. A. Lancichinetti and S. Fortunato, "Community detection algorithms: acomparative analysis," Physical review E, vol. 80, p. 056117, 2009.

36 / 37

کالن دادهمقدمه جمع بندیارزیابیGraphXتشخیص انجمن

Page 37: تشخیص انجمن در مقیاس کلان داده

تشخیص انجمن در مقیاس کالن داده

نوید صدیق پوردکتر میبدی: استاد سمینار

دکتر باقری : استاد راهنما و مشاور سمینار95تابستان –سمینار کارشناسی ارشد

سپاسگزارم