Mining Massive Datasets課程筆記(三)

Communities in Social networks

Community Detection in Graphs

The Affiliation Graph Model(AGM)

Plan:
1. 由給定的模型生成網絡
2. 對給定的網絡找到“best”model

Model of network
Goal:Define a model that can generate networks
這個model將有一系列的參數,後續需要估計和檢測community
問題是:給定一系列節點後,communities是如何產生network的邊的呢?
這裏我們討論的模型就稱爲Community-Affiliation Graph Model它是圖的生成模型。如下圖:
圖片名稱

回到我們的plan計劃項中第一條,我們如何根據這個AGM模型生成network呢?

圖片名稱
由AGM模型的式子可以看出,只要兩個節點在某一個共同的Community中有邊,則認爲這兩個節點之間是邊的。
下面這張slide表明了AGM模型的靈活性
圖片名稱

From AGM toBigCLAM

前面AGM模型中節點要麼是某個Community的成員要麼不是,即要麼要邊要麼沒有邊,下面我們討論的是如果edge表示的不僅僅是成員從屬關係,而是成員在這個Community中的活躍度之類的信息,那麼邊的值就是一個>=0的值,等於0表示不是其成員,其它>0的值是一個degree。
圖片名稱

對於一個特定的Community A ,A中的兩個節點u,v 之間有聯繫的概率計算如上圖所示,不難理解其意義,如果兩個節點都的degree in A都接近0,即都和Community A 的聯繫不緊密,那麼上式結果也近似爲0,那麼這兩者之間有聯繫的概率也很小,degree都接近1時反之。

上面討論的是兩個節點只共同出現在一個CommunityA裏面,那麼如果兩個節點分在多個不同的Community都有重合呢
爲了解決這個問題我們首先要介紹Community Membership Strength matrix F
如下圖左邊是matrix F,行表示各個節點,列表示Community
圖片名稱
和AGM類似,兩個節點間有link的概率也是至少有一個Community C links these nodes的概率。於是有
圖片名稱

Solving The BIGCLAM

BigCLAM:How to Find F
有前面我們已經知道如果已知matrix F,求network的邊的概率是可行的,
那麼如何獲得這個矩陣F呢?
圖片名稱
這裏使用的是極大似然估計,通常我們採用取對數的極大似然函數。
圖片名稱
通俗來說就是找到參數F使得獲得的網絡圖形儘可能類似於給定的網絡圖G。根據參數F我們知道可以獲得一個網絡圖,這個網絡圖恰好就是給定的G的概率如上式argmax…因此求得這個概率的極大值即爲估計的F矩陣。使用梯度上升法求極大值。
圖片名稱
上式中每一次迭代都需要計算所有的節點,因此很浪費時間,改進如下:
圖片名稱

Detecting Communities as Clusters

我去,手賤了一下把寫好的東西都弄沒了,還沒上傳,那這部分就直接總結大意好了,反正Week3的東西總體都很好理解。
What Makes a good Cluster?
圖片名稱

一個good cluster,它內部的connection要儘可能多,與外界的聯繫要儘可能少。因此我們定義了一個Graph Cut的概念。
圖片名稱

Cut指的是有且只有一個點在clusterA中的邊,如圖中黑色邊
那麼Cut score也就可以代表cluster quality中一個重要的部分了。即上張圖中minimum的部分,即與外界的聯繫儘可能少。
但是單純使用Cut score還不夠,原因如下圖最右邊的綠色節點劃分問題。
圖片名稱

因此我們需要在此基礎上進行改進。

Graph Partitioning Criteria
圖片名稱

如上圖,ϕ(A)=Cut(A)Vol(A) 。分母指的是將V劃分爲clusterA和Cluster(V-A)後,較小的那個sets中所有節點的度的和。
ϕ(A) 越小,則cluster劃分得越好。
Example:
圖片名稱

Spectral Graph Partitioning

參考鏈接2中有圖譜論的簡單介紹,參考鏈接4中具體寫了拉普拉斯矩陣和譜聚類。這裏既然是寫課程筆記就不展開了, 建議先看看這兩個的內容。

一個無向圖對應有一個對稱的鄰接矩陣,因而也有對應的實特徵值(值的集合稱作圖的

Graph Laplacian Matrix 拉普拉斯矩陣
拉普拉斯矩陣(Laplacian matrix)),也稱爲基爾霍夫矩陣, 是表示圖的一種矩陣。給定一個有n個頂點的圖G(V,E),其拉普拉斯矩陣被定義爲:
L = D - A
其中D爲圖的度矩陣,A爲圖的鄰接矩陣。
圖片名稱
對於圖G的鄰接矩陣A中的元素Aij,Aij=1 如果i,j之間有邊,否則爲0。
矩陣A是對稱矩陣,A的特徵向量都是實向量且爲正交。
圖片名稱
度矩陣是一個對角矩陣,對角上的元素就是對應行(列)的特徵矩陣上的和。
因此拉普拉斯矩陣如下:
圖片名稱

