2005年,劃時代之作「The Graph Neural Network Model」的問世,將圖神經網路帶到每個人面前。
在此之前,科學家處理圖資料的方式是,在資料預處理階段,將圖轉換為一組「向量表示」。
而CNN的出現徹底改變這種資訊遺失的弊端,近20年來,一代又一代模型不斷演變,推動ML領域進步。
今天,Google正式官方宣布TensorFlow GNN 1.0(TF-GNN)-用於大規模建構GNN的經過生產測試的函式庫。
它既支援在TensorFlow中的建模和訓練,也支援從大型資料儲存中提取輸入圖。
TF-GNN是專為異構圖從頭開始建構的,其中物件和關係的類型由不同的節點和邊集合來表示。
現實世界中的物件及其關係以不同的類型出現,而TF-GNN的異質焦點,使得表示它們變得非常自然。
Google科學家Anton Tsitsulin表示,複雜的異構建模又回來了!
TF-GNN 1.0首面世
物件及其相互之間的關係,在我們的世界中無所不在。
而關係對於理解一個物件的重要性,不亞於孤立地看待物件本身的屬性,例如交通網絡、生產網絡、知識圖譜或社交網絡。
離散數學和電腦科學長期以來一直將這類網路形式化為圖,由「節點」以各種不規則方式透過邊任意連接而成。
然而,大多數機器學習演算法只允許輸入物件之間存在規則統一的關係,如像素網格、單字序列,或完全沒有關係。
圖形神經網絡,簡稱GNN,是一種強大的技術,既能利用圖的連通性(如早期演算法DeepWalk和Node2Vec),又能利用不同節點和邊輸入特徵。
GNN可以對圖的整體(這種分子是否以某種方式做出反應?)、單一節點(根據引用,這份文件的主題是什麼?)、潛在的邊(這種產品是否可能與另一種產品一起購買?)進行預測。
除了對圖形進行預測之外,GNN還是一個強大的工具——用於彌合與更典型的神經網路用例之間的鴻溝。
它們以連續的方式對圖的離散關係資訊進行編碼,從而可以將其自然地納入另一個深度學習系統。
Google在今天正式宣布用於大規模建構GNN的經過生產測試的函式庫-TensorFlow GNN 1.0(TF-GNN)。
在TensorFlow中,這樣的圖形由 tfgnn.GraphTensor 類型的物件表示。
這是一個複合張量類型(一個Python類別中的張量集合),在 tf.data.Dataset 、 tf.function 等中被接受為「頭等物件」。
它既能儲存圖結構,也能儲存節點、邊和整個圖的特徵。
GraphTensors的可訓練變換可以定義為高級Kera API中的Layers對象,或直接使用 tfgnn.GraphTensor 原語。
GNN:對上下文中的物件進行預測
#接下來,進一步解釋下TF-GNN,可以看下其中一個典型的應用:
預測一個龐大資料庫中,由交叉引用表定義的圖中某類節點的屬性
舉個例子,在電腦科學(CS)的引文資料庫arxiv論文中,有一對多的引用和多對一的引用關係,可以預測每篇論文的所在的主題領域。
與大多數神經網路一樣,GNN也是在許多標記樣本(約百萬個)的資料集上進行訓練的,但每個訓練步驟只包含一批小得多的訓練樣本(例如數百個)。
為了擴展到數百萬個樣本,GNN會在底層圖中合理小的子圖流上進行訓練。每個子圖包含足夠的原始數據,用於計算中心標記節點的GNN結果並訓練模型。
這個過程,通常被稱為子圖取樣,對於GNN訓練是極為重要的。
現有的大多數工具都是以批次方式完成取樣,產生用於訓練的靜態子圖。
而TF-GNN提供了,透過動態和互動取樣來改進這一點的工具。
子圖抽樣過程,即從一個較大的圖中抽取小的、可操作的子圖,為GNN訓練建立輸入範例
TF-GNN 1.0推出了一個靈活的Python API,用於配置所有相關比例的動態或批次子圖採樣:在Colab筆記中互動採樣。
具體來說,對儲存在單一訓練主機主記憶體中的小型資料集進行「高效採樣」,或透過Apache Beam對儲存在網路檔案系統中的龐大資料集(多達數億節點和數十億邊)進行分散式取樣。
在這些相同的取樣子圖上,GNN的任務是,計算根節點的隱藏(或潛在)狀態;隱藏狀態聚集和編碼根節點鄰域的相關資訊。
常見的方法是「訊息傳遞神經網路」。
在每一輪訊息傳遞中,節點沿著傳入邊接收來自鄰節點的訊息,並從這些邊更新自己的隱藏狀態。
在n輪之後,根節點的隱藏狀態反映了,n條邊內所有節點的聚合資訊(如下圖所示,n=2)。訊息和新的隱藏狀態由神經網路的隱層計算。
在異質圖中,對不同類型的節點和邊使用單獨訓練的隱藏層通常是有意義的。
圖為一個簡單的「訊息傳遞神經網」,在該網路中,每一步節點狀態都會從外部節點傳播到內部節點,並在內部節點匯集計算出新的節點狀態。一旦到達根節點,就可以進行最終預測
訓練設定是,透過將輸出層放置在已標記節點的GNN的隱藏狀態之上、計算損失(以測量預測誤差)並透過反向傳播更新模型權重來完成的,這在任何神經網路訓練中都是常見的。
除了監督訓練之外,GNN也可以以無監督的方式訓練,可以讓我們計算節點及其特徵的離散圖結構的連續表示(或嵌入)。
然後,這些表示通常在其他ML系統中使用。
透過這種方式,由圖編碼的離散關係訊息,就能被納入更典型的神經網路用例中。 TF-GNN支援對異構圖的無監督目標進行細粒度規範。
建構GNN架構
TF-GNN函式庫支援建置與訓練,不同抽象層次的GNN。
在最高層,使用者可以使用與庫綁定在一起的任何預定義模型,這些模型以Kera層表示。
除了研究文獻中的一小部分模型外,TF-GNN還附帶了一個高度可配置的模型模板,該模板提供了精心挑選的建模選擇。
Google發現這些選擇,為我們的許多內部問題提供了強有力的基準。模板實作GNN層;使用者只需從Kera層開始初始化。
import tensorflow_gnn as tfgnnfrom tensorflow_gnn.models import mt_albisdef model_fn(graph_tensor_spec: tfgnn.GraphTensorSpec):"""Builds a GNN as a Keras model."""graph = inputs = tf.keras.Input(type_spec=graph_tensor_spec)# Encode input features (callback omitted for brevity).graph = tfgnn.keras.layers.MapFeatures(node_sets_fn=set_initial_node_states)(graph)# For each round of message passing...for _ in range(2):# ... create and apply a Keras layer.graph = mt_albis.MtAlbisGraphUpdate(units=128, message_dim=64,attention_type="none", simple_conv_reduce_type="mean",normalization_type="layer", next_state_type="residual",state_dropout_rate=0.2, l2_regularizatinotallow=1e-5,)(graph)return tf.keras.Model(inputs, graph)
在最低层,用户可以根据用于在图中传递数据的原语,从头开始编写GNN模型,比如将数据从节点广播到其所有传出边,或将数据从其所有传入边汇集到节点中。
当涉及到特征或隐藏状态时,TF-GNN 的图数据模型对节点、边和整个输入图一视同仁。
因此,它不仅可以直接表示像MPNN那样以节点为中心的模型,而且还可以表示更一般形式的的图网络。
这可以(但不一定)使用Kera作为核心TensorFlow顶部的建模框架来完成。
训练编排
虽然高级用户可以自由地进行定制模型训练,但TF-GNN Runner还提供了一种简洁的方法,在常见情况下协调Kera模型的训练。
一个简单的调用可能如下所示:
from tensorflow_gnn import runnerrunner.run( task=runner.RootNodeBinaryClassification("papers", ...), model_fn=model_fn, trainer=runner.KerasTrainer(tf.distribute.MirroredStrategy(), model_dir="/tmp/model"), optimizer_fn=tf.keras.optimizers.Adam, epochs=10, global_batch_size=128, train_ds_provider=runner.TFRecordDatasetProvider("/tmp/train*"), valid_ds_provider=runner.TFRecordDatasetProvider("/tmp/validation*"), gtspec=...,)
Runner为ML Pain提供了现成的解决方案,如分布式训练和云TPU上固定形状的 tfgnn.GraphTensor 填充。
除了单一任务的训练(如上所示)外,它还支持多个(两个或更多)任务的联合训练。
例如,非监督任务可以与监督任务混合,以形成具有特定于应用的归纳偏差的最终连续表示(或嵌入)。调用方只需将任务参数替换为任务映射:
from tensorflow_gnn import runnerfrom tensorflow_gnn.models import contrastive_lossesrunner.run( task={"classification": runner.RootNodeBinaryClassification("papers", ...),"dgi": contrastive_losses.DeepGraphInfomaxTask("papers"),},...)
此外,TF-GNN Runner还包括用于模型归因的集成梯度实现。
集成梯度输出是一个GraphTensor,其连接性与观察到的GraphTensor相同,但其特征用梯度值代替,在GNN预测中,较大的梯度值比较小的梯度值贡献更多。
总之,谷歌希望TF-GNN将有助于推动GNN在TensorFlow中的大规模应用,并推动该领域的进一步创新。
以上是谷歌官宣TensorFlow-GNN 1.0發布!動態和互動採樣,大規模建構圖神經網絡的詳細內容。更多資訊請關注PHP中文網其他相關文章!

