Isiqulatho[Fihla][Bonisa]
Iindlela zokufunda ezinzulu ezaziwa ngokuba yi-“graph neural networks” (GNNs) zisebenza kwidomeyini yegrafu. Ezi nethiwekhi mva nje zifumene ukusetyenziswa kwiinkalo ezahlukeneyo, kubandakanya umbono wekhompyuter, iinkqubo zokuncoma, kunye nokulungelelaniswa kokudibanisa, ukubiza ezimbalwa.
Ukongeza, olu nxibelelwano lunokusetyenziselwa ukumela iinkqubo ezintsonkothileyo, ezibandakanya iinethiwekhi zentlalo, iprotein-protein interaction networks, iigrafu zolwazi, kunye nezinye kwiinkalo ezininzi zokufunda.
Indawo engeyo-euclidean kulapho idatha yegrafu isebenza khona, ngokungafaniyo nezinye iindidi zedatha njengemifanekiso. Ukuze uhlele ama-nodes, uqikelele amakhonkco, kunye nedatha yeqela, uhlalutyo lwegrafu lusetyenziswa.
Kweli nqaku, siza kujonga iGrafu kwenethiwekhi ngokweenkcukacha, iintlobo zayo, kunye nokubonelela ngemizekelo ebonakalayo usebenzisa iPyTorch.
Ke, yintoni iGrafu?
Igrafu luhlobo lwesakhiwo sedatha eyenziwe ngamaqhuqhuva kunye neengqimba. Ukudityaniswa phakathi kweenodi ezahlukeneyo kugqitywa ngama-vertices. Ukuba ulwalathiso lubonakaliswe kwiinodes, igrafu kuthiwa iqondiswe; kungenjalo, ayijoliswanga.
Usetyenziso olululo lweegrafu luyimodeli yobudlelwane phakathi kwabantu abohlukeneyo kwi inethiwekhi yokuncokola. Xa ujongene neemeko ezinzima, ezifana nezikhonkco kunye notshintshiselwano, iigrafu zinceda kakhulu.
Baqeshwe ziinkqubo zokucebisa, uhlalutyo lwe-semantic, uhlalutyo lwenethiwekhi yoluntu, kunye nokuqatshelwa kwepateni
. Ukudala izisombululo ezisekelwe kwigrafu yintsimi entsha kraca enika ukuqonda okucacileyo kwedatha enzima kunye nedibeneyo.
IGrafu yeNeural Network
Iinethiwekhi ze-neural zegrafu ziintlobo zenethiwekhi ye-neural ezikhethekileyo ezinokusebenza kwifomathi yedatha yegrafu. Ufakelo lwegrafu kunye nothungelwano lwe-neural convolutional (CNNs) lunempembelelo ebalulekileyo kubo.
IiNethiwekhi zeGrafu zeNeural ziqeshwe kwimisebenzi ebandakanya iindawo zokuqikelela, imiphetho, kunye neegrafu.
- Ii-CNN zisetyenziselwa ukwahlula imifanekiso. Ngokufanayo, ukuqikelela iklasi, ii-GNNs zisetyenziswa kwigridi yepixel emele ubume begrafu.
- Ukwahlulahlula okubhaliweyo kusetyenziswa inethiwekhi ye-neural ephindaphindayo. Ii-GNN zikwasetyenziswa kunye noyilo lwegrafu apho igama ngalinye kwibinzana liyindawo.
Ukuze wenze uqikelelo lweendawo, imiphetho, okanye iigrafu ezipheleleyo, uthungelwano lwe-neural luyasetyenziswa ukwenza ii-GNN. Uqikelelo kwinqanaba le-node, umzekelo, lunokusombulula ingxaki efana nokufunyanwa kwespam.
Uqikelelo lwekhonkco yimeko eqhelekileyo kwiinkqubo zokuncoma kwaye inokuba ngumzekelo wengxaki yokuxela kwangaphambili.
Iintlobo zeNeural Network yeGrafu
Zininzi iintlobo zenethiwekhi ye-neural zikhona, kunye neConvolutional Neural Networks zikhona kuninzi lwazo. Siza kufunda ngezona GNN zaziwayo kweli candelo.
iGraph Convolutional Networks (GCNs)
Ziyathelekiseka kwiiCNN zakudala. Ifumana iimpawu ngokujonga iindawo ezikufutshane. Umsebenzi wokuvula usetyenziswa yi-GNNs ukongeza ukungabikho komgca emva kokuhlanganisa i-node vectors kunye nokuthumela imveliso kumaleko ashinyeneyo.
Yenziwe nge-Graph convolution, i-linear layer, kunye ne-non-learner functionation activation, ngokwenene. Ii-GCNs ziza kwiindidi ezimbini eziphambili: iSpectral Convolutional Networks kunye neSpatial Convolutional Networks.
IiNethiwekhi ze-Encoder zeGrafu
Isebenzisa i-encoder ukufunda indlela yokumela iigrafu kunye ne-decoder ukuzama ukwakha kwakhona iigrafu zegalelo. Kukho umaleko we-bottleneck odibanisa i-encoder kunye ne-decoder.
Kuba ii-auto-encoders zenza umsebenzi obalaseleyo wokuphatha ibhalansi yeklasi, zihlala zisetyenziswa kuqikelelo lwekhonkco.
IiNethiwekhi zeNeural eziQholekileyo (RGNNs)
Kuthungelwano olunonxibelelwano oluninzi, apho indawo eyodwa inobudlelwane obuninzi, ifunda eyona pateni yosasazo kwaye inokulawula iigrafu. Ukwandisa ukuguda kunye nokunciphisa i-parameterization engaphezulu, ii-regulators zisetyenziswa ngolu hlobo lwe-graph neural network.
Ukuze ufumane iziphumo ezingcono, ii-RGNN zifuna amandla amancinci okusebenza. Zisetyenziselwa ukuvelisa umbhalo, ukuqondwa kwentetho, ukuguqulela ngomatshini, inkcazo yemifanekiso, ukuthegiswa kwevidiyo, kunye noshwankathelo lombhalo.
iGated Neural Graph Networks (GGNNs)
Xa kuziwa kwimisebenzi exhomekeke kwixesha elide, idlula i-RGNNs. Ngokubandakanya i-node, i-edge, kunye namasango exeshana ekuxhomekeke kwixesha elide, igrafu yegrafu yothungelwano lwe-neural iphucula uthungelwano lwe-neural oluqhelekileyo lwegrafu.
Amasango asebenza ngokufanayo kwiiYunithi eziQhelekileyo eziGated (GRUs) kuba zisetyenziselwa ukukhumbula nokulibala idatha kwizigaba ezahlukeneyo.
Ukusebenzisa i-Graph Neural Network usebenzisa iPytorch
Umba othile esiza kugxila kuwo ngumba oqhelekileyo wokwahlulwa kweendawo. Sinenethiwekhi enkulu yokuncokola ebizwa ngokuba musae-github, ehlanganiswe kwi-API evulekileyo, kubaphuhlisi beGitHub.
Imiphetho ibonisa ubudlelwane bokulandelana phakathi kweendawo zokuhlala, ezimele abaphuhlisi (abasebenzisi beqonga) abaye baneenkwenkwezi ubuncinane kwii-10 zokugcina (qaphela ukuba igama elithi mutual libonisa ubudlelwane obungabhekiselwanga).
Ngokusekwe kwindawo yendawo, iindawo zokugcina ezineenkwenkwezi, umqeshi, kunye nedilesi ye-imeyile, iimpawu ze-node ziyafunyanwa. Ukuqikelela ukuba umsebenzisi weGitHub ngumphuhlisi wewebhu okanye a umphuhlisi wokufunda koomatshini ngumsebenzi wethu.
Isihloko somsebenzi somsebenzisi ngamnye sisetyenziswe njengesiseko salo msebenzi wokujolisa.
Ukufakela iPyTorch
Ukuqala, kufuneka siqale sifake I-PyTorch. Ungayiqwalasela ngokomatshini wakho ukusuka Apha. Nantsi eyam:
Ukuthathwa ngaphandle kweemodyuli
Ngoku, singenisa iimodyuli eziyimfuneko
Ukungenisa ngaphandle kwaye Phonononga idatha
Isinyathelo esilandelayo kukufunda idatha kunye nokucwangcisa imigca emihlanu yokuqala kunye nemigca emihlanu yokugqibela kwifayile yeelebhile.
Zimbini kuphela iikholamu ezine-i-id ye-node (oko kukuthi, umsebenzisi) kunye ne-ml_target, eyi-1 ukuba umsebenzisi ilungu loluntu lokufunda umatshini kunye ne-0 ngenye indlela-zifanelekileyo kuthi kule meko.
Njengoko kukho iiklasi ezimbini kuphela, ngoku sinokuqiniseka ukuba umsebenzi wethu ngumba wokuhlela okubini.
Njengesiphumo sokungalingani kweklasi okubalulekileyo, umdidiyeli unokuthatha nje ukuba loluphi udidi lolona didi luninzi kunokuba avavanye udidi olungamelwanga, ukwenza ulungelelwaniso lodidi lube yenye into ebalulekileyo ekufuneka iqwalaselwe.
Ukucwangcisa i-histogram (ukusasazwa rhoqo) kubonisa ukungalingani ngenxa yokuba kukho iiklasi ezimbalwa ukusuka ekufundeni ngomatshini (ileyibhile=1) kunezinye iiklasi.
Ufakelo lweekhowudi
Iimpawu zeendawo zokuhlala zisixelela ngefitsha edityaniswa nendawo nganye. Ngokusebenzisa indlela yethu yokufaka ikhowudi yedatha, sinokufaka iikhowudi ngoko nangoko ezo mpawu.
Sifuna ukusebenzisa le ndlela ukufaka inxalenye encinci yenethiwekhi (yithi, ii-nodes ezingama-60) zokubonisa. Ikhowudi idweliswe apha.
Ukuyila kunye nokubonisa iigrafu
Siza kusebenzisa itotshi yejometri. idatha yokwakha igrafu yethu.
Ukwenza umzekelo wegrafu enye eneempawu ezahlukeneyo (ukhetho), idatha eyinto elula yePython isetyenziswa. Ngokusebenzisa le klasi kunye nezi mpawu zilandelayo-zonke ezizii-torch tensor-siya kudala into yethu yegrafu.
Ubume bexabiso x, eliya kwabelwa iimpawu zeendawo ezifihliweyo, [inani leendawo, inani leempawu].
Imilo ka-y yi [inani leenqununu], kwaye iya kusetyenziswa kwiilebhile ze-node.
edge index: Ukuze uchaze igrafu engayalwanga, kufuneka sandise izalathisi zomphetho wentsusa ukuze sivumele ubukho beencam ezimbini ezithe ngqo ezidibanisa iinodi ezimbini ezifanayo kodwa zikhomba kumacala achaseneyo.
I-pair of edges, enye ekhomba ukusuka kwi-node ye-100 ukuya kwi-200 kwaye enye ukusuka kwi-200 ukuya kwi-100, iyafuneka, umzekelo, phakathi kwee-nodes ze-100 kunye ne-200. [2,2*inani lemiphetho yokuqala] iya kuba yi-tensor form.
Senza indlela yethu yokuzoba igrafu ukubonisa igrafu. Inyathelo lokuqala kukuguqula inethiwekhi yethu ye-homogeneous ibe yigrafu ye-NetworkX, enokuthi izotywe kusetyenziswa i-NetworkX.draw.
Yenza imodeli yethu ye-GNN kwaye uyiqeqeshe
Siqala ngokufaka ikhowudi yonke iseti yedatha ngokusebenzisa i-encode data with light=False size sibize igrafu yolwakhiwo nge light=Ububuxoki ukwakha yonke igrafu. Asiyi kuzama ukuzoba le grafu inkulu kuba ndicinga ukuba usebenzisa umatshini wasekhaya onezixhobo ezinqongopheleyo.
Iimaski, ezizii-binary vectors ezichonga ukuba zeziphi iindawo ezizezemaski nganye ethile kusetyenziswa amanani 0 kunye no-1, zingasetyenziselwa ukwazisa isigaba soqeqesho apho iinodi kufuneka zibandakanywe ngexesha loqeqesho kunye nokuxelela isigaba sokutsho ukuba zeziphi iindawo eziyidatha yovavanyo. Ijiyometri yetotshi.iguqula.
Ukwahlula kwinqanaba le-node kunokongezwa ngokusebenzisa imaski yoqeqesho, i-val mask, kunye neempawu zemaski zokuvavanya zeklasi ye-AddTrainValTestMask, enokusetyenziswa ukuthatha igrafu kwaye isenze sikwazi ukucacisa ukuba sifuna ukuba iimaski zethu zakhiwe njani.
Sisebenzisa nje i-10% yoqeqesho kwaye sisebenzise i-60% yedatha njengovavanyo olusetiweyo ngelixa sisebenzisa i-30% njengeseti yokuqinisekisa.
Ngoku, siza kupakisha iileya ezimbini zeGCNConv, eyokuqala eneempawu zokubala ezilingana nenani leempawu kwigrafu yethu njengeempawu zokufaka.
Kwinqanaba lesibini, eliqulethe ii-nodes zemveliso ezilingana nenani leeklasi zethu, sisebenzisa umsebenzi wokuvuselela i-relu kunye nokubonelela ngeempawu ezifihlakeleyo.
Isalathiso somda kunye nobunzima bomphetho zimbini kwiinketho ezininzi x ukuba iGCNConv inokwamkela kumsebenzi wangaphambili, kodwa kwimeko yethu, sifuna kuphela iinguqu ezimbini zokuqala.
Nangona imodeli yethu iya kukwazi ukuqikelela iklasi ye-node nganye kwigrafu, sisadinga ukucacisa ukuchaneka kunye nokulahlekelwa kwisethi nganye ngokwahlukileyo ngokuxhomekeke kwisigaba.
Umzekelo, ngexesha loqeqesho, sifuna kuphela ukusebenzisa uqeqesho olusetiweyo ukumisela ukuchaneka kunye nelahleko yoqeqesho, kwaye ke kulapho iimaski zethu zisiza khona.
Ukubala ilahleko efanelekileyo kunye nokuchaneka, siya kuchaza imisebenzi yokulahleka kwe-mask kunye nokuchaneka okufihliweyo.
Ukuqeqesha imodeli
Ngoku sele siyichazile injongo yoqeqesho eya kusetyenziselwa yona itotshi. UAdam ngumdlali we-optimizer.
Siza kuqhuba uqeqesho lwenani elithile leepochs ngelixa sibeke iliso ekuqinisekiseni ukuchaneka.
Sikwacwangcisa ilahleko yoqeqesho kunye nokuchaneka ngamaxesha ahlukeneyo.
Ukungalungi kweGrafu yeNeural Network
Ukusebenzisa ii-GNN kuneengxaki ezimbalwa. Iqashwa nini i-GNNa kunye nendlela yokuphucula ukusebenza kweemodeli zethu zokufunda koomatshini ziya kucaciswa kuthi zombini emva kokuba siziqonde ngcono.
- Ngelixa ii-GNNs zingothungelwano olungenzulu, ngokwesiqhelo zinemigangatho emithathu, uninzi lweenethiwekhi ze-neural zinokungena nzulu ukuphucula ukusebenza. Asikwazi ukwenza ngokugqibeleleyo kwiiseti zedatha enkulu ngenxa yalo mda.
- Kunzima ngakumbi ukuqeqesha imodeli kwiigrafu, kuba ii-dynamics zabo zesakhiwo ziguquguqukayo.
- Ngenxa yeendleko eziphezulu zokubala zolu thungelwano, ukulinganisa imodeli yemveliso kuzisa imingeni. Ukukala ii-GNNs zemveliso kuya kuba ngumngeni ukuba ulwakhiwo lwegrafu yakho lukhulu kwaye luntsonkothile.
isiphelo
Kule minyaka imbalwa idlulileyo, ii-GNNs ziye zaphuhliswa zaba zizixhobo ezinamandla nezisebenzayo kwimiba yokufunda koomatshini kwisizinda segrafu. Isishwankathelo esisisiseko segrafu yenethiwekhi ye-neural inikwe kweli nqaku.
Emva koko, ungaqala ukudala i-dataset eya kusetyenziselwa ukuqeqesha nokuvavanya imodeli. Ukuqonda ukuba isebenza njani kwaye ikwazi ukwenza ntoni, ungaya kude kakhulu kwaye uyiqeqeshe usebenzisa uhlobo olwahlukileyo lwedatha.
Ukonwaba ngokuNwabileyo!
Shiya iMpendulo