那曲檬骨新材料有限公司

0
  • 聊天消息
  • 系統消息
  • 評論與回復
登錄后你可以
  • 下載海量資料
  • 學習在線課程
  • 觀看技術視頻
  • 寫文章/發帖/加入社區
會員中心
創作中心

完善資料讓更多小伙伴認識你,還能領取20積分哦,立即完善>

3天內不再提示

谷歌正式發布TensorFlow 圖神經網絡

谷歌開發者 ? 來源:谷歌開發者 ? 作者:谷歌開發者 ? 2022-01-05 13:44 ? 次閱讀

發布人:Sibon Li、Jan Pfeifer、Bryan Perozzi 和 Douglas Yarrington

日前,我們很高興發布了 TensorFlow神經網絡 (Graph Neural Networks, GNNs),此庫可以幫助開發者利用 TensorFlow 輕松處理圖結構化數據。我們已在 Google 的多個生產環境中使用了該庫的早期版本(例如,垃圾郵件和異常檢測、數據流量估計、YouTube 內容標簽),并作為可擴容的圖挖掘管道的一個組成部分。特別是,鑒于 Google 的數據類型繁多,我們的庫在設計時就考慮到了異構圖。發布此庫的初衷是為了鼓勵與業界研究人員的合作。

TensorFlow 圖神經網絡

https://github.com/tensorflow/gnn

為何使用 GNNs?

在現實世界和我們的工程系統中,“圖”無處不在。一組物體、地點或人以及它們之間的聯系通常都可以用圖來表述。通常情況下,我們在機器學習問題中看到的數據是結構化或關系化的,因此也可以用圖來表述。雖然關于 GNNs 的基礎研究可能只有幾十年的歷史,但當代 GNNs 最近取得的功能進展已經幫助推動了多個領域的進步,其中包括數據流量預測、謠言和假新聞檢測、疾病傳播建模、物理學模擬和理解分子有氣味的原因等。

數據流量預測

https://deepmind.com/blog/article/traffic-prediction-with-advanced-graph-neural-networks

謠言和假新聞檢測

https://arxiv.org/abs/2108.03548

疾病傳播建模

https://arxiv.org/abs/2007.03113

物理學模擬

http://proceedings.mlr.press/v80/sanchez-gonzalez18a/sanchez-gonzalez18a.pdf

理解分子有氣味的原因

https://arxiv.org/abs/1910.10685

圖可以對多種不同類型數據之間的關系進行建模,

包括網頁(左)、社交關系(中)或分子(右)等

圖代表了一組實體(節點或頂點)之間的關系(邊)。我們可以通過描述每個節點、邊或整個圖的特征,從而將信息存儲在圖的每一塊中。此外,我們還可以賦予邊方向性,來描述信息或數據流,等等。

若這些圖有多個特征,則可以用 GNNs 來解決這類問題。通過圖層級的研究,我們嘗試預測整個圖的特征。我們可以識別某些“形狀”的存在,如圖中的圓圈,可能代表亞分子,也可能代表密切的社會關系。GNNs 可以用于節點級的任務,對圖的節點進行分類,并預測圖中的分區和相似性,類似于圖像分類或分割。最后,我們可以在邊層級上使用 GNNs 來發現實體之間的聯系,或許可以使用 GNNs 來“修剪”邊,以確定場景中對象的狀態。

結構

TF-GNN 提供了基本模塊,以便在 TensorFlow 中實現 GNN 模型。除了建模 API,我們的庫還針對處理圖數據的困難任務提供了大量的工具:基于 Tensor 的圖數據結構、數據處理管道,以及一些供用戶快速上手的示例模型。

組成工作流的各種 TF-GNN 組件

TF-GNN庫的初始版本包含一些實用程序和功能,初學者和有經驗的用戶都能使用,其中包括:

TF-GNN 庫

https://github.com/tensorflow/gnn

高階 Keras 式 API,用于創建 GNN 模型,可以輕松地與其他類型的模型組合。GNNs 經常與排名、深度檢索(雙編碼器)結合使用或與其他類型的模型(圖像、文本等)混合使用。

