Social Network 社交網(wǎng)絡(luò)分析

0 評論 22429 瀏覽 5 收藏 14 分鐘

SNA(Social Network Analysis)社交網(wǎng)絡(luò)分析已經(jīng)成為一個關(guān)鍵技術(shù),也是一項熱門的研究,在現(xiàn)代社會學(xué)、人類學(xué)、社會語言學(xué)、地理、社會心理學(xué)、通訊研究、資訊科學(xué)、組織研究、經(jīng)濟學(xué),以及生物學(xué)領(lǐng)域。

一:什么是SNA-社交網(wǎng)絡(luò)分析

社交網(wǎng)絡(luò)分析的威力何在?我想幾個案例來說明。

案例1:對一個毫無了解的組織(這個組織可以是一個公司,亦或是一個組織),如果能夠拿到這個組織成員之間的信息流動記錄(例如通話記錄/或郵件記錄),那么通過SNA可以分析出誰是這個組織的實際控制者(要知道有必要加上實際二字),誰是這些成員中有影響力的人,那些成員更傾向于聚集在一起。對上述問題的回答可以用來做公關(guān)-把精力用在對的人身上;用來處理組織架構(gòu);用來游說獲得支持–關(guān)系緊密的人會更傾向于支持同一種意見,一方面是由于觀點相同所以關(guān)系緊密,另一方面你的大部分朋友都支持的事情你總不會下臉來做那個少數(shù)派吧。

案例2:舉個現(xiàn)實中的例子吧,鵝廠剛推出朋友圈的時候我對這個產(chǎn)品的印象非常好,因為它給我推薦的朋友有一些是很多年都沒有聯(lián)系,不特意提起都想不起來名字的“朋友”。包括人人網(wǎng)推薦的好友也是很精準(zhǔn)的。這些產(chǎn)品的背后就是用的SNA-朋友的朋友也是我的朋友,敵人的朋友是我的敵人,敵人的敵人是我的朋友,朋友的敵人是我的敵人。

這兩個案例是直觀印象中的社交網(wǎng)絡(luò)分析,網(wǎng)絡(luò)中的節(jié)點是人。如果把SNA只用在人身上那就太狹隘了。相同的思想完全可以用在物身上。例如:

案例3:豆瓣FM也是我很喜歡的一款產(chǎn)品—與你喜歡的音樂不期而遇。一些歌曲是我對某一個時期的感覺印記,有些印記記憶猶新,有些印記逐漸模糊。時不時就能在豆瓣FM和這些或清晰或模糊的印記不期而遇,讓人驚喜。為什么豆瓣FM能做到這點那?是它對歌曲按照什么節(jié)奏/曲調(diào)/風(fēng)格/歌詞做了分類嗎?如果你這樣認(rèn)為那就太傻太天真了。這里的SNA每一首歌就是網(wǎng)絡(luò)中的每個節(jié)點,而你的喜歡或不再播放就給你聽過的歌曲之間加強/減弱了聯(lián)系。

經(jīng)過上面三個案例,可以對SNA有個初步了解。

二:我的好友圈

一般來說有兩大途徑來獲得好友圈:1)社交應(yīng)用/社交網(wǎng)站,比如人人/微博/微信。2)通信記錄-電話/郵件/短信。后者數(shù)據(jù)都掌握在相應(yīng)的運營商,前者的數(shù)據(jù)可以從應(yīng)用開放的API或者簡單粗暴一點自己寫蜘蛛爬。

我采用寫爬蟲的方式得到了人人的好友圈。抓了兩層好友,即我的好友,和我好友的好友。其實這個層數(shù)可以自己設(shè)定,用遞歸函數(shù)很容易實現(xiàn)。唯一消耗的是運行時間和存儲。即使只抓兩層好友圈,用我的筆記本也跑了15分鐘。

接下來該networkx登場了。一通運算之后得到如下結(jié)果:

1)兩層好友圈

這是對7169個好友關(guān)系的做圖。當(dāng)然最中心的點是我自己??梢钥吹街車蝗κ窍鄬铝⒌摹霸啤?,那是因為我只抓了兩層的原因。