Spectral Graph Partitioning
介紹完幾個矩陣後我們回到我們本來的意圖上來,就是利用圖譜進行圖劃分,即譜聚類
首先我們如果要找optimal Cut來劃分圖的話,可以通過定義一個function如下使得這個分離策略造成的Cut score最小。
圖片名稱

但是對於離散的點要求這個optimal Cut屬於NP問題,所以我們不妨放寬條件鬆弛爲連續的特徵向量問題。這個就用到了前面說了那麼長的拉普拉斯矩陣的特徵向量啦,真的是很巧妙啊,那麼爲什麼可以這麼用呢?怎麼用?巧妙在哪裏呢?

首先要陳述這樣一個事實:對於對稱矩陣,它的次小特徵值λ2=minxxTMxxTx
那麼對於圖G,xTLx 有什麼意義呢?
Sherry
神奇的是xTLx 可以化爲上面的形式,另外,我們還知道對於x滿足一下兩個條件:

  1. x是unit vector,長度爲1:ix2i=1
  2. x和最小特徵值0對應的特徵向量(1,1,…1)正交:ixi1=ixi=0

因此,我們對於拉普拉斯矩陣有
Sherry
我們圖G上的點按照x label標註形成向量X(x1,…xn)後,通過獲得次小的特徵值λ2 (因爲λ1=0 )就可以使得分離的代價函數最小,即爲optimal Cut。

到這裏我們就能明白前面所說的將離散問題轉化爲連續的求特徵向量的問題了:
Sherry
即圖G的拉普拉斯矩陣L,在最小的非0特徵值時對應的特徵向量即爲最合理的optimal Cut 的表示,這個向量又稱爲Fiedler向量,這個特徵值稱爲譜間距(spectral gap)或Fielder value。剩下的僅是將鬆弛化的問題再離散化,即將特徵向量再劃分開,便可以得到相應的類別。

Spectral Clustering Algorithm
說了這麼多下面總結下利用譜聚類算法將劃分圖時的步驟(3 steps):

  1. 預處理pre-processing
    將圖用矩陣表示:度矩陣,鄰接矩陣,拉普拉斯矩陣
  2. 特徵值分解decomposition
    生成最小的k個特徵值和對應的特徵向量;
  3. 分組Grouping
    將特徵向量聚類,然後劃分類別,通常對2中產生的N*k的矩陣使用k-means算法進行聚類,從而劃分k類;
    劃分方法可以有多種
    在數值計算中,求矩陣的最大特徵值,往往要比求最小特徵值更方便和高效,因此也經常對拉普拉斯矩陣L進行歸一化處理。參考文獻6 2.4節,並且文章最後解釋了爲什麼要大費周章使用拉普拉斯矩陣而不直接使用鄰接矩陣。
    這裏寫圖片描述
    ——摘自參考文獻5

Stream Algorithms

Mining Data Streams數據流挖掘

通常我們是利用數據庫或者分佈式文件系統中的數據進行數據挖掘,因此可以隨時重複訪問相同的數據。但要知道也有些數據是沒有存在數據庫中的如網絡站點的web流量,或者是數據量太大以至於查詢速度太慢如從衛星獲取的數據等。因此需要更有效更好地方式來處理。這些數據都屬於流數據。

The Stream Model

Data Management VS. Stream Management
流數據管理系統中數據的輸入數據時由外界決定的,例如谷歌搜索每秒都有成千上網條搜索項,這個數目是由用戶羣決定的。而數據庫管理系統中則由programming人員使用SQL輸入。
Sherry

若干數量的流進入流管理系統,每個流可以按照各自的時間表來提供元素,不同流的數據率或數據類型不必相同。

對於這種情況我們該如何利用有限的存儲空間來獲取流數據的信息呢。
首先介紹兩種查詢方式,Ad-hoc查詢和固定查詢:
Sherry
總結:
這裏寫圖片描述

Sliding Windows

滑窗中存儲的是最近接受的N個輸入數據,或者是在時間T內接受到的數據。存在問題是: 有可能N太大,導致內存存儲不了,或者流太多,導致存儲這些不同流的窗太多,內存存儲不了。
看一個利用sliding windows進行查詢的例子:
Sherry

Counting 1‘s

這節講的是流中的計數問題。將Stream看做一個二進制流,我們希望計算sliding windows N位中有幾個1。我們比較關心的是內存中無法存儲整個窗口的情況。
此時要精確計數是比較困難的,因此考慮近似估計。其實在海量數據挖掘中,近似處理的方法用的非常非常多,因爲我們往往對小誤差的容忍要大於時間或空間太大的容忍。
DGIM算法

Ref:
MMDS課程https://class.coursera.org/mmds-003/lecture
寫圖譜的博客http://blog.sina.com.cn/s/blog_439371b501012lgz.html
維基百科https://en.wikipedia.org/wiki/Spectral_graph_theory
July大神博客http://blog.csdn.net/v_july_v/article/details/40738211
http://lamda.nju.edu.cn/conf/MLA07/files/YuJ.pdf
譜聚類算法http://www.cnblogs.com/sparkwen/p/3155850.html
From:http://blog.csdn.net/sherrylml/article/details/49007899

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章