文章目錄
前面幾課時講的主要是圖的性質、一些基本結構和針對結構的算法。而從現在開始就要涉及到具體的 learning 任務了。這一講要解決的主要問題是:給定一個網絡以及網絡裏一部分節點的標籤,我們如何爲其它節點分類。(semi-supervised)
我們使用的模型叫 collective classification model,其中有三種近似推斷的方法,它們都是迭代型算法。
- relational classification
- iterative classification
- belief propagation
exact inference
vs.approximate inference
例如在一個圖裏每個節點都是離散的隨機變量,而所有節點的類別的聯合分佈爲 。那麼我們要得到某個節點的類別的分佈就是求 在該節點上的邊沿分佈。而邊沿分佈需要累加其它所有節點,這個計算量爆炸,因此需要近似推斷。
近似推斷其實就是縮小傳播範圍的過程,與其考慮所有節點,我們只關心目標節點的鄰接點。這裏涉及到信息傳遞,就是類似 GNN 裏的 aggregation,後面會說到。
Node Classification
給節點分類,我們的第一想法是節點間通過邊的連接存在着相關性,那我們直接通過相關性對節點進行分類。關聯性主要有三種
- homophily:“物以類聚,人以羣分”,有相同性質的節點間可能存在更密切的聯繫
- influence:“近朱者赤,近墨者黑”,一個個體有可能會受其它個體的影響而具有某種性質
- confounding:大環境可能會對個體性質和個體間的聯繫產生影響
那麼將這種關聯性的特點應用在節點分類裏,相似的節點間一般會有直接的聯繫,互相連接的點很有可能屬於同一類別,這就是 guilt-by-association (關聯推斷)。而節點類別的判斷可以基於節點的特徵以及鄰接節點的類別和特徵。
由於做的是近似推斷,所以這裏需要做出馬爾可夫假設,即節點 的類別 只取決於它的鄰接節點 。因此有
Collective classification 大體分爲三步:
- local classifier:就像一般的分類任務一樣,只依賴節點自己的特徵信息而不牽扯任何網絡信息
- relational classifier:考慮鄰接點的標籤和特徵
- collective inference:迭代地將 relational classifier 應用在每個節點上,相當於拓展了節點的“感知野”
Probabilistic Relational Classifier
基本思路很簡單,每個節點類別的概率是其鄰接節點的加權平均。
首先將有標籤的點的類別初始化爲標籤,沒有標籤的點初始化爲隨機。然後按隨機順序進行鄰接節點類別加權,直到整個網絡收斂或達到最大迭代次數。但這樣做有兩個問題,第一不保證收斂;其次這樣的模型並沒有用到節點的特徵。
Iterative Classification
其實就是加上節點特徵後的迭代過程。(1) Bootstrap phase,通過訓練集訓練兩個分類器,一個針對節點本身的特徵,一個針對節點和網絡連接特徵 (數據來自其它網絡),比如 SVM 什麼的。然後對每個節點提取特徵並用第一個分類器來初始化標籤。因爲分類器並沒有考慮網絡信息,因此還需要 (2) Iteration phase 對網絡中的關聯進行迭代,即使用第二個分類器每個節點根據其鄰接點更新特徵和標籤,直到收斂或達到最大迭代次數。然而這個方法依然無法保證收斂。
slide 裏給了一個用 word-bag 作爲特徵的網頁分類的例子,感興趣可以去看看。
接下來是一個 iterative classification 的應用,對 fake reviewer/review 進行分類。它將 reviewer 和網頁作爲二分圖處理,雖然也可以加上 reviewer 間的關係,但那樣做會破壞這個方法的兩個優點:(1) 迭代次數有上界;(2) 時間複雜度和邊的條數成線性。
論文裏給 reviewer,review 和網頁都定義了 quality score。然後大致按照上面講的方法對這些值進行迭代更新。
- reviewer:
- review:
- 網頁:
有學生問到一個問題:如果一個人對所有網頁都給 good review,那他算不算 fake?
Michele 的回答是這樣做只會讓這個人的評分趨近 而不會像那種給好網頁評負分的真正的 fake reviewer 那樣得分趨近
另一個有意思的問題是,如果某個人口味獨特,給某些奇怪的網站評了高分,會不會被認爲是 fake?
我很好奇口味有多獨特,奇怪的網頁指什麼。但實際上世界很大,網絡規模也很大,有獨特癖好的不止你一個,因此你不孤單。總有那麼一羣人給這些奇怪的網頁評高分,相對來說也就不會被分爲 fake。不過這個問題也得看實際情況。
Belief Propagation
信念傳播是一個動態規劃的過程,主要用於解決圖模型中的條件概率問題。不過在看它到底是什麼東西前我們先了解下信息傳遞是怎麼回事。想象一羣高度近視的人不戴眼鏡在操場上排了個縱隊,他們只能看到前面和後面一個人。這種情況下如何讓他們知道自己在第幾個?很簡單,第一個人告訴第二個人“你前面有一個人(就是第一個人自己)”,第二個人告訴第三個人“你前面倆人”,依次類推所有人都知道自己第幾了。同理,如果從最後一個人開始往前,那麼就能知道隊伍的總人數了(正數和倒數第幾都有了)。這個道理用到網絡裏其實差不多,每個節點能知道自己的大概位置。但是一旦遇到環,這個方法就沒完了……這個我們待會兒再說。該介紹信念傳播的算法了:Loopy Belief Propagation
在上圖的簡單網絡結構中,節點 發給 的信息包含了節點 發給 的信息。因此先做如下定義
- label-label potential matrix :表示節點 是類別 的條件下,其鄰接節點 爲類別 的概率
- prior belief :表示節點 爲類別 的先驗概率
- :節點 在多大程度上認爲其鄰接節點 是類別 (不知道這裏能不能算作是一個概率)
這個式子應該很好理解:節點 爲 時,有個先驗 ,同時它會收到節點 的信息 ,然後根據類似轉移矩陣的 得到節點 。這裏的 類似於學習率。
老規矩,隨機順序迭代,直到收斂,然後就得到了節點 是類別 的信念。
好,信念傳播的過程和模型介紹了,需要來解決環的問題了。在傳播過程中,環的存在可能會導致信念的重複累加,但這樣對結果不會造成太大影響,因爲它無非就是讓節點更加確信結果而已。其最主要的問題是可能會導致原本相關的信息被作爲獨立信息來處理,如下圖中圈出的兩個信息。這兩條信息其實是同一條,但因爲信念傳播是局部算法,因此它會將這兩條信息作爲相互獨立的兩條信息來對待。那我們怎麼解決呢?我沒理解錯的話 Michele 的意思是不用處理……因爲這個例子很極端,而實際中環的影響很弱,比如有些環很~長,而大多數環存在至少一種弱相關性1。
圖裏那兩個
T4F1
應該是T4F2
核心算法已經講了,後面還舉了個栗子,自己看 slide 吧。
這裏的 weak correlation 不太明白是什麼意思。弱相關能解環?還是說這裏的 correlation 就是 link 的意思,然後 weak 代表傳播的概率在這裏很小? ↩︎