<?xml version="1.0" encoding="utf-8" standalone="yes"?>
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
	<channel>
		<title>GCN on Chang Luo</title>
		<link>https://www.luochang.ink/tags/gcn/</link>
		<description>Recent content in GCN on Chang Luo</description>
		<generator>Hugo</generator>
		<language>zh-CN</language>
		
		
		
		
			<lastBuildDate>Sat, 10 Aug 2024 00:00:00 +0000</lastBuildDate>
		
			<atom:link href="https://www.luochang.ink/tags/gcn/index.xml" rel="self" type="application/rss+xml" />
			<item>
				<title>三种图神经网络算法：GraphSAGE, GCN 和 GAT</title>
				<link>https://www.luochang.ink/posts/graph_embedding/</link>
				<pubDate>Sat, 10 Aug 2024 00:00:00 +0000</pubDate>
				<guid>https://www.luochang.ink/posts/graph_embedding/</guid>
				<description>&lt;blockquote&gt;&#xA;&lt;p&gt;GNN 处理图数据的方式还是很符合直觉的，基本沿袭了 CNN 的思路：每个神经元只看局部信息，通过层层汇聚掌握全貌。&lt;/p&gt;&#xA;&lt;/blockquote&gt;&#xA;&lt;p&gt;GitHub 项目地址：&lt;a href=&#34;https://github.com/luochang212/graph-embedding&#34; target=&#34;_blank&#34;&gt;graph-embedding&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;本文做了什么：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;对 GraphSAGE 的简单实现做逐行注释&lt;/li&gt;&#xA;&lt;li&gt;在 Docker 环境运行 GraphSAGE 的原版示例&lt;/li&gt;&#xA;&lt;li&gt;用 &lt;a href=&#34;https://pytorch-geometric.readthedocs.io/en/latest/&#34; target=&#34;_blank&#34;&gt;PyG&lt;/a&gt; 实现了 GCN 和 GAT&lt;/li&gt;&#xA;&lt;li&gt;为运行 PyG 写了一些 pipeline 代码&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;✨ 注意：运行以下代码依赖 &lt;a href=&#34;https://github.com/luochang212/graph-embedding/blob/main/util.py&#34; target=&#34;_blank&#34;&gt;util.py&lt;/a&gt; 文件。&lt;/p&gt;&#xA;&lt;h2 id=&#34;一graphsage-的简单实现&#34;&gt;一、GraphSAGE 的简单实现&lt;/h2&gt;&#xA;&lt;p&gt;主流图算法大致分两种：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;图嵌入算法 (GE): DeepWalk, Node2Vec 等&lt;/li&gt;&#xA;&lt;li&gt;图神经网络算法 (GNN): GraphSAGE, GCN, GAT 等&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;h3 id=&#34;11-绪论图神经网络&#34;&gt;1.1 绪论：图神经网络&lt;/h3&gt;&#xA;&lt;!-- 图神经网络的输入是 **节点间关联关系** 和 **节点特征**，输出是图嵌入。 --&gt;&#xA;&lt;p&gt;图神经网络算法做的事，相当于把图这种复杂的数据结构，转换成低维向量，而低维向量往往是很好用的。&lt;/p&gt;&#xA;&lt;p&gt;拿到图嵌入可以做很多事情，比如：&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;节点分类&lt;/li&gt;&#xA;&lt;li&gt;链接预测&lt;/li&gt;&#xA;&lt;li&gt;社区发现&lt;/li&gt;&#xA;&lt;li&gt;相似度量&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;总之，图嵌入是一种非常有用的特征。在实践中，甚至可以将图嵌入和其他特征 concat 起来，训练更复杂的模型。&lt;/p&gt;&#xA;&lt;h4 id=&#34;111-gnn-和-cnn&#34;&gt;1.1.1 GNN 和 CNN&lt;/h4&gt;&#xA;&lt;p&gt;GNN 和 CNN 的思路还挺像的，可以看作 CNN 在图数据上的推广。&lt;/p&gt;&#xA;&lt;!-- GNN 基本沿袭了 CNN 的思路，GNN 像是 CNN 在图数据上的推广。 --&gt;&#xA;&lt;p&gt;CNN 有平移不变性和局部性。其中 &lt;strong&gt;局部性&lt;/strong&gt; 指：每个神经元每次只看一小块像素，随着神经元层数的堆叠，层级越高的神经元，“看到”的像素量越多（如下图）。&lt;/p&gt;</description>
			</item>
	</channel>
</rss>
