谷歌官宣TensorFlow-GNN 1.0發布!動態和互動採樣,大規模建構圖神經網絡
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中文網其他相關文章!

熱AI工具

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

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

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++7.3.1
好用且免費的程式碼編輯器

SublimeText3漢化版
中文版,非常好用

禪工作室 13.0.1
強大的PHP整合開發環境

Dreamweaver CS6
視覺化網頁開發工具

SublimeText3 Mac版
神級程式碼編輯軟體(SublimeText3)

想像一下,一個人工智慧模型,不僅擁有超越傳統運算的能力,還能以更低的成本實現更有效率的效能。這不是科幻,DeepSeek-V2[1],全球最強開源MoE模型來了。 DeepSeek-V2是一個強大的專家混合(MoE)語言模型,具有訓練經濟、推理高效的特點。它由236B個參數組成,其中21B個參數用於啟動每個標記。與DeepSeek67B相比,DeepSeek-V2效能更強,同時節省了42.5%的訓練成本,減少了93.3%的KV緩存,最大生成吞吐量提高到5.76倍。 DeepSeek是一家探索通用人工智

本月初,來自MIT等機構的研究者提出了一種非常有潛力的MLP替代方法—KAN。 KAN在準確性和可解釋性方面表現優於MLP。而且它能以非常少的參數量勝過以更大參數量運行的MLP。例如,作者表示,他們用KAN以更小的網路和更高的自動化程度重現了DeepMind的結果。具體來說,DeepMind的MLP有大約300,000個參數,而KAN只有約200個參數。 KAN與MLP一樣具有強大的數學基礎,MLP基於通用逼近定理,而KAN基於Kolmogorov-Arnold表示定理。如下圖所示,KAN在邊上具

為了將大型語言模型(LLM)與人類的價值和意圖對齊,學習人類回饋至關重要,這能確保它們是有用的、誠實的和無害的。在對齊LLM方面,一種有效的方法是根據人類回饋的強化學習(RLHF)。儘管RLHF方法的結果很出色,但其中涉及了一些優化難題。其中涉及訓練一個獎勵模型,然後優化一個策略模型來最大化該獎勵。近段時間已有一些研究者探索了更簡單的離線演算法,其中之一就是直接偏好優化(DPO)。 DPO是透過參數化RLHF中的獎勵函數來直接根據偏好資料學習策略模型,這樣就無需顯示式的獎勵模型了。此方法簡單穩定

最近,軍事圈被這個消息刷屏了:美軍的戰鬥機,已經能由AI完成全自動空戰了。是的,就在最近,美軍的AI戰鬥機首次公開,揭開了神秘面紗。這架戰鬥機的全名是可變穩定性飛行模擬器測試飛機(VISTA),由美空軍部長親自搭乘,模擬了一對一的空戰。 5月2日,美國空軍部長FrankKendall在Edwards空軍基地駕駛X-62AVISTA升空注意,在一小時的飛行中,所有飛行動作都由AI自主完成! Kendall表示——在過去的幾十年中,我們一直在思考自主空對空作戰的無限潛力,但它始終顯得遙不可及。然而如今,

在软件技术的前沿,UIUC张令明组携手BigCode组织的研究者,近日公布了StarCoder2-15B-Instruct代码大模型。这一创新成果在代码生成任务取得了显著突破,成功超越CodeLlama-70B-Instruct,登上代码生成性能榜单之巅。StarCoder2-15B-Instruct的独特之处在于其纯自对齐策略,整个训练流程公开透明,且完全自主可控。该模型通过StarCoder2-15B生成了数千个指令,响应对StarCoder-15B基座模型进行微调,无需依赖昂贵的人工标注数

寫在前面&筆者的個人理解這篇論文致力於解決當前多模態大語言模型(MLLMs)在自動駕駛應用中存在的關鍵挑戰,即將MLLMs從2D理解擴展到3D空間的問題。由於自動駕駛車輛(AVs)需要針對3D環境做出準確的決策,這項擴展顯得格外重要。 3D空間理解對於AV來說至關重要,因為它直接影響車輛做出明智決策、預測未來狀態以及與環境安全互動的能力。目前的多模態大語言模型(如LLaVA-1.5)通常只能處理較低解析度的影像輸入(例如),這是由於視覺編碼器的分辨率限制,LLM序列長度的限制。然而,自動駕駛應用需

上週,在內部的離職潮和外部的口誅筆伐之下,OpenAI可謂是內憂外患:-侵權寡姐引發全球熱議-員工簽署“霸王條款”被接連曝出-網友細數奧特曼“七宗罪」闢謠:根據Vox獲取的洩漏資訊和文件,OpenAI的高級領導層,包括Altman在內,非常了解這些股權回收條款,並且簽署了它們。除此之外,還有一個嚴峻而迫切的問題擺在OpenAI面前——AI安全。最近,五名與安全相關的員工離職,其中包括兩名最著名的員工,「超級對齊」團隊的解散讓OpenAI的安全問題再次被置於聚光燈下。 《財星》雜誌報道稱,OpenA

一、前言在过去的几年里,YOLOs由于其在计算成本和检测性能之间的有效平衡,已成为实时目标检测领域的主导范式。研究人员探索了YOLO的架构设计、优化目标、数据扩充策略等,取得了显著进展。同时,依赖非极大值抑制(NMS)进行后处理阻碍了YOLO的端到端部署,并对推理延迟产生不利影响。在YOLOs中,各种组件的设计缺乏全面彻底的检查,导致显著的计算冗余,限制了模型的能力。它提供了次优的效率,以及相对大的性能改进潜力。在这项工作中,目标是从后处理和模型架构两个方面进一步提高YOLO的性能效率边界。为此
