Kaundan[Itago][Ipakita]
Ang lawom nga mga pamaagi sa pagkat-on nga nailhan nga "graph neural networks" (GNNs) naglihok sa graph domain. Kini nga mga network bag-o lang nakit-an nga gigamit sa lainlaing mga natad, lakip ang panan-aw sa kompyuter, mga sistema sa rekomendasyon, ug pag-optimize sa kombinasyon, aron paghingalan sa pipila.
Dugang pa, kini nga mga network mahimong magamit sa pagrepresentar sa mga komplikadong sistema, lakip ang mga social network, mga network sa interaksyon sa protina-protein, mga graph sa kahibalo, ug uban pa sa daghang natad sa pagtuon.
Ang wanang nga dili euclidean diin ang datos sa graph naglihok, sukwahi sa ubang mga klase sa datos sama sa mga litrato. Aron sa pagklasipikar sa mga node, pagtagna sa mga link, ug cluster data, ang graph analysis gigamit.
Niini nga artikulo, atong susihon ang Graph nerbiyos Network sa detalye, ang mga tipo niini, ingon man paghatag praktikal nga mga pananglitan gamit ang PyTorch.
Busa, unsa ang Graph?
Ang graph usa ka matang sa istruktura sa datos nga gilangkoban sa mga node ug vertices. Ang mga koneksyon tali sa lainlaing mga node gitino pinaagi sa mga vertices. Kung ang direksyon gipakita sa mga node, ang graph giingon nga gitumong; kay kon dili, kini dili gitumong.
Ang usa ka maayo nga aplikasyon sa mga graph mao ang pagmodelo sa mga relasyon sa lainlaing mga indibidwal sa a social network. Kung nag-atubang sa komplikado nga mga kahimtang, sama sa mga link ug pagbayloay, ang mga graph makatabang kaayo.
Gigamit sila sa mga sistema sa rekomendasyon, pagtuki sa semantiko, pagtuki sa social network, ug pag-ila sa sumbanan
. Ang paghimo og mga solusyon nga nakabase sa graph usa ka bag-ong natad nga nagtanyag usa ka makahuluganon nga pagsabut sa komplikado ug nagkadugtong nga datos.
Graph nga Neural Network
Ang mga graph neural network maoy mga espesyal nga matang sa neural network nga mahimong molihok sa usa ka graph data format. Ang graph embedding ug convolutional neural networks (CNNs) adunay dakong epekto niini.
Ang Graph Neural Networks gigamit sa mga buluhaton nga naglakip sa pagtagna sa mga node, mga ngilit, ug mga graph.
- Ang CNN gigamit sa pagklasipikar sa mga imahe. Sa susama, aron matagna ang usa ka klase, ang mga GNN gipadapat sa pixel grid nga nagrepresentar sa istruktura sa graph.
- Ang pagkategorya sa teksto gamit ang nagbalikbalik nga mga neural network. Ang mga GNN gigamit usab sa mga arkitektura sa graph diin ang matag pulong sa usa ka hugpong sa pulong usa ka node.
Aron makatagna sa mga node, mga ngilit, o kompleto nga mga graph, ang mga neural network gigamit sa paghimo og mga GNN. Ang usa ka panagna sa lebel sa node, pananglitan, makasulbad sa usa ka problema sama sa spam detection.
Ang panagna sa link usa ka tipikal nga kaso sa mga sistema sa tigrekomenda ug mahimo nga usa ka pananglitan sa usa ka sulud sa sulud nga problema sa panagna.
Graph Mga Matang sa Neural Network
Daghang matang sa neural network ang anaa, ug ang Convolutional Neural Networks anaa sa kadaghanan niini. Atong mahibal-an ang bahin sa labing inila nga mga GNN sa kini nga bahin.
Graph Convolutional Networks (GCNs)
Ikatandi sila sa mga klasiko nga CNN. Nakuha niini ang mga kinaiya pinaagi sa pagtan-aw sa duol nga mga node. Ang activation function gigamit sa mga GNN aron makadugang sa non-linearity human sa pagtipon sa mga node vectors ug pagpadala sa output ngadto sa dasok nga layer.
Kini gilangkoban sa Graph convolution, usa ka linear layer, ug usa ka non-learner activation function, sa esensya. Ang mga GCN adunay duha ka nag-unang barayti: Spectral Convolutional Networks ug Spatial Convolutional Networks.
Graph Auto-Encoder Networks
Gigamit niini ang usa ka encoder aron makat-on unsaon pagrepresentar sa mga graph ug usa ka decoder aron pagsulay sa pagtukod pag-usab sa mga input graph. Adunay usa ka bottleneck layer nga nagkonektar sa encoder ug decoder.
Tungod kay ang mga auto-encoders usa ka maayo kaayo nga trabaho sa pagdumala sa balanse sa klase, kini kanunay nga gigamit sa panagna sa link.
Nagbalikbalik nga Graph Neural Networks (RGNNs)
Sa multi-relational nga mga network, diin ang usa ka node adunay daghang mga relasyon, nahibal-an niini ang labing maayo nga pattern sa pagsabwag ug makadumala sa mga graph. Aron madugangan ang kahapsay ug makunhuran ang sobra nga parameterization, gigamit ang mga regularizer sa kini nga porma sa graph neural network.
Aron makakuha og mas maayo nga mga resulta, ang mga RGNN nagkinahanglan og gamay nga gahum sa pagproseso. Gigamit kini alang sa paghimo og teksto, pag-ila sa sinultihan, paghubad sa makina, paghulagway sa litrato, pag-tag sa video, ug pagsumaryo sa teksto.
Gated Neural Graph Networks (GGNNs)
Pag-abut sa dugay nga nagsalig nga mga buluhaton, mas labaw sila sa mga RGNN. Pinaagi sa paglakip sa mga node, edge, ug temporal nga mga ganghaan sa dugay nga mga dependency, ang gated graph neural network nagpalambo sa balik-balik nga graph neural network.
Ang mga ganghaan naglihok parehas sa Gated Recurrent Units (GRUs) tungod kay sila gigamit sa paghinumdom ug paglimot sa datos sa lainlaing mga yugto.
Pag-implementar sa Graph Neural Network gamit ang Pytorch
Ang espesipikong isyu nga atong tutokan mao ang kasagarang isyu sa pagkategorya sa node. Kami adunay usa ka dako nga social network nga gitawag musae-github, nga gihugpong gikan sa bukas nga API, alang sa mga developer sa GitHub.
Gipakita sa mga sidsid ang mga relasyon sa usag usa tali sa mga node, nga nagrepresentar sa mga developer (mga tiggamit sa platform) nga nagbituon sa labing menos 10 ka mga repository (timan-i nga ang pulong nga mutual nagpakita sa usa ka dili direkta nga relasyon).
Base sa lokasyon sa node, gibituonan nga mga repository, amo, ug email address, ang mga kinaiya sa node makuha. Pagtagna kung ang usa ka tiggamit sa GitHub usa ka web developer o usa ka developer sa pagkat-on sa makina mao ang atong buluhaton.
Ang titulo sa trabaho sa matag tiggamit nagsilbi nga sukaranan alang sa kini nga katuyoan sa pag-target.
Pag-instalar sa PyTorch
Sa pagsugod, kinahanglan una natong i-install PyTorch. Mahimo nimong i-configure kini sumala sa imong makina gikan sa dinhi. Ania ang akoa:
Pag-import sa mga module
Karon, nag-import kami sa gikinahanglan nga mga module
Pag-import ug Pag-usisa sa datos
Ang mosunod nga lakang mao ang pagbasa sa datos ug pagplano sa unang lima ka laray ug ang kataposang lima ka laray gikan sa labels file.
Duha ra sa upat ka mga kolum—ang id sa node (ie, user) ug ml_target, nga mao ang 1 kung ang tiggamit usa ka miyembro sa komunidad sa pagkat-on sa makina ug 0 kung dili—ang may kalabotan kanamo sa kini nga sitwasyon.
Tungod kay adunay duha lang ka klase, makasiguro na kita nga ang atong buluhaton usa ka binary classification nga isyu.
Isip resulta sa mahinungdanong pagkadili-balanse sa klase, ang tigklase mahimo ra nga maghunahuna kung unsang klase ang kadaghanan kay sa pagtimbang-timbang sa wala girepresentahan nga klase, nga maghimo sa balanse sa klase nga usa pa ka hinungdanon nga hinungdan nga tagdon.
Ang paglaraw sa histogram (pag-apod-apod sa frequency) nagpadayag sa pipila ka dili balanse tungod kay adunay gamay nga mga klase gikan sa pagkat-on sa makina (label = 1) kaysa sa ubang mga klase.
Feature Encoding
Ang mga kinaiya sa mga node nagpahibalo kanamo sa bahin nga nalangkit sa matag node. Pinaagi sa pagpatuman sa among pamaagi sa pag-encode sa datos, mahimo dayon namon nga ma-encode ang mga kinaiya.
Gusto namon nga gamiton kini nga pamaagi aron ma-encapsulate ang gamay nga bahin sa network (ingon, 60 node) aron ipakita. Ang code gilista dinhi.
Pagdisenyo ug pagpakita sa mga graph
Gigamit namon ang geometric nga sulo. datos aron matukod ang among graph.
Aron mamodelo ang usa ka graph nga adunay lainlain (opsyonal) nga mga kabtangan, gigamit ang datos nga usa ka yano nga butang nga Python. Pinaagi sa paggamit niini nga klase ug sa mosunod nga mga hiyas—ang tanan kay mga torch tensor—makahimo kita sa atong graph object.
Ang porma sa kantidad nga x, nga igahin sa na-encode nga mga bahin sa node, mao ang [gidaghanon sa mga node, gidaghanon sa mga bahin].
Ang porma sa y mao ang [gidaghanon sa mga node], ug kini magamit sa mga label sa node.
indeks sa ngilit: Aron mahulagway ang usa ka dili direkta nga graph, kinahanglan natong palapdan ang orihinal nga mga indeks sa ngilit aron tugotan ang paglungtad sa duha ka managlahi nga direksyon nga mga ngilit nga nagsumpay sa parehas nga duha ka mga node apan nagpunting sa magkaatbang nga direksyon.
Usa ka parisan sa mga sidsid, ang usa nagpunting gikan sa node 100 ngadto sa 200 ug ang lain gikan sa 200 ngadto sa 100, gikinahanglan, pananglitan, tali sa mga node 100 ug 200. Kung ang mga indeks sa ngilit gihatag, nan ingon niini ang paagi nga ang dili direkta nga graph mahimong irepresentar. [2,2*gidaghanon sa orihinal nga mga sidsid] mao ang porma sa tensor.
Gihimo namo ang among draw graph method aron ipakita ang graph. Ang unang lakang mao ang pagbag-o sa atong homogenous nga network ngadto sa NetworkX graph, nga mahimo unya nga madrowing gamit ang NetworkX.draw.
Himoa ang among GNN nga modelo ug bansayon kini
Magsugod kita pinaagi sa pag-encode sa tibuok set sa data pinaagi sa pag-execute sa encode data gamit ang light=False ug dayon tawgon ang construct graph with light=False aron matukod ang tibuok graph. Dili kami mosulay sa pagdrowing niining dako nga graph tungod kay nagtuo ko nga naggamit ka ug lokal nga makina nga limitado ang mga kapanguhaan.
Ang mga maskara, nga mga binary vectors nga nagpaila kung unsang mga node ang nahisakop sa matag espesipikong maskara gamit ang mga numero 0 ug 1, mahimong magamit aron ipahibalo ang yugto sa pagbansay kung unsang mga node ang kinahanglan iapil sa panahon sa pagbansay ug aron isulti ang bahin sa inference kung unsang mga node ang datos sa pagsulay. Torch geometric.transforms.
Ang usa ka node-level split mahimong idugang gamit ang training mask, val mask, ug test mask properties sa AddTrainValTestMask class, nga magamit sa pagkuha og graph ug makahimo kanamo sa pagtino kon unsaon namo paghimo ang among mga maskara.
Gigamit lang namo ang 10% alang sa pagbansay ug gigamit ang 60% sa datos isip set sa pagsulay samtang naggamit sa 30% isip set sa validation.
Karon, mag-stack kami og duha ka layer sa GCNConv, ang una niini adunay ihap sa output feature nga katumbas sa gidaghanon sa feature sa among graph isip input features.
Sa ikaduha nga layer, nga adunay sulud nga mga node sa output nga katumbas sa gidaghanon sa among mga klase, gipadapat namon ang usa ka function sa pagpaaktibo sa relu ug gihatagan ang mga tinago nga bahin.
Ang indeks sa ngilit ug gibug-aton sa ngilit mao ang duha sa daghang mga kapilian x nga madawat sa GCNConv sa pagpaandar sa unahan, apan sa among kahimtang, kinahanglan ra namon ang una nga duha nga mga variable.
Bisan pa sa kamatuoran nga ang atong modelo makahimo sa pagtagna sa klase sa matag node sa graph, kinahanglan gihapon nato nga matino ang katukma ug pagkawala sa matag set nga gilain depende sa hugna.
Pananglitan, sa panahon sa pagbansay, gusto lang namon nga gamiton ang set sa pagbansay aron mahibal-an ang katukma ug pagkawala sa pagbansay, ug busa kini kung diin magamit ang among mga maskara.
Aron makalkulo ang tukma nga pagkawala ug katukma, among ipasabut ang mga gimbuhaton sa maskara nga pagkawala ug gitakpan nga katukma.
Pagbansay sa modelo
Karon nga atong gihubit ang katuyoan sa pagbansay diin ang sulo gamiton. Si Adan usa ka master optimizer.
Magpahigayon kami sa pagbansay alang sa usa ka piho nga gidaghanon sa mga panahon samtang gibantayan ang katukma sa pag-validate.
Giplano usab namo ang mga pagkawala ug katukma sa pagbansay sa lainlaing mga panahon.
Mga Disbentaha sa Graph Neural Network
Ang paggamit sa mga GNN adunay pipila ka mga disbentaha. Kung kanus-a gamiton ang GNNa ug kung unsaon pagpausbaw ang performance sa among mga modelo sa pagkat-on sa makina ang duha ipatin-aw kanamo human kami adunay mas maayong pagsabot niini.
- Samtang ang mga GNN mga mabaw nga network, kasagaran adunay tulo ka mga layer, kadaghanan sa mga neural network mahimong lawom aron mapauswag ang pasundayag. Dili kami makahimo sa paghimo sa labing taas nga sulud sa dagkong mga dataset tungod sa kini nga limitasyon.
- Mas lisud ang pagbansay sa usa ka modelo sa mga graph, tungod kay dinamiko ang ilang istruktura.
- Tungod sa taas nga gasto sa pagkalkula sa kini nga mga network, ang pag-scale sa modelo alang sa produksiyon naghatag mga hagit. Ang pag-scale sa mga GNN alang sa produksiyon mahimong mahagiton kung ang imong istruktura sa graph dako ug komplikado.
Panapos
Sa milabay nga pipila ka tuig, ang mga GNN nahimong gamhanan ug epektibo nga mga himan alang sa mga isyu sa pagkat-on sa makina sa graph domain. Usa ka sukaranan nga kinatibuk-ang pagtan-aw sa graph neural network gihatag sa kini nga artikulo.
Human niana, mahimo ka magsugod sa paghimo sa dataset nga gamiton sa pagbansay ug pagsulay sa modelo. Aron masabtan kung giunsa kini paglihok ug kung unsa ang mahimo niini, mahimo ka usab nga moadto sa labi ka layo ug bansayon kini gamit ang lahi nga klase sa dataset.
Malipayon nga Coding!
Leave sa usa ka Reply