DeepWalk:圖網絡與NLP的巧妙融合

2021-03-02 AINLP

最近這段時間一直在做圖網絡相關,也差不多收尾了,有空整體復盤了下,大致以下幾個主題,不過沒整理完全哈哈(下次一定)

順手再安利幾份資料吧 

一些大佬們的新書:《Graph Representation Learning》、《Deep Learning on Graphs》

ok,回到正題,今天要介紹的這篇是『Graph Embedding』系列第一篇,十分經典

論文:DeepWalk: Online Learning of Social Representations[1]代碼:https://github.com/phanein/deepwalk

enjoy~

TL;DR

DeepWalk是首次將深度學習技術(無監督學習)引入到網絡分析(network analysis)中的工作,它的輸入是一個圖,最終目標就是獲得網絡圖中每個結點的向量表示

先驗知識

說到生成向量表示,最有名的莫過於Word2Vec了,那麼是不是可以將network embedding的問題轉化為熟悉的word embedding形式呢?這樣我們就可以借用word2vec的思想來解決了。

轉化的方式就是Random Walk ,通過這種方式將圖結構表示為一個個序列,然後我們就可以把這些序列當成一個個句子,每個序列中的結點就是句子中的單詞。

簡單的說,DeepWalk = RandomWalk + SikpGram, 下面我們來具體介紹下兩種技術。

Random Walk

隨機遊走,顧名思義,就是從輸入圖中的任意一個結點

採用隨機遊走有兩個好處:

「利於並行化」:隨機遊走可以同時從不同的頂點開始採樣,加快整個大圖的處理速度;Skip Gram

word2vec的skip-gram相信大家都非常熟悉了,這裡就不再贅述,放一張圖。

DeepWalk

結合上面兩點, deepwalk其實就是首先利用random walk來表示圖結構,然後利用skip-gram模型來更新學習節點表示。算法流程如下所示:

算法有兩層循環,第一層循環採樣

其中第2步構建二叉樹的目的是為了方便後續 SkipGram模型的層次softmax算法。

參數更新的流程如下:

一個小結

deepwalk可以說給網絡學習方向打開了一個新思路,有很多優點:

但是仍然存在許多不足:

遊走是完全隨機的,但其實是不符合真實的社交網絡的;本文參考資料[1]

DeepWalk: Online Learning of Social Representations: https://arxiv.org/abs/1403.6652

END -