1 前言在发布DALL·E的15个月后,OpenAI在今年春天带了续作DALL·E 2,以其更加惊艳的效果和丰富的可玩性迅速占领了各大AI社区的头条。近年来,随着生成对抗网络(GAN)、变分自编码器(VAE)、扩散模型(Diffusion models)的出现,深度学习已向世人展现其强大的图像生成能力;加上GPT-3、BERT等NLP模型的成功,人类正逐步打破文本和图像的信息界限。在DALL·E 2中,只需输入简单的文本(prompt),它就可以生成多张1024*1024的高清图像。这些图像甚至

Wav2vec 2.0 [1],HuBERT [2] 和 WavLM [3] 等语音预训练模型,通过在多达上万小时的无标注语音数据(如 Libri-light )上的自监督学习,显著提升了自动语音识别(Automatic Speech Recognition, ASR),语音合成(Text-to-speech, TTS)和语音转换(Voice Conversation,VC)等语音下游任务的性能。然而这些模型都没有公开的中文版本,不便于应用在中文语音研究场景。 WenetSpeech [4] 是

“Making large models smaller”这是很多语言模型研究人员的学术追求,针对大模型昂贵的环境和训练成本,陈丹琦在智源大会青源学术年会上做了题为“Making large models smaller”的特邀报告。报告中重点提及了基于记忆增强的TRIME算法和基于粗细粒度联合剪枝和逐层蒸馏的CofiPruning算法。前者能够在不改变模型结构的基础上兼顾语言模型困惑度和检索速度方面的优势;而后者可以在保证下游任务准确度的同时实现更快的处理速度,具有更小的模型结构。陈丹琦 普

