如果能夠從海量使用者中通過自動手段挖掘出乙個個的興趣圈子,對於很多具體應用來說是非常重要的基礎資料,比如可以利用使用者所屬興趣圈子進行感興趣人物推薦,或者根據所屬圈子的群體特性分析使用者的個人興趣點等,所以在sns平台下,如何對海量資料自動進行興趣圈子挖掘是個非常有用的基礎功能。
圖1 興趣圖例子
圖切割問題本質上是乙個聚類問題,幾乎所有聚類演算法的基本思想都是相近的:給定一批資料,自動對資料進行聚類,使得聚合到同一類別的資料之間比較相似,而不同類別之間的資料差異較大。圖切割問題也符合這個定義,等於是將圖中節點進行聚類,把密集相連的一批節點聚合到一起,而連線比較稀疏的節點盡可能劃分到不同的類別中。
如果用相對形式化的語言來描述的話,圖切割問題就是:給定n個點(x1, x2…,xn),聚類的目標是將這n個點分成k個簇,使得同一簇中的資料點比較相似,不同簇間的資料點比較相異。如果按照節點之間的興趣相似度構建關係圖g(v, e),問題就轉化為了在圖g上做劃分,將圖g分成k個子圖a1,a2,…ak,使得劃分後子圖內包含邊的總權值盡可能高,而子圖之間邊的權重盡可能小。在圖1所示的例子中,標為相同顏色的節點可被視為聚合到相同子圖中,邊的權值直觀表示為邊的長度,即邊越長,兩個節點距離越遠,即其相似性越小,也就是說其邊的權值小。
圖切割演算法有很多,比如min-cut,min-max cut,ratio cut等等,我們採用了譜聚類演算法來挖掘使用者興趣圈子。
譜聚類演算法和很多其他距離演算法相比有很多優點,下文會詳述此點,同樣的,譜聚類也適合解決圖切割問題。
譜聚類有個比較有趣的特性,即這個演算法可以將圖切割問題轉換為求由圖形成的矩陣的特徵值和對應的特徵向量問題,這樣就把圖切割問題轉換為矩陣特徵值求解及在其基礎上的聚類問題。
圖2 譜聚類演算法流程
圖2是利用譜聚類進行興趣圈子挖掘的演算法流程示意圖,首先我們獲得使用者之間的互動資料,由於譜聚類只能處理無向圖,而使用者之間的互動資料是有向的,所以首先根據一定規則將有向圖轉換為無向圖,之後就形成了所有使用者的興趣相似性圖。根據譜聚類演算法要求,將這個相似性圖轉換為拉普拉斯矩陣,然後對這個矩陣求其前k個特徵值及其對應的特徵向量,求解前k個特徵向量s1,s2,…,sk,組成矩陣s[n][k](n為使用者編號),這樣就將乙個原本是n*n的矩陣轉換為小很多的n*k矩陣,對s按行進行kmeans聚類,每一行對應相似興趣圖中乙個節點。其最終聚類結果就是譜聚類最終的輸出結果。
之所以採取譜聚類來解決這個問題,源於這個演算法本身具有的一些優點,比如:
譜聚類具有堅實的理論基礎:圖譜理論
譜聚類不含凸球形資料分布的隱性假設,而常見的很多聚類演算法比如kmeans, em演算法都存在這一假設。比如對於圖3所示的例子中,譜聚類的聚類效果比較好。
圖3 非凸球形資料
由於譜聚類具備獨特的優點,所以近來應用非常廣泛(語音識別、文字挖掘等),但是譜聚類的計算複雜度還是較高,所以面對海量資料,如何能夠快速計算是個問題。
為了能夠處理上億的海量資料,我們主要採取了兩項措施來對原始演算法進行改造,首先是利用mpi平台構建分布式計算系統,對於這種計算密集型迭代式應用,通常hadoop平台被認為是不太合適的,所以通過構建mpi分布式平台來加快資料的分布以提公升計算速度。
第二項主要改進措施是將譜聚類由平面型聚類(flat)改造為層次聚類(hierarchy),其基本思想也很簡單,即通過多次譜聚類迭代,首先將乙個巨大的圖劃分為較少數的密集子圖,然後針對每個密集子圖再次迭代使用譜聚類來遞迴地將其劃分為較小的密集子圖,通過幾個層級的切割,也可以有效增加分布式計算效果並大大提快整體執行效率。
當然,除了以上兩項主要改進措施,還包含一些相對細小的改進,在此就不贅述細節了。
正像上文所述,大規模sns使用者中挖掘興趣圈子的問題可以進一步抽象為使用者興趣圖的乙個圖切割問題,我們通過對譜聚類處理大規模資料進行了技術改進後,使得這項技術可以在多機並行環境下較快地處理上億規模資料的圖切割,在興趣圈子自動挖掘方面既實現了較好的挖掘效果,又能夠使得演算法處理真實世界的大規模資料,使其在現實中可行而非僅僅停留在小規模資料處理的學術研究階段。
使用者微博id
微博名身份說明
李開復創新工場董事長兼首席執行官
jackf2
創新工場豌豆實驗室 聯合創始人
宓金華創新工場魔圖精靈專案負責人
徐磊ryan
布丁 創始人 ceo 原創新工場戰略發展部總經理
張亮許紅梅grace
創新工場人力資源部副總裁
cuijin
創新工場市場總監崔瑾
裘伯純benjamin
創新工場法務負責人裘伯純
dikanggu
創新工場員工
zouyu9631
創新工場員工
表1 「李開復」所屬興趣圈子
使用者微博id
微博名身份說明
趙薇著名演員,代表作《畫皮》《還珠格格》等
一號立井
李亞鵬鄧謳歌
太合麥田**製作人
那英內地流行樂天後
veggieg
王菲老焦愛民
《杜拉拉公升職記》製片人
張揚張楊
著名導演
廖凡演員廖凡
王一涵北京中藝博文化傳播****董事長兼總經理
磨刀哎呦霍霍
編劇霍昕
表2 "趙薇"所屬興趣圈子
使用者微博id
微博名身份說明
白碩sse
上海**交易所總工程師,ir與nlp專家
林鴻飛大連理工大學電子資訊與電氣工程學部 副部長
關毅的圍脖
哈爾濱工業大學計算機學院教授、博士生導師關毅
王斌_ictir
中國科學院計算技術研究所副研究員,博士生導師王斌
itnlp
哈爾濱工業大學智慧型技術與自然語言處理(itnlp)研究室
孫茂松清華大學電腦科學與技術系教授、中國中文資訊學會副理事長孫茂松
張穎峰上海載和網路科技**** 研發總監
韓先培中國科學院軟體所助理研究員
梁斌penny
清華大學電腦科學與技術系在讀博士;《走進搜尋引擎》《深入搜尋引擎》作者,thuirdb的coder。
張俊林say
表3 「自然語言處理與資訊檢索」興趣圈子
通過大量的聚類資料分析,使用互動資料構建使用者興趣圖得出的興趣圈子大部分屬於以下兩種型別:一種型別是同事朋友圈子,這是因為線下關係遷移到網路的體現;另外一種比較常見的是興趣類似的微博使用者,比如nlp圈子,nosql圈子這種根據討論技術確定的興趣圈子等,這是由於共同關注相似話題並經常互動形成的。
大規模機器學習
如果我們有乙個低方差的模型,增加資料集的規模可以幫助你獲得更好的結果。我們應 該怎樣應對乙個有 100 萬條記錄的訓練集?以線性回歸模型為例,每一次梯度下降迭代,我們都需要計算訓練集的誤差的平方和,如果我們的學習演算法需要有 20 次迭代,這便已經是非常大的計算代價。首先應該做的事是去檢查乙個這麼大...
大規模快速發展
infoq u0026 xd n u0026 xd n u0026 xd n humble 在演講中,我引用了 douglas hubbard為cto雜誌寫的一篇文章,douglas hubbard是優秀著作 how to measure anything 的作者。即使專案中有著非常不確定的開發成本...
大規模快速發展
infoq humble 在演講中,我引用了 douglas hubbard為cto雜誌寫的一篇文章,douglas hubbard是優秀著作 how to measure anything 的作者。即使專案中有著非常不確定的開發成本,我們也沒有發現這些成本對投資決策有著重要的參考價值 唯一重要的未...