Table of Contents[Hūnā][Hōʻike]
Hoʻohana ʻia nā ʻenehana aʻo hohonu i kapa ʻia ʻo "graph neural networks" (GNNs) i loko o ke kikowaena graph. Ua ʻike ʻia kēia mau pūnaewele i ka hoʻohana ʻana i nā ʻano ʻano like ʻole, e like me ka ʻike kamepiula, nā ʻōnaehana paipai, a me ka hoʻohui ʻana i ka manaʻo, e inoa i kekahi.
Eia hou, hiki ke hoʻohana ʻia kēia mau ʻupena e hōʻike i nā ʻōnaehana paʻakikī, e komo pū ana me nā ʻupena kaiapili, nā ʻupena pilina protein-protein, nā kiʻi ʻike, a me nā mea ʻē aʻe ma kekahi mau ʻano o ke aʻo ʻana.
ʻO ka hakahaka non-euclidean kahi e hana ai ka ʻikepili kiʻi, ʻokoʻa me nā ʻano ʻikepili ʻē aʻe e like me nā kiʻi. No ka hoʻokaʻawale ʻana i nā node, wānana i nā loulou, a me ka ʻikepili puʻupuʻu, hoʻohana ʻia ka ʻikepili kiʻi.
Ma kēia ʻatikala, e nānā mākou i ka Graph Neural Panel ma ka kikoʻī, kona ʻano, a me ka hāʻawi ʻana i nā hiʻohiʻona kūpono e hoʻohana ana iā PyTorch.
No laila, he aha ka Graph?
ʻO ka pakuhi ke ʻano o ka hoʻolālā ʻikepili i hana ʻia me nā nodes a me nā piko. Hoʻoholo ʻia nā pilina ma waena o nā nodes e nā vertices. Inā hōʻike ʻia ke kuhikuhi ma nā nodes, ua ʻōlelo ʻia ka pakuhi; a i ole ia, ua kuhikuhi ole ia.
ʻO ka hoʻohana maikaʻi ʻana i nā pakuhi ke hoʻohālike i ka pilina ma waena o nā kānaka like ʻole ma a nohona i ulanaʻia. I ka wā e pili ana i nā kūlana paʻakikī, e like me nā loulou a me nā hoʻololi, kōkua nui nā kiʻi.
Hoʻohana ʻia lākou e nā ʻōnaehana manaʻo, ka loiloi semantic, ka nānā ʻana i ka ʻoihana pūnaewele, a me ka ʻike kumu
. ʻO ka hoʻokumu ʻana i nā hāʻina e pili ana i ka pakuhi he kahua hou ia e hāʻawi ana i kahi ʻike ʻike o ka ʻikepili paʻakikī a pili pū kekahi.
Kiʻi Neural Network
ʻO nā ʻoihana neural Graph he ʻano pūnaewele neural kūikawā hiki ke hana ma kahi ʻano ʻikepili kiʻi. He hopena koʻikoʻi ko ka hoʻopili ʻana i ka pakuhi a me ka convolutional neural networks (CNNs).
Hoʻohana ʻia ʻo Graph Neural Networks i nā hana e pili ana i ka wānana ʻana i nā nodes, nā kihi, a me nā kiʻi.
- Hoʻohana ʻia nā CNN e hoʻokaʻawale i nā kiʻi. Pēlā nō, no ka wānana ʻana i kahi papa, ua hoʻohana ʻia nā GNN i ka mākia pixel e hōʻike ana i ke ʻano o ka pakuhi.
- Hoʻokaʻawale ʻōlelo me ka hoʻohana ʻana i nā neural network recurrence. Hoʻohana pū ʻia nā GNN me nā kiʻi kiʻi kiʻi kahi node kēlā me kēia huaʻōlelo i loko o kahi huaʻōlelo.
I mea e wānana ai i nā nodes, nā ʻaoʻao, a i ʻole nā kiʻi piha, hoʻohana ʻia nā ʻupena neural e hana i nā GNN. ʻO kahi wānana ma ka pae node, no ka laʻana, hiki ke hoʻonā i kahi pilikia e like me ka ʻike spam.
He hihia maʻamau ka wānana loulou i nā ʻōnaehana mea paipai a he laʻana paha ia o ka pilikia wānana.
Kiʻi ʻAno Neural Network
Nui nā ʻano pūnaewele neural, a aia nā Convolutional Neural Networks i ka hapa nui o lākou. E aʻo mākou e pili ana i nā GNN kaulana loa ma kēia ʻāpana.
Nā Pūnaehana Hoʻohui Kiʻi (GCNs)
Hoʻohālikelike lākou i nā CNN maʻamau. Loaʻa iā ia nā hiʻohiʻona ma ka nānā ʻana i nā nodes kokoke. Hoʻohana ʻia ka hana hoʻāla e nā GNN e hoʻohui i ka laina ʻole ma hope o ka hōʻuluʻulu ʻana i nā vectors node a me ka hoʻouna ʻana i ka hopena i ka papa paʻa.
Hoʻokumu ʻia ia me ka Graph convolution, kahi papa laina, a me kahi hana hoʻonā haumāna ʻole, ma ke ʻano. Hele mai nā GCN i ʻelua ʻano nui: Spectral Convolutional Networks a me Spatial Convolutional Networks.
Nā Pūnaehana Hoʻopili-Aunoa Kiʻi
Hoʻohana ʻo ia i kahi encoder e aʻo pehea e hōʻike ai i nā kiʻi a me kahi decoder e hoʻāʻo e hana hou i nā kiʻi hoʻokomo. Aia kahi ʻāpana bottleneck e hoʻopili ana i ka encoder a me ka decoder.
No ka mea he hana maikaʻi loa nā auto-encoders no ka mālama ʻana i ke koena papa, hoʻohana pinepine ʻia lākou i ka wānana loulou.
Nā Pūnaewele Neural Graph (RGNN)
I loko o nā ʻupena pili-nui, kahi i loaʻa ai i ka node hoʻokahi mau pilina, aʻo ʻo ia i ke ʻano diffusion maikaʻi loa a hiki ke hoʻokele i nā kiʻi. I mea e hoʻonui ai i ka maʻalahi a hōʻemi i ka over-parameterization, hoʻohana ʻia nā regularizers i kēia ʻano o ka graph neural network.
I mea e loaʻa ai nā hopena maikaʻi aʻe, pono nā RGNN i ka liʻiliʻi o ka mana hana. Hoʻohana ʻia lākou no ka hana kikokikona, ʻike ʻōlelo, unuhi mīkini, wehewehe kiʻi, hōʻailona wikiō, a me ka hōʻuluʻulu kikokikona.
Nā Pūnaehana Neural Graph Gated (GGNNs)
I ka hiki ʻana i nā hana hilinaʻi lōʻihi, ʻoi aku ka maikaʻi o nā RGNN. Ma ka hoʻokomo ʻana i nā ʻīpuka node, ka ʻaoʻao, a me nā ʻīpuka kino ma nā hilinaʻi lōʻihi, hoʻomaikaʻi ʻia nā ʻupena neural graph gated i nā pūnaewele neural graph recurrent.
Hoʻohana like nā ʻīpuka me nā Gated Recurrent Units (GRUs) no ka mea ua hoʻohana ʻia lākou e hoʻomanaʻo a hoʻopoina i ka ʻikepili i nā pae like ʻole.
Ke hoʻokō nei i ka Graph Neural Network me ka hoʻohana ʻana iā Pytorch
ʻO ka pilikia kikoʻī a mākou e noʻonoʻo ai he pilikia hoʻokaʻawale node maʻamau. Loaʻa iā mākou kahi pūnaewele lehulehu i kapa ʻia musae-github, i hōʻuluʻulu ʻia mai ka API hāmama, no nā mea hoʻomohala GitHub.
Hōʻike nā ʻaoʻao i ka pilina pili ma waena o nā nodes, e hōʻike ana i nā mea hoʻomohala (nā mea hoʻohana platform) i hōkū i ka liʻiliʻi ma 10 mau waihona (e hoʻomaopopo i ka huaʻōlelo mutual e hōʻike ana i kahi pilina pili ʻole).
Ma muli o ka wahi o ka node, nā waihona hōkū, ka mea hana, a me ka leka uila, e kiʻi ʻia nā ʻano node. Ke wānana inā he mea hoʻohana pūnaewele ʻo GitHub a i ʻole a mea hoʻomohala aʻo mīkini ʻo kā mākou hana.
ʻO ke poʻo inoa o kēlā me kēia mea hoʻohana ke kumu no kēia hana hoʻolālā.
Ke hoʻokomo nei iā PyTorch
No ka hoʻomaka, pono mākou e hoʻokomo ʻO PyTorch. Hiki iā ʻoe ke hoʻonohonoho iā ia e like me kāu mīkini mai maanei. Eia ka'u:
Ke lawe nei i nā modula
I kēia manawa, lawe mākou i nā modula pono
Hoʻokomo a ʻimi i ka ʻikepili
ʻO kēia kaʻina e heluhelu ai i ka ʻikepili a hoʻolālā i nā lālani ʻelima mua a me nā lālani ʻelima hope mai ka faila lepili.
ʻElua wale nō o nā kolamu ʻehā—ʻo ka id o ka node (ʻo ia hoʻi, mea hoʻohana) a me ml_target, ʻo ia ka 1 inā he lālā ka mea hoʻohana i ke kaiāulu aʻo mīkini a 0 ʻē aʻe - pili iā mākou i kēia kūlana.
Hāʻawi ʻia ʻelua wale nō papa, hiki iā mākou ke maopopo i kā mākou hana he pilikia hoʻohālikelike binary.
Ma muli o nā ʻano like ʻole o ka papa, hiki i ka mea hoʻokaʻawale ke manaʻo i ka papa ka hapa nui ma mua o ka loiloi ʻana i ka papa i hōʻike ʻole ʻia, e hana ana i ke kaulike o ka papa i kekahi kumu koʻikoʻi e noʻonoʻo ai.
ʻO ka hoʻolālā ʻana i ka histogram (ka hāʻawi pinepine ʻana) e hōʻike i kekahi ʻano kaulike ʻole no ka mea he liʻiliʻi nā papa mai ke aʻo ʻana i ka mīkini (label=1) ma mua o nā papa ʻē aʻe.
Hoʻopāpā hiʻohiʻona
Hōʻike nā hiʻohiʻona o nā node iā mākou i ka hiʻohiʻona e pili ana i kēlā me kēia node. Ma ka hoʻokō ʻana i kā mākou ala e hoʻopili ai i ka ʻikepili, hiki iā mākou ke hoʻopili koke i kēlā mau hiʻohiʻona.
Makemake mākou e hoʻohana i kēia ʻano e hoʻopili i kahi ʻāpana liʻiliʻi o ka pūnaewele (e ʻōlelo, 60 nodes) no ka hōʻike. Ua helu ʻia ke code ma aneʻi.
Hoʻolālā a hōʻike i nā kiʻi
E hoʻohana mākou i ke kukui geometric. ʻikepili e kūkulu i kā mākou pakuhi.
No ka hoʻohālike i ka pakuhi hoʻokahi me nā waiwai ʻokoʻa (koho), hoʻohana ʻia ka ʻikepili he mea Python maʻalahi. Ma ka hoʻohana ʻana i kēia papa a me kēia mau hiʻohiʻona—ʻo ia mau mea he mau lama kukui—e hana mākou i kā mākou mea kiʻi.
ʻO ke ʻano o ka waiwai x, e hoʻokaʻawale ʻia i nā hiʻohiʻona node i hoʻopaʻa ʻia, ʻo ia [ka helu o nā nodes, helu o nā hiʻohiʻona].
ʻO ke ʻano o y [helu o nā nodes], a e hoʻopili ʻia i nā lepili node.
index lihi: No ka wehewehe ʻana i ka pakuhi kuhikuhi ʻole, pono mākou e hoʻonui i nā ʻōkuhi lihi kumu i hiki ai ke loaʻa nā ʻaoʻao ʻelua ʻokoʻa e hoʻopili i nā node ʻelua akā kuhikuhi i nā ʻaoʻao ʻē aʻe.
Pono nā ʻaoʻao ʻelua, e kuhikuhi ana kekahi mai ka node 100 a i ka 200 a ʻo kekahi mai 200 a i 100, no ka laʻana, ma waena o nā node 100 a me 200. Inā hāʻawi ʻia nā ʻōkuhi lihi, a laila e hiki ke hōʻike ʻia ka pakuhi kuhikuhi ʻole. [2,2*helu o nā ʻaoʻao kumu] ʻo ia ke ʻano tensor.
Hana mākou i kā mākou hana kiʻi kiʻi e hōʻike i kahi pakuhi. ʻO ka hana mua e hoʻololi i kā mākou pūnaewele homogeneous i kahi kiʻi NetworkX, a laila hiki ke huki ʻia me ka hoʻohana ʻana iā NetworkX.draw.
Hana i kā mākou kumu hoʻohālike GNN a hoʻomaʻamaʻa iā ia
Hoʻomaka mākou ma ka hoʻopili ʻana i ka pūʻulu ʻikepili holoʻokoʻa ma o ka hoʻokō ʻana i ka ʻikepili encode me ka light=False a laila kāhea i ka construct graph with light=False e kūkulu i ka pakuhi holoʻokoʻa. ʻAʻole mākou e hoʻāʻo e kaha i kēia pakuhi nui no ka mea ke manaʻo nei au e hoʻohana ana ʻoe i kahi mīkini kūloko i kaupalena ʻia nā kumuwaiwai.
Hiki ke hoʻohana ʻia nā masks, ʻo ia nā vectors binary e ʻike i nā nodes o kēlā me kēia mask kikoʻī me ka hoʻohana ʻana i nā huahelu 0 a me 1, hiki ke hoʻohana ʻia e hoʻomaopopo i ka pae hoʻomaʻamaʻa pono e hoʻokomo ʻia nā nodes i ka wā o ke aʻo ʻana a e haʻi i ka pae inference ʻo nā nodes ka ʻikepili hōʻike. ʻO ke kukui geometric.transforms.
Hiki ke hoʻohui ʻia kahi māhele node-level me ka hoʻohana ʻana i ka pale hoʻomaʻamaʻa, val mask, a me nā waiwai mask test o ka papa AddTrainValTestMask, hiki ke hoʻohana ʻia e lawe i ka pakuhi a hiki iā mākou ke kuhikuhi i ke ʻano o kā mākou makemake e kūkulu ʻia kā mākou mau maka.
Hoʻohana wale mākou i ka 10% no ka hoʻomaʻamaʻa ʻana a hoʻohana i ka 60% o ka ʻikepili e like me ka hoʻonohonoho hoʻāʻo ʻoiai e hoʻohana ana i ka 30% e like me ka hoʻonohonoho hōʻoia.
I kēia manawa, e hoʻopaʻa mākou i ʻelua papa GCNConv, ʻo ka mea mua he helu hiʻohiʻona o ia mea e like me ka helu o nā hiʻohiʻona i kā mākou pakuhi e like me nā hiʻohiʻona hoʻokomo.
Ma ka papa ʻelua, aia nā nodes puka e like me ka helu o kā mākou papa, hoʻohana mākou i kahi hana hoʻoulu relu a hāʻawi i nā hiʻohiʻona latent.
ʻO ka helu lihi a me ke kaumaha o ka lihi he ʻelua o nā koho he nui a hiki i ka GCNConv ke ʻae i ka hana i mua, akā i ko mākou kūlana, pono mākou i nā mea hoʻololi mua ʻelua.
ʻOiai e hiki i kā mākou kumu hoʻohālike ke wānana i ka papa o kēlā me kēia node i ka pakuhi, pono mākou e hoʻoholo i ka pololei a me ka nalowale no kēlā me kēia hoʻonohonoho ʻokoʻa ma muli o ke kaʻina.
No ka laʻana, i ka wā hoʻomaʻamaʻa, makemake wale mākou e hoʻohana i ka hoʻonohonoho hoʻomaʻamaʻa e hoʻoholo ai i ka pololei a me ka nalowale o ka hoʻomaʻamaʻa ʻana, a no laila ʻo kēia kahi e hiki mai ai kā mākou masks.
No ka helu ʻana i ka poho kūpono a me ka pololei, e wehewehe mākou i nā hana o ka poho masked a me ka pololei masked.
Hoʻomaʻamaʻa i ke kumu hoʻohālike
I kēia manawa ua wehewehe mākou i ke kumu aʻo e hoʻohana ʻia ai ka lama. ʻO ʻAdamu kahi mea hoʻoponopono maikaʻi.
E alakaʻi mākou i ka hoʻomaʻamaʻa ʻana no kekahi mau epochs me ka nānā ʻana i ka pololei o ka hōʻoia.
Hoʻolālā pū mākou i nā poho a me ka pololei o ka hoʻomaʻamaʻa ʻana i nā manawa like ʻole.
Nā pōʻino o ka Graph Neural Network
He mau hemahema ka hoʻohana ʻana i nā GNN. ʻO ka manawa e hoʻohana ai iā GNNa a pehea e hoʻomaikaʻi ai i ka hana o kā mākou mau hiʻohiʻona aʻo mīkini e wehewehe ʻia iā mākou ma hope o ko mākou ʻike maikaʻi ʻana iā lākou.
- ʻOiai ʻo nā GNN he mau pūnaewele pāpaʻu, maʻamau me ʻekolu papa, hiki i ka hapa nui o nā ʻupena neural ke hele hohonu e hoʻomaikaʻi i ka hana. ʻAʻole hiki iā mākou ke hana ma ka ʻoki ʻana i nā ʻikepili nui ma muli o kēia palena.
- ʻOi aku ka paʻakikī o ka hoʻomaʻamaʻa ʻana i kahi kumu hoʻohālike ma nā kiʻi, no ka mea, ʻoi aku ka ikaika o kā lākou hoʻolālā.
- Ma muli o ke kumukūʻai helu helu kiʻekiʻe o kēia mau ʻupena, ʻo ka hoʻonui ʻana i ke kumu hoʻohālike no ka hana ʻana he pilikia. He mea paʻakikī ka hoʻonui ʻana i nā GNN no ka hana ʻana inā nui a paʻakikī kāu hoʻolālā kiʻi.
Panina
I nā makahiki i hala iho nei, ua ulu nā GNN i mau mea hana ikaika a maikaʻi hoʻi no nā pilikia aʻo mīkini ma ka pae kiʻi. Hāʻawi ʻia kahi hiʻohiʻona koʻikoʻi o nā neural network ma kēia ʻatikala.
Ma hope o kēlā, hiki iā ʻoe ke hoʻomaka i ka hana ʻana i ka dataset e hoʻohana ʻia e hoʻomaʻamaʻa a hoʻāʻo i ke kumu hoʻohālike. No ka hoʻomaopopo ʻana i ke ʻano o ka hana ʻana a me ka mea hiki iā ia, hiki iā ʻoe ke hele i kahi mamao loa a hoʻomaʻamaʻa iā ia me ka hoʻohana ʻana i kahi ʻano ʻikepili ʻokoʻa.
Hauʻoli Coding!
Waiho i ka Reply