由于复杂的注意力机制和模型设计,大多数现有的视觉 Transformer(ViT)在现实的工业部署场景中不能像卷积神经网络(CNN)那样高效地执行。这就带来了一个问题:视觉神经网络能否像 CNN 一样快速推断并像 ViT 一样强大?近期一些工作试图设计 CNN-Transformer 混合架构来解决这个问题,但这些工作的整体性能远不能令人满意。基于此,来自字节跳动的研究者提出了一种能在现实工业场景中有效部署的下一代视觉 Transformer——Next-ViT。从延迟 / 准确性权衡的角度看,

3月27号,Stability AI的创始人兼首席执行官Emad Mostaque在一条推文中宣布,Stable Diffusion XL 现已可用于公开测试。以下是一些事项:“XL”不是这个新的AI模型的官方名称。一旦发布稳定性AI公司的官方公告,名称将会更改。与先前版本相比,图像质量有所提高与先前版本相比,图像生成速度大大加快。示例图像让我们看看新旧AI模型在结果上的差异。Prompt: Luxury sports car with aerodynamic curves, shot in a

译者 | 李睿审校 | 孙淑娟近年来, Transformer 机器学习模型已经成为深度学习和深度神经网络技术进步的主要亮点之一。它主要用于自然语言处理中的高级应用。谷歌正在使用它来增强其搜索引擎结果。OpenAI 使用 Transformer 创建了著名的 GPT-2和 GPT-3模型。自从2017年首次亮相以来,Transformer 架构不断发展并扩展到多种不同的变体,从语言任务扩展到其他领域。它们已被用于时间序列预测。它们是 DeepMind 的蛋白质结构预测模型 AlphaFold

人工智能就是一个「拼财力」的行业,如果没有高性能计算设备,别说开发基础模型,就连微调模型都做不到。但如果只靠拼硬件,单靠当前计算性能的发展速度,迟早有一天无法满足日益膨胀的需求,所以还需要配套的软件来协调统筹计算能力,这时候就需要用到「智能计算」技术。最近,来自之江实验室、中国工程院、国防科技大学、浙江大学等多达十二个国内外研究机构共同发表了一篇论文,首次对智能计算领域进行了全面的调研,涵盖了理论基础、智能与计算的技术融合、重要应用、挑战和未来前景。论文链接:https://spj.scien

说起2010年南非世界杯的最大网红,一定非「章鱼保罗」莫属!这只位于德国海洋生物中心的神奇章鱼,不仅成功预测了德国队全部七场比赛的结果,还顺利地选出了最终的总冠军西班牙队。不幸的是,保罗已经永远地离开了我们,但它的「遗产」却在人们预测足球比赛结果的尝试中持续存在。在艾伦图灵研究所(The Alan Turing Institute),随着2022年卡塔尔世界杯的持续进行,三位研究员Nick Barlow、Jack Roberts和Ryan Chan决定用一种AI算法预测今年的冠军归属。预测模型图


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

MinGW - Minimalist GNU for Windows
這個專案正在遷移到osdn.net/projects/mingw的過程中,你可以繼續在那裡關注我們。 MinGW:GNU編譯器集合(GCC)的本機Windows移植版本,可自由分發的導入函式庫和用於建置本機Windows應用程式的頭檔;包括對MSVC執行時間的擴展,以支援C99功能。 MinGW的所有軟體都可以在64位元Windows平台上運作。

SublimeText3 英文版
推薦:為Win版本,支援程式碼提示!

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

VSCode Windows 64位元 下載
微軟推出的免費、功能強大的一款IDE編輯器

ZendStudio 13.5.1 Mac
強大的PHP整合開發環境