「社交網路分析」是門怎樣的學科?
我是研究這個領域的,在這裡簡單介紹一下social network analysis的幾個研究熱點。
首先簡介network的定義。一般來說,一個network被定義為一個random matrix,即網路中有哪些nodes是確定的,而nodes之間是否有edge相連是隨機的,任何兩個nodes之間有一個edge probability,整個網路上的edge probabilities就構成了一個probability matrix. 如果網路中有n個nodes,那麼probability matrix就是一個n by n matrix。
social network analysis作為統計學的新興領域,可稱為「熱點"的問題汗牛充棟。因此簡要介紹下自己比較熟悉的三個方向:
1. 估計一個靜態網路的隨機產生機制。這是一個非常大的領域,方法多,理論成熟,應用廣泛。主要包括兩大問題:1. community detection(即clustering),和 2. link prediction
先說community detection. 給定一個靜態網路的observation,要求估計edge probability matrix,或者其某種特定結構,比如給nodes聚類。一開始人們只能處理非常簡單的結構,比如假設網路中的nodes分屬於K個communities(或者叫groups),兩個nodes間的edge probability完全由他們各自屬於哪個communities決定。這個叫stochastic blockmodel. 而對應的聚類分析就叫做community detection,具體的估計方法這裡就不介紹了。
social network analysis里這種通過edges對nodes進行的聚類是高度精確的。有多精確呢?隨著network中nodes增多,正確率會迅速地收斂於100%,這在一般machine learning里那種k-means處理的聚類分析的setting下是天方夜譚(相當於說,要求被聚類的點越多,整個聚類的正確率也越高)。
再說link prediction. 理論發展到現在,人們已經有辦法直接估計這個edge probability matrix. 有了probability matrix就可以做link prediction,鑒別哪些edges看起來shaky,他們的出現純屬巧合,或者可能有觀察錯誤;而哪些node pairs之間看起來應該有edge相連。一個熱門的應用就是分析販毒、恐怖主義等跨國犯罪組織的網路,這些網路通常中通常有大量edges無法觀測到,而link prediction可以讓相關的調查監控精確制導。
social network analysis的數學,很多乍看都是違反統計學常識的。眾所周知,一個Bernoulli(p)隨機變數,如果只有一個觀測值,就不可能精確估計p. 再如一個simple regression,不管是linear還是nonparametric,如果只觀察到y而沒有觀察到x,就不能進行任何有意義的估計;特別地,如果y中帶noise,無法對y進行denoise. 而這兩個在經典setting下無法逾越的障礙,到了social network analysis里link prediction的非常相似的setting中都可以輕鬆克服。
2. 研究一個靜態網路和node變數的互動關係。這是一個有很多方法,理論不成熟,又有著巨大應用前景的領域。目前研究的主要關注點是:用node covariates幫助network估計,或者反之。
首先再稍微介紹下node covariates. 很多networks里除了觀測到edge有無(有時候還有edge weight大小),還會觀測到node上的covariates. 比如在一個小學生的網路中,除了誰跟誰是朋友,每個小學生還帶有性別、年齡/年級、家庭情況、興趣愛好等等種種屬性,它們量化之後就成了node covariates.
然後介紹問題。 上一個大問題中提到的兩個小問題,都可以加入node covariates進行分析。比如community detection,不僅network中有clustering結構,node covariates中也可以有。能不能將兩者combine起來,在finite sample時提高clustering的精確度呢?(因為實際中network有時很小,根本達不到理論上精確度接近100%所需nodes數目)。
另一種方向上的研究,即用network幫助估計node covariates,想法也很自然。一個人的社交網路可能給自己帶來影響,所以可以希望通過研究一個人的社會聯繫,加上此人某些已觀察到的屬性,來判斷其某種未觀測到的屬性。
兩者在建模上也有多種選擇,到底是node covariates決定了network,還是反之,還是兩者共同取決於一個更本質的結構(比如clustering結構),現在各種paper莫衷一是。大致上還是必須依不同的應用情境具體分析。
還有更explorative的統計學工具,比如test來判斷network和node covariates之間是否correlated,注意這裡想要定義一個persuasive的correlation都不是件容易的事。
3. 動態網路分析。這是一個數據豐富但整齊性差、渴求方法、理論幾乎空白、應用前途不可限量的領域。它的問題比前面提到的兩大塊顯得分散許多,我只能簡單地舉幾個例子。
首先,所有傳統上對靜態網路提的幾乎所有估計問題,都可以原封不動搬到動態網路上。這也是目前動態網路屈指可數的理論成果最集中的部分。具體做些什麼大家不難腦補,我就不贅述了。不過我要提一點,靜態網路中的一個問題,在動態網路中可以有變種,如link prediction,有了1~T時刻的觀測,在T+1時刻是要求預測整個網路,還是要求對partially observed的T+1時刻網路的edges進行去偽補缺。
其次,數據多但是大多又不理想。動態網路本質上是一個複雜的時間序列,每一個時間點上snapshot卻比一般的時間序列數據複雜得多。而且時間點的數目經常非常之少,這就導致平穩性的估計通常既必需又困難。總而言之,處理這樣的數據要求高超的建模技巧和嚴格而謹慎的分析。目前還沒有任何一個動態網路的模型能如stochastic blockmodel一樣得到公認,作為很多人研究的基礎和對象,相反各種模型差距甚大,這足以說明問題的難度。具體處理數據又常遇到額外的障礙,比如老nodes退出、新nodes加入,動態網路的edge經常有缺失,nodes數目也比較小,等等。
再次,某些動態網路數據和靜態網路大不相同。靜態網路數據必然是一個snapshot,即同時觀察到所有能觀測的nodes和edges。而某些動態網路,如Twitter的tweet,新浪微博的微博,人人和微信的留言、回復、分享(這些都可以被看做用戶(nodes)之間的有向邊(arch)),其edges自帶time stamp,並非同時出現。最簡單的模型是假設平穩性,然後把每個node pair上邊的出現看做Poisson過程(或者其他過程)的事件,但是即使這麼簡單的模型,MLE估計已經有困難。過程的速率之間由網路結構而產生dependence,依從於某個我們希望估計的未知結構,但是現實數據中,經常難以在每條邊上觀測到足夠數量的「edge出現」事件,來允許我們單獨估計一個node pair間的速率。何況在這種event based的動態網路中,其本身的時間平穩性假設就很成問題,而目前對它的change point analysis的研究還處於起步階段。
現在就想到這麼多了,以上。
===========================
patch v1.0:
community detection + node covariates有很多paper,biometrika上有一篇最近發出來的[1411.2158] Covariate-assisted spectral clustering可以看下,然後自己看它的reference
補充一個大點:
4. Graphon estimation,這個說的意思是network是從一個非常一般性的模型中產生的,也就是每個node 對應一個 中的隱含位置 ,即
然後有一個定義在 上的(一般假設為)piece-wise Lipschitz函數 ,從它可以產生整個network的probability matrix ,服從以下關係式:
但是跟block model一樣,不能直接觀察到 ,它是我們想估計的。只能觀察到每個元素都是0/1的adjacency matrix ,這個問題就叫graphon estimation了。Graphon model是非常一般性的,比如block model就是它的特殊情形(如果 是piece-wise constant那麼生成出來的network就是一個block model了)。
關於這個topic,我這裡夾帶點私貨吧(作為一個從未夾帶過私貨的人),因為論文里都寫了,懶得再解釋一遍了:[1509.08588] Estimating network edge probabilities by neighborhood smoothing (Biometrika 2017+)
謝謝邀請。
很難說Social Network Analysis是一門特定的學科。更多的應用是作為一種研究方法,有時候也會作為一種研究視角(perspective)。當然,也產生了一些中層的理論(theory),比較常見的是Granovetter的弱聯繫理論,Burt的結構洞理論。
之前的社會科學往往關注個體(或者行動者,如企業、個人)的特性,而忽略個體之間的關係。而社會網路的研究正是研究關係的方法、視角。最大的特徵在於考慮了個體之間的互相依賴,更接近於現實社會。
可以從以下三個方面定義一個網路:
1,行動者(actors)。比如人組成的網路,班級組成的網路,學校組成的網路。
2,聯繫(ties)。圖形中往往用邊來表示。比如人和人的友誼、借貸關係。企業和企業間的合作關係。國家和國家的敵對關係。
3,邊界。這些行動者和邊需要確定一個界限,比如知乎內的用戶,比如政府單位內,比如同性戀群體。
有了這三個部分,我們就可以從日常生活中的各個方面抽取出各種不同的網路。比如知乎用戶間的點贊和評論關係網。班級內的朋友網路等。然後用一系列的指標去觀察這些網路對網路中的行動者的影響,或者這些網路形成的原因。
複雜網路(complex network)和SNA往往使用相同的分析軟體和可視化技術。不過更偏向於理工科,如計算機和物理。他們更關注網路的結構,而不關注行動者的性質。但最近幾年兩者互有交叉,在我看來,綜合起來叫網路科學(network science)更合適一些。
一個使用Gephi隨機生成的E-R網路。
如另一個答主所說,傳統話題有community detection,topology inference,link prediction,尤其是brain network的topology inference,目前還是個熱點。統計的人挺關心。
傳統項目還有個attribute prediction,就是每個節點都有個值,有的節點值是已知的,有的是未知的,要根據已知節點求未知節點的這些值。這個工作可以用在推薦系統上。最簡單的辦法當然是k nearest neighbor了,我們不知道小明有多喜歡電影哈利波特,那就拿他的朋友對哈利波特的打分求個平均值唄。
相比上面那些問題,我其實更關心的是社交網路上的信息傳播模式,這方面的研究我特別服斯坦福的jure lescovec 領導的snap實驗室。強烈安利一下。他們開發了一些python library,還把很多數據放到網上讓大家研究,並且他的研究都很有商業價值,這很對我的胃口。
http://snap.stanford.edu
舉幾個例子啊,咱們現在想投放個廣告,就問大v轉發值多少錢?咱們手裡有一百萬的預算,投給誰,分別給誰多少錢,才能實現影響力最大化?學術上好像叫influence maximization。
首先我們要對每一個用戶擬合一個函數,輸入是給他的廣告費,輸出是它能帶來的影響力。但這不是一個簡單的線性回歸的那種模型,因為影響力不容易量化。如何量化廣告對用戶的影響力,這是數據科學家應該關心的問題吧?
我們先不考慮影響力有interaction,interaction就是你給a十萬,b十萬,總影響力不是二者影響力的簡單相加。先簡單點。
我們知道每個用戶的活動時間序列,知道用戶之間的聯繫,但顯然不能簡單地認為誰粉絲多誰就值錢,因為有些人粉絲質量高。那最簡單的辦法就是咱們來個page rank,至少我能知道誰相對誰更值錢。這樣我至少能在一定程度上量化影響力了,然後再根據其他的feature做一些調整。但這個方法還是有問題。因為pagerank沒有考慮時間序列。影響力估計的不準。
那再進一步,做一個generative model,每個user都以一定的概率(可以簡單的時變)觀看,轉發,點贊他們關注的人的post,為了減少參數,再引入一些隱含變數聲明用戶分多少多少類。做一個agent based model。然後把這個model 放進data 裡面,做參數估計。最後user的粉絲的點贊的期望,可能可以作為影響力的量化。
我這都是brain storm,您看著樂呵一下就行。還是看一下snap的文章比較靠譜。
A social network is a social structure made up of a set of social actors (such as individuals or organizations) and a set of the dyadic ties between these actors. The social network perspective provides a set of methods for analyzing the structure of whole social entities as well as a variety of theories explaining the patterns observed in these structures. (Wasserman Stanley, 1994)
社會網路本質上是一種社會結構,這種社會結構是由社會參與者以及他們之間的二元關係構成的。社會網路視角提供了一種方法,通過這種方法我們可以將社會當做一個整體進行分析;同時社會網路視角提供了一大批理論,對觀察到的社會結構模式進行解釋。
以上定義引用自維基百科。
從上面的定義中,我們可以看到:
- 社會網路本質上是一種社會結構;
- 社會網路的基本構成要素由:參與者、參與者之間的關係;
- 社會網路視角即提供方法,也提供理論;
- 社會網路關注的是社會整體,以及整體下的結構,即社會網路視角認為參與者在網路中的位置要比參與者本身的屬性更為重要。
作為一個初學者,我也沒太深刻的認識,不過可以推薦2本書:
《社會網路分析:方法與應用》,斯坦利·沃瑟曼;
《社會與經濟網路》,馬修·O·傑克。
第一本書的作者就是給出上面定義的學者。
第二本書的作者是斯坦福大學的教授,在coursera上有開設《Social and Economic Networks: Models and Analysis》的課程,內容與他寫的書基本一致,可以邊學邊看。
如果有有興趣的小夥伴,歡迎一起學習。
這個學期正好在學這一門課,說說自己看法。
首先,如其名,研究社會網路。社會網路的主體通常為人,(你要是非把貓貓狗狗物品啥的算上我也不跟你爭論),每個人為一個節點,人與人之間的關係為邊,關係有強弱有方向也有性質(如敵人情侶同盟等等)。其基礎就是離散數學的圖論。然後通過一些運算來計算聚集度,平均值啥的。也可以通過編程來實現更高層次的數據分析。
然後,應用前景。眾所周知,社交網路發展飛速,數據分析也是如火如荼。社會網路分析有助於網站進行精準廣告投放,以及內容推送,提高用戶粘性(各種商業應用我就不展開了)。在社會學上的應用,我是學商務的我也不懂,就私里揣測,人際關係難道不是人類千百年來想要解決的難題嗎~ 並且我腦洞大開研究社會網路是不是有助於weiwen呢…anyway,老師說的三元閉包理論真的很有用,兩個人的孤島關係是很難維持的( ̄▽ ̄)。
最後是學科分析,這一定是在學科交叉點的新興領域。牽涉到社會學,心理學,計算機科學。正如上面提到的,圖論是基礎,數據分析自然也對數學功底要求很高,很火的R語言。然後計算機操作,編程能力自然不能少(順便吐槽一下Gephi真的很不好用)。接著,分析出結果了,應用於哪個領域,社會分析還是商務應用,仁者見仁。因此在我看來社會網路分析更多是一種輔助工具,上升不到學科高度。
( ̄ー ̄)我就是看到跟專業有關的東西衝動BB了 一下,課也才上了幾周,課本都還沒讀完+_+,BTW推薦課本《網路、群體與市場》作者(美)大衛·伊斯利,喬恩·克萊因伯格,李曉明翻譯。如果有新收穫我會來更新的~^_^
感謝之前的回答,讓我見識增長了不少。
劍橋大學有不少很好的研究,我關注的大神里,有一個叫做Pan Hui的人,現在在香港拿到教職。
我沒有社交網路分析的背景,目前做的是交叉學科,把social network和mobility結合起來。算是屬於mobile social network吧。
放一張我的研究工具:
研究工具很重要,那是研究的視角。同實驗室的師姐,搞網路的,與人合作發表了一篇nature子刊,題目是戰爭與和平的空間關係。這個研究工具受限於traces。地圖倒是可以隨便設置,但不是real world data,說服力不夠。哎,也挺糾結的。
放兩個用於研究的資料庫。
CRAWDADhttp://realitycommons.media.mit.edu/realitymining.html
社會網路分析是一門交叉學科。所以任何研究者都是從一個以存在學科出發,利用社會網路分析工具來研究其自身學科。
當然存在一批研究者以研究社會網路分析方法為研究對象,這些研究者多集中在以計算機演算法的改進為目標的研究中,比如社團挖掘(Inferring Community in Social Networks),複雜網路中的影響力最大化(Maximizing Influences in Complex Networks),以及時效網路中的路徑搜索等問題。現在學的是Linguistics and Sociology,上學期在社會學模塊下選了social network analysis這門課,一學期的課程還沒有能夠深入學習這門課,現在也有些忘了,大致介紹下上課學的內容。
社會關係是由node(人)和link(聯繫)組成,利用ucinet軟體可以從整個social network分析出哪個是central node,centrality又分為四種,degree-closeness-betweenness-eigenvector,分別代表不同的中心性。degree centrality越高說明這個node的link越多,根據情況會分為out-degree和in-degree,closeness也分為in和out,數值越高則離整個network的中心越遠, betweenness數值越高說明充當兩個actor的過度可能性越大, eigenvector可以看作是degree的升級,數值越高說明和他有聯繫的node擁有的link也很多。
此外還學了一些如small world,地球上的任意兩個人可以通過六個人之內聯繫到,比較有趣的是Erdo number和Kevin Bacon Game,這個是測試某個人和這兩個人通過多少人可以聯繫起來。教我們這麼課的老師是個大牛,據說是ucinet的參與開發者和維護者,很容易就能把他和他兩聯繫起來了。
還有現在經常聽到別人說的弱聯繫 weak ties,指的是和你不熟,互動頻率不高。這類聯繫的特點是你們往往掌握著不同的資源,因為兩個人交際圈的覆蓋性不大,有個實驗證明了人們找工作很大可能是通過弱聯繫實現的。也有人反駁是因為每個人的弱聯繫數量遠遠超過強聯繫。
還有ego network, clique, two mode data…
總的來說是一開始學著雲里霧裡,最後覺得有些理論還挺實用的一門課。:)
是一個綜合性比較強的應用研究領域,與社會計算這個學科密不可分。
從研究側重角度出發,有從網路拓撲結構入手進行的一系列相關研究;也有結合社會學,自然語言處理等方向,進行用戶畫像,情感分析,身份映射,等等方向。方向比較多且龐雜,有些小領域目前研究處於起步階段。
由於社交網路的特殊性和隱私還有商業保護的限制,領域內研究用的,好的數據集的獲取和整理也是一個比較大的挑戰。
個人認為「社會網路」可能還不能算的上一門嚴格的「學科」,範疇尚未達到「學科」級別,就個人所知的,主要是用一些複雜網路的工具做分析應用,而這點在許多其他領域都有做。
就是一門學科嘛~樓主的問題就沒有說清楚嘛~你是想知道理論呢,還是想知道方法呢~社會網路分析更可以被視作一個方向,經濟學、社會學乃至社會物理學都有相關的研究~怎樣一門學科,只能和樓上一樣~一門對社會網路進行研究的學科~主要分為整體網和個人網,其實都是一個網路,只不過出發點和視角不一樣,整體網更注重網路的結構性,個人網則偏向於網路於個人的作用~
當然,相關概念有很多~記得當年上課的時候,還專門討論了一下社會資本和網路的關係~幾年過去了,忘的也差不多了~
推薦閱讀: