基于Louvain算法的聚類分析及推薦
一、算法介紹:
Louvain算法是基于模塊度的一個快速算法,用模塊性對社區劃分的質量進行衡量,如果模塊性的值越大,說明社區劃分的質量越高。并行化后的louvain算法在分布式環境下進行多次迭代,每次迭代需要同步更新多個節點的信息,即根據上一次迭代中鄰居節點的信息來更新本次迭代中的信息,從而充分發揮高并發性的優勢。
二、算法思想:
Louvain算法主要分為兩個階段,首先初始化每個節點為一個社團,不斷便利網絡中的所有節點,將其從原來的社團中取出,計算該點加入到各個社團產生的模塊度增量,如果該模塊度增量大于零,則從這些大于零的模塊度增量所對應的社團中選出對應模塊增量最大的社團,將該點與之合并。重復上述過程,直到網絡中社團不再合并。其次利用劃分得到的第一層社團構造新的網絡,新節點之間的權值就是原社團之間的權值。重復上一階段的過程,直到社團之間不能再合并為止。
三、評價模塊:
1.模塊度:
社團模塊度指標Q是用于刻畫社團性強弱 參數,定義如下:
式(1)中 ,ki 和 k j 是節點的度值 ;Ci 是節點 i所屬社團 ;m 是網絡總邊數 ;A ij 代表了節點 i 與節點 j 之間的邊的權值 ;δ(Ci ,Cj )函數表示節點 i 與 j 在同一個集群內 ,當 Ci = Cj 時 ,δ(Ci ,Cj ) = 1 ,否則為 0 。 Q 值在[0 ,1]之間 ,一般以 Q = 0 .3 作為網絡有明顯社團結構 Q 值越接近 1 ,說明發現的社團質量越高。
2、 模塊度增量
首先進行社團初始化 ,網絡中的每個節點都分配一個社團編號 ,初始時每個節點都看作一個社團 ,對應社團的模塊度增量 ΔQ[7 ] :
其中 ∑in 是社團內部邊的權值之和 ;∑out 是所有與社團內部節點相連的邊的權值之和 ;ki 是所有與點 i 相連的邊的權值之和 ;K i ,in 是節點 i 與社團 C 相連的邊的權值之和。
四、應用:
1、需求:
當今各大視頻軟件對分類搜索的功能廣泛使用,視頻推薦功能也逐漸完善,所推薦的視頻基本可以投其所好,滿足用戶需求。但是當視頻分類較多、種類較繁雜,用戶便無法快速選擇出自己最中意的分類,進而進行分類搜索,因此實現一個基于標簽推薦的模塊,即可以方便用戶使用,又能間接的誘導用戶搜索視頻,進而提高用戶粘度。
2、數據選擇:
經過對比,選取了當前版權較為齊全、用戶使用量較大、視頻種類比較繁雜的“bilibili”作為研究的目標。我們從“bilibili”的視頻信息中獲取相關標簽信息,通過數據清洗和整合,獲取了以標簽中的某些屬性為點、以同一視頻下幾個標簽的關聯關系為邊、關聯數量為權值的圖,根據社區算法將標簽進行聚類分析。
3、處理過程:
(1) 由于bilibili中標簽定數據量過大,使用louvain社區算法時,GC操作導致內存不足的問題;用連通圖來解決社區歸屬問題。對數據進行精簡,只對關注度和使用度超過一定數量的數據進行計算。最后提取出1095個有效標簽進行聚類分析。
(2) 聚類時,計算次數過少擬合度低,計算次數過多過擬合。設置適中的計算次數進而得到擬合度較高的計算結果。經過對幾次結果的對比分析,發現算法的第二次結果較為理想。
(3) 為了加快節點的遍歷過程,添加輔助索引。
4、可視化:
將計算結果可視化,如上圖所示:圖中可以看出明顯的四大聚類,從左到右依次為:MAD、虛擬歌姬、動畫和游戲。分布在正上方和右下方的,還有一些小型的聚類,如:明星、格斗。
五、結束語:
本文主要介紹了louvain算法的基本思想,和運算流程,并以實例演繹了louvain算法的用途。并說明louvain算法在處理不同數據和運行不同次數所帶來的不同結果。
社交網絡等一些復雜網絡都是不停地在進行數據更新 ,對于這樣的網絡圖應該提出怎樣的動態聚類算法也是接下來應該討論的問題。 另外如何選取最優的算法,對聚類結果進行相似性標簽的推薦,也是之后需要考慮的。
【參考文獻】
[1]金亮,于炯,楊興耀, 等.基于聚類層次模型的視頻推薦算法[J].計算機應用,2017,(10):2828-2833,2860. DOI:10.11772/j.issn.1001-9081.2017.10.2828.
[2]夏瑋,楊鶴標.改進的Louvain算法及其在推薦領域的研究[J].信息技術,2017,(11):125-128. DOI:10.13274/j.cnki.hdzj.2017.11.032.
[1]金亮,于炯,楊興耀, 等.基于聚類層次模型的視頻推薦算法[J].計算機應用,2017,(10):2828-2833,2860. DOI:10.11772/j.issn.1001-9081.2017.10.2828.
[2]夏瑋,楊鶴標.改進的Louvain算法及其在推薦領域的研究[J].信息技術,2017,(11):125-128. DOI:10.13274/j.cnki.hdzj.2017.11.032.
[3]吳衛江,李沐南,李國和.Louvain 算法的并行化處理[J].計算機與數字工程,2016,(8):1402-1406. DOI:10.3969/j.issn.1672-9722.2016.08.002.
[1]金亮,于炯,楊興耀, 等.基于聚類層次模型的視頻推薦算法[J].計算機應用,2017,(10):2828-2833,2進行860. DOI:10.11772/j.issn.1001-9081.2017.10.2828
作者:劉玉琪、盧軒、施亮、鄭壯壯