Table of Contents[Kache][Montre]
Teknik aprantisaj pwofon yo ke yo rekonèt kòm "rezo neral graf" (GNNs) opere nan domèn nan graf. Rezo sa yo dènyèman te jwenn itilizasyon nan yon varyete domèn, ki gen ladan vizyon òdinatè, sistèm rekòmandasyon, ak optimize combinatoryal, pou nonmen kèk.
Anplis de sa, rezo sa yo ka itilize pou reprezante sistèm konplèks, tankou rezo sosyal, rezo entèraksyon pwoteyin-pwoteyin, graf konesans, ak lòt moun nan plizyè domèn etid.
Espas ki pa euklidyen an se kote done graf yo opere, kontrèman ak lòt kalite done tankou foto. Yo nan lòd yo klasifye nœuds, predi lyen, ak done gwoup, yo itilize analiz graf.
Nan atik sa a, nou pral egzamine graf la Rezo nè an detay, kalite li yo, osi byen ke bay egzanp pratik lè l sèvi avèk PyTorch.
Se konsa, ki sa ki Graph?
Yon graf se yon kalite estrikti done ki fòme ak nœuds ak somè. Koneksyon ki genyen ant diferan nœuds yo detèmine pa somè yo. Si direksyon an endike nan nœuds yo, yo di graf la ap dirije; otreman, li pa dirije.
Yon bon aplikasyon graf se modèl relasyon ki genyen ant divès moun nan yon rezo sosyal. Lè w ap fè fas ak sikonstans konplèks, tankou lyen ak echanj, graf yo trè itil.
Yo anplwaye nan sistèm rekòmandasyon, analiz semantik, analiz rezo sosyal, ak rekonesans modèl
. Kreye solisyon ki baze sou graf se yon nouvo domèn ki ofri yon konpreyansyon apwofondi sou done konplèks ak ki gen rapò.
Grafik rezo neral
Rezo neral graf yo se kalite rezo neral espesyalize ki ka opere sou yon fòma done graf. Entegrasyon graf ak rezo neral konvolusyonèl (CNN) gen yon enpak siyifikatif sou yo.
Graph Neural Networks yo anplwaye nan travay ki gen ladann predi nœuds, bor, ak graf.
- CNN yo itilize pou klasifye imaj yo. Menm jan an tou, pou predi yon klas, GNN yo aplike nan kadriyaj pixel ki reprezante estrikti graf la.
- Kategori kategorize tèks lè l sèvi avèk rezo neral repetisyon. GNN yo itilize tou ak achitekti graf kote chak mo nan yon fraz se yon ne.
Yo nan lòd yo pwevwa nœuds, bor, oswa graf konplè, rezo neral yo itilize yo kreye GNNs. Yon prediksyon nan nivo ne, pou egzanp, ka rezoud yon pwoblèm tankou deteksyon spam.
Prediksyon lyen se yon ka tipik nan sistèm rekòmandatè epi li ta ka yon egzanp yon pwoblèm prediksyon ki gen bon konprann.
Grafik Kalite Rezo Neural
Anpil kalite rezo neral egziste, ak rezo neral konvolusyonèl yo prezan nan majorite nan yo. Nou pral aprann sou GNN ki pi koni yo nan pati sa a.
Grafik rezo konvolusyon (GCNs)
Yo konparab ak CNN klasik yo. Li genyen karakteristik lè w gade nœuds ki tou pre yo. Fonksyon aktivasyon an itilize pa GNN yo ajoute ki pa lineyè apre yo fin rasanble vektè ne yo epi voye pwodiksyon an nan kouch dans la.
Li konpoze de konvolusyon graf, yon kouch lineyè, ak yon fonksyon deklanchman ki pa aprann, nan sans. GCN yo vini nan de varyete prensipal: Rezo konvolisyon espektal ak rezo konvolusyon espasyal.
Grafik rezo Auto-encodeur
Li itilize yon ankode pou aprann kijan pou reprezante graf ak yon dekodeur pou eseye rekonstwi graf antre. Gen yon kouch boutèy ki konekte ankode a ak dekodeur.
Depi oto-kodejeur fè yon travay ekselan nan manyen balans klas yo, yo souvan itilize nan prediksyon lyen.
Rezo neral graf renouvlab (RGNNs)
Nan rezo milti-relasyonèl, kote yon sèl ne gen anpil relasyon, li aprann modèl difizyon pi bon an epi li ka jere graf yo. Yo nan lòd yo ogmante lis ak diminye sou-parametrizasyon, regilarizatè yo itilize nan fòm sa a nan rezo neral graf.
Pou jwenn pi bon rezilta, RGNN yo mande mwens pouvwa pwosesis. Yo itilize yo pou jenerasyon tèks, rekonesans lapawòl, tradiksyon machin, deskripsyon foto, tag videyo, ak rezime tèks.
Rezo Grafik Neural Gated (GGNNs)
Lè li rive travay depandan alontèm, yo depase RGNNs. Lè yo enkli pòtay ne, kwen, ak tanporèl sou depandans alontèm, rezo neral graf gated amelyore rezo neral graf frekan.
Pòtay yo fonksyone menm jan ak Gated Recurrent Units (GRU) paske yo itilize pou raple epi bliye done yo nan plizyè etap.
Aplike Graph Neural Network lè l sèvi avèk Pytorch
Pwoblèm espesifik nou pral konsantre sou se yon pwoblèm kategorikasyon ne komen. Nou gen yon gwo rezo sosyal ki rele musae-github, ki te konpile nan API a louvri, pou devlopè GitHub.
Kwen yo montre relasyon mityèl swivan ant nœuds yo, ki reprezante devlopè (itilizatè platfòm yo) ki te jwe nan omwen 10 depo (remake byen ke mo mityèl la endike yon relasyon san direksyon).
Ki baze sou kote ne la, depo star, anplwayè, ak adrès imel, karakteristik ne yo rekipere. Predi si yon itilizatè GitHub se yon pwomotè entènèt oswa yon devlopè aprantisaj machin se travay nou.
Tit travay chak itilizatè te sèvi kòm baz pou fonksyon vize sa a.
Enstale PyTorch
Pou kòmanse, nou premye bezwen enstale PyTorch. Ou ka configured li selon machin ou soti nan isit la. Men mwen an:
Enpòte modil
Koulye a, nou enpòte modil ki nesesè yo
Enpòte ak eksplore done yo
Etap sa a se li done yo epi trase premye senk ranje yo ak senk dènye ranje ki soti nan dosye etikèt la.
Se sèlman de nan kat kolòn yo—id node a (sa vle di, itilizatè) ak ml_target, ki se 1 si itilizatè a se yon manm nan kominote aprantisaj machin nan ak 0 otreman—yo enpòtan pou nou nan sitiyasyon sa a.
Etandone ke gen jis de klas, kounye a nou ka sèten ke travay nou an se yon pwoblèm klasifikasyon binè.
Kòm yon rezilta dezekilib enpòtan nan klas la, klasifikatè a ka jis asime ki klas ki majorite olye ke evalye klas la ki pa reprezante, sa ki fè balans klas la yon lòt faktè enpòtan yo konsidere.
Trase istogram nan (distribisyon frekans) revele kèk move balans paske gen mwens klas nan aprantisaj machin (etikèt = 1) pase nan lòt klas yo.
Karakteristik kodaj
Karakteristik nœuds yo enfòme nou sou karakteristik ki asosye ak chak nœuds. Lè nou aplike metòd nou an pou kode done, nou ka imedyatman kode karakteristik sa yo.
Nou vle itilize metòd sa a pou encapsuler yon ti pati nan rezo a (di, 60 nœuds) pou ekspozisyon. Kòd la ki nan lis isit la.
Konsepsyon ak montre graf
Nou pral itilize flanbo jeyometrik. done pou konstwi graf nou an.
Pou modèl yon sèl graf ak pwopriyete diferan (opsyonèl), yo itilize done ki se yon senp objè Python. Lè nou itilize klas sa a ak atribi sa yo—tout yo se tensè flanbo—n ap kreye objè graf nou an.
Fòm valè x la, ki pral resevwa lajan nan karakteristik ne kode yo, se [kantite nœuds, kantite karakteristik].
Fòm y se [kantite nœuds], epi li pral aplike sou etikèt ne yo.
endèks kwen: Pou nou ka dekri yon graf san direksyon, nou bezwen elaji endis kwen orijinal yo pou pèmèt egzistans de bor dirije diferan ki konekte menm de nœuds men ki pwente nan direksyon opoze.
Yon pè kwen, youn ki montre soti nan ne 100 a 200 ak lòt la soti nan 200 a 100, yo obligatwa, pou egzanp, ant ne 100 ak 200. Si yo bay endis kwen yo, Lè sa a, se konsa graf la san direksyon yo ka reprezante. [2,2 * kantite bor orijinal yo] pral fòm tensor.
Nou kreye metòd trase graf nou an pou montre yon graf. Premye etap la se transfòme rezo omojèn nou an nan yon graf NetworkX, ki ka Lè sa a, trase lè l sèvi avèk NetworkX.draw.
Fè modèl GNN nou an epi fòme li
Nou kòmanse pa kode tout seri done yo lè nou egzekite kode done ak limyè = Fo ak Lè sa a, rele konstwi graf ak limyè = Fo pou konstwi tout graf la. Nou p ap eseye trase gwo graf sa a paske mwen sipoze w ap itilize yon machin lokal ki gen resous limite.
Mask, ki se vektè binè ki idantifye ki nœuds ki fè pati chak mask espesifik lè l sèvi avèk chif 0 ak 1, yo ka itilize pou notifye faz fòmasyon an ki nœuds yo ta dwe enkli pandan fòmasyon ak pou di faz enferans ki nœuds yo se done tès yo. Torch jewometrik.transforms.
Ou ka ajoute yon fann nan nivo node yo lè l sèvi avèk mask fòmasyon, mask val, ak pwopriyete mask tès nan klas AddTrainValTestMask, ki ka itilize pou pran yon graf epi pèmèt nou presize kijan nou vle yo konstwi mask nou yo.
Nou jis itilize 10% pou fòmasyon epi sèvi ak 60% nan done yo kòm seri tès la pandan w ap itilize 30% kòm seri validasyon an.
Koulye a, nou pral pile de kouch GCNConv, premye nan ki gen yon kantite karakteristik pwodiksyon ki egal a kantite karakteristik nan graf nou an kòm karakteristik opinyon.
Nan dezyèm kouch la, ki gen nœuds pwodiksyon ki egal a kantite klas nou yo, nou aplike yon fonksyon deklanchman relu epi bay karakteristik yo ki inaktif.
Endèks kwen ak pwa kwen yo se de nan anpil opsyon x ke GCNConv ka aksepte nan fonksyon an pi devan, men nan sitiyasyon nou an, nou sèlman bezwen de premye varyab yo.
Malgre lefèt ke modèl nou an pral kapab predi klas la nan chak ne nan graf la, nou toujou bezwen detèmine presizyon ak pèt pou chak seri separeman depann sou faz la.
Pou egzanp, pandan fòmasyon, nou vle sèlman itilize seri fòmasyon an pou detèmine presizyon ak pèt fòmasyon, epi kidonk sa a se kote mask nou yo vin an sou la men.
Pou kalkile pèt ki apwopriye ak presizyon, nou pral defini fonksyon pèt maske ak presizyon maske.
Fòmasyon modèl la
Kounye a ke nou te defini objektif fòmasyon pou ki flanbo a pral itilize. Adan se yon optimiseur mèt.
Nou pral fè fòmasyon an pou yon sèten kantite epòk pandan y ap kenbe yon je sou presizyon nan validation.
Nou menm tou nou trase pèt fòmasyon an ak presizyon atravè diferan epòk.
Dezavantaj Graph Neural Network
Sèvi ak GNN yo gen kèk dezavantaj. Lè pou anplwaye GNNa ak kijan pou amelyore pèfòmans nan machin aprantisaj modèl nou yo pral tou de klè pou nou apre nou gen yon pi bon konpreyansyon sou yo.
- Pandan ke GNN yo se rezo ki pa fon, tipikman ak twa kouch, pifò rezo neral ka ale byen fon pou amelyore pèfòmans. Nou pa kapab fè pèfòmans nan dènye kri sou gwo dataset akòz limit sa a.
- Li pi difisil pou fòme yon modèl sou graf, paske dinamik estriktirèl yo se dinamik.
- Akòz gwo depans enfòmatik rezo sa yo, echèl modèl la pou pwodiksyon prezante defi. Echèl GNN yo pou pwodiksyon pral difisil si estrikti graf ou a gwo ak konplike.
konklizyon
Pandan kèk ane ki sot pase yo, GNN yo te devlope nan zouti pwisan ak efikas pou pwoblèm aprantisaj machin nan domèn graf la. Yon apèsi fondamantal sou rezo neral graf yo bay nan atik sa a.
Apre sa, ou ka kòmanse kreye done ki pral itilize pou antrene ak teste modèl la. Pou konprann ki jan li fonksyone ak kisa li kapab, ou ka ale pi lwen epi antrene li lè l sèvi avèk yon lòt kalite dataset.
Ala bon sa bon kodaj!
Kite yon Reply