นี่คือการใช้งาน tensorflow ของเครือข่ายกราฟ convolutional สำหรับงานของการจำแนกประเภท (กึ่งผู้ดูแล) ของโหนดในกราฟตามที่อธิบายไว้ในบทความของเรา:
Thomas N. Kipf, Max Welling, การจำแนกประเภทกึ่งผู้ดูแลด้วยกราฟ Convolutional Networks (ICLR 2017)
สำหรับคำอธิบายระดับสูงลองดูโพสต์บล็อกของเรา:
Thomas Kipf, Graph Convolutional Networks (2016)
python setup.py install
cd gcn
python train.py
ในการใช้ข้อมูลของคุณเองคุณต้องให้
ดูฟังก์ชั่น load_data()
ใน utils.py
สำหรับตัวอย่าง
ในตัวอย่างนี้เราโหลดข้อมูลเครือข่ายการอ้างอิง (Cora, Citeseer หรือ PubMed) ชุดข้อมูลต้นฉบับสามารถพบได้ที่นี่: http://www.cs.umd.edu/~sen/lbc-proj/lbc.html ในเวอร์ชันของเรา (ดูโฟลเดอร์ data
) เราใช้ชุดข้อมูลแยกที่จัดทำโดย https://github.com/kimiyoung/planetoid (Zhilin Yang, William W. Cohen, Ruslan Salakhutdinov, กลับมาเรียนรู้กราฟ
คุณสามารถระบุชุดข้อมูลดังนี้:
python train.py --dataset citeseer
(หรือโดยการแก้ไข train.py
)
คุณสามารถเลือกระหว่างรุ่นต่อไปนี้:
gcn
: เครือข่ายกราฟ Convolutional (Thomas N. Kipf, Max Welling, การจำแนกประเภทกึ่งผู้ดูแลด้วยกราฟ Convolutional Networks, 2016)gcn_cheby
: Chebyshev Polynomial เวอร์ชันของเครือข่ายกราฟ convolutional ตามที่อธิบายไว้ใน (Michaël Defferrard, Xavier Bresson, Pierre Vandergheynst, เครือข่าย Neural Convolutional บนกราฟที่มีการกรองสเปกตรัมสเปกตรัมอย่างรวดเร็ว, NIPS 2016))dense
: Perceptron หลายชั้นพื้นฐานที่รองรับอินพุตแบบเบาบาง เฟรมเวิร์กของเรายังรองรับการจำแนกประเภทแบทช์ที่ชาญฉลาดของอินสแตนซ์กราฟหลายตัว (มีขนาดที่แตกต่างกัน) ด้วยเมทริกซ์ adjacency แต่ละครั้ง เป็นการดีที่สุดที่จะเชื่อมต่อเมทริกซ์คุณสมบัติที่เกี่ยวข้องและสร้างเมทริกซ์บล็อก (เบาบาง) (เบาบาง) ซึ่งแต่ละบล็อกสอดคล้องกับเมทริกซ์ adjacency ของอินสแตนซ์กราฟหนึ่งอินสแตนซ์ สำหรับการรวม (ในกรณีของเอาต์พุตระดับกราฟซึ่งตรงข้ามกับเอาต์พุตระดับโหนด) จะเป็นการดีที่สุดที่จะระบุเมทริกซ์การรวมแบบง่าย ๆ ที่รวบรวมคุณสมบัติจากอินสแตนซ์กราฟที่เกี่ยวข้องตามที่แสดงด้านล่าง:
โปรดอ้างอิงกระดาษของเราหากคุณใช้รหัสนี้ในงานของคุณเอง:
@inproceedings{kipf2017semi,
title={Semi-Supervised Classification with Graph Convolutional Networks},
author={Kipf, Thomas N. and Welling, Max},
booktitle={International Conference on Learning Representations (ICLR)},
year={2017}
}