七千多個好友,這么多層關(guān)系,如何分析?別擔(dān)心,社交網(wǎng)絡(luò)分析不是一個新興的領(lǐng)域,看米國文獻說這個領(lǐng)域從六七十年代就有了,只不過是近十年火起來的。所以有一大堆現(xiàn)成的算法來基本搞定你的大部分需求。

對七千多個好友的基本分析如下:

—————2014-06-08 21時32分16秒開始整體分析—————-

社交網(wǎng)總共有7169個好友

排名前10的好友數(shù)

1–徐希文–909

2–劉杉–607

3–李超–505

4–colipso–405

5–呂秀芳–343

6–藏新汀–336

7–王大舸–312

8–王卉卉–258

9–孫昊–255

10–楊子旭–248

——–2014-06-08 21時32分16秒開始受歡迎指數(shù)分析(基于closenes centrality)————

受歡迎指數(shù)排名前10的好友為

1–colipso–0.51

2–馬佳–0.50

3–徐希文–0.40

4–賈麗娜–0.40

5–洛鋒–0.39

6–張偉–0.39

7–陳欣–0.39

8–王蘊杰–0.39

9–孫峰–0.39

10–張寧–0.38

———2014-06-08 21時35分15秒開始樞紐指數(shù)分析(基于Betweenness centrality算法 )———-

處于樞紐節(jié)點的前10好友為

1–徐希文–0.21

2–colipso–0.20

3–劉杉–0.14

4–馬佳–0.12

5–李超–0.11

6–呂秀芳–0.08

7–藏新汀–0.08

8–王大舸–0.08

9–王卉卉–0.06

10–陳欣–0.05

———-2014-06-08 21時49分07秒開始幕后黑手指數(shù)分析(基于Eigenvector centrality算法)———

Not defined for multigraphs.

——-2014-06-08 21時49分07秒開始Google PageRank指數(shù)分析(基于Google PageRank算法)——-

pagerank() not defined for graphs with multiedges.

對一些詞解釋下:

樞紐:一個人同時屬于兩個不怎么想干的群體,那么這個人就處于樞紐的位置。

幕后黑手:顧名思義,一個人不怎么和大部分人聯(lián)系,只和關(guān)鍵人物發(fā)生聯(lián)系,通過關(guān)鍵人來影響群體。

在分析中后兩個算法因為底層數(shù)據(jù)構(gòu)造的社交網(wǎng)絡(luò)為無向網(wǎng)絡(luò),所以在這一個具體分析中不適用。

2)核心交往圈

扯那么多基本人我不可能都認(rèn)識,networkx還提供了分析某人的核心交往圈的算法,還是以我為例:

微博桌面截圖_20140920101402

—————2014-06-08 21時20分39秒開始整體分析—————-

社交網(wǎng)總共有502個好友

其他的分析因為是用同一個模塊來實現(xiàn)的,和上面相同,就不重復(fù)了。

3)圈里圈外

上面的還只是宏觀層面的結(jié)果,從微觀層面看,在大群體中也總是少不了一個一個的小圈子,這個圈子里的人關(guān)系更為緊密,有著共同的話題,一般對圈子之外的人有一定的排斥性,而對圈子里的人信任度會很高,正所謂圈里圈外。

對于一門發(fā)展了將近半個世紀(jì)的學(xué)科,還是那句話,你想到的東西早就有人想到了。

比如我的好友圈中:

第45個小圈子為:崔文英 殷渤濤 鄭新玉 孫昊 陳欣 張辰星 陸伯文 這是我的一幫高中同學(xué)。

4)最短路徑

已經(jīng)有非常成熟的算法來尋找社交網(wǎng)絡(luò)中的兩個節(jié)點之間的最短路徑。也就是所謂的六度空間。即我如果想認(rèn)識某某,那么應(yīng)該找那些最少的中間人來達(dá)到目的?

舉一反三一下,如果是由各種書籍來組成的一個網(wǎng)絡(luò),書是節(jié)點,一個人如果讀過兩本書,那么這兩本書就有個連線。問題來了,在各種小說APP上,如果一個人讀了兩本書,如何給他推薦第三本書?這兩本書最短路徑上的其它書嘛,有人會問,這不是兩本書已經(jīng)有連線了,路徑不是最短了嗎?這就涉及到了路徑的權(quán)重問題,有了權(quán)重,直接的連線就不一定最短咯。權(quán)重如何得到?Well,It depands.

