整合營銷服務商

          電腦端+手機端+微信端=數據同步管理

          免費咨詢熱線:

          HTML大文件上傳源代碼

          TML大文件上傳源代碼,HTML大文件上傳解決方案,HTML大文件上傳思路,HTML大文件上傳實例,HTML大文件分塊上傳,HTML大文件分片上傳,HTML大文件批量上傳,HTML大文件加密上傳,HTML文件夾上傳,HTML大文件多線程上傳,


          隨著視頻網站和大數據應用的普及,特別是高清視頻和4K視頻應用的到來,超大文件上傳已經成為了日常的基礎應用需求。

          但是在很多情況下,平臺運營方并沒有大文件上傳和斷點續傳的開發經驗,往往在網上找一些簡單的PHP或者Java程序來實現基本的上傳功能,然而在實際使用中會發現,這些基于腳本語言實現的上傳功能模塊性能很弱,一是不支持2GB以上的內容上傳;二是無法支持斷點續傳;三是效率極低,單臺服務器最多支持幾十個并發上傳連接。

          當前我們要搭建一個運營級的視頻服務平臺,在嘗試了各種產品均無法滿足要求,因此最后花精力自主用C++語言實現了這一高性能上傳服務器。

          而基于PHP、JAVA等技術實現的文件上傳服務天生無法支持超大文件上傳,無法逾越2GB的最大文件尺寸瓶頸;

          支持4GB以上超大文件上傳,文件大小不受限制;

          支持斷點續傳,斷網、關機重啟均不受影響;

          對于大文件的處理,無論是用戶端還是服務端,如果一次性進行讀取發送、接收都是不可取,很容易導致內存問題。所以對于大文件上傳,采用切塊分段上傳

          從上傳的效率來看,利用多線程并發上傳能夠達到最大效率。

          文件上傳頁面的前端可以選擇使用一些比較好用的上傳組件,例如百度的開源組件WebUploader,這些組件基本能滿足文件上傳的一些日常所需功能,如異步上傳文件,文件夾,拖拽式上傳,黏貼上傳,上傳進度監控,文件縮略圖,甚至是大文件斷點續傳,大文件秒傳。

          在web項目中上傳文件夾現在已經成為了一個主流的需求。在OA,或者企業ERP系統中都有類似的需求。上傳文件夾并且保留層級結構能夠對用戶行成很好的引導,用戶使用起來也更方便。能夠提供更高級的應用支撐。


          導入項目:
          導入到Eclipse:
          http://www.ncmem.com/doc/view.aspx?id=9da9c7c2b91b40b7b09768eeb282e647
          導入到IDEA:http://www.ncmem.com/doc/view.aspx?id=9fee385dfc0742448b56679420f22162
          springboot統一配置:http://www.ncmem.com/doc/view.aspx?id=7768eec9284b48e3abe08f032f554ea2



          下載示例:

          https://gitee.com/xproer/up6-jsp-eclipse/tree/6.5.40/




          工程



          NOSQL

          NOSQL示例不需要任何配置,可以直接訪問測試



          創建數據表

          選擇對應的數據表腳本,這里以SQL為例




          修改數據庫連接信息


          訪問頁面進行測試



          文件存儲路徑

          up6/upload/年/月/日/guid/filename






          相關問題:
          1.javax.servlet.http.HttpServlet錯誤
          2.項目無法發布到tomcat
          3.md5計算完畢后卡住
          4.服務器找不到config.json文件

          相關參考:

          文件保存位置


          源碼工程文檔:https://drive.weixin.qq.com/s?k=ACoAYgezAAw1dWofra

          源碼報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwoiul8gl



          OEM版報價單:https://drive.weixin.qq.com/s?k=ACoAYgezAAwuzp4W0a

          產品源代碼:https://drive.weixin.qq.com/s?k=ACoAYgezAAwbdKCskc
          授權生成器:https://drive.weixin.qq.com/s?k=ACoAYgezAAwTIcFph1

          現實世界中的大量問題都可以抽象成圖模型(Graph Model),也就是節點和連邊的集合。從知識圖譜到概率圖模型,從蛋白質相互作用網絡到社交網絡,從基本的邏輯線路到巨大的Internet,圖與網絡無處不在。然而傳統的機器學習方法很難處理圖網絡信息,這種缺陷大大限制了深度學習的應用領域。于是人們提出了圖網絡(Graph Network),一種基于圖結構的廣義人工神經網絡,它可以直接對真實問題進行建模,又可以利用自動微分技術進行學習,甚至有望將多個傳統人工智能領域進行融合。

          編譯:集智俱樂部翻譯組

          來源:medium

          原題:How to get started with machine learning on Graphs

          目錄

          一、 什么是圖數據?

          二、 為什么要在圖數據上使用機器學習?(Graph ML)

          1.機器學習能自動化人類可以輕易實現但難以向計算機描述的任務。

          2. ML 可以以人類無法企及的規模來轉換信息。

          三、 什么是 Graph ML?

          1.使用 Graph ML 會遇到什么樣的挑戰?

          2.GraphML系統在實際運行中是怎樣的?

          四、 讓我們在圖上開始機器學習吧!

          1.你想要執行什么類型的任務?

          2.基本過程

          3.通用 Graph ML 方法

          五、 節點嵌入 Node embeddings

          1.隨機游走

          2.node2Vec

          3.node2vec擴展

          4.使用隨機游走的協同過濾

          六、 圖卷積網絡

          1.對圖網絡的擴展

          七、 鏈接預測

          1.節點嵌入和隨機游走

          2.具有圖特征的深度學習

          3.神經張量網絡

          4.強化學習

          八、 節點,邊和整個圖的評分和分類

          1.節點嵌入和隨機游走

          2.圖網絡

          3. 注意力序列

          4.基于分塊或節點屬性的傳統深度學習

          5.節點屬性在搜索引擎上的技術

          附:參考文獻

          作者在倫敦Connected Data上的演講之后,與很多擁有圖數據,想要開始機器學習但不知道怎樣開始的研究團隊進行了交流。在這篇文章里,作者以通俗易懂的方式展示了他們在圖上進行機器學習的方法技巧,并提供了相關的資料。

          注:

          作者 David Mack 是 Octavian.ai 的創始人。

          Octavian.ai 是一家開源公司,致力于機器問答系統和圖上深度學習。

          這是他們的開源項目列表:

          https://github.com/Octavian-ai

          一、 什么是圖數據?

          通過與這些希望獲得機器學習領域協助的團隊交流我們得知,圖數據真是無處不在 —— 從疾病診斷,遺傳學研究還有健康管理,到銀行和工程,圖都是一種解決困難問題的強有力的分析模式。

          簡單來說,一張圖就是節點(比如人)和他們之間關系(比如 Fatima 是 Jacob 的朋友)的集合。這些節點通常具有自己的屬性(比如 Fatima 23歲)。

          圖1 數據庫中以圖形式的儲存數據。如圖所示,這個例子在數據庫里通常是這樣存儲的。一個最主流的圖數據庫是Neo4j,用他們自己的話說“ 這是一個處于世界領先地位的圖數據庫,因為它具有本地的圖存儲和圖處理能力。

          如圖所示,這個例子在數據庫里通常是這樣存儲的。一個最出名的圖數據庫是Neo4j,用他們自己的話說“ 這是一個處于世界領先地位的圖數據庫,因為它具有本地的圖存儲和圖處理能力。

          你可以在 Neo4j 數據庫中使用 Cypher 查詢數據,這是一種類似于SQL的圖查詢語言。在之前的演示示例中,我們可以這樣獲取一個 Fatima 朋友的列表:

          MATCH (n1)-[:IS_FRIEND_OF]-(n2)WHERE n1.name = "Fatima"RETURN n2.name

          圖是描述數據的一種極具靈活性的強大方式。傳統的關系型數據庫很難用固定模式存儲不同實體之間的聯系,然而這些聯系是現實世界中普遍且至關重要的一部分。在圖數據庫中,這些聯系是非常易于存儲和查詢的。此外,通常很多事物之間的聯系(例如家庭成員之間的關系)構成分析問題的關鍵,使用圖數據庫使得問題分析變得很簡單。

          備注:關系(relationship)和邊(edge)在這篇文章里是可以相互替換的。Neo4j 語境下使用前者,圖論語境下用后者。

          二、 為什么要在圖數據上

          使用機器學習?(Graph ML)

          首先,為什么使用機器學習? 關于這個問題,Benedict Evans 寫了一篇很好的文章 “Ways to think about machine Learning” ,覆蓋了企業思考和開始機器學習的方式。

          論文地址:

          https://www.ben-evans.com/benedictevans/2018/06/22/ways-to-think-about-machine-learning-8nefy

          這里總結來自 Ben 對于圖機器學習(Graph ML) 兩種有用的觀點:

          • 機器學習能自動化人類可以輕易實現但難以向計算機描述的任務。


          真實世界的數據是充滿干擾且多層次的。比如像”描述圖中的人物“此類任務對于人類來說很簡單,但是很難抽象為離散的算法。

          我們可以用深度學習把大量的數據轉換為執行特定任務的高效功能。

          這在圖上也是成立的——得益于開放式的關系結構,它們與圖像或向量有非常大的不同。我們可以在 Graph ML 上建立適用于通用模式的方法。

          • ML 可以以人類無法企及的規模來轉換信息。

          另一方面,對于計算機來說,它們可以準確執行我們的指令(雖然偶爾也會出現錯誤)。

          這意味著它們可以完全地運行指令,并且沒有任何額外操作。需要它們運行多久,它們就會持續多久。

          因此,計算機可以處理非常大規模的數據(換做人類需要很多時間或注意力)。這讓新的分析應用成為可能,例如從數十億的web數據里找出欺詐的特征。




          三、 什么是 Graph ML?


          這可以簡單地定義為 ”在圖數據上應用機器學習(applying machine learning to graph data)“。我們特地這樣通俗地解釋,是因為在這篇文章里,我們將聚焦于神經網絡和深度學習本身,即便如此,我也會盡可能地包含其他補充的鏈接。

          我不想去寫傳統的圖分析,包括一些廣為人知的算法,如 PageRank,Clique Indentification, Shortest Path 等。這些強大且能夠作為第一選擇的算法已經在公開的資料中有了大量的參考。

          使用 Graph ML 會遇到什么樣的挑戰?

          然而在這個令人激動又充滿希望的領域里,Graph ML 還是一項非常年輕的技術。

          主流機器學習的討論更多的是在可應用性(例如使用ResNet進行遷移學習來分類圖像,或者在文本中使用BERT預測),還有對開發者的易用性上(例如 TensorFlow, PyTorch, FastAI)。這并不是簡單而通用的技術,即便如此也沒有任何流行的ML庫支持圖數據。

          同樣的,像 Neo4j 這樣的圖數據庫自己也沒有支持在數據上運行ML的方法。(盡管 Neo4j 已經在嘗試使它成為可能)

          在深度學習庫中不支持圖的其中一個原因是圖具有過于靈活的的數據結構(例如任何節點與其他節點有任意多的連接)并不契合主流深度學習庫和 GPU 架構中使用的固定大小圖和固定尺寸張量。

          更簡單來說,用矩陣來描述并操作一個稀疏圖是非常困難的。不是不可能,但絕對比使用向量,文本還有圖像要難得多。

          盡管如此,Graph ML 的趨勢依然無法阻擋。我個人預測,這將成為我們在很多產業中分析數據的一個主流的基本方式。

          再提及一點,就像其他任何機器學習技術,大多數 Graph ML 都需要大量的訓練數據。

          Graph ML系統在實際運行中是怎樣的?

          雖然這個問題的答案會隨著任務和數據集的變化而變化,但它有助于概括出你,這個敏銳的冒險家,將會遇到的問題。

          絕大多數時候,這系統需要你自己來寫代碼完成 —— 因為高級的 Graph ML 工具還不存在。你可能會想要用 Python, 還有機器學習庫 像TensorFlow 或者 PyTorch 來實現。根據你的數據規模,你可以在單機上實現訓練模型,也可以使用分布式系統。(有趣的是,很多圖訓練過程可以很好地在分布式系統上工作)。

          圖2 訓練模型

          你很可能需要先從存儲在 CSV 文件和在 Neo4j 這樣的數據庫,或者其他格式的圖數據庫中提取你的數據。

          然后你需要把數據提供給機器學習庫。在我當前的工作中(涉及到百萬的小圖(small graphs)),我把每一張圖都預先編譯成了 TFRecord,特征向量存儲了節點,聯系,還有相鄰矩陣信息。所有節點的屬性與文本被標記成了一個字典的格式。

          這只在小圖上起作用,如果圖很大,你需要用某種方案把圖分為較小的訓練樣本(你可以分批訓練,或者按照 節點-邊-節點 三個一組的形式訓練)。

          建議:一些情況下數據在導入機器學習庫之前進行表格化(tabularize )。Node2Vec 就是一個很好的例子,它的每一個節點都被隨機游走(Random Walk)轉換成向量,然后這些向量再以列表的形式傳入機器學習模型。

          一旦在數據傳入之后,真正的模型和訓練工作就開始了。這是一個復雜的變化過程。

          最終,模型會被用在某些地方。一些情況下,一個模型計算完成后的新節點/邊/圖信息會存儲在外部數據庫里。

          另外一部分的模型會被部署在線上的產品中。在這種情形下,從圖數據建立的模型系統需要更好的性能(可以是從圖數據庫中導入數據),然后這個預測模型最終會被用戶或下一代系統所利用(例如 Alexa 和用戶的問答系統)。

          四、 讓我們在圖上開始機器學習吧!

          讓我們先看一下一些可以用來在圖上執行機器學習的建議吧。

          我將在這里大概列舉一系列方法,指出它們其中的一些缺點和優點,然后給出完整的鏈接。因為篇幅這里省略了一些細節。盡管這是一個年輕的領域,研究人員還是想出了一系列令人眼花繚亂豐富的方法處理Graph ML。即便我想在本文中詳盡介紹,遺憾的是也沒有辦法完全列出主要的部分。

          如果你想要在這篇文章中幫助我完善列表,請聯系我。

          你想要執行什么類型的任務?

          對于 Graph ML有各種各樣的開始和執行過程的方式。因此,通過考慮你的任務目的來縮小開始的范圍和方式是很有幫助的。

          如同任何機器學習系統一樣,縮小和明確你要實現的目標,將對你的試驗成功和試驗過程有極大的幫助。通過提出一個最小的、明確的目標,你的模型和需要數據集就會減小到易于處理的程度。

          最后一點,圖數據庫是特別有吸引力的,它鼓勵我們朝著宏偉的“萬能”目標前進:因為圖數據庫幾乎可以代表任何東西,所以這對試圖建立通用的智能的工作者很有誘惑力的。警告:)

          我們將要闡述的任務類型:

          1. 預測兩個節點之間的關系是否存在

          2. 預測和分類節點,邊,還有整張圖

          本文旨在作為你自己研究的初級參考。與任何數據科學一樣,使用方法也需要適應你個人所處的環境。由于許多Graph ML尚處于早期研究階段,因此你應該在找到一個有效的方法之前嘗試多種方法。

          基本過程

          在開始構建一個 Graph ML 系統(可能需要對基礎設施進行大量投資)之前,重要的是要考慮簡單的方法是否已經足夠達成目,這能為你節約下很多不必要的工作。

          這里有一些簡化問題的方法:

          • 你可以把你的數據列表化(tabularize)么(你能看到節點列表么?你可以在 節點-邊-節點 的三元組模式下工作么?)然后在此之上應用傳統的機器學習過程(例如線性回歸,前饋網絡)?

          • 你能把數據集過濾成更小的部分么?(例如移除現有的節點)

          • 你可以把這個圖聚類成子圖,并把它們合成一個表么?

          • 你是否可以使用傳統機器學習擴展的的圖度量指標(如 PageRank)?(例如對計算節點的屬性應用線性回歸來對節點進行分類)

          在下面可以適用的部分中,我會回顧其中的一些方法。

          通用 Graph ML 方法

          一些 Graph ML 的方法通用性強。我已經在這里包含了它們全部的介紹。在下面的章節中,我將參考此部分并著重解釋一些應用在特定任務的過程。

          再一次重申,我們不可能在一篇文章中涉及所有Graph MLD的內容,我們能做的最好的就是給你建議,以便你繼續深入。

          你可以自由跳過這個章節,并在開始解決你感興趣的任務的時候回頭再看。

          節點層

          五、 節點嵌入 Node embeddings

          節點嵌入是 graph ML 早期的一種開發方式,它的流行是因為簡單,穩定,且易于計算。

          簡單來說,節點嵌入就是輪流計算圖中的每一個節點的向量。向量可以計算出有用的屬性,例如任意兩個節點嵌入的內積可以表示它們是否來自于同一個社群。

          通過這種方式,節點嵌入將圖形數據簡化為更易于管理的東西:向量。

          節點層經常和很多圖結構合并在一起計算(稍后會詳細介紹)。

          權衡之下必然會放棄一些信息。一個固定長度的向量很少能代表一個節點周圍的所有圖結構。它可以包含也可以不包含節點和關系屬性。

          然而,只有少量具有創新性的節點層可以被其他 Graph ML 過程復用。在這樣的設置下,節點層成為一種節點屬性,并被用作其他技術的催化劑,即使它并沒有像生成層一樣嵌入到圖結構中。

          接下來我將重點介紹一些主要的嵌入過程。有關于圖嵌入技術的調查和它們之間的比較,請查閱這兩篇論文。

          論文題目:

          A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications

          論文地址:

          https://arxiv.org/pdf/1709.07604.pdf

          論文題目:

          Graph Embedding Techniques, Applications, and Performance: A Survey

          論文地址:

          https://arxiv.org/pdf/1705.02801.pdf

          隨機游走

          圖3 隨機游走圖分析技術圖示

          隨機游走是一種非常強大且簡單的圖分析技術,和數論有很長一段淵源。

          一次隨機游走從圖中的一個節點開始,隨機地選擇一個邊,并穿過它。然后重復這一過程,直到提供路徑足夠地長。

          隨機游走的聰明之處在于它將一個多維度的不規則事物(圖)轉化為一個簡單的矩陣(每個路徑由節點組成的固定長度的路徑列表)。

          在足夠大的規模下,從理論上可以從隨機游走中重建出基本的圖結構。隨機游走發揮了機器學習的巨大優勢:從大量數據中學習。

          有很多方法可以利用隨機游走來計算節點嵌入。下面我將重點介紹一些主要的方法。



          node2Vec

          論文題目:

          node2vec scalable feature learning for networks

          論文地址:

          https://arxiv.org/abs/1607.00653

          node2vec 是一種流行且相當普遍的使用隨機游走的嵌入方法。

          將這些隨機游走轉化為計算嵌入的方法有一種智能的優化方式。首先為每個節點分配一個隨機層,(例如長度為N的高斯向量)。然后對于每對源相鄰節點,我們希望通過調整這些層來最大化它們的點積。同時最后,我們最小化隨機節點對的點積。這樣做的效果是我們學習了一組嵌入,這些嵌入傾向于在相同的遍歷過程中高點積的節點。例如在相同的 社群/結構中。

          圖4 由node2vec生成的LesMisérables可視化外觀網絡,其標簽顏色表示了同質性和結構等價性(底部)。

          你要知道關于node2vec 的最后一點是,它是由參數決定隨機游走的形式的。通過 ”In-out“ 超參數,你可以優先考慮遍歷是否集中在小的局部區域(例如這些節點是否在同一個小邊中?)或者這些游走是否在圖中廣范移動(例如這些節點是否處于統一類型的結構中?)。

          node2vec 擴展

          node2vec 的優勢在于它的簡單,但這也是它最大的弱點。標準算法并不包含節點屬性或邊屬性以及其他需要的信息。

          但是,擴展 node2vec 使它包含更多的信息非常簡單,只需更改損失函數,比如:

          • 嘗試不同的學習函數替代兩個節點層之間的點積

          • 不僅使用節點層,也需要包含它們的屬性

          更多了解請查閱大量引用 node2vec 的論文。

          使用隨機游走的協同過濾Collaborative filtering)

          一個使用隨機游走來解決協同過濾的簡單例子是輸入用戶對產品的評論,預測用戶會喜歡其他哪些產品。

          這大體上遵循了與 node2vec 相同的方案,盡管已經進一步簡化。你可以在本文中找到完整的實現和解釋。

          六、 圖卷積網絡

          圖網絡是 Graph ML 的一個豐富而重要的領域,其基本前提是在圖結構中嵌入神經網絡:

          圖5

          通常,這涉及存儲每個節點的狀態,并使用鄰接矩陣將這些狀態傳播到節點的近鄰節點。

          一篇很好的綜述文章是 DeepMind 的 “Relational inductive biases, deep learning, and Graph networks” ,它既記錄了這一子領域的歷史,也提出了一種統一的方法來比較圖網絡和一般神經網絡的不同。

          論文地址:

          https://arxiv.org/abs/1806.01261

          在上面的文章中,圖網絡被認為是用于在節點,邊和整個圖上傳播狀態和聚合狀態的函數集合。這樣,來自于許多不同理論的架構都是可比較的。下面是從函數中提取的步驟:

          圖6 GN模塊塊中的更新。藍色表示正在更新的元素,黑色表示更新中涉及的其他元素(請注意,藍色元素更新前的值也在更新中使用)。有關符號的詳細信息,請參見原論文的公式1。

          一個圖網絡可能包括很多輸出:

          • 節點狀態

          • 邊狀態

          • 整個圖狀態

          這些可以像嵌入層一樣使用,如分類,評分和預測。

          圖網絡是非常通用的強大技術,它們已經被用來分析很多東西,從自然語言,3D場景到生物學。我們最近的研究表明,它們可以實現許多傳統的圖算法。

          促進了解圖網絡及其功能的一些參考:

          • Thomas Kipf 的 “How powerful are Graph Convolutional Networks” 說明了一個未經訓練的網絡怎么通過單獨的結構執行分析。

          • GraphSAGE 是大型圖歸納表示學習(inductive representation learning)的一個框架。

          • Deep Learning for Network Biology 對應用于生物問題的 Graph ML 技術進行了概述。

          七、 對圖網絡的擴展

          在我們的MacGraph研究項目中,我們一直在嘗試對圖網絡進行一些擴展。雖然我們仍在改進這些方法,但它們已經展現出很大的希望,值得長期研究。

          我們正在嘗試學習不同的推理算法,從圖中提取和轉換數據。為此,我們在上述網絡中添加了一系列組件,使其類似于基于圖的圖靈機器:

          • 每個節點上的 GRU 單元使得每個節點在多次迭代中更好地保持狀態。

          • 節點從基于注意力機制的全局控制單元讀寫數據。

          • 一個控制單元(本質上是一個 LSTM 單元),它把當前任務作為輸入,并向網絡的其余部分輸出一系列控制信號,指導它們的下一步行動——這是基于Macnet體系結構。

          • 節點和邊列表從注意力導向的控制單元讀取。

          • 供上述組件讀寫的工作狀態存儲器。

          八、 鏈接預測

          預測兩個節點之間是否存在關系

          這是一項通常且非常簡單的任務,基本表示為:

          節點A與節點B有關系的概率p(a,r,b)是多少?

          例如知識圖補全(例如,如果米開朗基羅是托斯卡納出生的畫家,他是意大利人嗎?),預測蛋白質相互作用。這兩種方法都可以用來預測新的未知事物(例如哪些藥物可能有效?)以及改進現有不完善的數據(例如,此任務屬于哪個項目?).

          關于許多方法的更多信息,可以在前面的“通用 Graph ML 方法”一節中找到。

          節點嵌入和隨機游走

          節點嵌入(通常使用隨機游走生成)經常用于鏈接預測。

          嵌入層通常是這樣生成的:圖中鄰近的節點具有相似的嵌入的張量。然后就能比較距離(例如點積或歐幾里得距離)來預測存在連接的可能性。有些方法,比如 node2vec,實際上是直接訓練嵌入層的存/無(presence/absence)鏈接樣本。

          圖網絡可用于生成鏈接預測的嵌入節點。在這種情況下,需要將鏈接預測能力納入到網絡的損失函數中。

          具有圖特征的深度學習

          這意味著對圖數據進行序列化,然后在其上運行傳統的前饋網絡。

          例如,每個節點可以由其屬性表示(串聯形成張量)。每個訓練示例都有兩個節點和關系類型作為特征,存在的邊則作為標簽。記住要平衡已標注的類數量。

          當許多圖結構反映在屬性中時(例如,街道圖和每個節點都有其 GPS 位置),這種簡單的方法可以很好地工作。

          神經張量網絡

          圖7 神經張量網絡

          斯坦福大學的這種有趣的方法基本上將圖形記憶成張量和矩陣。“我們的模型優于以前的模型,可以對 WordNet 和Freebase 中未公開的關系進行分類,準確率分別為86.2%和90.0%。”

          強化學習

          強化學習也可用于鏈接預測。在這種方法中,網絡學習從圖中提取一系列事實,并結合這些事實生成鏈接預測。

          這種方法的一個例子是“Multi-hop knowledge graph reasoning with reward shaping”,在這種推理中,網絡學習遍歷圖并使用該信息生成鏈接預測。

          九、 節點,邊和整個圖的評分和分類

          另一個常見的任務是嘗試對圖的一部分進行分類或評分。例如,試圖找出與某個基因相關的蛋白質。或者嘗試根據他們的交友小組把學生聚集到他們的學校。

          分類意味著輸出潛在標簽之間的概率分布,評分意味著輸出一個可用于與其他標簽進行比較的權重。兩者在概念上相似,分類涉及更多維度。

          通常的任務是定義以下函數之一,其中 Output 是一組可能的類別分布或一組可能的輸出分數:

          f(n:Node) → r ∈ Output

          g(e:Edge) → r ∈ Output

          h(g:Graph) → r ∈ Output

          執行此操作的大多數方法有兩個步驟:

          1. 對圖執行一些計算,也許是將其節點和邊的多個元素組合成存儲在節點、邊 和/或 整個圖中的狀態中。

          2. 提取、聚合并將狀態轉換為所需的輸出。

          步驟1可以使用許多不同的方法來執行,我將在下面列出。

          步驟2通常使用前饋神經網絡(FFN)來執行。提取和聚合可以使用手工建立的函數(例如,讀取特定節點、將特定邊求和)或學習的函數(例如,注意力機制提取、聚合卷積)。

          這兩個步驟的選擇都是數據科學和實驗的問題,還沒有出現任何明確的“一刀切”的解決方案。

          關于其中許多方法的更多信息,可以在前面的“通用 Graph ML 方法”一節中找到。

          節點嵌入和隨機游走

          節點嵌入為分類和評分提供了豐富的節點狀態。

          當使用嵌入時,通常這些檢測的節點通過一個小的 FFN 網絡來得到期望的輸出。根據用例的不同,節點的屬性也可以包含在FFN的輸入中。

          如果節點嵌入是使用隨機游走創建的(例如,使用node2vec),則它們將包含可能與正在執行的分類或評分相關的原始結構信息(例如,節點所在的邊或其所屬的上一層結構)(例如,聚類處于不同圖的子邊)。

          圖網絡

          圖網絡是一種將神經網絡嵌入到圖中的通用方法。圖網絡可以計算節點、邊和圖的狀態(根據應用的場景可以省略其中的一些狀態)。然后可以轉換這些狀態以產生最終輸出。例如,圖狀態可以通過一個 FFN 來創建一個完整的圖分類。

          在圖網絡的論文中有許多不同的例子,請參見導論部分了解它們的概述。

          注意力序列

          一個有趣的方法是在論文“使用結構化注意力進行圖分類”中得來的。在這項工作中,我們使用注意力從圖中反復讀取節點.

          論文地址:

          http://ryanrossi.com/pubs/KDD18-graph-attention-model.pdf


          圖8 基于注意力的圖分類,由一個初始點 v*和一個預算值 T = 3 點用于圖分類的選擇注意力是用于導航到圖中信息更加充分的部分。

          網絡的中心是一個 LSTM 單元,它控制從哪個節點讀取數據,將注意力讀取到的數據合并到其內部的狀態,然后輸出對圖分類的預測。

          這類似于用于機器推理的綜合注意力網絡中的方法(盡管不在圖數據上),其中一個中心 RNN 單元引導注意力讀取和讀取數據的合成。

          *論文鏈接https://cs.stanford.edu/people/dorarad/mac/blog.html

          基于分塊或節點屬性的傳統深度學習

          將問題簡化為一個對照數據集,可以找到許多更好的研究方法(例如前饋和卷積神經網絡)。

          一種方法是將每個節點及其屬性視為一個訓練樣本。這可能涉及手工創建你認為將有助于 分類/評分 的附加屬性。

          創建圖的另一種方法是提取固定大小的分塊。在這個模型中,一個節點、它的邊以及它的近鄰節點被提取到一個固定大小的表中。固定大小意味著邊和節點有最大數量的存儲限制,如果表中存在多出邊和節點,則必須隨機抽樣。此外,如果節點和邊少于固定表可以存儲的數量,則需要用指定的空值填充。最后,必須選擇如何選擇分塊-一個簡單的模型是從每個節點或邊提取一個分塊。

          表格化丟棄了隱藏在網絡信息中的價值,但簡化了工程和模型研究。

          節點屬性在搜索引擎上的技術

          最后,也有一些非機器學習方法值得思考。如果在某種鏈接、內容或文本的基礎上對節點進行評分,可能會對搜索引擎/文檔檢索效果提升有效。

          這包括簡單的模糊文本匹配,到 PageRank,短語和語義匹配。

          這是一個非常成熟的計算機科學領域。更多提示,請查閱維基百科的信息檢索文章。

          附錄

          在本文中,我引用了很多資源,為了方便起見,都在此列出。此外,我還添加了其他前面未列出的有趣項目。

          Surveys of the field

          • A good survey of the different structural approaches to graph machine learning (I’d recommend starting with this one):Graph Neural Networks: A Review of Methods and Applications

            • https://arxiv.org/pdf/1812.08434v1.pdf

          • A Comprehensive Survey of Graph Embedding: Problems, Techniques and Applications

            • https://arxiv.org/pdf/1709.07604.pdf

          • Graph Embedding Techniques, Applications, and Performance: A Survey

            • https://arxiv.org/pdf/1705.02801.pdf

          • A Survey on Network Embedding

            • https://arxiv.org/abs/1711.08752

          • Attention Models in Graphs: A Survey

            • https://arxiv.org/abs/1807.07984

          • Deep Learning for Network Biology

            • http://snap.stanford.edu/deepnetbio-ismb/slides/deepnetbio-part2-gcn.pdf

          • Representation Learning on Graphs: Methods and Applications

            • https://cs.stanford.edu/people/jure/pubs/graphrepresentation-ieee17.pdf

          • Network Representation Learning: A Survey

            • https://arxiv.org/abs/1801.05852

          • Graph Summarization Methods and Applications: A Survey

            • https://arxiv.org/abs/1612.04883

          • Must-read papers on knowledge representation learning (KRL) / knowledge embedding (KE)

            • https://github.com/thunlp/KRLPapers

          Random walks / embeddings

          • node2Vec

            • https://arxiv.org/pdf/1607.00653.pdf

          • Review prediction with Neo4j and TensorFlow

            • https://medium.com/octavian-ai/review-prediction-with-neo4j-and-tensorflow-1cd33996632a

          • Knowledge graph embedding: a survey of approaches and applications

            • https://medium.com/octavian-ai/review-prediction-with-neo4j-and-tensorflow-1cd33996632a

          • A novel embedding model for knowledge base completion based on CNN

            • https://medium.com/octavian-ai/review-prediction-with-neo4j-and-tensorflow-1cd33996632a

          • GEMSEC: Graph embedding with self clustering

            • https://arxiv.org/pdf/1802.03997.pdf

          Graph Networks

          • Relational inductive biases

            • https://arxiv.org/abs/1806.01261

          • Graph convolutional networks

            • https://arxiv.org/abs/1806.01261

          • GraphSAGE

            • https://arxiv.org/abs/1806.01261

          • Smart Reply: Automated Response Suggestion for Email

            • https://static.googleusercontent.com/media/research.google.com/en//pubs/archive/45189.pdf

          • 3D graph Neural Networks for RGBD Semantic Segmentation

            • http://www.cs.toronto.edu/~rjliao/papers/iccv_2017_3DGNN.pdf

          Knowledge graphs

          • DeepPath: A Reinforcement Learning Method for Knowledge graph Reasoning

            • https://www.cs.ucsb.edu/~william/papers/DeepPath.pdf

          • Multi-hop knowledge graph reasoning with reward shaping

            • https://www.cs.ucsb.edu/~william/papers/DeepPath.pdf

          • Neural Tensor Networks

            • https://nlp.stanford.edu/pubs/SocherChenManningNg_NIPS2013.pdf

          • MacGraph — Iterative reasoning on knowledge graphs

            • https://nlp.stanford.edu/pubs/SocherChenManningNg_NIPS2013.pdf

          • KBGAN: Adversarial Learning for Knowledge graph Embeddings

            • https://arxiv.org/pdf/1711.04071.pdf

          Miscellaneous

          • Compositional Attention Networks for Machine Reasoning

            • https://cs.stanford.edu/people/dorarad/mac/blog.html

          • graph classification using Structural Attention

            • https://cs.stanford.edu/people/dorarad/mac/blog.html

          • GAMEnet: graph augmented memory networks for recommending medication combination

            • https://arxiv.org/pdf/1809.01852.pdf

          • Modeling Relational Data with raph Convolutional Networks

            • https://arxiv.org/pdf/1703.06103.pdf

          • Answering questions using knowledge graphs and sequence translation

            • https://medium.com/octavian-ai/answering-english-questions-using-knowledge-graphs-and-sequence-translation-2acbaa35a21d

          翻譯:王舒凡

          審校:陳曦

          編輯:王怡藺

          原文地址:

          https://medium.com/octavian-ai/how-to-get-started-with-machine-learning-on-graphs-7f0795c83763

          推薦閱讀

          圖網絡深度解析:為什么說圖網絡是 AI 的未來?

          圖網絡重磅綜述:基于圖的深度學習方法

          深度學習未達預期,圖網絡有望引領下一次AI革命

          圖網絡——悄然興起的深度學習新浪潮

          加入集智,一起復雜!

          PC端課程地址:

          http://campus.swarma.org/play/coursedetail?id=381

          集智俱樂部QQ群|877391004

          商務合作及投稿轉載|swarma@swarma.org

          ◆ ◆ ◆

          搜索公眾號:集智俱樂部

          加入“沒有圍墻的研究所”

          讓蘋果砸得更猛烈些吧!

          avascript項目解析:3D炫酷立體分塊

          知識點:css3屬性,transform運用,延時屬性,js配合css3構造3D場景,簡單的函數封裝,for循環,參數傳遞,算法。

          效果圖:

          3D旋轉

          聽課地址請關注看置頂文章!


          主站蜘蛛池模板: 国产在线精品一区二区中文| 久久精品国产免费一区| 久久久久人妻一区精品果冻| 精品人妻一区二区三区毛片| 亚洲A∨无码一区二区三区 | 亚洲AV本道一区二区三区四区| 成人一区专区在线观看| 国模少妇一区二区三区| 国产suv精品一区二区6| 波多野结衣一区二区| 无码人妻久久一区二区三区| а天堂中文最新一区二区三区| 亚洲AV无码国产精品永久一区| 成人日韩熟女高清视频一区| 精品一区中文字幕| 国模无码视频一区| 亚洲中文字幕乱码一区| 亚洲一区二区三区在线| 国产精品免费一区二区三区四区 | 中文字幕乱码人妻一区二区三区| 中文字幕在线精品视频入口一区 | 成人在线一区二区| 国产成人精品一区二三区| 一区二区三区视频| 亚洲av日韩综合一区二区三区| 亚洲综合无码一区二区三区| 亚洲V无码一区二区三区四区观看| 韩国福利一区二区三区高清视频| 精品在线一区二区三区| 精品在线一区二区| 日韩经典精品无码一区| 一区二区三区无码高清| 爆乳熟妇一区二区三区霸乳| 麻豆视频一区二区三区| 一区二区三区电影在线观看| 内射白浆一区二区在线观看| 一区 二区 三区 中文字幕| 乱色熟女综合一区二区三区| 国产激情精品一区二区三区| 日韩精品一区二区三区不卡| 一区二区三区免费在线观看|