用于異構圖的 GNN API。我們在 Google 和現實世界中處理的許多圖問題都包含不同類型的節點和邊。因此,我們選擇提供一種簡單的方法來對此建模。

定義明確的架構,用于聲明圖的拓撲,以及驗證架構的工具。此架構描述了其訓練數據的形狀,并用于指導其他工具。

GraphTensor 復合張量類型,它持有圖數據,可以分批處理,還有圖操作例程可用。

關于 GraphTensor 結構的操作庫:

對節點和邊的各種有效的廣播和池化運算,以及相關工具。

標準并入的卷積庫,ML 工程師/研究人員可以輕松地對其進行擴展。

高階 API,幫助產品工程師快速構建 GNN 模型,而不必擔心其細節問題。

磁盤上的圖形訓練數據的編碼,以及用來將該數據解析為數據結構的庫,您的模型可以從該庫中提取各種特征。

示例用法

在下面的例子中,我們使用 TF-GNN Keras API 構建一個模型,根據用戶觀看的內容和喜歡的類型向其推薦電影。

我們使用 ConvGNNBuilder 方法來指定邊類型和節點配置,即對邊使用 WeightedSumConvolution(定義如下)。每次通過 GNN 時,我們將通過 Dense 互連層來更新節點值:

import tensorflow as tf
    import tensorflow_gnn as tfgnn

    # Model hyper-parameters:
    h_dims = {'user': 256, 'movie': 64, 'genre': 128}

    # Model builder initialization:
    gnn = tfgnn.keras.ConvGNNBuilder(
      lambda edge_set_name: WeightedSumConvolution(),
      lambda node_set_name: tfgnn.keras.layers.NextStateFromConcat(
         tf.keras.layers.Dense(h_dims[node_set_name]))
    )

    # Two rounds of message passing to target node sets:
    model = tf.keras.models.Sequential([
        gnn.Convolve({'genre'}),  # sends messages from movie to genre
        gnn.Convolve({'user'}),  # sends messages from movie and genre to users
        tfgnn.keras.layers.Readout(node_set_name="user"),
        tf.keras.layers.Dense(1)
    ])

以上代碼很好用,但有時我們可能想要為 GNNs 使用更強大的自定義模型架構。例如,在之前的用例中,我們可能想指定某些電影或類型,讓它們在我們進行推薦時擁有更多權重。在下列片段中,我們用自定義圖卷積定義了一個更高級的 GNN,例子中使用的是加權邊。我們定義了 WeightedSumConvolution 類來匯集邊值,讓其作為所有邊的權重之和:

class WeightedSumConvolution(tf.keras.layers.Layer):
  """Weighted sum of source nodes states."""

  def call(self, graph: tfgnn.GraphTensor,
           edge_set_name: tfgnn.EdgeSetName) -> tfgnn.Field:
    messages = tfgnn.broadcast_node_to_edges(
        graph,
        edge_set_name,
        tfgnn.SOURCE,
        feature_name=tfgnn.DEFAULT_STATE_NAME)
    weights = graph.edge_sets[edge_set_name]['weight']
    weighted_messages = tf.expand_dims(weights, -1) * messages
    pooled_messages = tfgnn.pool_edges_to_node(
        graph,
        edge_set_name,
        tfgnn.TARGET,
        reduce_type='sum',
        feature_value=weighted_messages)
    return pooled_messages

請注意,盡管卷積的編寫只考慮了源節點和目標節點,但 TF-GNN 保障了其適用性,讓其能夠在異構圖(有各種類型的節點和邊)上無縫工作。

更多信息

您可以查看 TF-GNNGitHub repo,以獲得更多信息。

GitHub repo

https://github.com/tensorflow/gnn

歡迎加入 TensorFlow 論壇,隨時關注 TensorFlow 博客、Twitter 或 YouTube,獲悉最新消息。

TensorFlow 論壇

https://discuss.tensorflow.google.cn/

博客

https://blog.tensorflow.google.cn/

