這是博客搬家到博客園之后的第一篇文章,也是我最近對微博社交圈子挖掘的一些思考和總結,最近主要的思考和研究,主要針對一下幾個問題:
- 層次性
- 重疊性
- ego network
- 有向社交網絡
- 帶權社交網絡
- 統一解決上面的問題(!)
這幾個,都是社交圈子挖掘時候我們所面臨的問題,在挖掘逐漸深入的過程中,問題會一個一個顯現出來。我們就要一個一個解決掉,最后要能夠統一在一個方法,一個框架中。我在思考的過程中,也閱讀了之前的研究,絕大部分都是針對其中的一個問題,或者兩個問題。很少能夠解決全部的問題。那我下面嘗試分析一下這些問題的產生原因,以及一些可嘗試的方法。
層次性
層次性是一個社會屬性,在我們的社交圈子中非常的明顯。比如,我的一個大一點的圈子是計算所,小一點的圈子是實驗室。這種層次結構非常多,很多這個包含關系的層次結構。而且,層次結構也是很重要的,在網絡中學習、了解網絡的結構性質很有幫助。有一個應用,比如說,獵頭在找人的時候,想知道哪些人都是百度的,可是並不是每個人都在自己的profile中寫了公司是百度的資料,這個時候,就可以通過圈子挖掘的算法,將潛藏的信息挖掘出來。不同的層次,可能代表着公司中的不同的組。這個需要在實驗過程中,自己體會,很有樂趣。針對層次性的問題,一個很直接的揭發就是層次聚類。可以根據不同的閾值獲得不同層次的結果。不過,這個方法,要針對不同的層次,設定不同的閾值,並不是那么直接。
重疊性
這個是有社會中人的屬性決定的:人會有小學同學、中學同學、大學同學、以前的同事、現在的同事、家人,興趣小組等等關系圈子。首先,以個人為中心,個人出現在所有的這些圈子中(這也是下面要談的ego network的問題),具有重疊性。另外,現實中,我的小學同學可能是在中學、大學都是同學,甚至非常有緣分的,工作了還是同事。所以重疊性是客觀存在的,我們要正視這個問題。目前,在我的實驗中,k-clique算法,針對重疊性,要過比較好。我之前的博客,也有介紹,大家可以看看效果。不過,一般的聚類和基於圖划分的方法,都不具備這個特點。但這是很重要的一個性質。
Ego network
以前,在做社交網絡的時候,並沒有明確提出要針對個人、以個人為中心進行檢測。基本都是對整個網絡進行划分,對划分的評價也是針對整個網絡進行的,比如Q函數。那為什么要構建ego network,以個人為中心進行檢測呢?直觀上說,沒有問題。那么深層的原因呢?這個仍舊要從社會因素、社會的個體因素的角度理解。以微博為例(微博可以認為是一個社會的縮影),微博上的用戶活躍度不同,最直觀的表現有:1)更新微博比較頻繁;2)關注、粉絲比較多;3)關注、粉絲變化也比較多。有的用戶喜歡和朋友們交流,有的用戶不喜歡。有的用戶覺得微博是媒體,有的用戶覺得微博是SNS。這些特點,都會讓不同用戶的關注、粉絲結構變化比較大。間接的結果就是用戶的圈子大小、多少不同。所以,圈子挖掘要針對個人構建ego network,然后對該網絡進行分析等。既然是針對不同的用戶,構建不同的個人網絡。我們是否還能夠采用統一的閾值呢?當然不能。所以,針對不同的用戶,學出相應的閾值,是非常重要的。這也是我最近研究的重點之一。
有向和帶權的社交網絡
我在做社交圈子挖掘的時候,主要針對的是微博。由於微博自身的媒體、SNS的性質,微博的關系是有方向的。所以,我們在挖掘過程中,是否能夠充分利用這一點呢。另外,產生關注關系的原因有很多,比如有的人會礙於面子的原因關注的。還有,用戶之間的交互有的多有的少。這些因素就直接導致了,社交網絡是一個帶權的網絡,社交網絡中的邊的權重,可以理解為用戶之間的緊密度。我們可以考慮不同的緊密度計算方法。比如互相轉發,評論,@的次數之類的。總而言之,充分考慮方向和權重的因素。能夠很大程度上提升效果。在我的嘗試方法中,這兩個也是重要的因素。
總結
上面干巴巴的說了很多問題。可能不是很有趣,但確實是我們在做社交挖掘過程中需要注意的問題。上面是一些點,如何將這些點,有機的結合在一起,將是一件更有挑戰的事情。到目前為止的研究,已經有一些嘗試,我會逐漸在后續的博客中,和大家分享。
后記
博客寫多了,就會發現,大家更喜歡有例子,有數據,有結果的博文。所以,我想類似這種概述性質的,還是少寫為妙。多將一些論文中的觀點總結,寫出來,實現並且給出結果。這樣會更有幫助,讓大家直觀的知道這些方法的優缺點。我想我更多的路子,會是這樣。並且,我真心希望更多的關注社交網絡的同學一起討論。我們國內也可像國外的大學一樣,做出一些社交網絡挖掘的工具,讓老外用我們的。