图自编码器的起源和应用
?PaperWeekly 原創 ·?作者|劉昊東
學校|電子科技大學碩士生
研究方向|推薦系統,表示學習
Kipf 與 Welling 16 年發表的「Variational Graph Auto-Encoders」提出了基于圖的(變分)自編碼器?Variational Graph Auto-Encoder(VGAE),自此開始,圖自編碼器憑借其簡潔的 encoder-decoder 結構和高效的 encode 能力,在很多領域都派上了用場。
本文將先詳盡分析最早提出圖自編碼器的「Variational Graph Auto-Encoders」這篇論文,將從以下幾個角度進行分析:
VGAE 的思想?
沒有變分階段的 GAE 的 encoder、decoder 階段?
有變分階段的 VGAE?
如何從確定分布再到從分布中采樣?
實驗效果分析
然后會再介紹兩篇關于如何應用圖自編碼器的文章。
Variational Graph Auto-Encoders
論文標題:Variational Graph Auto-Encoders
論文來源:NIPS 2016
論文鏈接:https://arxiv.org/abs/1611.07308
1.1 論文概覽
先簡單描述一下圖自編碼器的?intention 和用途:獲取合適的 embedding 來表示圖中的節點不是容易的事,而如果能找到合適的 embedding,就能將它們用在其他任務中。VGAE 通過 encoder-decoder 的結構可以獲取到圖中節點的 embedding,來支持接下來的任務,如鏈接預測等。
VGAE 的思想和變分自編碼器(VAE)很像:利用隱變量(latent variables),讓模型學習出一些分布(distribution),再從這些分布中采樣得到 latent representations(或者說 embedding),這個過程是 encode 階段。
然后再利用得到的 latent representations 重構(reconstruct)出原始的圖,這個過程是 decode 階段。只不過,VGAE 的 encoder 使用了 GCN,decoder 是簡單的內積(inner product)形式。
下面具體講解變分圖自編碼器(VGAE)。先講 GAE,即圖自編碼器(沒有變分)。
1.2 圖自編碼器(GAE)
統一規范,規定幾個 notation 如下:
圖用??表示,其中??表示節點集合,?表示邊集合
: 鄰接矩陣
: 度矩陣
: 節點數
: 節點的特征(features)維度
表示節點的特征矩陣
: embedding 維度
: 節點的 embedding
1.2.1 Encoder
GAE 使用 GCN 作為 encoder,來得到節點的 latent representations(或者說 embedding),這個過程可用一行簡短的公式表達:
將 GCN?視為一個函數,然后將??和??作為輸入,輸入到?GCN?這個函數中,輸出?,?代表的就是所有節點的 latent representations,或者說 embedding。
如何定義 GCN 這個函數?kipf 在論文中定義如下:
其中,,?和??是待學習的參數。
簡言之,這里 GCN?就相當于一個以節點特征和鄰接矩陣為輸入、以節點 embedding 為輸出的函數,目的只是為了得到 embedding。
1.2.2 Decoder
GAE 采用 inner-product 作為 decoder 來重構(reconstruct)原始的圖:
上式中,?就是重構(reconstruct)出來的鄰接矩陣。
1.2.3 How to learn
一個好的 Z,就應該使重構出的鄰接矩陣與原始的鄰接矩陣盡可能的相似,因為鄰接矩陣決定了圖的結構。因此,GAE 在訓練過程中,采用交叉熵作為損失函數:
上式中,?代表鄰接矩陣??中某個元素的值(0 或 1),?代表重構的鄰接矩陣??中相應元素的值(0 到 1 之間)。
從損失函數可以看出來,希望重構的鄰接矩陣(或者說重構的圖),與原始的鄰接矩陣(或者說原始的圖)越接近、越相似越好。
1.2.4 小結
圖自編碼器(GAE)的原理簡明、清晰,訓練起來不麻煩,因為可訓練的參數只有??和?,kipf 的代碼實現中,這兩個參數矩陣的維度分別是??和?,如果?,也只有 32512 個參數,相當少了。
下面是 VGAE(變分圖自編碼器)。
1.3 變分圖自編碼器(VGAE)
在 GAE 中,一旦 GCN?中的??和??確定了,那么 GCN?就是一個確定的函數,給定??和?,輸出的??就是確定的。
而在 VGAE 中,?不再由一個確定的函數得到,而是從一個(多維)高斯分布中采樣得到,說得更明確些,就是先通過 GCN?確定一個(多維)高斯分布,再從這個分布中采樣得到?。下面簡單描述一下這個過程。
1.3.1 確定均值和方差
高斯分布可以唯一地由二階矩確定。因此,想要確定一個高斯分布,只需要知道均值和方差。VGAE 利用 GCN?來分別計算均值和方差:
這里有兩個要注意的地方,第一個是 GCN 的下標,?和??中的??是相同的、共享的,但??是不同的,因此用下標來作區分;第二個是通過??得到的是?,這樣可以方便后續的計算。
1.3.2 采樣
既然已經得到了均值和方差(準確來說應該是均值向量和協方差矩陣),就可以通過采樣得到??了,但是,采樣操作無法提供梯度信息,也就是說,反向傳播在采樣操作無法計算梯度,也就無法更新??和?。解決辦法是重參數化(reparameterization)。
簡單說一下重參數化。如果??服從?,那么??就服從?。因此,可以先從標準高斯中采樣一個?,再通過??計算出?,這樣一來,?的表達式清晰可見,梯度信息也就有了。
VGAE 的 decoder 也是一個簡單的 inner-product,與 GAE 的 decoder 沒有區別。
1.3.3 How to learn
VGAE 依然希望重構出的圖和原始的圖盡可能相似,除此之外,還希望??計算出的分布與標準高斯盡可能相似。因此損失函數由交叉熵和 KL 散度兩部分構成:
其中,?是 GCN?計算出的分布,?是標準高斯。
不過,論文中的優化目標是這樣的:
這是用變分下界寫出的優化目標,第一項是期望,第二項是 KL 散度。
1.4 效果分析
Kipf 和 Welling 在三個數據集上進行了效果分析,任務是鏈接預測,詳情見下表:
可見,(變分)圖自編碼器在三個數據集上的效果都很好,不過,注意帶星號的 GAE* 和 VGAE*,這兩個模型是不帶 input features 的,就是說節點的 features 就是 one-hot 向量,這種情況下,(變分)圖自編碼器的效果不僅不比 SC 和 DW 好,甚至還有點差。
不過,Kipf 和 Welling 在論文中指出,SC 和 DW 不支持 input features,因此能夠使用 input features 是 VGAE 的特點之一。
以上是對圖自編碼器的開山論文 Variational Graph Auto-Encoders 的介紹,接下來看看圖自編碼器在最近兩年的一些應用。
Graph Convolution Matrix Completion
論文標題:Graph Convolution Matrix Completion
論文來源:KDD 2018
論文鏈接:https://www.kdd.org/kdd2018/files/deep-learning-day/DLDay18_paper_32.pdf
2.1 論文概覽
這是 Kipf 作為二作的一篇解決推薦系統中 matrix completion 問題的文章,發表在 18 年的 KDD。
這篇文章提出,matrix completion 任務可以視作為 graph 上的鏈接預測問題,即 users 和 items 構成了一張二部圖,圖上的邊代表相應的 user 與 item 進行了交互,于是 matrix completion 問題就變成了預測這張二部圖上的邊的問題。
為了解決 users-items 二部圖上的鏈接預測問題,這篇文章提出了基于在二部圖上進行 message passing 的圖自編碼器框架 GCMC,且引入了 side information,還分析了 side information 對于推薦系統中冷啟動的影響。
2.2 模型詳解
先簡要分析一下 GCMC 的整體框架。首先,GCMC 把 users 和 items 的初始 features?和??(one-hot 向量)輸入到一個 GCN 層中,得到 users 和 items 的 hidden representations:?,?,再將 users 和 items 的 side information??和??輸入到一個 Dense 層中,得到?side information 的 hidden representations:?,?。
然后將初始 features 和 side information 的 hidden representations 一起輸入到一個 Dense 層中,得到 users 和 items 最終的 embeddings:?,?(以上為 encoder 階段),最后通過計算內積(decoder 階段),預測 user 對 item 的喜好程度。
下面給出每一步的詳細計算方法。
首先,GCN 層的計算方式如下:
其中,?是 item j 傳遞給 user i 的信息,下標 r 指定了 user i 給 item j 的評分是 r(由于用戶的評分類別不止一種,因此使用不同的 r 來區分,即?)。
?是參數矩陣,?是歸一化因子,可以是??或者?,其中??表示 user i 的鄰居數。accum 也有兩種選擇:stack 或者 sum。?表示激活函數,可以是 sigmoid、ReLU 等。
得到了 user i 的初始 feature 的 hidden representation??后,再將 side information 的 hidden representation 與??一起輸入進一個 Dense 層即可得到 user i 的最終 embedding:
其中,右式表示得到 side information 的 hidden representation 的 Dense 層,左式表示得到最終 embedding 的 Dense 層。
在得到 users 和 items 的 embeddings 后,通過下式來預測 user i 對 item j 的評分屬于 r 的概率:
最終,GCMC 對 user i 對 item j 的評分的預測為:
2.3 效果分析
作者使用了 6 個數據集,可以分為 3 類:
對比的方法只利用 users 或 items 一方的 features:ml-100k
GCMC 和 對比的方法都不使用 side information:ml-1m,ml-10m
Users 和 items 的 side information 以 graph 的形式呈現:Flixster,Douban,YahooMusic
實驗結果:
實驗結果表明,在有 side information 時,GCMC 的效果好于其他方法,尤其是當 side information 以 graph 的形式存在時,GCMC 的效果優勢更加明顯。而當沒有 side information 時,GCMC 也表現出了 competitive results。
作者還分析了 side information 對冷啟動的影響,文中以 ml-100k 為例,將一些用戶的評分數量人為減少,然后對比了 GCMC 分別在使用和不使用 side information 時的效果。
從上圖可以看出,使用 side information 的 GCMC 效果更好,而且隨著冷啟動用戶的人數增多,引入 side information 帶來的效果提升更加明顯。
2.4 小結
該篇論文將推薦系統中的 matrix completion 任務視作 graph 上的鏈接預測任務來處理,并使用圖自編碼器,引入 side information,在一些 benchmark 數據集上超過了一些 SOTA 方法,而且還分析了 side information 給冷啟動帶來的幫助。
GraphCAR
論文標題:GraphCAR: Content-aware Multimedia Recommendation with Graph Autoencoder
論文來源:SIGIR 2018
論文鏈接:https://dl.acm.org/doi/10.1145/3209978.3210117
3.1 論文概覽
上一篇論文中,GCMC 的目標是解決 matrix completion 問題,即預測 user 對 item 的評分是多少。這篇文章要解決的問題可以歸類為推薦系統中 top-n 推薦問題,即給用戶推薦 n 個 ta 可能最感興趣的 items。
這篇文章指出,用戶在選擇圖片或者視頻時,圖片或視頻本身的 multimedia content 是最重要的因素,但已有的一些方法沒能對 multimedia content 給予足夠的重視,
因此,基于 GAE 的思想,該文章提出了 GraphCAR 模型,除了 users 和 items 之間的交互數據,該模型還利用了 users 的 attributes 和 items 的 multimedia content。
3.2 模型詳解
GraphCAR 的整體框架基本遵循著 GAE 的框架,即先使用 GCN 獲取 users 和 items 的 embeddings,然后使用內積來預測 user 對 item 的偏好評分。
首先,在 GCN 階段(即 encoder 階段),為了獲取 users 的 embedding,GCN 使用 user-item 的交互矩陣??和 users 的 attributes 矩陣??作為輸入,然后輸出 users 的 embeddings 矩陣?:
其中??是參數矩陣。對于 items 的 embeddings,只需要將 users attributes 矩陣換成 items 的 feature 矩陣??即可(?即為 multimedia content):
得到 embeddings 之后,便可利用內積形式的 decoder 計算出預測的 preferences:?。
由于 GraphCAR 要解決的是 top-n 推薦問題,因此目標函數選擇了 BPR pairwise 目標,即:
和 GCMC 的不同之處在于,GraphCAR 直接對 users 和 items 的 interactions 和 side information 一起建模,而不是像 GCMC 中那樣,先分別得到初始 features(one-hot 向量)和 side information 的 hidden representations,然后再得到最終的 embeddings。
對比下來,GraphCAR 的方式更直接,但貌似這種方法只能在有 users 和 items 的 side information 的情況下才能生效。
3.3 效果分析
論文在 Amazon 和 Vine 兩個數據集上進行了實驗,其中 Amazon 提供了 image features,Vine 提供了 video features。實驗結果如下:
另外,作者還分析了 users 交互過的 items 的數量對 GraphCAR 的影響:
從圖中可以看出,GraphCAR 對于交互數量較少的 users 的效果優勢并不明顯,而當 users 的交互數量增多時,效果優勢開始慢慢明顯起來。
3.4 小結
這篇論文要解決的問題是推薦系統中 top-n 推薦的問題,在分析發現以往的方法并沒有充分利用 items 本身的 multimedia content 后,該論文采取了直接用 GCN 對 user-item interactions 和 side information 建模的方式來得到 embeddings,隨之而來的問題是,如果不存在 users attributes 或 items multimedia content 可利用,GraphCAR 可能需要改變一些處理的方式。
總結
圖自編碼器最開始是以變分圖自編碼器的形式提出的,但近兩年基本上都應用的是沒有變分階段的圖自編碼器。
GAE 的形式很簡潔,首先通過 GCN 得到圖中節點的 embeddings(encoder 階段),然后再根據具體任務重構出原始的圖的特點(decoder 階段)。
從以上三篇文章可以看出,decoder 階段都采取的是兩層 GCN 結構,而 decoder 階段都采取的是 inner-product 結構,可以看出,也許結構上還有改進的空間,而不是僅限于兩層 GCN 或者簡單的內積形式。
點擊以下標題查看更多往期內容:?
變分推斷(Variational Inference)最新進展簡述
變分自編碼器VAE:原來是這么一回事
圖神經網絡三劍客:GCN、GAT與GraphSAGE
如何快速理解馬爾科夫鏈蒙特卡洛法?
深度學習預訓練模型可解釋性概覽
ICLR 2020:從去噪自編碼器到生成模型
#投 稿 通 道#
?讓你的論文被更多人看到?
如何才能讓更多的優質內容以更短路徑到達讀者群體,縮短讀者尋找優質內容的成本呢?答案就是:你不認識的人。
總有一些你不認識的人,知道你想知道的東西。PaperWeekly 或許可以成為一座橋梁,促使不同背景、不同方向的學者和學術靈感相互碰撞,迸發出更多的可能性。?
PaperWeekly 鼓勵高校實驗室或個人,在我們的平臺上分享各類優質內容,可以是最新論文解讀,也可以是學習心得或技術干貨。我們的目的只有一個,讓知識真正流動起來。
?????來稿標準:
? 稿件確系個人原創作品,來稿需注明作者個人信息(姓名+學校/工作單位+學歷/職位+研究方向)?
? 如果文章并非首發,請在投稿時提醒并附上所有已發布鏈接?
? PaperWeekly 默認每篇文章都是首發,均會添加“原創”標志
???? 投稿郵箱:
? 投稿郵箱:hr@paperweekly.site?
? 所有文章配圖,請單獨在附件中發送?
? 請留下即時聯系方式(微信或手機),以便我們在編輯發布時和作者溝通
????
現在,在「知乎」也能找到我們了
進入知乎首頁搜索「PaperWeekly」
點擊「關注」訂閱我們的專欄吧
關于PaperWeekly
PaperWeekly 是一個推薦、解讀、討論、報道人工智能前沿論文成果的學術平臺。如果你研究或從事 AI 領域,歡迎在公眾號后臺點擊「交流群」,小助手將把你帶入 PaperWeekly 的交流群里。
總結
以上是生活随笔為你收集整理的图自编码器的起源和应用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 支付宝拒收朋友转账不拉黑
- 下一篇: 因连续三年曝数据泄露,美国运营商 T-M