相關焦點

  • 圖神經網絡-圖遊走算法核心代碼DeepWalk實現
    本文主要涉及圖遊走算法DeepWalk的代碼實現。1.
  • 網絡表達學習系列(一):深度遊走(Deepwalk)
    ,圖嵌入,圖網絡,但是不太了解其中的原理,這是一篇很好的文章,開啟你的網絡之旅:網絡表達學習(Network Representation Learning),或者稱之為網絡嵌入(Network Embedding)。
  • 【Graph Embedding】DeepWalk算法原理,實現和應用
    圖表示學習我們都知道在數據結構中,圖是一種基礎且常用的結構。現實世界中許多場景可以抽象為一種圖結構,如社交網絡,交通網絡,電商網站中用戶與物品的關係等。目前提到圖算法一般指:1. 經典數據結構與算法層面的:最小生成樹 (Prim,Kruskal,...) ,最短路 (Dijkstra,Floyed,...)
  • 神經網絡圖的簡介(基本概念,DeepWalk以及GraphSage算法)
    圖片來源: Pexels 近來,圖神經網絡(GNN)在各個領域廣受關注,比如社交網絡,知識圖譜,推薦系統以及生命科學。GNN在對圖節點之間依賴關係進行建模的強大功能使得與圖分析相關的研究領域取得了突破。 本文旨在介紹圖形神經網絡的基礎知識兩種較高級的算法,DeepWalk和GraphSage。 圖 在我們學習GAN之前,大家先了解一下什麼圖。
  • 從圖網絡表示到圖神經網絡
    而在更一般的情況下, 數字和數字之間,是一個互相聯繫的複雜網絡, 這時候我們用節點和連接它們的邊來描述這種數據類型, 這就是我們說的圖網絡結構。對於圖像CNN是目前深度學習的集大成者, 對於時間序列RNN, transformer是集大成者, 那麼對於圖結構呢?這就是當下的圖神經網絡崛起的背景。
  • 使用DeepWalk從圖中提取特徵
    通常是諸如社交網絡,網際網路,已連接的IoT設備,鐵路網絡或電信網絡之類的事物。在圖論中,這些網絡稱為圖。網絡是互連節點的集合。節點表示實體,它們之間的連接是某種關係。例如,我們可以用圖的形式表示一組社交媒體帳戶:節點是用戶的數字檔案,連接表示他們之間的關係,例如誰跟隨誰或誰與誰是朋友。圖的用例不僅限於社交媒體!我們還可以使用圖和網絡表示其他類型的數據(並且在本文中我們將介紹一個獨特的行業用例)。
  • NLP學習思維導圖,非常的全面和清晰
    作者 | Tae Hwan Jung & Kyung Hee編譯 | ronghuaiyang【導讀】Github上有人整理了NLP的學習路線圖(思維導圖),非常的全面和清晰,分享給大家。先奉上GitHub地址:https://github.com/graykode/nlp-roadmapnlp-roadmap 是 Natural Language Processing 的路線圖(思維導圖),以及為對學習NLP感興趣的同學準備的一些關鍵字。這個路線圖涵蓋了從基礎的概率/統計到SOTA的NLP的模型。注意!
  • 社科NLP課程來了:斯坦福開年公開課主講NLP和社交網絡應用
    近日,史丹福大學發布了一門明年 1 月的公開課程,主要關注 AI 中的自然語言處理和社交網絡的結合應用,適合文科生學習。史丹福大學的 AI 相關公開課一直受到機器學習社區的關注。機器之心曾經也報導過史丹福大學的 CS224n 自然語言處理課程。近日,史丹福大學的另一門 NLP 公開課程也放出了課程通知,即將於 2020 年 1 月開始授課。
  • CMU 2020年「神經網絡NLP」課程開課啦
    近日,CMU 2020年「神經網絡 NLP」課程開課啦!對正在學習自然語言處理的同學們來說,這是一份不可多得的好資源。課程內容卡內基梅隆大學語言技術學院將從神經網絡的簡要概述開始,然後花大部分時間演示如何將神經網絡應用於解決自然語言問題
  • 支持53種語言預訓練模型,斯坦福發布全新NLP工具包StanfordNLP
    StanfordNLP 用高度準確的神經網絡構建而成,允許使用自己的標註數據進行高效訓練和評估。這些模塊基於 PyTorch 構建。for the neural pipeline>>> nlp = stanfordnlp.Pipeline() # This sets up a default neural pipeline in English>>> doc = nlp("Barack Obama was born in Hawaii.
  • 復旦邱錫鵬教授:2020最新NLP預訓練模型綜述
    nlp中的預訓練模型就是這樣一類能夠在大規模語料上進行無監督訓練,學習得到通用的語言表徵,有助於解決下遊任務的nlp模型。那麼什麼是好的語言表徵呢?典型工作是EMNLP 2014的文章TextCNN[13],卷積網絡應用於nlp中特徵提取的開創性工作。還比如Facebook在ICML2017的工作。「序列模型」(Sequential models):以序列的方式來捕獲詞的上下文信息。如LSTMs、GRUs。
  • 【Github】nlp-roadmap:自然語言處理路相關路線圖(思維導圖)和關鍵詞(知識點)
    看到Reddit和Github上一個有意思的項目:graykode/nlp-roadmapROADMAP(Mind Map) and
  • 斯坦福發布重磅NLP工具包StanfordNLP,支持中文等53種語言
    新智元報導 來源:stanfordnlp.github.io這個軟體包採用高準確性的神經網絡組件構建,這些組件支持用戶使用自己的注釋數據進行高效的訓練和評估。這些模塊構建在PyTorch上。StanfordNLP具有以下特徵:本地Python實現,只需最少的設置工作;用於穩健的文本分析的完整神經網絡pipeline,包括tokenization
  • 萬物皆可Embedding之Deepwalk算法解讀
    算法思路DeepWalk將一個圖作為輸入,並產生一個潛在表示(將圖中的每個節點表示為一個向量)作為輸出,如下圖示例所示:對於圖結構來說,算法設計需要滿足以下幾個要求:1、適應性:社交網絡是不斷變化的,當網絡發生變化不能對整個網絡重新進行計算。
  • 對話清華NLP實驗室劉知遠:NLP搞事情少不了知識庫與圖神經網絡
    Google、DeepMind 等研究機構很重視這個方向,現在比較流行的圖神經網絡可以看做這方面的重要嘗試。我們有望通過圖神經網絡將結構化知識融入深度學習,實現各種計算與推理任務。 我認為,未來這兩個大方向都非常重要,它們會相互補充與促進:網際網路上有海量的非結構化數據,需要 BERT 等深度學習模型發揮重要作用;我們也積累了海量結構化知識,如何利用這些知識也具有重要意義。
  • 百度NLP | 神經網絡語義匹配技術
    二、SimNet 框架圖 1 SimNet 框架SimNet 框架如上圖所示,主要分為輸入層、表示層和匹配層。1.輸入層該層通過 look up table 將文本詞序列轉換為 word embedding 序列。
  • 斯坦福NLP團隊發布最新自然語言處理Python庫
    【版本特性】新版的StandfordNLP包含以下特性:【安裝】pip install stanfordnlp【使用】>>> import stanfordnlp>>> stanfordnlp.download('en')   # 這會下載英語的神經網絡模型
  • 一文帶你入門圖神經網絡基礎、DeepWalk及GraphSage
    最近,圖神經網絡(GNN)在各種領域越來越流行,包括社交網絡,知識圖,推薦系統,甚至生命科學。
  • 2019,不可錯過的NLP「高光時刻」
    https://stanfordnlp.github.io/stanfordnlp/GQA是一個可視化的問題回答數據集,用於支持與可視化推理相關的研究。/2019/visual-exploration-gaussian-processes/通過這篇在 Distill 上發布的文章,Augustus Odena 呼籲研究人員解決有關GAN的幾個重要的開放性問題:https://distill.pub/2019/gan-open-problems/這是圖卷積網絡(GCN)的 PyTorch 實現,用於對垃圾郵件發送者和非垃圾郵件發送者進行分類