Context-Aware Network Embedding for Relation Modeling
論文:http://www.aclweb.org/anthology/P17-1158node
創新點:
- 考慮屬性連邊關係
- 引入卷積神經網絡
- 結構信息藉助深層網絡表示,將不一樣節點間關聯信息融入CNN中
- 基於TensorFlow 架構實現CNN
基於上下文感知網絡嵌入的關係建模
本文主要針對目前存在的 NE 方法對於每一個頂點僅有一個簡單 embedding,沒有考慮到網絡節點根據不一樣的交互對象會展示出不一樣交互特性的缺陷,提出了上下文敏感的網絡表示(CANE)。
- 首先經過 cnn 獲得網絡頂點的一個 embedding(context-free embedding)
- 以後經過計算該節點與相鄰節點的 mutual attention(在 pooling 層引入一個相關程度矩陣),獲得頂點針對該相鄰節點的 context-aware embedding
- 最終頂點的 embedding 表示由這兩個 embedding 結合獲得
上下文感知的網絡嵌入框架:
無上下文嵌入: 與不一樣鄰居交互時,嵌入保持不變
上下文感知嵌入:面對不一樣鄰居時動態
network embedding(網絡嵌入方法)
學習網絡中節點的低維潛在表示,學到的特徵用來:用做基於圖的各類任務特徵:分類,聚類,鏈路預測
出現背景:信息網絡可能包含數十億個節點和邊緣,所以在整個網絡上執行復雜的推理過程可能會很是棘手
中心思想:找到一種映射函數,該函數將網絡中的每一個節點轉換爲低維度的潛在表示
總結
任務
給定:節點描述信息,及其交互信息
目標:使用低維有效的向量表示節點信息
背景
1. 與不一樣鄰居交互時,展現不一樣的方面(如研究人員以不一樣研究主題與合做夥伴合做,用戶分享不一樣興趣給不一樣鄰居,網頁連接到不一樣頁面用於不一樣目的)
2. 現有 NE 方法:
(1)與不一樣鄰居交互時,不能靈活處理側重點轉換
(2) 限制頂點間的交互關係:如AB分享不一樣興趣,但卻彼此相近,由於由中間人聯繫
1. 概述
現有方法:無上下文嵌入,與其餘頂點交互時忽略不一樣角色
提出:上下文相關的網絡嵌入(CANE)
經過相互關注機制學習頂點的上下文感知嵌入
CANE:應用在基於文本的信息網絡
利用節點豐富的外部信息:文本、標籤、其餘元數據
此處上下文關係更重要
當節點 u和v 交互時,相互關聯的文本信息分別來自 Su 和 Sv ,對於每一個頂點,可以使用神經網絡構建基於文本的無上下文嵌入
引入相互注意方案,將u和v間的相互關注創建在神經模型中(引導神經模型)
實驗結果:
適合涉及頂點間複雜交互的狀況
應用方面:鏈路預測、頂點分類
2. 相關概念
信息網絡 G = (V, E, T)
1. V 頂點集合
2. E《 V*V 邊集合
3. T 頂點的文本信息
4. eu,v 頂點(u,v)間的關係 w 爲權重 (Wu,v !== Wv,u)
5. 頂點文本嘻嘻被表示爲單詞序列 Sv = (w1, w2, ...,wnv)
6. NRL 根據頂點結構和相關信息學習一個低維矩陣v 進行表示
3. 模型構建
充分利用網絡結構和文本信息,提出兩類頂點嵌入:
(無感知/上下文感知,決定V是否爲上下文感知)
鏈接二者:V = Vs * Vt
CANE :旨在最大化邊的整體目標函數(基於結構的目標、基於文本的目標)
每一個邊L(e) 包含兩部分
Ls(e) ,Lt(e) 分別爲基於結構、基於文本的目標函數
3.1. 基於結構的目標函數
旨在使用基於結構的嵌入來測量有向邊的對數似然(無向邊可認爲是具備相反方向相等權重的兩個有向邊)
根據 LINE 方法,定義v 基於 u 的條件機率
3.2. 基於文本的目標函數(無感知/上下文感知,決定V是否爲上下文感知)
從關聯頂點的文本信息中獲取
上面的條件機率將兩種頂點嵌入映射到相同的表示空間,考慮其各自特色,不設置徹底相同,使用softmax 函數計算機率(如eq4)
4. CNN 在表示學習的轉化應用
4.1. 無上下文文本嵌入
將節點的單詞序列做爲輸入,CNN 經過三層得到基於文本的嵌入
1. Looking-upweb
S = (w1, w2,...,)
將全部text 構成詞彙表,對應於每一個節點,有則爲1,沒有爲0,獲取嵌入序列 S
d 爲單詞嵌入的維度
2. convolution算法
卷積層提取輸入嵌入序列 S 的局部特徵
方式:矩陣點乘:卷積核爲行向量,一行一行掃描
使用卷積矩陣在長度爲l 的滑動窗口執行卷積運算
Si:i+l-1 表示第 i 個窗口內的字嵌入,b 爲偏移向量
d 爲卷積核數量(l * d`)對應於滑動窗口大小爲l 個詞向量大小
3. max-pooling
在{x0, x1...} 運行最大池化和非線性轉換,每一個卷積核獲得特徵值爲
(Vt 與它與之交互的其餘頂點無關,故命名爲無上下文的文本嵌入)
此處獲得頂點 text 的d 維表示
4. Content-aware-CNN
用CNN 對頂點的文本信息進行編碼獲得基於文本的嵌入
這裏並未實現節點間content-aware ,只是用CNN作的一個 text 向量表示
採用相互關注機制獲取上下文感知的文本嵌入,使池化層得知頂點間文本嵌入的影響
過程以下圖:
looking-up 和convolution 階段類似
池化前,引入注意力矩陣 A ,非線性變化後獲得相互關係矩陣F,行平均池化獲得 U 的表示,列平均池化獲得 V的表示
引入softmax 歸一化
嵌入生成過程:
1. 給定邊:eu,v 對應於文本序列 Su Sv
2. 經過卷積層獲得矩陣P Q
(m 和 n 表明 S 的長度)
3. 經過引入注意矩陣 A ,計算相關性矩陣 F
(F 中元素Fi,j 表示兩個隱藏矢量P Q間的相關分數)
4. 沿着F的行和列進行池化操做,生成重要性向量, 行池,列池,採用平均池操做,得到重要性向量 gp 和 gq
5. 使用softmax 函數轉換重要性載體 gp gq 爲 ap aq,ap的第i個元素
6. u 和 v 的上下文感知文本嵌入計算爲
7. 所以:給定邊(u,v),可得到結合結構嵌入和上下文感知的文本嵌入
4.2. CANE 優化
由 eq 3 和 eq6 可知,CANE 旨在最大化u v 間的幾個條件機率
使用softmax 優化條件機率計算花銷太大,經過最大化條件機率密度,使用負抽樣,轉化目標函數爲
k 爲負樣本數量
0 sigmoid 函數
頂點分佈:
dv 爲 d 的出度
使用 Adam 優化轉化後的目標函數
5. 實驗
dataset :
實驗:
1. 三個數據集上進行鏈路預測
2. Cora 上進行節點分類
6. baseline
僅考慮結構:
- MMB(Mixed Membership Stochastic Blockmodel)
- 關係數據的傳統圖形模型,容許每一個頂點造成邊緣時隨機選擇不一樣「主題」
- DeepWalk
- 經過網絡隨機遊走並使用Skip-Gram 模型學習頂點嵌入
- LINE
- Node2vec
- 基於DeepWalk 的偏向隨機遊走算法,可有效檢索鄰域架構
結構和文本:
- Naive Combination
- 簡單將基於結構的嵌入於基於CNN 的嵌入鏈接表示頂點
- TADW
- CENE
- 經過將文本內容視爲特殊頂點利用結構和文本信息,並優化異構連接的機率
7. 評估指標和實驗設置
- 鏈路預測
- 採用標準的評估矩陣 AUC,表示隨機未觀察到的連接中的頂點比隨機不存在的連接中的頂點更類似的機率
- 頂點分類
- L2 正則化邏輯迴歸(L2R-LR) 訓練分類器,並評估各類方法的分類準確性
實驗設置
全部方法設置嵌入維度爲200
- LINE
- 負樣本數量 5
- 分別學習100 維一階和二階嵌入,鏈接造成200 維嵌入
- node2vec
- CANE
- 應用網格搜索設置CANE中的超參數
- 將負樣本數k 設置爲 1,加快訓練過程
- 用三個版本CANE 驗證
- text-only
- CANE without attention
- CANE
8. 結果顯示
鏈路預測
頂點分類
網絡分析任務(頂點分類、聚類)須要全局嵌入,而不是每一個頂點的上下文感知嵌入
經過簡單平均全部上下文感知嵌入生成頂點u 的全局嵌入(N爲頂點數)
9. 可改進/受限
- 本文考慮的 context 是針對一條邊所鏈接的節點文本信息,
- 可將節點 context 認爲是該節點鏈接的邊及其鄰居節點信息
- 節點表示可能方案:將抽取到的selective attention 找到和該節點鏈接重要的邊,再使用mutual attention 對節點的text 和 邊鄰域節點的text 進行融合表示