Twitter

http://twitter.com/tensorflow

YouTube

http://youtube.com/tensorflow

您還可以通過 Community Spotlight 計劃向我們提交作品,分享您的構建成果。如需提供反饋,您可以在 GitHub 上提交問題。我們歡迎您的貢獻和參與,謝謝!

Community Spotlight 計劃

http://goo.gle/TFCS

GitHub

https://github.com/tensorflow/gnn/issues

致謝

本文所介紹的研究來自以下各位的合作成果:來自 Google 的 Oleksandr Ferludin?、Martin Blais、Jan Pfeifer?、Arno Eigenwillig、Dustin Zelle、Bryan Perozzi 和 Da-Cheng Juan,以及來自 DeepMind 的 Sibon Li、Alvaro Sanchez-Gonzalez、Peter Battaglia、Kevin Villela、Jennifer She 和 David Wong。

原文標題:推出 TensorFlow 圖神經網絡 (GNNs)

文章出處:【微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

審核編輯:彭菁

聲明:本文內容及配圖由入駐作者撰寫或者入駐合作網站授權轉載。文章觀點僅代表作者本人,不代表電子發燒友網立場。文章及其配圖僅供工程師學習之用,如有內容侵權或者其他違規問題,請聯系本站處理。 舉報投訴
  • 谷歌
    +關注

    關注

    27

    文章

    6196

    瀏覽量

    106020
  • 神經網絡
    +關注

    關注

    42

    文章

    4781

    瀏覽量

    101178
  • 開發者
    +關注

    關注

    1

    文章

    590

    瀏覽量

    17097

原文標題:推出 TensorFlow 圖神經網絡 (GNNs)

文章出處:【微信號:Google_Developers,微信公眾號:谷歌開發者】歡迎添加關注!文章轉載請注明出處。

