异构图-GTN(Graph Transformer Networks)
上一節的HAN表示異構圖的Attention Network,通過手動設置Meta-path,然后聚合不同Meta-path下的節點attention,學到節點最終的表示。但是這個方法是手動選擇Meta-path的,因此可能無法捕獲每個問題的所有有意義的關系。同樣,元路徑的選擇也會顯著影響性能
而Graph Transformer Networks是自動聚合Meta-path,同時以端到端的學習方式轉換圖上的節點表示形式。
幾個概念
- τv\tau ^vτv:節點的類型
- τe\tau^eτe:邊的類型
- ACM數據集包含:Paper(3025),Author(5835),Subject(56)個類型,τv=3,τe={PA,AP,PS,SP}\tau^v=3,\tau^e = \{PA, AP, PS, SP\}τv=3,τe={PA,AP,PS,SP},需要注意的是Author和Subject之間沒有邊的連接, 所以沒有AS和SA的關系。
- {Ak}kK=1,K=∣τe∣\{A_k\}^K_k=1, K = |\tau^e|{Ak?}kK?=1,K=∣τe∣:鄰接矩陣,例如Paper與Author的鄰接矩陣的大小是3025×58353025 \times 58353025×5835,而Paper與Subject的鄰接矩陣的大小是3025×563025 \times 563025×56,因此這兩個鄰接矩陣的shape大小不同。為了把shape統一到一起,需要將節點組合在一起,形成統一的一個鄰接矩陣。如下圖所示藍色的部分就是PA的鄰接矩陣,其余的地方數據為0,表示沒有邊的連接
- 特征矩陣: 每個Paper都有自己的特征,例如Paper1 = [1,0,0,0,1,1,0,....,0,0],Paper2=[1,1,0,1,0,1,0,.....,0,0],而Author的特征是將對應的Paper特征拼在一起,例如Author1 = [Paper1, Paper2]=[1,1,0,1,0,1,0,....,0,0],同理Subject也是將對應的Paper拼在一起,例如Subject1 = [Paper1, Paper3] = [1,1,0,1,1,1,0...,0,0]。需要注意的是,這里并不一定是要拼接在一起,可以做均值Pooling、或者max pooling、或者求和,可以根據自己的任務來選擇。
GTN如何組合多元的Meta-path的
已知τe={PA,AP,PS,SP}\tau^e=\{PA,AP,PS,SP\}τe={PA,AP,PS,SP},想得到PAP這個Meta-path下,所形成的Paper和Paper之間的鄰接矩陣,那么就可以做AdjPA?AdjAPAdj_{PA} * Adj_{AP}AdjPA??AdjAP?,也就是meta-path={PAP}={PA,AP}=AdjPA?AdjAP\{PAP\}=\{PA, AP\}=Adj_{PA} * Adj_{AP}{PAP}={PA,AP}=AdjPA??AdjAP?,矩陣的相乘相當于節點的轉移,通過A節點得到P節點之間的連接關系。
反之,如果meta-path={PAP}={PA,PA}=AdjPA?AdjPA\{PAP\}=\{PA, PA\}=Adj_{PA} * Adj_{PA}{PAP}={PA,PA}=AdjPA??AdjPA?,這樣是沒有一個具體的物理意義,同理{PA,PS},{AP,SP}=Nan\{PA,PS\},\{AP,SP\}=Nan{PA,PS},{AP,SP}=Nan,(在鄰接矩陣上相乘得到0矩陣)。
meta-path={APA}={AP,AP}=AdjAP?AdjAP=AA\{APA\}=\{AP, AP\}=Adj_{AP} * Adj_{AP}={AA}{APA}={AP,AP}=AdjAP??AdjAP?=AA得到的和Paper無關,因為我們的任務是做Paper的分類,對結果沒有影響。
算法流程
矩陣A表示多種Meta-path下的鄰接矩陣,利用可學習的參數w?1w_\phi^1w?1?做softmax,得到的向量,與矩陣A相乘
例如:τe={t1,t2,t3,t4}\tau^e=\{t_1,t_2, t_3,t_4\}τe={t1?,t2?,t3?,t4?},有四個鄰接矩陣A={A1,A2,A3,A4}A = \{A_1, A_2,A_3,A_4\}A={A1?,A2?,A3?,A4?},創建四個可學習的參數W?1={α11,α21,α31,α41},W?2={α12,α22,α32,α42}W_\phi^1=\{\alpha_1^1, \alpha_2^1,\alpha_3^1,\alpha_4^1\},W_\phi^2=\{\alpha_1^2, \alpha_2^2,\alpha_3^2,\alpha_4^2\}W?1?={α11?,α21?,α31?,α41?},W?2?={α12?,α22?,α32?,α42?},然后將W?1W_\phi^1W?1?和W?2W_\phi^2W?2?做一次softmax,然后與鄰接矩陣相乘,得到Q1=α11?A1+α21?A2+α31?A3+α41?A4Q_1=\alpha_1^1 * A_1 + \alpha_2^1 * A_2 + \alpha_3^1 * A_3+\alpha_4^1 * A_4Q1?=α11??A1?+α21??A2?+α31??A3?+α41??A4?相當于對A矩陣進行了一次加權求和,同理得到Q2Q_2Q2?矩陣,然后將Q1Q_1Q1?與Q2Q_2Q2?相乘的到A1=Q1?Q2A^1 = Q_1 * Q_2A1=Q1??Q2?,A1A_1A1?相當于聚合了一次Meta-path之后的到的鄰接矩陣,也就是上面講的meta-path={PAP}={PA,PA}=AdjPA?AdjPA\{PAP\}=\{PA, PA\}=Adj_{PA} * Adj_{PA}{PAP}={PA,PA}=AdjPA??AdjPA?
如果要學習任意長度的Meta-path,那么可以學習多個channel,這樣就學習出多個Meta-path下的聚合方式,
總結
以上是生活随笔為你收集整理的异构图-GTN(Graph Transformer Networks)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 家用投影仪哪个最好
- 下一篇: 丙烯颜料怎么洗掉(丙烯颜料上了衣服怎么办