第三章、 協同寫作與社群網絡
3.3 社群網絡指標分析
3.3.1 平均 Degree 與 Degree 分佈
國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
圖 13:公司組織關聯性
3.3 社群網絡指標分析
3.3.1 平均 Degree 與 Degree 分佈
本章節主要以使用者貢獻(pull request)與追隨(follow)等兩種角度分析,觀察此兩種 事件所產生的兩種網絡。此兩種網絡的共通性即網絡圖形中的節點皆為使用者(user),
即以使用者角度而非專案角度去看整體的網絡,而節點間的連結則是以兩位使用者 之間是否產生貢獻或追隨等觸發事件。
此小節使用目前社群網絡分析最常用的數種指標來分析此兩種網絡。上一章節 我們僅透過初步的觀察來針對 GitHub 的整體社群網絡做初步的推論。而透過社群指 標的分析,便能更進一步的去分析網絡中的種種細節,例如分析出網絡中每位使用 者的貢獻與合作情況、或找出網絡中最具影響力的使用者等。以下我們先透過平均 degree 與 degree 的分佈來看這兩種觸發事件所反映的實際情況。
在追隨(follow)的原始資料中具有大量零活性(活性的定義請見 3.1.1)的使用者 資料,所以在計算 degree 之前先進行資料篩選與過濾,先行去除零活性的使用者資 料。去除零活性的使用者前資料共有 1,596,888 筆,資料篩選後僅留下 3,757 位使用 者與 109,901 筆資料。
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
追隨(follow)的平均 degree 為 29.25,中位數為 14,標準差為 29.3±68.6,表示 GitHub 上一個人平均追隨 30 個人,因為在 GitHub 上使用者追隨某一使用者僅會有 一次的關聯存在,即表示資料中不會顯示使用者多次追隨某一使用者,因此,此圖 形是一種沒有權重的網路,其中節點間的關聯權重都為 1,表示權重都相同。而由 下圖 14 可觀察出 degree 的分佈呈現 power law 現象,即只有少數使用者具有高度的 degree,大部分的使用者的 degree 大部分都介於 10 以下,表示在 GitHub 上的 follow 觸發事件呈現了一種大部分的使用者都共同追隨某一個使用者的現象,造成某幾位 使用者擁有高度 degree,然而大部分的使用者並不會互相追隨。這也表示在 follow 的網絡下,各使用者間的連結性是不足的,屬於低互動的社群網絡。
圖 14:Follower Degree Distribution
接下來我們針對使用者貢獻(pull request)的 degree 分佈來觀察,GitHub 上使用 者貢獻所產生的真實情況。同樣的我們先過濾資料中零活性的使用者,留下 682 位 使用者與 805 筆資料。使用者貢獻(pull request)的平均 degree 為 1.18,中位數為 1,
‧ 國
立 政 治 大 學
‧
N a tio na
l C h engchi U ni ve rs it y
標準差為 1.2±0.5,因為可能使用者對某一使用者進行多次貢獻(pull request),所以 會產生出一個有權重的網絡圖形,此網絡則以貢獻給相同使用者的次數加總,作為 關聯之間的權重,進而產生此網路圖形的 weight degree 為 6.03。由下圖 15 看出 degree 的分佈不同於 follow 事件,degree 的分布較為平均,分布於都介於 0 至 20 左右,
只有一人的 degree 高於平均值很多,表示此人很多人貢獻給他或貢獻給很多人,在 本研究中此人為貢獻給多人,即為 out degree。藉由此圖也觀察出目前 GitHub 上針 對貢獻(pull request)觸發事件,大家的貢獻程度都較低,鮮少有多數人都貢獻於一人 之情況。
圖 15:Pull Request Degree Distribution
Degree centrality、Betweenness centrality、Closeness centrality[12]在社群網路分析三 個重要的指標,能夠分析出網路中每個節點的中心性程度,即能夠表示每個節點的 影響力與重要程度。
Degree centrality 的基本涵義是任一個節點連接到其他節點的數量,即表示某個
‧
節點可以影響到的節點,或被影響的節點數量。換言之,degree centrality 就是在計 算一個人的朋友數,但 degree centrality 為 local measure,因為 degree 只看某一個節 點的朋友數,表示只對外評估了第一層的節點,因此,在同一個 community 中視為 重要,但在整體的網絡當中,可能會有好幾個不同的 community,此時 degree centrality 就看不出對於其他 community 的重要性。
Betweenness centrality 所表示的精神為兩個節點之間的溝通一定會透過某個節 點,此時稱之此節點的 betweenness centrality 很高。其計算方式會利用到最短路徑 的演算法,表示必須計算網絡中所有節點與其他點的最短路徑,因此 betweenness centrality 不同於 degree centrality,為一種 global measure。其計算方式為利用 j 到 k 節點的所有路徑中,必須經過 i 節點的數量,除以 j 到 k 節點的最短路徑數量,即 可求得 betweenness centrality。下式,
𝐶
𝐵代表 betweenness centrality,𝑖表示為節點,𝑔𝑗𝑘(𝑖)表示節點𝑗與節點𝑘之間通過節點𝑖的最短路徑數量。公式表達如下:
𝐶
𝐵(𝑖) = ∑𝑔
𝑗𝑘(𝑖)𝑔
𝑗𝑘𝑗<𝑘
(1)
Closeness centrality 則是利用某個節點到其他點的平均最短距離,來量化一個點到其 他點之間的距離。由於計算方式須求得最短距離的平均值,必須評估網絡中所有的 節點距離,因此 closeness centrality 也為一種 global measure。下式,
𝐶
𝐶代表 closeness centrality,𝑖表示為節點,𝑑(𝑖, 𝑗)表示節點𝑖與節點𝑗之間平均最短距離,相加後取倒數‧
現負相關的情況[13]。例如當某人 degree 很高但 closeness centrality 卻很低,此特殊 情況可分成六種,如表 6、表 12。本研究對於指標數值高低的定義,首先以觀察數 值高的指標為基礎,將此指標從高到低排序,取出前十筆資料,再將另一指標從低 到高排序後給予排名,取得排名前三筆最低數值者,如表 7 至表 11 所示,並以此方 法定義為數值高低的門檻值。因此,本章節著重於在 follow 與 pull request 兩種網絡 是否存在此六種情況,並觀察 GitHub 上具有此六種情況的使用者各代表的涵義。表 6:Degree、Closeness、Betweenness on Follow Event
follow event low degree low closeness low betweenness high degree
--
high closeness (1)追隨的人不多,但跟 大家的距離很近,因此
high between-ness
‧
表 7:Low Degree and High Closeness on Follow Event 使用者 degree closeness high degree)。此類使用者所追隨的人都聚集於同一群體,在自己的群體內很活 躍,但卻不易追隨其他群體,或與其他群體互動。
表 8:Low Closeness and High Degree on Follow Event 使用者 degree closeness
Hcilab 2182 1.39169 Csjaba 1826 1.463368 Equus12 1723 1.544244
(4) 觀察資料集中具有 closeness 很低,但 betweenness 卻很高的使用者(low closeness and high betweenness)。此種情況較於罕見,此類使用者跟大家距離很遠,不容 易傳遞追隨的訊息,但某些時候大家還是會看他追隨的人而跟進。
‧
表 9:Low Closeness and High Betweenness on Follow Event 使用者 closeness betweenness
Hcilab 1.39169 994313.9 Equus12 1.544244 822958.7 Csjaba 1.463368 687253
(5) 觀察資料集中具有 degree 很高,但 betweenness 卻很低的使用者(high degree and low betweenness)。此類使用者雖然追隨的人很多,但群體中跟他同類型的人很 多,表示替代性高,大家不會看他追隨誰而跟進,反而透過其他人,表示此類使 用者在群體中影響力不大。
表 10:High Degree and Low Betweenness on Follow Event 使用者 degree betweenness
Fordream 743 0 Wycats 495 0 Jashkenas 468 0
(6) 觀察資料集中具有 closeness 很高,但 betweenness 卻很低的使用者(high closeness and low betweenness)。此類使用者雖然大家距離很近,很容易傳遞追隨的訊息,
但周圍的朋友跟大家距離也都很近,可參考的管道變多,因此大家比較不會看他 追隨誰而跟進。
表 11:High Closeness and Low Betweenness on Follow Event 使用者 closeness betweenness
Hashcode 7.458782 0 Keijiro 6.879835 0 Vogella 6.461953 0
下表 12 針對 pull request 事件討論 degree、closeness、betweenness 三種指標分 別呈現負相關等六種特殊情況,例如 degree 很高但 closeness centrality 卻很低,或是 betweenness centrality 很低但 closeness centrality 卻很高等,其中每個情況所代表的 涵義如下表,並針對每種情況觀察出目前資料集中是否有此情況產生。
‧
表 12:Degree、Closeness、Betweenness on Pull Request Event
pull request event low degree low closeness low betweenness high degree
--
high closeness (1)貢獻不多,但跟大家 的距離近,因此很容易
high betweenness (2)貢獻不多,但要貢獻 時必先透過他。為不同
(1) 觀察資料集中具有 degree 很低,但 closeness 卻很高的使用者(low degree and high closeness)。此類的使用者雖然貢獻不多,但跟大家的距離很近,因此,很容易 產生間接貢獻。
表 13:Low Degree and High Closeness on Pull Request Event 使用者 degree closeness
Mattupstate 1 2
Ktmud 1 2
Marksteve 1 2
(2) 觀察資料集中具有 degree 很低,betweenness 卻很高的使用者(low degree and high betweenness)。此類使用者貢獻不多,但為不同群體間的橋樑,通常產生不同群 體間的貢獻,此類使用者影響力很大。但資料集中並未觀察出具有此特殊情況。
‧
high degree)。此類使用者所貢獻很多,但貢獻的人都聚集於同一群體,不易貢 獻給群體以外的人。表 14:Low Closeness and High Degree on Pull Request Event 使用者 degree closeness
Mxcl 398 0 Antirez 39 0 Chriseppstein 37 0
(4) 觀察資料集中具有 closeness 很低,但 betweenness 卻很高的使用者(low closeness and high betweenness)。此種情況較於罕見,表示此類使用者跟大家距離很遠,
不易產生間接貢獻。但某些時候大家還是都透過他產生對另一個人的貢獻。
表 15:Low Closeness and High Betweenness on Pull Request Event 使用者 closeness betweenness
Kennethreitz 1 78 Mojombo 1 51 Mitsuhiko 1.5 26
(5) 觀察資料集中具有 degree 很高,但 betweenness 卻很低的使用者(high degree and low betweenness)。此類使用者貢獻很多,但跟他同類型的人很多,替代性高,
大家不會透過他產生間接貢獻,而都透過別人,表示此人在群體中影響力不大。
表 16:High Degree and Low Betweenness on Pull Request Event 使用者 degree betweenness
Mxcl 398 0 Antirez 39 0 Chriseppstein 37 0
(6) 觀察資料集中具有 closeness 很高,但 betweenness 卻很低的使用者(high closeness and low betweenness)。此類使用者雖然與大家的距離近,但周圍的朋友跟大家距
‧
表 17:High Closeness and Low Betweenness on Pull Request Event 使用者 closeness betweenness
Mattupstate 1 2
Ktmud 1 2
Marksteve 1 2