收藏 人收藏

    評論

    相關推薦

    TF之CNN:Tensorflow構建卷積神經網絡CNN的嘻嘻哈哈事之詳細攻略

    TF之CNN:Tensorflow構建卷積神經網絡CNN的嘻嘻哈哈事之詳細攻略
    發表于 12-19 17:03

    【PYNQ-Z2試用體驗】神經網絡基礎知識

    超過閾值,輸出就一躍而起。但我們一般用S函數作為激活函數。如下圖:2 該函數相比階越函數更加接近現實。神經網絡原理如圖所示是一個具有兩層的神經網絡,每層有兩個神經元。
    發表于 03-03 22:10

    發布MCU上跑的輕量神經網絡包 NNoM, 讓MCU也神經一把

    神經網絡包。AIoT那么火,為何大家卻止步于科普文?因為現成的機器學習框架都太復雜太難用。NNoM從一開始就被設計成提供給嵌入式大佬們的一個簡單易用的神經網絡框架。你不需要會TensorFlow
    發表于 05-01 19:03

    卷積神經網絡如何使用

    卷積神經網絡(CNN)究竟是什么,鑒于神經網絡在工程上經歷了曲折的歷史,您為什么還會在意它呢? 對于這些非常中肯的問題,我們似乎可以給出相對簡明的答案。
    發表于 07-17 07:21

    【案例分享】ART神經網絡與SOM神經網絡

    今天學習了兩個神經網絡,分別是自適應諧振(ART)神經網絡與自組織映射(SOM)神經網絡。整體感覺不是很難,只不過一些最基礎的概念容易理解不清。首先ART神經網絡是競爭學習的一個代表,
    發表于 07-21 04:30

    TensorFlow是什么

    更長。TensorFlow 使這一切變得更加簡單快捷,從而縮短了想法到部署之間的實現時間。在本教程中,你將學習如何利用 TensorFlow 的功能來實現深度神經網絡TensorFlow
    發表于 07-22 10:14

    【AI學習】第3篇--人工神經網絡

    `本篇主要介紹:人工神經網絡的起源、簡單神經網絡模型、更多神經網絡模型、機器學習的步驟:訓練與預測、訓練的兩階段:正向推演與反向傳播、以TensorFlow + Excel表達訓練流程
    發表于 11-05 17:48

    如何移植一個CNN神經網絡到FPGA中?

    二次開發。移植一個神經網絡到Lattice FPGA上可以分為三步:第一步:使用Tensorflow, Caffe, Keras訓練自己的網絡。(這里Lattice官網的參考設計提供了訓練網絡
    發表于 11-26 07:46

    如何構建神經網絡?

    原文鏈接:http://tecdat.cn/?p=5725 神經網絡是一種基于現有數據創建預測的計算系統。如何構建神經網絡?神經網絡包括:輸入層:根據現有數據獲取輸入的層隱藏層:使用反向傳播優化輸入變量權重的層,以提高模型的預測
    發表于 07-12 08:02

    如何使用TensorFlow神經網絡模型部署到移動或嵌入式設備上

    有很多方法可以將經過訓練的神經網絡模型部署到移動或嵌入式設備上。不同的框架在各種平臺上支持Arm,包括TensorFlow、PyTorch、Caffe2、MxNet和CNTK,如Android
    發表于 08-02 06:43

    TensorFlow寫個簡單的神經網絡

    這次就用TensorFlow寫個神經網絡,這個神經網絡寫的很簡單,就三種層,輸入層--隱藏層----輸出層;
    的頭像 發表于 03-23 15:37 ?5197次閱讀
    用<b class='flag-5'>TensorFlow</b>寫個簡單的<b class='flag-5'>神經網絡</b>

    如何使用Numpy搭建神經網絡

    很多同學入門機器學習之后,直接用TensorFlow調包實現神經網絡,對于神經網絡內在機理知之甚少。
    的頭像 發表于 05-18 11:02 ?3637次閱讀
    如何使用Numpy搭建<b class='flag-5'>神經網絡</b>

    推出 TensorFlow 神經網絡 (GNNs)

    發布人:Sibon Li、Jan Pfeifer、Bryan Perozzi 和 Douglas Yarrington 日前,我們很高興發布TensorFlow
    的頭像 發表于 01-05 13:44 ?1295次閱讀

    卷積神經網絡的應用分析

    【源碼】卷積神經網絡Tensorflow文本分類中的應用
    發表于 11-14 11:15 ?593次閱讀

    使用TensorFlow進行神經網絡模型更新

    使用TensorFlow進行神經網絡模型的更新是一個涉及多個步驟的過程,包括模型定義、訓練、評估以及根據新數據或需求進行模型微調(Fine-tuning)或重新訓練。下面我將詳細闡述這個過程,并附上相應的TensorFlow代碼
    的頭像 發表于 07-12 11:51 ?490次閱讀
    百家乐官网佛牌| 澳门百家乐官网的公式| 丽都棋牌下载| 百家乐博娱乐场开户注册| 网上百家乐官网解密| 百家乐官网优惠高的网址| 博彩资讯| 免水百家乐的玩法技巧和规则| 百家乐风云论坛| 百家乐官网去澳门| 赌博游戏网站| 大发888怎么赢钱| 最好百家乐的玩法技巧和规则| 百家乐赢利策略| 稳赢百家乐官网的玩法技巧| 皇冠网hg8333.com| 大发888注册送58网站| 月华百家乐的玩法技巧和规则| 真人百家乐网站接口| 百家乐官网赢钱lv| 云顶国际| 大发888在线娱乐| 太阳城娱乐管理网| 网页百家乐的玩法技巧和规则| 百家乐博彩资讯论坛| 福贡县| 最新娱乐城送彩金| 大发888娱乐城打发888打发8| 网上百家乐洗码技巧| 百家乐官网博彩吧| 百家乐官网真人游戏赌场娱乐网规则 | 2016哪个属相做生意吉利| 澳门百家乐官网赌技巧| 网络百家乐官网最安全| 皇冠网小说微博| 澳门娱乐城开户| 永利高百家乐进不去| 百家乐官网社区| 百家乐五种路单规| 百家乐庄比闲多多少| 百家乐信誉平台开户|