430 likes | 639 Views
Khai phá dữ liệu quá trình: Một số tìm hiểu bước đầu. Nhóm sinh viên thực hiện : Phạm Văn Thắng K54 Đào Thủy Ngân K54 Nguyễn Thế Hùng K55. Phân công công việc nhóm. Mục lục. [ TFPM 2011] Process Mining Manifesto [ Aalst12] Overview and Opportunities
E N D
Khaiphádữliệuquátrình: Một số tìm hiểu bước đầu Nhóm sinhviênthựchiện: PhạmVănThắng K54 ĐàoThủyNgân K54 NguyễnThếHùng K55
Mụclục [TFPM 2011] Process Mining Manifesto [Aalst12] Overview and Opportunities [MBA12] Efficient Discovery of Understandable Declarative Process Models from Event Logs
1. Process Mining Manifesto vs[Aalst12] Overview and Opportunities • Giớithiệu • Event log • Vịtrícủakhaipháquátrình • Quytrìnhkhaipháquátrình • Phânloại • Đặcđiểm • Nhữngnguyêntắchướngdẫn • Nhữngtháchthức
Giớithiệu • Trongthậpkỉvừa qua, khaipháquátrìnhnổilênnhưlàmộtlĩnhvựcnghiêncứumớitậptrungvàophântíchquátrìnhsửdụngdữliệusựkiện. • Nguyênnhân: có 2 yếutốchínhkhiếnkhaipháquátrìnhngàycàngđượcquantâm: • Ngàycàngcónhiềusựkiệnđượcghinhậnlại, do đócungcấpthông tin chi tiếtvềlịchsửcủaquátrình • Cầncảitiếnvàhỗtrợquátrìnhkinhdoanhtrongđiềukiệnmôitrườngcạnhtranhvàthayđổinhanhchónghiện nay
Mụcđích: khaipháquátrìnhnhằmpháthiện, theodõivàcảitiếnquátrìnhthựctếbằngcáchtríchxuấtthông tin từnhữngbảnghisựkiệnđãcósẵntronghệthốngthôngtin ngàynay. • Ứngdụng: cóứngdụngtrongnhiềumiềnứngdụngkhácnhau, trongđóchủyếumiềnứngdụngquảnlýquátrìnhkinhdoanh.
Event logs • Địnhnghĩa: làmộttậpnhữngsựkiệnđượcsửdụngnhưđầuvàocủakhaipháquátrình. • Nhữngsựkiệnkhôngcầnthiếtphảilưutrữ ở những log file riêngbiệt ( vídụnhữngsựkiệncóthểnằmrảiráctrêncácbảngcơsởdữliệukhácnhau). • Cácsựkiệncóthểcócácloạithuộctínhbổ sung ( nhưmốcthờigian, nhữngthông tin giaodịch, sửdụngtàinguyên…).
Phânloại • Khaipháquátrìnhgồm 3 loạichính: • Pháthiệnquátrình ( process discovery ) • Kiểmtrasựthốngnhất (conformance checking ) • Tăngcườngmôhình (enhancement )
Pháthiệnquátrình • Pháthiệnquátrìnhlàloạinổibậtnhấttrongkĩthuậtkhaipháquátrình. • Input: event log • Output: môhìnhpháthiện • Nhữngmôhìnhpháthiệnthườnglànhữngmôhìnhquátrình ( vídụ: mộtmạng Petri, BPMN, EPC, hay mộtbiểuđồhoạtđộng UML). Tuynhiêncũngcóthểmôtảcáchnhìnkhác ( vídụnhưmạngxãhội).
Ứngdụngcủapháthiệnquátrình • Đểthảoluậnvấnđềgiữanhữngbênliênquan ( đểđạtđượcsựđồngthuận, điềuquantrọnglàcómộtcáinhìnchungtrongquátrìnhthựctế ) • Đểtạoranhững ý tưởngcảitiếnquátrình ( thấyđượcquátrìnhthựctếvànhữngvấnđềcủanókíchthíchnỗlựctáicơcấu, tổchức ) • Đểmởrộngmôhình • Đểthiếtlậpmộthệthống WFM/BPM ( môhìnhquátrìnhpháthiệncóthểphụcvụnhưmộtbảnmẫu).
Thuậttoánpháthiệnquátrình • Hầuhếtcáccáchtiếpcậncổđiểncónhữngvấnđềđốimặtvớitínhđồngthời. • Thuậttoánα [van der Aalst et al. 2004] làmộtvídụkĩthuậtđơngiảnlấytínhđồngthờilàmđiểmkhởiđầu. • Thuậttoánαquétnhữngbảnghisựkiệnchonhữngmẫucụthể • Tuynhiênthuậttoángặpphảivấnđềvớicấutrúcđịnhtuyếnphứctạpvàồn • Ngoàithuậttoánα, cáchtiếpcậndựatrênkhuvựccóthểthểhiệnnhữngcấutrúcluồngđiềukhiểnphứctạphơnmàkhôngunderfitting. • Ý tưởngcơbảncủacáchtiếpcậnnàylàpháthiệnnhữngvịtrí . • Ngoàirađểgiảiquyếtồnvàtínhkhôngđầyđủ, phươngpháptiếpcậnkhaiphátheokinhnghiệm, khaiphámờvàkhaipháquátrình di truyềnđượcápdụng
Thuậttoánα • Vídụnếuhoạtđộng a theosauhoạtđộng b, nhưng b khôngbaogiờtheosau a thìsẽcómộtgiảđịnhrằngcóquanhệphụthuộcgiữa a vàb. • Đểthểhiệnsựphụthuộcnàychúng ta sửdụngmạng Petri tươngứng, cókêtnốitừ a đến b. • Chúngta sửdụngkíhiệu • a>b nếuvàchỉnếucómộtdấuhiệuσ = {t1, t2, t3, . . . tn} trongbả n ghivàmột i ∈ {1, . . . , n − 1}, saocho:ti=a và ti+1 = b. • a->b nếuvàchỉnếu a>b và b/> a; • a#bnếuvàchỉnếu a/>b và b/>a; • a||b nếuvàchỉnếu a>b và b>a; 4 quanhệcóthứtựnàyđượcsửdụngđểkếtnốicácquátrìnhchuyểntrongmạng Petri
Thuậttoánkhaiphádựatrênkinhnghiệm • Đề cập trong Weijters and van der Aalst[2003] • B1: xây dựng một đồ thị phụ thuộc dựa vào tần số của hành động và số lần một hành động được theo sau bởi hành động khác. • B2: dựa vào ngưỡng xác định trước, những phụ thuộc được thêm vào đồ thị phụ thuộc ( hoặc có thể không). Đồ thị phụ thuộc cho thấy xương sống của khai phá quá trình, dựa vào đó có thể phát hiện chi tiết hành vi phân chia và gộp nhóm của những node. • B3: kiểm tra nếu một hành động có nhiều cung vào thì liệu đó là một nhóm AND, một nhóm XOR hay 1 nhóm OR. • trong trường hợp nhóm OR, các hành vi đồng bộ hóa được học • Nếu 1 hoạt động có nhiều cung ra, sau đó hành vi chia được học theo xu hướng tương tự.
Kiểmtrasựthốngnhất • Input: evnt log vàmôhìnhhiệncó • Output: thông tin dựđoán ( chothấysựkhácnhauvàtươngđồnggiữamôhìnhvàbảnghi) • Môhìnhquátrìnhhiệncóđược so sánhvớimộtbảnghisựkiệncủacùngmộtquátrình. ( do môhìnhđượcsinhratrongpháthiệnquátrìnhkhôngdựavàonhữngthông tin tiềnnghiệm, khácvớibảnghisựkiện).
Ứngdụngcủakiểmtrasựthốngnhấtcủamôhình • Đểkiểmtrachấtlượngcủaquátrìnhđượctàiliệu. • Đểxácđịnhnhữngtrườnghợpsailệchvànhữnggìchúngtươngđồng. • Đểxácđịnhcácđoạnquátrìnhmàhầuhếtcácsailệchxảyra. • Cho mụcđíchkiểmtoán • Đểđánhgiáchấtlượngcủamộtmôhìnhpháthiệnquátrình • Đểhướngdẫncảitiếncácthuậttoánpháthiệnquátrình. • Vànhưmộtđiểmkhởiđầuchotăngcườngmôhình.
Chuẩnđoánsựkhácnhaugiữahành vi quansátvàhành vi đượcmôhìnhhóa • Ta sửdụng 4 độđochấtlượng: a. độphùhợp b. độđơngiản c. độchínhxác d. độtổngquát
Thuậttoánkiểmtrasựthốngnhất • Vềcơbảncó 3 cáchtiếpcậnchính: • Cáchtiếpcậnthứnhất: làtạoramộttrừutượnghóacủahành vi trongbảnghivàmộttrừutượnghóacủahành vi đượcchobởihệthống • Cáchtiếpcậnthứhai: xemlạibảnghisựkiệntrênmôhình. Mộtcáchtiếpcậnhướngđếnkiểmtrasựthốngnhấtđơngiảnlàđếmsốphầncủanhữngtrườnghợpđượcphântíchhoàntoàn. • Cáchtiếpcậnthứba: tiếpcậntínhtoánsựliênkếttốiưugiữamỗidấuhiệutrong log vàhành vi tươngđồngnhấttrongmôhình.
Thuậttoántheocáchtiếpcậnthứba • Vídụtheomôhình M2
Cácphầntrênlàthuộcbảnghi, phầndướithuộcmôhình • γ1 chothấysựliênkếthoànhảo • γ2 chothấysựliênkếttốiưuvớidấuhiệu “adceh” • γ3 chothấysựliênkếttốiưuvớidấuhiệu “adcefdbeh” • Sựphùhợpcóthểđượcxemxéttừ 2 gócđộ: • Môhìnhkhôngđạtđượchành vi thực • Độlệchthựctếtừmôhìnhmongmuốn Quanđiểmthứnhấtđượcdùngkhimôhìnhđượcxemnhưlàmôtả, tứclànắmbắtvàdựđoánthựctế. Quanđiểmthứhaiđượcsửdụngkhimôhìnhcótínhquyphạm, dùngđểgâyảnhhưởngvàđiềukhiểnthựctế.
Tăngcườngmôhình • Input: event log vàmôhình • Output: môhìnhmớiđượccảitiến hay mởrộng. • Đểmởrộng hay cảitiếnmôhìnhquátrìnhđãcósửdụngthông tin vềquátrìnhthựctếđượcghinhậntrongmộtbảnghisựkiện • Trongkhikiểmtrasựtươngđồngđôđộliênkếtgiữamôhìnhvàthựctếthìmởrộngmôhìnhlạinhằmmụcđíchthayđổihoặcmởrộngmôhìnhtrướcđó • Nếuthêmcácthuộctínhbổxungchobảnghisựkiệnthìngười ta cóthểmởrộngmôhìnhđểthểhiệnnhữngđiểmbếtắc, nhữngmứcđộdịchvụ, thờigianthông qua,…
Đặcđiểmcủakhaipháquátrình • Khai pháquátrìnhkhônggiớihạnsựpháthiệnluồngđiềukhiển • Khaipháquátrìnhkhôngchỉlàmộtloạiđặcbiệtcủakhaiphádữliệu, mànócòncónhữngyêucầumớivềkĩthuậtbiểudiễnvàcácthuậttoánđượcsửdụngđểgiảiquyếtbàitoán. • Khaipháquátrìnhkhônggiớihạnnhữngphântíchngoạituyến
6 nguyêntắchướngdẫn • GP1: Dữliệusựkiệnnênđượccoilàcôngdânhạngnhất • GP2: việctríchxuấtbảnghinênđượcdẫndắtbởinhữngcâuhỏi. • GP3: Sựđồngthời, lựachọnvàxâydựngluồngđiềukhiểncơbảnnênđượchỗtrợ • GP4: Sựkiệnnênliênquanđếncácthànhphầnmôhình • GP5: Môhìnhnênđượccoilàtrừutượnghóacómụcđíchcủathựctế. • GP6: Khaipháquátrìnhnênlàmộtquátrìnhliêntục
11 tháchthứccủakhaipháquátrình • C1: tìmkiếm , hợpnhấtvàlàmsạchdữliệusựkiện • C2: xửlýnhữngbảnghisựkiệnphứctạpcóđặctrưngđadạng • C3: tạonhữngtiêuchuẩnđạidiện • C4: đốiphóvớinhữngkháiniệmthayđổi • C5: cảithiệnxuhướngthểhiệndùngchopháthiệnquátrình • C6: cânbằnggiữachấtlượngvớicáctiêuchínhư: phùhọp, đơngiản, chínhxác, vàkháiquát. • C7: khaiphánhữngtổchứclaitạp • C8: Cungcấpcáchoạtđộnghỗtrợ • C9: Kếthợpkhaipháquátrìnhvớicácloạiphântíchkhác • C10: nângcaotínhkhảdụngvớingườidùngkhôngchuyên • C11: nângcaotínhdễhiểuvớingườidùngkhôngchuyên.
2. [MBA12] Efficient Discovery of Understandable Declarative Process Models from Event Logs • Giớithiệu • Cáchxâydựngmôhình • Ngônngữkhaibáo: LTL • Xâydựngtập constraint dựavàothuậttoánApriori • Lọccác constraints
Giớithiệu • Tậptrungxâydựngmôhìnhkhaibáo ( declare model) cócấutrúc, dễhiểu, ( nhưngcácmôhìnhthựctếthườnglàrấtphứctạpvàkhôngcócấutrúc). • Một declare model gồmcác activity làcáchoạtđộng hay sựkiện. • Cácconstraint làcácliênkếttừ activity nàyđến activity kiaxácđịnhvàdựavàocácmẫu(Template). • Mỗitemplate sẽxácđịnhkiểucủa constraint(e.g. response constraint) vàđượcxácđịnhdựavàongônngữmôhình LTL
Cáchxâydựngmôhình • Cáchxâyđựngmôhìnhtrướcđâylàtạoratấtcảcác constraint cóthể, sauđósẽkiểmtrachúngtrêncác event log. Cáchnàycó 2 nhượcđiểm: • Khisốlượngcác activity trong file log lớnkéotheosốlượng constraint phảikiểmtratăngrấtnhanh, khôngkhảdụngtrongthựctế. • Cónhiều constraint khôngcầnthiếtsẽđượckiểmtralàđúngtrong event log vàsẽcónhững constraint chứatrongconstaintkhác.
Cáchxâydựngmôhình • Gồm 2 bước: • B1: Xậydựngtập constraint ban đầudựavàothuậttoánApriori. • B2: Loạibỏcác constraint thừakhôngcầnthiếtdựavàokếthợpcác ma trậnquanhệđơncủa constraint với event log: Confidence, Support, hay phứctạphơnlà Interest Factor(IF), Conditional-Probability Increment Ratio(CPIR).
Ngônngữkhaibáo: LTL • Ngônngữnàyxácđịnhthứtựcủacác activity: • Vídụ: (□a → ◊b) : Khinàomà a sảyrathìkéotheođó b cũngxảyra • - Pháthiệncác constraint khôngcầnthiếtdựavào LTL vacuity detection: thêmđiềukiệnvào constraint trênngônngữ LTL đểloạibỏcác constraint khôngcầnthiết. • Vídụ: □(a → ◊b) thêmđiềukiên ◊a đểtăngđộchínhxáccủaviệckiểmtra constraint nàyquan event log loạibỏcáctrườnghợpkhôngcó a trong process instance nhưng constraint nàyvẫnđúng.
Xâydựngtập constraint dựavàothuậttoánApriori • Tạoracác constraint xuấtphátvàcókhảnăngnhất. • Địnhnghĩa Support củamộttậpcác activity A: Ʃ làtậptấtcảcác activity trong event log. t ∊Ʃ*:làmộtchuỗi activity thuộcmộtsố process instance. ℒ= [t1, t2, …, tn]. A mộttậpcác activity trong Ʃ.
Saukhithuậttoánkếtthúcthìcácbộcósupp() trênngưỡngtừđầuđếncuốithuậttoánlàcáctậpphổbiến. Từcácbộnày ta xâydựngcác constraint dựavàongônngữ LTL: • Vídụ: 1 bộphổbiếnlà (a, b) người ta cóthểthànhlậpđược: • □(a → ◊b) và • □(b → ◊a) • Ngoàira ta còncóthểtạoracácbộchứacác activity khôngsảyranhư: ¬a(khôngsảyraa).
Vídụtrongtrườnghợptínhđếncác activity khôngcótrongprocess
Lọccác constraints • Sẽcónhiều constraint thưa do sựtạothànhmọitrườnghợpcóthểsảyratừtậpphổbiến: • Vídụ: (a, b) làbộphổbiếnnhưngchỉcó □(a → ◊b) làxuấthiệnnhiềucòn □(b → ◊a) thìrấtíttrong process nên □(b → ◊a) sẽlà constraint khôngđúng. • Cáccáchloạibỏ constraint sai: • Mộtsốkháiniệmmới: • Antecedent và consequent: Đâylà 2 phầncủa 1 constraint
Kiểmtracác constraint qua các process instance trựctiếpsauđểtìmxem constraint nàophổbiến, cáinàokhôngđúng • Đưathêmmộtchỉsốđonữalà Confidence(Độ tin cậy): Khiđó ta sẽdựavàoconf() củamột constraint đểquyếtđịnhxem constraint nàycóphảilàphổbiến hay không • Ngoàiracòndựavàomộtsốđôkđokhác
Toolkit • Sửdụng open-source tool ProM
Tàiliệuthamkhảo [Aalst11] WMP Van der Aalst (2011). Process Mining: Discovery, Conformance and Enhancement of Business Processes, Springer, 2011. [Aalst12] Wil M. P. van der Aalst: Process Mining: Overview and Opportunities, ACM Trans. Management Inf.Syst.3(2): 7 (2012) [MBA12] Fabrizio Maria Maggi, R. P. Jagadeesh Chandra Bose, Wil M. P. van der Aalst (2012). Efficient Discovery of Understandable Declarative Process Models from Event Logs, CAiSE 2012: 270-285. [TFPM 2011] Process Mining Manifesto