由于我只抓了兩層好友,so,最短路徑不會超過2.

隨便找一個:colipso —谷雨— 范文卓 我想認(rèn)識范,那么找谷雨就對了。

5)三人行

對于任意三個人,可以有如下16種關(guān)系:

01

比如對于012C這種類型,作為中間人,是不是可以介紹另外兩人認(rèn)識那?

看看我的交往圈里面這16種類型各占多少:

201類型的三節(jié)點有94109個

021C類型的三節(jié)點有0個

021D類型的三節(jié)點有0個

210類型的三節(jié)點有0個

120U類型的三節(jié)點有0個

030C類型的三節(jié)點有0個

003類型的三節(jié)點有19747819個

300類型的三節(jié)點有3605個

012類型的三節(jié)點有0個

021U類型的三節(jié)點有0個

120D類型的三節(jié)點有0個

102類型的三節(jié)點有1112967個

111U類型的三節(jié)點有0個

030T類型的三節(jié)點有0個

120C類型的三節(jié)點有0個

111D類型的三節(jié)點有0個

當(dāng)然,因為我只抓了兩層交往圈,可以說還是比較核心的交往圈,所以很多三節(jié)點類型都沒有出現(xiàn),如果抓取的層數(shù)更多,結(jié)果會更顯著。

仍然是舉一反三,網(wǎng)絡(luò)中的節(jié)點無論是人還是物,對于16種結(jié)構(gòu)中的每一種其實都可以制定一定的策略來達(dá)到一定的目的。上述分析已經(jīng)完成了行動的第一步,識別目標(biāo)。

三:亂七八糟的一些想法

1)傳統(tǒng)統(tǒng)計和現(xiàn)代分析

最近同時在研究R和社交網(wǎng)絡(luò)分析,發(fā)現(xiàn)傳統(tǒng)統(tǒng)計分析方法和現(xiàn)代分析方法還是有一些差別的。

傳統(tǒng)統(tǒng)計分析方法起源于19世紀(jì),無論是點估計/區(qū)間估計/假設(shè)檢驗都是依賴于一定的分布假設(shè)前提,更不要提貝葉斯統(tǒng)計,有大量的學(xué)術(shù)研究搞定了小樣本下檢驗整體的方法,目的是想方設(shè)法降低計算量。但問題是現(xiàn)在的環(huán)境/用戶偏好變化非常快,也就是分布變化快。用傳統(tǒng)統(tǒng)計方法在分析的群體變化,分析的參數(shù)變化下還是有一定局限。

而現(xiàn)代的分析方法無論是蒙特卡洛模擬還是社交網(wǎng)絡(luò)分析都是基于密集計算,管你什么分布,模擬100次不夠,那就模擬10000次,100000次。根據(jù)大數(shù)定律,結(jié)果跑也跑出來了,八九不離十。

2)工具

上面的所有分析都是用python 和networkx模塊完成。Python的靈活數(shù)據(jù)結(jié)構(gòu),大量的開源模塊(numpy/scipy/matplotlib/networkx/webpy等等)可以說是居家旅行,數(shù)據(jù)分析的必備良藥。清晰的語言規(guī)范也避免了括號風(fēng)暴。我很欣賞。

networkx分析規(guī)模的瓶頸首先在于內(nèi)存/存儲,其次在于算法的合理性。對于10萬以內(nèi)的節(jié)點數(shù)還是容易應(yīng)付的。如果節(jié)點數(shù)量級在于千萬甚至億,那就得好好設(shè)計了。

3)分析價值

分析能產(chǎn)生的價值一種是用于決策/一種用在產(chǎn)品。決策的對錯在中長期能看到效果。產(chǎn)品則更直接,分析價值快速見于用戶數(shù)量/意見。

本文來源:大數(shù)據(jù)中國 ? 文/黃鵬

更多精彩內(nèi)容,請關(guān)注人人都是產(chǎn)品經(jīng)理微信公眾號或下載App
評論
評論請登錄
  1. 目前還沒評論,等你發(fā)揮!